From 83b94092b6473810c9cc8d546ad38b04aa819bd3 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Mon, 27 Feb 2012 18:02:08 -0500 Subject: [PATCH 01/68] Minor Eeschema LIB_ITEM object improvements. --- eeschema/dialogs/dialog_edit_one_field.cpp | 2 +- eeschema/lib_arc.cpp | 19 ++- eeschema/lib_arc.h | 75 +++++++++--- eeschema/lib_bezier.cpp | 21 ++-- eeschema/lib_bezier.h | 78 ++++++++++--- eeschema/lib_circle.cpp | 19 ++- eeschema/lib_circle.h | 76 +++++++++--- eeschema/lib_draw_item.cpp | 6 +- eeschema/lib_draw_item.h | 130 +++++++++------------ eeschema/lib_field.cpp | 21 ++-- eeschema/lib_field.h | 76 +++++++++--- eeschema/lib_pin.cpp | 23 ++-- eeschema/lib_pin.h | 75 +++++++++--- eeschema/lib_polyline.cpp | 21 ++-- eeschema/lib_polyline.h | 76 +++++++++--- eeschema/lib_rectangle.cpp | 19 ++- eeschema/lib_rectangle.h | 76 +++++++++--- eeschema/lib_text.cpp | 21 ++-- eeschema/lib_text.h | 76 +++++++++--- 19 files changed, 620 insertions(+), 290 deletions(-) diff --git a/eeschema/dialogs/dialog_edit_one_field.cpp b/eeschema/dialogs/dialog_edit_one_field.cpp index b4098c49aa..f7e1ab7f95 100644 --- a/eeschema/dialogs/dialog_edit_one_field.cpp +++ b/eeschema/dialogs/dialog_edit_one_field.cpp @@ -1,5 +1,5 @@ /** - * @file dialog_lib_edit_one_field.cpp + * @file dialog_edit_one_field.cpp * @brief dialog to editing a field ( not a graphic text) in current component. */ diff --git a/eeschema/lib_arc.cpp b/eeschema/lib_arc.cpp index 660556efa2..a91c76778d 100644 --- a/eeschema/lib_arc.cpp +++ b/eeschema/lib_arc.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -228,7 +227,7 @@ EDA_ITEM* LIB_ARC::doClone() const } -int LIB_ARC::DoCompare( const LIB_ITEM& aOther ) const +int LIB_ARC::compare( const LIB_ITEM& aOther ) const { wxASSERT( aOther.Type() == LIB_ARC_T ); @@ -250,7 +249,7 @@ int LIB_ARC::DoCompare( const LIB_ITEM& aOther ) const } -void LIB_ARC::DoOffset( const wxPoint& aOffset ) +void LIB_ARC::SetOffset( const wxPoint& aOffset ) { m_Pos += aOffset; m_ArcStart += aOffset; @@ -258,14 +257,14 @@ void LIB_ARC::DoOffset( const wxPoint& aOffset ) } -bool LIB_ARC::DoTestInside( EDA_RECT& aRect ) const +bool LIB_ARC::Inside( EDA_RECT& aRect ) const { return aRect.Contains( m_ArcStart.x, -m_ArcStart.y ) || aRect.Contains( m_ArcEnd.x, -m_ArcEnd.y ); } -void LIB_ARC::DoMove( const wxPoint& aPosition ) +void LIB_ARC::Move( const wxPoint& aPosition ) { wxPoint offset = aPosition - m_Pos; m_Pos = aPosition; @@ -274,7 +273,7 @@ void LIB_ARC::DoMove( const wxPoint& aPosition ) } -void LIB_ARC::DoMirrorHorizontal( const wxPoint& aCenter ) +void LIB_ARC::MirrorHorizontal( const wxPoint& aCenter ) { m_Pos.x -= aCenter.x; m_Pos.x *= -1; @@ -288,7 +287,7 @@ void LIB_ARC::DoMirrorHorizontal( const wxPoint& aCenter ) EXCHG( m_ArcStart, m_ArcEnd ); } -void LIB_ARC::DoMirrorVertical( const wxPoint& aCenter ) +void LIB_ARC::MirrorVertical( const wxPoint& aCenter ) { m_Pos.y -= aCenter.y; m_Pos.y *= -1; @@ -302,7 +301,7 @@ void LIB_ARC::DoMirrorVertical( const wxPoint& aCenter ) EXCHG( m_ArcStart, m_ArcEnd ); } -void LIB_ARC::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) +void LIB_ARC::Rotate( const wxPoint& aCenter, bool aRotateCCW ) { int rot_angle = aRotateCCW ? -900 : 900; RotatePoint( &m_Pos, aCenter, rot_angle ); @@ -312,8 +311,8 @@ void LIB_ARC::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) -void LIB_ARC::DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ) +void LIB_ARC::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ) { wxASSERT( aPlotter != NULL ); diff --git a/eeschema/lib_arc.h b/eeschema/lib_arc.h index a80ae3f0ab..d0fafb655f 100644 --- a/eeschema/lib_arc.h +++ b/eeschema/lib_arc.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -148,34 +147,80 @@ public: */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); + /** + * @copydoc LIB_ITEM::SetOffset(const wxPoint&) + */ + virtual void SetOffset( const wxPoint& aOffset ); + + /** + * @copydoc LIB_ITEM::Inside() + */ + virtual bool Inside( EDA_RECT& aRect ) const; + + /** + * @copydoc LIB_ITEM::Move() + */ + virtual void Move( const wxPoint& aPosition ); + + /** + * @copydoc LIB_ITEM::GetPosition() + */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** + * @copydoc LIB_ITEM::MirrorHorizontal() + */ + virtual void MirrorHorizontal( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::MirrorVertical() + */ + virtual void MirrorVertical( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) + */ + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + + /** + * @copydoc LIB_ITEM::Plot() + */ + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); + + /** + * @copydoc LIB_ITEM::GetWidth() + */ + virtual int GetWidth() const { return m_Width; } + + /** + * @copydoc LIB_ITEM::SetWidth() + */ + virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + virtual wxString GetSelectMenuText() const; virtual BITMAP_DEF GetMenuImage() const { return add_arc_xpm; } -protected: +private: virtual EDA_ITEM* doClone() const; /** - * Provide the arc draw object specific comparison. + * Function compare + * provides the arc draw object specific comparison. * * The sort order is as follows: * - Arc horizontal (X) position. * - Arc vertical (Y) position. * - Arc start angle. * - Arc end angle. + * + * @param aOther A reference to the other #LIB_ITEM to compare the arc against. + * @return An integer value less than 0 if the arc is less than \a aOther, zero + * if the arc is equal to \a aOther, or greater than 0 if the arc is + * greater than \a aOther. */ - virtual int DoCompare( const LIB_ITEM& aOther ) const; - virtual void DoOffset( const wxPoint& aOffset ); - virtual bool DoTestInside( EDA_RECT& aRect ) const; - virtual void DoMove( const wxPoint& aPosition ); - virtual wxPoint DoGetPosition() const { return m_Pos; } - virtual void DoMirrorHorizontal( const wxPoint& aCenter ); - virtual void DoMirrorVertical( const wxPoint& aCenter ); - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ); - virtual void DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); - virtual int DoGetWidth() const { return m_Width; } - virtual void DoSetWidth( int aWidth ) { m_Width = aWidth; } + virtual int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_bezier.cpp b/eeschema/lib_bezier.cpp index ab3bb95e36..4b5e51cdb8 100644 --- a/eeschema/lib_bezier.cpp +++ b/eeschema/lib_bezier.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -139,7 +138,7 @@ EDA_ITEM* LIB_BEZIER::doClone() const } -int LIB_BEZIER::DoCompare( const LIB_ITEM& aOther ) const +int LIB_BEZIER::compare( const LIB_ITEM& aOther ) const { wxASSERT( aOther.Type() == LIB_BEZIER_T ); @@ -161,7 +160,7 @@ int LIB_BEZIER::DoCompare( const LIB_ITEM& aOther ) const } -void LIB_BEZIER::DoOffset( const wxPoint& aOffset ) +void LIB_BEZIER::SetOffset( const wxPoint& aOffset ) { size_t i; @@ -173,7 +172,7 @@ void LIB_BEZIER::DoOffset( const wxPoint& aOffset ) } -bool LIB_BEZIER::DoTestInside( EDA_RECT& aRect ) const +bool LIB_BEZIER::Inside( EDA_RECT& aRect ) const { for( size_t i = 0; i < m_PolyPoints.size(); i++ ) { @@ -185,13 +184,13 @@ bool LIB_BEZIER::DoTestInside( EDA_RECT& aRect ) const } -void LIB_BEZIER::DoMove( const wxPoint& aPosition ) +void LIB_BEZIER::Move( const wxPoint& aPosition ) { - DoOffset( aPosition - m_PolyPoints[0] ); + SetOffset( aPosition - m_PolyPoints[0] ); } -void LIB_BEZIER::DoMirrorHorizontal( const wxPoint& aCenter ) +void LIB_BEZIER::MirrorHorizontal( const wxPoint& aCenter ) { size_t i, imax = m_PolyPoints.size(); @@ -212,7 +211,7 @@ void LIB_BEZIER::DoMirrorHorizontal( const wxPoint& aCenter ) } } -void LIB_BEZIER::DoMirrorVertical( const wxPoint& aCenter ) +void LIB_BEZIER::MirrorVertical( const wxPoint& aCenter ) { size_t i, imax = m_PolyPoints.size(); @@ -233,7 +232,7 @@ void LIB_BEZIER::DoMirrorVertical( const wxPoint& aCenter ) } } -void LIB_BEZIER::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) +void LIB_BEZIER::Rotate( const wxPoint& aCenter, bool aRotateCCW ) { int rot_angle = aRotateCCW ? -900 : 900; @@ -253,8 +252,8 @@ void LIB_BEZIER::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) } -void LIB_BEZIER::DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ) +void LIB_BEZIER::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ) { wxASSERT( aPlotter != NULL ); diff --git a/eeschema/lib_bezier.h b/eeschema/lib_bezier.h index d67cd4d9ec..083ac5e1c6 100644 --- a/eeschema/lib_bezier.h +++ b/eeschema/lib_bezier.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -73,7 +72,12 @@ public: virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - void AddPoint( const wxPoint& aPoint ); + void AddPoint( const wxPoint& aPoint ); + + /** + * @copydoc LIB_ITEM::SetOffset(const wxPoint&) + */ + virtual void SetOffset( const wxPoint& aOffset ); /** * @return the number of corners @@ -102,6 +106,52 @@ public: */ virtual EDA_RECT GetBoundingBox() const; + /** + * @copydoc LIB_ITEM::Inside() + */ + virtual bool Inside( EDA_RECT& aRect ) const; + + /** + * @copydoc LIB_ITEM::Move() + */ + virtual void Move( const wxPoint& aPosition ); + + /** + * @copydoc LIB_ITEM::GetPosition() + */ + virtual wxPoint GetPosition() const { return m_PolyPoints[0]; } + + /** + * @copydoc LIB_ITEM::MirrorHorizontal() + */ + virtual void MirrorHorizontal( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::MirrorVertical() + */ + virtual void MirrorVertical( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) + */ + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + + /** + * @copydoc LIB_ITEM::Plot() + */ + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); + + /** + * @copydoc LIB_ITEM::GetWidth() + */ + virtual int GetWidth() const { return m_Width; } + + /** + * @copydoc LIB_ITEM::SetWidth() + */ + virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** * Function GetPenSize * @return the size of the "pen" that be used to draw or plot this item @@ -110,29 +160,23 @@ public: virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); -protected: +private: virtual EDA_ITEM* doClone() const; /** - * Provide the bezier curve draw object specific comparison. + * Function compare + * provides the bezier curve draw object specific comparison. * * The sort order for each bezier curve segment point is as follows: * - Bezier point horizontal (X) point position. * - Bezier point vertical (Y) point position. + * + * @param aOther A reference to the other #LIB_ITEM to compare the bezier curve against. + * @return An integer value less than 0 if the bezier curve is less than \a aOther, zero + * if the bezier curve is equal to \a aOther, or greater than 0 if the bezier + * curve is greater than \a aOther. */ - virtual int DoCompare( const LIB_ITEM& aOther ) const; - - virtual void DoOffset( const wxPoint& aOffset ); - virtual bool DoTestInside( EDA_RECT& aRect ) const; - virtual void DoMove( const wxPoint& aPosition ); - virtual wxPoint DoGetPosition() const { return m_PolyPoints[0]; } - virtual void DoMirrorHorizontal( const wxPoint& aCenter ); - virtual void DoMirrorVertical( const wxPoint& aCenter ); - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ); - virtual void DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); - virtual int DoGetWidth() const { return m_Width; } - virtual void DoSetWidth( int aWidth ) { m_Width = aWidth; } + virtual int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_circle.cpp b/eeschema/lib_circle.cpp index 3b796c9ebf..2009248f0f 100644 --- a/eeschema/lib_circle.cpp +++ b/eeschema/lib_circle.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -121,7 +120,7 @@ EDA_ITEM* LIB_CIRCLE::doClone() const } -int LIB_CIRCLE::DoCompare( const LIB_ITEM& aOther ) const +int LIB_CIRCLE::compare( const LIB_ITEM& aOther ) const { wxASSERT( aOther.Type() == LIB_CIRCLE_T ); @@ -140,13 +139,13 @@ int LIB_CIRCLE::DoCompare( const LIB_ITEM& aOther ) const } -void LIB_CIRCLE::DoOffset( const wxPoint& aOffset ) +void LIB_CIRCLE::SetOffset( const wxPoint& aOffset ) { m_Pos += aOffset; } -bool LIB_CIRCLE::DoTestInside( EDA_RECT& aRect ) const +bool LIB_CIRCLE::Inside( EDA_RECT& aRect ) const { /* * FIXME: This fails to take into account the radius around the center @@ -156,13 +155,13 @@ bool LIB_CIRCLE::DoTestInside( EDA_RECT& aRect ) const } -void LIB_CIRCLE::DoMove( const wxPoint& aPosition ) +void LIB_CIRCLE::Move( const wxPoint& aPosition ) { m_Pos = aPosition; } -void LIB_CIRCLE::DoMirrorHorizontal( const wxPoint& aCenter ) +void LIB_CIRCLE::MirrorHorizontal( const wxPoint& aCenter ) { m_Pos.x -= aCenter.x; m_Pos.x *= -1; @@ -170,7 +169,7 @@ void LIB_CIRCLE::DoMirrorHorizontal( const wxPoint& aCenter ) } -void LIB_CIRCLE::DoMirrorVertical( const wxPoint& aCenter ) +void LIB_CIRCLE::MirrorVertical( const wxPoint& aCenter ) { m_Pos.y -= aCenter.y; m_Pos.y *= -1; @@ -178,7 +177,7 @@ void LIB_CIRCLE::DoMirrorVertical( const wxPoint& aCenter ) } -void LIB_CIRCLE::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) +void LIB_CIRCLE::Rotate( const wxPoint& aCenter, bool aRotateCCW ) { int rot_angle = aRotateCCW ? -900 : 900; @@ -186,8 +185,8 @@ void LIB_CIRCLE::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) } -void LIB_CIRCLE::DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ) +void LIB_CIRCLE::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ) { wxPoint pos = aTransform.TransformCoordinate( m_Pos ) + aOffset; diff --git a/eeschema/lib_circle.h b/eeschema/lib_circle.h index 5c36cf058c..096eb8a59c 100644 --- a/eeschema/lib_circle.h +++ b/eeschema/lib_circle.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -118,34 +117,79 @@ public: */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); + /** + * @copydoc LIB_ITEM::SetOffset(const wxPoint&) + */ + virtual void SetOffset( const wxPoint& aOffset ); + + /** + * @copydoc LIB_ITEM::Inside() + */ + virtual bool Inside( EDA_RECT& aRect ) const; + + /** + * @copydoc LIB_ITEM::Move() + */ + virtual void Move( const wxPoint& aPosition ); + + /** + * @copydoc LIB_ITEM::GetPosition() + */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** + * @copydoc LIB_ITEM::MirrorHorizontal() + */ + virtual void MirrorHorizontal( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::MirrorVertical() + */ + virtual void MirrorVertical( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) + */ + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + + /** + * @copydoc LIB_ITEM::Plot() + */ + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); + + /** + * @copydoc LIB_ITEM::GetWidth() + */ + virtual int GetWidth() const { return m_Width; } + + /** + * @copydoc LIB_ITEM::SetWidth() + */ + virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + virtual wxString GetSelectMenuText() const; virtual BITMAP_DEF GetMenuImage() const { return add_circle_xpm; } -protected: +private: virtual EDA_ITEM* doClone() const; /** - * Provide the circle draw object specific comparison. + * Function compare + * provides the circle draw object specific comparison. * * The sort order is as follows: * - Circle horizontal (X) position. * - Circle vertical (Y) position. * - Circle radius. + * + * @param aOther A reference to the other #LIB_ITEM to compare the circle against. + * @return An integer value less than 0 if the circle is less than \a aOther, zero + * if the circle is equal to \a aOther, or greater than 0 if the circle is + * greater than \a aOther. */ - virtual int DoCompare( const LIB_ITEM& aOther ) const; - - virtual void DoOffset( const wxPoint& aOffset ); - virtual bool DoTestInside( EDA_RECT& aRect ) const; - virtual void DoMove( const wxPoint& aPosition ); - virtual wxPoint DoGetPosition() const { return m_Pos; } - virtual void DoMirrorHorizontal( const wxPoint& aCenter ); - virtual void DoMirrorVertical( const wxPoint& aCenter ); - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ); - virtual void DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); - virtual int DoGetWidth() const { return m_Width; } - virtual void DoSetWidth( int aWidth ) { m_Width = aWidth; } + virtual int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_draw_item.cpp b/eeschema/lib_draw_item.cpp index 5a29a0daf4..9a57dab18a 100644 --- a/eeschema/lib_draw_item.cpp +++ b/eeschema/lib_draw_item.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -90,7 +89,7 @@ bool LIB_ITEM::operator==( const LIB_ITEM& aOther ) const return ( ( Type() == aOther.Type() ) && ( m_Unit == aOther.m_Unit ) && ( m_Convert == aOther.m_Convert ) - && DoCompare( aOther ) == 0 ); + && compare( aOther ) == 0 ); } @@ -111,7 +110,7 @@ bool LIB_ITEM::operator<( const LIB_ITEM& aOther ) const if( result != 0 ) return result < 0; - return ( DoCompare( aOther ) < 0 ); + return ( compare( aOther ) < 0 ); } @@ -125,6 +124,7 @@ void LIB_ITEM::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int color = GetDefaultColor(); m_Fill = NO_FILL; + #ifndef USE_WX_OVERLAY // Erase the old items using the previous attributes. if( m_eraseLastDrawItem ) diff --git a/eeschema/lib_draw_item.h b/eeschema/lib_draw_item.h index 93ef1e50d1..f099189ba5 100644 --- a/eeschema/lib_draw_item.h +++ b/eeschema/lib_draw_item.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -67,14 +66,9 @@ typedef boost::ptr_vector< LIB_ITEM > LIB_ITEMS; typedef std::vector< LIB_PIN* > LIB_PINS; -/****************************************************************************/ -/* Classes for handle the body items of a component: pins add graphic items */ -/****************************************************************************/ - - /** - * Base class for drawable items used in library components. - * (graphic shapes, texts, fields, pins) + * Class LIB_ITEM + * is the base class for drawable items used by schematic library components. */ class LIB_ITEM : public EDA_ITEM { @@ -135,6 +129,9 @@ protected: wxPoint m_initialPos; ///< Temporary position when moving an existing item. wxPoint m_initialCursorPos; ///< Initial cursor position at the beginning of a move. + /** Flag to indicate if draw item is fillable. Default is false. */ + bool m_isFillable; + public: LIB_ITEM( KICAD_T aType, @@ -217,7 +214,7 @@ public: * Function Save * writes draw item object to \a aFormatter in component library "*.lib" format. * - * @param aFormatter A referenct to an #OUTPUTFORMATTER object to write the + * @param aFormatter A reference to an #OUTPUTFORMATTER object to write the * component library item to. * @return True if success writing else false. */ @@ -294,68 +291,64 @@ public: bool operator<( const LIB_ITEM& aOther) const; /** - * Set drawing object offset from the current position. + * Function Offset + * sets the drawing object by \a aOffset from the current position. * - * @param aOffset - Coordinates to offset position. + * @param aOffset Coordinates to offset the item position. */ - void SetOffset( const wxPoint& aOffset ) { DoOffset( aOffset ); } + virtual void SetOffset( const wxPoint& aOffset ) = 0; /** - * Test if any part of the draw object is inside rectangle bounds. + * Function Inside + * tests if any part of the draw object is inside rectangle bounds of \a aRect. * - * This is used for block selection. The real work is done by the - * DoTestInside method for each derived object type. - * - * @param aRect - Rectangle to check against. - * @return - True if object is inside rectangle. + * @param aRect Rectangle to check against. + * @return True if object is inside rectangle. */ - bool Inside( EDA_RECT& aRect ) const { return DoTestInside( aRect ); } + virtual bool Inside( EDA_RECT& aRect ) const = 0; /** - * Move a draw object to a new \a aPosition. + * Function Move + * moves a draw object to \a aPosition. * - * The real work is done by the DoMove method for each derived object type. - * - * @param aPosition - Position to move draw item to. + * @param aPosition Position to move draw item to. */ - void Move( const wxPoint& aPosition ) { DoMove( aPosition ); } + virtual void Move( const wxPoint& aPosition ) = 0; /** - * Return the current draw object start position. + * Function GetPosition + * returns the current draw object position. + * + * @return A wxPoint object containing the position of the object. */ - wxPoint GetPosition() const { return DoGetPosition(); } + virtual wxPoint GetPosition() const = 0; - void SetPosition( const wxPoint& aPosition ) { DoMove( aPosition ); } + void SetPosition( const wxPoint& aPosition ) { Move( aPosition ); } /** - * Mirror the draw object along the horizontal (X) axis about a point. + * Function MirrorHorizontal + * mirrors the draw object along the horizontal (X) axis about \a aCenter point. * - * @param aCenter - Point to mirror around. + * @param aCenter Point to mirror around. */ - void MirrorHorizontal( const wxPoint& aCenter ) - { - DoMirrorHorizontal( aCenter ); - } + virtual void MirrorHorizontal( const wxPoint& aCenter ) = 0; /** - * Mirror the draw object along the MirrorVertical (Y) axis about a point. + * Function MirrorVertical + * mirrors the draw object along the MirrorVertical (Y) axis about \a aCenter point. * - * @param aCenter - Point to mirror around. + * @param aCenter Point to mirror around. */ - void MirrorVertical( const wxPoint& aCenter ) - { - DoMirrorVertical( aCenter ); - } + virtual void MirrorVertical( const wxPoint& aCenter ) = 0; /** - * Rotate about a point. + * Function Rotate + * rotates the object about \a aCenter point. * - * @param aCenter - Point to rotate around. + * @param aCenter Point to rotate around. + * @param aRotateCCW True to rotate counter clockwise. False to rotate clockwise. */ - void Rotate( const wxPoint& aCenter ) - { - DoRotate( aCenter ); - } + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ) = 0; /** * Rotate the draw item. @@ -365,23 +358,27 @@ public: /** * Plot the draw item using the plot object. * - * @param aPlotter - The plot object to plot to. - * @param aOffset - Plot offset position. - * @param aFill - Flag to indicate whether or not the object is filled. - * @param aTransform - The plot transform. + * @param aPlotter The plot object to plot to. + * @param aOffset Plot offset position. + * @param aFill Flag to indicate whether or not the object is filled. + * @param aTransform The plot transform. */ - void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, const TRANSFORM& aTransform ) - { - DoPlot( aPlotter, aOffset, aFill, aTransform ); - } + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ) = 0; /** - * Return the width of the draw item. + * Function GetWidth + * return the width of the draw item. * * @return Width of draw object. */ - int GetWidth() const { return DoGetWidth(); } - void SetWidth( int aWidth ) { DoSetWidth( aWidth ); } + virtual int GetWidth() const = 0; + + /** + * Function SetWidth + * sets the width of the draw item to \a aWidth. + */ + virtual void SetWidth( int aWidth ) = 0; /** * Check if draw object can be filled. @@ -420,10 +417,11 @@ public: void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif -protected: +private: /** - * Provide the draw object specific comparison. + * Function compare + * provides the draw object specific comparison. * * This is called by the == and < operators. * @@ -433,21 +431,7 @@ protected: * - KICAD_T enum value. * - Result of derived classes comparison. */ - virtual int DoCompare( const LIB_ITEM& aOther ) const = 0; - virtual void DoOffset( const wxPoint& aOffset ) = 0; - virtual bool DoTestInside( EDA_RECT& aRect ) const = 0; - virtual void DoMove( const wxPoint& aPosition ) = 0; - virtual wxPoint DoGetPosition() const = 0; - virtual void DoMirrorHorizontal( const wxPoint& aCenter ) = 0; - virtual void DoMirrorVertical( const wxPoint& aCenter ) = 0; - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ) = 0; - virtual void DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ) = 0; - virtual int DoGetWidth() const = 0; - virtual void DoSetWidth( int aWidth ) = 0; - - /** Flag to indicate if draw item is fillable. Default is false. */ - bool m_isFillable; + virtual int compare( const LIB_ITEM& aOther ) const = 0; }; diff --git a/eeschema/lib_field.cpp b/eeschema/lib_field.cpp index d746f7fad1..bca677fcb9 100644 --- a/eeschema/lib_field.cpp +++ b/eeschema/lib_field.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -397,7 +396,7 @@ void LIB_FIELD::Copy( LIB_FIELD* aTarget ) const } -int LIB_FIELD::DoCompare( const LIB_ITEM& other ) const +int LIB_FIELD::compare( const LIB_ITEM& other ) const { wxASSERT( other.Type() == LIB_FIELD_T ); @@ -427,13 +426,13 @@ int LIB_FIELD::DoCompare( const LIB_ITEM& other ) const } -void LIB_FIELD::DoOffset( const wxPoint& offset ) +void LIB_FIELD::SetOffset( const wxPoint& aOffset ) { - m_Pos += offset; + m_Pos += aOffset; } -bool LIB_FIELD::DoTestInside( EDA_RECT& rect ) const +bool LIB_FIELD::Inside( EDA_RECT& rect ) const { /* * FIXME: This fails to take into account the size and/or orientation of @@ -443,27 +442,27 @@ bool LIB_FIELD::DoTestInside( EDA_RECT& rect ) const } -void LIB_FIELD::DoMove( const wxPoint& newPosition ) +void LIB_FIELD::Move( const wxPoint& newPosition ) { m_Pos = newPosition; } -void LIB_FIELD::DoMirrorHorizontal( const wxPoint& center ) +void LIB_FIELD::MirrorHorizontal( const wxPoint& center ) { m_Pos.x -= center.x; m_Pos.x *= -1; m_Pos.x += center.x; } -void LIB_FIELD::DoMirrorVertical( const wxPoint& center ) +void LIB_FIELD::MirrorVertical( const wxPoint& center ) { m_Pos.y -= center.y; m_Pos.y *= -1; m_Pos.y += center.y; } -void LIB_FIELD::DoRotate( const wxPoint& center, bool aRotateCCW ) +void LIB_FIELD::Rotate( const wxPoint& center, bool aRotateCCW ) { int rot_angle = aRotateCCW ? -900 : 900; RotatePoint( &m_Pos, center, rot_angle ); @@ -471,8 +470,8 @@ void LIB_FIELD::DoRotate( const wxPoint& center, bool aRotateCCW ) } -void LIB_FIELD::DoPlot( PLOTTER* plotter, const wxPoint& offset, bool fill, - const TRANSFORM& aTransform ) +void LIB_FIELD::Plot( PLOTTER* plotter, const wxPoint& offset, bool fill, + const TRANSFORM& aTransform ) { } diff --git a/eeschema/lib_field.h b/eeschema/lib_field.h index f5dce3b258..9fdbc88491 100644 --- a/eeschema/lib_field.h +++ b/eeschema/lib_field.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -269,15 +268,67 @@ public: */ void SetText( const wxString& aText ); + /** + * @copydoc LIB_ITEM::SetOffset(const wxPoint&) + */ + virtual void SetOffset( const wxPoint& aOffset ); + + /** + * @copydoc LIB_ITEM::Inside() + */ + virtual bool Inside( EDA_RECT& aRect ) const; + + /** + * @copydoc LIB_ITEM::Move() + */ + virtual void Move( const wxPoint& aPosition ); + + /** + * @copydoc LIB_ITEM::GetPosition() + */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** + * @copydoc LIB_ITEM::MirrorHorizontal() + */ + virtual void MirrorHorizontal( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::MirrorVertical() + */ + virtual void MirrorVertical( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) + */ + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + + /** + * @copydoc LIB_ITEM::Plot() + */ + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); + + /** + * @copydoc LIB_ITEM::GetWidth() + */ + virtual int GetWidth() const { return m_Thickness; } + + /** + * @copydoc LIB_ITEM::SetWidth() + */ + virtual void SetWidth( int aWidth ) { m_Thickness = aWidth; } + virtual wxString GetSelectMenuText() const; virtual BITMAP_DEF GetMenuImage() const { return move_field_xpm; } -protected: +private: virtual EDA_ITEM* doClone() const; /** - * Provide the field draw object specific comparison. + * Function compare + * provides the field draw object specific comparison. * * The sort order for field is as follows: * @@ -287,20 +338,13 @@ protected: * - Field vertical (Y) position. * - Field width. * - Field height. + * + * @param aOther A reference to the other #LIB_ITEM to compare the field against. + * @return An integer value less than 0 if the field is less than \a aOther, zero + * if the field is equal to \a aOther, or greater than 0 if the field is + * greater than \a aOther. */ - virtual int DoCompare( const LIB_ITEM& other ) const; - - virtual void DoOffset( const wxPoint& offset ); - virtual bool DoTestInside( EDA_RECT& rect ) const; - virtual void DoMove( const wxPoint& newPosition ); - virtual wxPoint DoGetPosition( void ) const { return m_Pos; } - virtual void DoMirrorHorizontal( const wxPoint& center ); - virtual void DoMirrorVertical( const wxPoint& aCenter ); - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ); - virtual void DoPlot( PLOTTER* plotter, const wxPoint& offset, bool fill, - const TRANSFORM& aTransform ); - virtual int DoGetWidth( void ) const { return m_Thickness; } - virtual void DoSetWidth( int width ) { m_Thickness = width; } + virtual int compare( const LIB_ITEM& aOther ) const; }; typedef std::vector< LIB_FIELD > LIB_FIELDS; diff --git a/eeschema/lib_pin.cpp b/eeschema/lib_pin.cpp index 19fac25146..4639c7b788 100644 --- a/eeschema/lib_pin.cpp +++ b/eeschema/lib_pin.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2009 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -1677,7 +1676,7 @@ EDA_ITEM* LIB_PIN::doClone() const } -int LIB_PIN::DoCompare( const LIB_ITEM& other ) const +int LIB_PIN::compare( const LIB_ITEM& other ) const { wxASSERT( other.Type() == LIB_PIN_T ); @@ -1701,13 +1700,13 @@ int LIB_PIN::DoCompare( const LIB_ITEM& other ) const } -void LIB_PIN::DoOffset( const wxPoint& offset ) +void LIB_PIN::SetOffset( const wxPoint& aOffset ) { - m_position += offset; + m_position += aOffset; } -bool LIB_PIN::DoTestInside( EDA_RECT& rect ) const +bool LIB_PIN::Inside( EDA_RECT& rect ) const { wxPoint end = ReturnPinEndPoint(); @@ -1715,7 +1714,7 @@ bool LIB_PIN::DoTestInside( EDA_RECT& rect ) const } -void LIB_PIN::DoMove( const wxPoint& newPosition ) +void LIB_PIN::Move( const wxPoint& newPosition ) { if( m_position != newPosition ) { @@ -1725,7 +1724,7 @@ void LIB_PIN::DoMove( const wxPoint& newPosition ) } -void LIB_PIN::DoMirrorHorizontal( const wxPoint& center ) +void LIB_PIN::MirrorHorizontal( const wxPoint& center ) { m_position.x -= center.x; m_position.x *= -1; @@ -1737,7 +1736,7 @@ void LIB_PIN::DoMirrorHorizontal( const wxPoint& center ) m_orientation = PIN_RIGHT; } -void LIB_PIN::DoMirrorVertical( const wxPoint& center ) +void LIB_PIN::MirrorVertical( const wxPoint& center ) { m_position.y -= center.y; m_position.y *= -1; @@ -1749,7 +1748,7 @@ void LIB_PIN::DoMirrorVertical( const wxPoint& center ) m_orientation = PIN_UP; } -void LIB_PIN::DoRotate( const wxPoint& center, bool aRotateCCW ) +void LIB_PIN::Rotate( const wxPoint& center, bool aRotateCCW ) { int rot_angle = aRotateCCW ? -900 : 900; @@ -1798,8 +1797,8 @@ void LIB_PIN::DoRotate( const wxPoint& center, bool aRotateCCW ) } -void LIB_PIN::DoPlot( PLOTTER* plotter, const wxPoint& offset, bool fill, - const TRANSFORM& aTransform ) +void LIB_PIN::Plot( PLOTTER* plotter, const wxPoint& offset, bool fill, + const TRANSFORM& aTransform ) { if( ! IsVisible() ) return; @@ -1816,7 +1815,7 @@ void LIB_PIN::DoPlot( PLOTTER* plotter, const wxPoint& offset, bool fill, } -void LIB_PIN::DoSetWidth( int aWidth ) +void LIB_PIN::SetWidth( int aWidth ) { if( m_width != aWidth ) { diff --git a/eeschema/lib_pin.h b/eeschema/lib_pin.h index 5f4864a323..872a7e6e6c 100644 --- a/eeschema/lib_pin.h +++ b/eeschema/lib_pin.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -519,34 +518,80 @@ public: */ static const BITMAP_DEF* GetElectricalTypeSymbols(); + /** + * @copydoc LIB_ITEM::SetOffset(const wxPoint&) + */ + virtual void SetOffset( const wxPoint& aOffset ); + + /** + * @copydoc LIB_ITEM::Inside() + */ + virtual bool Inside( EDA_RECT& aRect ) const; + + /** + * @copydoc LIB_ITEM::Move() + */ + virtual void Move( const wxPoint& aPosition ); + + /** + * @copydoc LIB_ITEM::GetPosition() + */ + virtual wxPoint GetPosition() const { return m_position; } + + /** + * @copydoc LIB_ITEM::MirrorHorizontal() + */ + virtual void MirrorHorizontal( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::MirrorVertical() + */ + virtual void MirrorVertical( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) + */ + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + + /** + * @copydoc LIB_ITEM::Plot() + */ + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); + + /** + * @copydoc LIB_ITEM::GetWidth() + */ + virtual int GetWidth() const { return m_width; } + + /** + * @copydoc LIB_ITEM::SetWidth() + */ + virtual void SetWidth( int aWidth ); + virtual BITMAP_DEF GetMenuImage() const; virtual wxString GetSelectMenuText() const; -protected: +private: virtual EDA_ITEM* doClone() const; /** - * Provide the pin draw object specific comparison. + * Function compare + * provides the pin draw object specific comparison. * * The sort order is as follows: * - Pin number. * - Pin name, case insensitive compare. * - Pin horizontal (X) position. * - Pin vertical (Y) position. + * + * @param aOther A reference to the other #LIB_ITEM to compare the pin against. + * @return An integer value less than 0 if the pin is less than \a aOther, zero + * if the pin is equal to \a aOther, or greater than 0 if the pin is + * greater than \a aOther. */ - virtual int DoCompare( const LIB_ITEM& aOther ) const; - virtual void DoOffset( const wxPoint& aOffset ); - virtual bool DoTestInside( EDA_RECT& aRect ) const; - virtual void DoMove( const wxPoint& aPosition ); - virtual wxPoint DoGetPosition() const { return m_position; } - virtual void DoMirrorHorizontal( const wxPoint& aCenter ); - virtual void DoMirrorVertical( const wxPoint& aCenter ); - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ); - virtual void DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); - virtual int DoGetWidth() const { return m_width; } - virtual void DoSetWidth( int aWidth ); + virtual int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_polyline.cpp b/eeschema/lib_polyline.cpp index 21fdef447f..36a8e1f95c 100644 --- a/eeschema/lib_polyline.cpp +++ b/eeschema/lib_polyline.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -140,7 +139,7 @@ EDA_ITEM* LIB_POLYLINE::doClone() const } -int LIB_POLYLINE::DoCompare( const LIB_ITEM& aOther ) const +int LIB_POLYLINE::compare( const LIB_ITEM& aOther ) const { wxASSERT( aOther.Type() == LIB_POLYLINE_T ); @@ -162,14 +161,14 @@ int LIB_POLYLINE::DoCompare( const LIB_ITEM& aOther ) const } -void LIB_POLYLINE::DoOffset( const wxPoint& aOffset ) +void LIB_POLYLINE::SetOffset( const wxPoint& aOffset ) { for( size_t i = 0; i < m_PolyPoints.size(); i++ ) m_PolyPoints[i] += aOffset; } -bool LIB_POLYLINE::DoTestInside( EDA_RECT& aRect ) const +bool LIB_POLYLINE::Inside( EDA_RECT& aRect ) const { for( size_t i = 0; i < m_PolyPoints.size(); i++ ) { @@ -181,13 +180,13 @@ bool LIB_POLYLINE::DoTestInside( EDA_RECT& aRect ) const } -void LIB_POLYLINE::DoMove( const wxPoint& aPosition ) +void LIB_POLYLINE::Move( const wxPoint& aPosition ) { - DoOffset( aPosition - m_PolyPoints[0] ); + SetOffset( aPosition - m_PolyPoints[0] ); } -void LIB_POLYLINE::DoMirrorHorizontal( const wxPoint& aCenter ) +void LIB_POLYLINE::MirrorHorizontal( const wxPoint& aCenter ) { size_t i, imax = m_PolyPoints.size(); @@ -199,7 +198,7 @@ void LIB_POLYLINE::DoMirrorHorizontal( const wxPoint& aCenter ) } } -void LIB_POLYLINE::DoMirrorVertical( const wxPoint& aCenter ) +void LIB_POLYLINE::MirrorVertical( const wxPoint& aCenter ) { size_t i, imax = m_PolyPoints.size(); @@ -211,7 +210,7 @@ void LIB_POLYLINE::DoMirrorVertical( const wxPoint& aCenter ) } } -void LIB_POLYLINE::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) +void LIB_POLYLINE::Rotate( const wxPoint& aCenter, bool aRotateCCW ) { int rot_angle = aRotateCCW ? -900 : 900; @@ -224,8 +223,8 @@ void LIB_POLYLINE::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) } -void LIB_POLYLINE::DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ) +void LIB_POLYLINE::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ) { wxASSERT( aPlotter != NULL ); diff --git a/eeschema/lib_polyline.h b/eeschema/lib_polyline.h index d010bcb2f7..00a89910bd 100644 --- a/eeschema/lib_polyline.h +++ b/eeschema/lib_polyline.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -134,33 +133,78 @@ public: */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); + /** + * @copydoc LIB_ITEM::SetOffset(const wxPoint&) + */ + virtual void SetOffset( const wxPoint& aOffset ); + + /** + * @copydoc LIB_ITEM::Inside() + */ + virtual bool Inside( EDA_RECT& aRect ) const; + + /** + * @copydoc LIB_ITEM::Move() + */ + virtual void Move( const wxPoint& aPosition ); + + /** + * @copydoc LIB_ITEM::GetPosition() + */ + virtual wxPoint GetPosition() const { return m_PolyPoints[0]; } + + /** + * @copydoc LIB_ITEM::MirrorHorizontal() + */ + virtual void MirrorHorizontal( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::MirrorVertical() + */ + virtual void MirrorVertical( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) + */ + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + + /** + * @copydoc LIB_ITEM::Plot() + */ + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); + + /** + * @copydoc LIB_ITEM::GetWidth() + */ + virtual int GetWidth() const { return m_Width; } + + /** + * @copydoc LIB_ITEM::SetWidth() + */ + virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + virtual wxString GetSelectMenuText() const; virtual BITMAP_DEF GetMenuImage() const { return add_polygon_xpm; } -protected: +private: virtual EDA_ITEM* doClone() const; /** - * Provide the polyline segment draw object specific comparison. + * Function compare + * provides the polyline segment draw object specific comparison. * * The sort order for each polyline segment point is as follows: * - Line segment point horizontal (X) position. * - Line segment point vertical (Y) position. + * + * @param aOther A reference to the other #LIB_ITEM to compare the polyline against. + * @return An integer value less than 0 if the polyline is less than \a aOther, zero + * if the polyline is equal to \a aOther, or greater than 0 if the polyline + * is greater than \a aOther. */ - virtual int DoCompare( const LIB_ITEM& aOther ) const; - - virtual void DoOffset( const wxPoint& aOffset ); - virtual bool DoTestInside( EDA_RECT& aRect ) const; - virtual void DoMove( const wxPoint& aPosition ); - virtual wxPoint DoGetPosition() const { return m_PolyPoints[0]; } - virtual void DoMirrorHorizontal( const wxPoint& aCenter ); - virtual void DoMirrorVertical( const wxPoint& aCenter ); - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ); - virtual void DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); - virtual int DoGetWidth() const { return m_Width; } - virtual void DoSetWidth( int aWidth ) { m_Width = aWidth; } + virtual int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_rectangle.cpp b/eeschema/lib_rectangle.cpp index 8eeafaeead..d70e69ea40 100644 --- a/eeschema/lib_rectangle.cpp +++ b/eeschema/lib_rectangle.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -95,7 +94,7 @@ EDA_ITEM* LIB_RECTANGLE::doClone() const } -int LIB_RECTANGLE::DoCompare( const LIB_ITEM& aOther ) const +int LIB_RECTANGLE::compare( const LIB_ITEM& aOther ) const { wxASSERT( aOther.Type() == LIB_RECTANGLE_T ); @@ -117,20 +116,20 @@ int LIB_RECTANGLE::DoCompare( const LIB_ITEM& aOther ) const } -void LIB_RECTANGLE::DoOffset( const wxPoint& aOffset ) +void LIB_RECTANGLE::SetOffset( const wxPoint& aOffset ) { m_Pos += aOffset; m_End += aOffset; } -bool LIB_RECTANGLE::DoTestInside( EDA_RECT& aRect ) const +bool LIB_RECTANGLE::Inside( EDA_RECT& aRect ) const { return aRect.Contains( m_Pos.x, -m_Pos.y ) || aRect.Contains( m_End.x, -m_End.y ); } -void LIB_RECTANGLE::DoMove( const wxPoint& aPosition ) +void LIB_RECTANGLE::Move( const wxPoint& aPosition ) { wxPoint size = m_End - m_Pos; m_Pos = aPosition; @@ -138,7 +137,7 @@ void LIB_RECTANGLE::DoMove( const wxPoint& aPosition ) } -void LIB_RECTANGLE::DoMirrorHorizontal( const wxPoint& aCenter ) +void LIB_RECTANGLE::MirrorHorizontal( const wxPoint& aCenter ) { m_Pos.x -= aCenter.x; m_Pos.x *= -1; @@ -149,7 +148,7 @@ void LIB_RECTANGLE::DoMirrorHorizontal( const wxPoint& aCenter ) } -void LIB_RECTANGLE::DoMirrorVertical( const wxPoint& aCenter ) +void LIB_RECTANGLE::MirrorVertical( const wxPoint& aCenter ) { m_Pos.y -= aCenter.y; m_Pos.y *= -1; @@ -160,7 +159,7 @@ void LIB_RECTANGLE::DoMirrorVertical( const wxPoint& aCenter ) } -void LIB_RECTANGLE::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) +void LIB_RECTANGLE::Rotate( const wxPoint& aCenter, bool aRotateCCW ) { int rot_angle = aRotateCCW ? -900 : 900; RotatePoint( &m_Pos, aCenter, rot_angle ); @@ -168,8 +167,8 @@ void LIB_RECTANGLE::DoRotate( const wxPoint& aCenter, bool aRotateCCW ) } -void LIB_RECTANGLE::DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ) +void LIB_RECTANGLE::Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ) { wxASSERT( aPlotter != NULL ); diff --git a/eeschema/lib_rectangle.h b/eeschema/lib_rectangle.h index dc3bae6c1b..2be36de5f2 100644 --- a/eeschema/lib_rectangle.h +++ b/eeschema/lib_rectangle.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -122,35 +121,80 @@ public: */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); + /** + * @copydoc LIB_ITEM::SetOffset(const wxPoint&) + */ + virtual void SetOffset( const wxPoint& aOffset ); + + /** + * @copydoc LIB_ITEM::Inside() + */ + virtual bool Inside( EDA_RECT& aRect ) const; + + /** + * @copydoc LIB_ITEM::Move() + */ + virtual void Move( const wxPoint& aPosition ); + + /** + * @copydoc LIB_ITEM::GetPosition() + */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** + * @copydoc LIB_ITEM::MirrorHorizontal() + */ + virtual void MirrorHorizontal( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::MirrorVertical() + */ + virtual void MirrorVertical( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) + */ + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + + /** + * @copydoc LIB_ITEM::Plot() + */ + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); + + /** + * @copydoc LIB_ITEM::GetWidth() + */ + virtual int GetWidth() const { return m_Width; } + + /** + * @copydoc LIB_ITEM::SetWidth() + */ + virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + virtual wxString GetSelectMenuText() const; virtual BITMAP_DEF GetMenuImage() const { return add_rectangle_xpm; } -protected: +private: virtual EDA_ITEM* doClone() const; /** - * Provide the rectangle draw object specific comparison. + * Function compare + * provides the rectangle draw object specific comparison. * * The sort order is as follows: * - Rectangle horizontal (X) start position. * - Rectangle vertical (Y) start position. * - Rectangle horizontal (X) end position. * - Rectangle vertical (Y) end position. + * + * @param aOther A reference to the other #LIB_ITEM to compare the rectangle against. + * @return An integer value less than 0 if the rectangle is less than \a aOther, zero + * if the rectangle is equal to \a aOther, or greater than 0 if the rectangle + * is greater than \a aOther. */ - virtual int DoCompare( const LIB_ITEM& aOther ) const; - - virtual void DoOffset( const wxPoint& aOffset ); - virtual bool DoTestInside( EDA_RECT& aRect ) const; - virtual void DoMove( const wxPoint& aPosition ); - virtual wxPoint DoGetPosition() const { return m_Pos; } - virtual void DoMirrorHorizontal( const wxPoint& aCenter ); - virtual void DoMirrorVertical( const wxPoint& aCenter ); - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ); - virtual void DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); - virtual int DoGetWidth() const { return m_Width; } - virtual void DoSetWidth( int aWidth ) { m_Width = aWidth; } + virtual int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_text.cpp b/eeschema/lib_text.cpp index 8061e7fa8f..03ef17ca8a 100644 --- a/eeschema/lib_text.cpp +++ b/eeschema/lib_text.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -236,7 +235,7 @@ EDA_ITEM* LIB_TEXT::doClone() const } -int LIB_TEXT::DoCompare( const LIB_ITEM& other ) const +int LIB_TEXT::compare( const LIB_ITEM& other ) const { wxASSERT( other.Type() == LIB_TEXT_T ); @@ -263,13 +262,13 @@ int LIB_TEXT::DoCompare( const LIB_ITEM& other ) const } -void LIB_TEXT::DoOffset( const wxPoint& offset ) +void LIB_TEXT::SetOffset( const wxPoint& aOffset ) { - m_Pos += offset; + m_Pos += aOffset; } -bool LIB_TEXT::DoTestInside( EDA_RECT& rect ) const +bool LIB_TEXT::Inside( EDA_RECT& rect ) const { /* * FIXME: This should calculate the text size and justification and @@ -279,27 +278,27 @@ bool LIB_TEXT::DoTestInside( EDA_RECT& rect ) const } -void LIB_TEXT::DoMove( const wxPoint& newPosition ) +void LIB_TEXT::Move( const wxPoint& newPosition ) { m_Pos = newPosition; } -void LIB_TEXT::DoMirrorHorizontal( const wxPoint& center ) +void LIB_TEXT::MirrorHorizontal( const wxPoint& center ) { m_Pos.x -= center.x; m_Pos.x *= -1; m_Pos.x += center.x; } -void LIB_TEXT::DoMirrorVertical( const wxPoint& center ) +void LIB_TEXT::MirrorVertical( const wxPoint& center ) { m_Pos.y -= center.y; m_Pos.y *= -1; m_Pos.y += center.y; } -void LIB_TEXT::DoRotate( const wxPoint& center, bool aRotateCCW ) +void LIB_TEXT::Rotate( const wxPoint& center, bool aRotateCCW ) { int rot_angle = aRotateCCW ? -900 : 900; @@ -308,8 +307,8 @@ void LIB_TEXT::DoRotate( const wxPoint& center, bool aRotateCCW ) } -void LIB_TEXT::DoPlot( PLOTTER* plotter, const wxPoint& offset, bool fill, - const TRANSFORM& aTransform ) +void LIB_TEXT::Plot( PLOTTER* plotter, const wxPoint& offset, bool fill, + const TRANSFORM& aTransform ) { wxASSERT( plotter != NULL ); diff --git a/eeschema/lib_text.h b/eeschema/lib_text.h index c7a3df80a8..0f62baf34d 100644 --- a/eeschema/lib_text.h +++ b/eeschema/lib_text.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -154,15 +153,67 @@ public: */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); + /** + * @copydoc LIB_ITEM::SetOffset(const wxPoint&) + */ + virtual void SetOffset( const wxPoint& aOffset ); + + /** + * @copydoc LIB_ITEM::Inside() + */ + virtual bool Inside( EDA_RECT& aRect ) const; + + /** + * @copydoc LIB_ITEM::Move() + */ + virtual void Move( const wxPoint& aPosition ); + + /** + * @copydoc LIB_ITEM::GetPosition() + */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** + * @copydoc LIB_ITEM::MirrorHorizontal() + */ + virtual void MirrorHorizontal( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::MirrorVertical() + */ + virtual void MirrorVertical( const wxPoint& aCenter ); + + /** + * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) + */ + virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + + /** + * @copydoc LIB_ITEM::Plot() + */ + virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); + + /** + * @copydoc LIB_ITEM::GetWidth() + */ + virtual int GetWidth() const { return m_Thickness; } + + /** + * @copydoc LIB_ITEM::SetWidth() + */ + virtual void SetWidth( int aWidth ) { m_Thickness = aWidth; } + virtual wxString GetSelectMenuText() const; virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } -protected: +private: virtual EDA_ITEM* doClone() const; /** - * Provide the text draw object specific comparison. + * Function compare + * provides the text draw object specific comparison. * * The sort order is as follows: * - Text string, case insensitive compare. @@ -170,20 +221,13 @@ protected: * - Text vertical (Y) position. * - Text width. * - Text height. + * + * @param aOther A reference to the other #LIB_ITEM to compare the text against. + * @return An integer value less than 0 if the text is less than \a aOther, zero + * if the text is equal to \a aOther, or greater than 0 if the text is + * greater than \a aOther. */ - virtual int DoCompare( const LIB_ITEM& aOther ) const; - - virtual void DoOffset( const wxPoint& aOffset ); - virtual bool DoTestInside( EDA_RECT& aRect ) const; - virtual void DoMove( const wxPoint& aPosition ); - virtual wxPoint DoGetPosition() const { return m_Pos; } - virtual void DoMirrorHorizontal( const wxPoint& aCenter ); - virtual void DoMirrorVertical( const wxPoint& aCenter ); - virtual void DoRotate( const wxPoint& aCenter, bool aRotateCCW = true ); - virtual void DoPlot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); - virtual int DoGetWidth() const { return m_Thickness; } - virtual void DoSetWidth( int aWidth ) { m_Thickness = aWidth; } + virtual int compare( const LIB_ITEM& aOther ) const; }; From e56b50474a7f6f1ace17ff74d7becc73498444c7 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 28 Feb 2012 21:14:17 +0100 Subject: [PATCH 02/68] Pcbnew: Hight contrast mode: commit last patch from Miguel Angel Ajo Pelayo, which also fixes an old bug. All: prepare better compatibility with wxWidgets 2.9.4. Works fine with 2.8.x (I hope...) --- common/block_commande.cpp | 2 +- common/copy_to_clipboard.cpp | 2 +- eeschema/block.cpp | 2 +- eeschema/netlist_control.cpp | 6 +++--- eeschema/schedit.cpp | 2 +- eeschema/symbdraw.cpp | 2 +- gerbview/dialogs/dialog_print_using_printer.cpp | 4 ++-- gerbview/events_called_functions.cpp | 2 +- include/gr_basic.h | 1 + include/xnode.h | 5 +++++ pcbnew/class_drawsegment.cpp | 12 ++++++++++++ pcbnew/class_edge_mod.cpp | 14 ++++++++++++++ pcbnew/class_pad_draw_functions.cpp | 10 +++++++--- pcbnew/class_track.cpp | 2 +- pcbnew/edit.cpp | 2 +- pcbnew/find.cpp | 3 +-- pcbnew/tracepcb.cpp | 2 +- 17 files changed, 54 insertions(+), 19 deletions(-) diff --git a/common/block_commande.cpp b/common/block_commande.cpp index b0254615cc..0684106b5d 100644 --- a/common/block_commande.cpp +++ b/common/block_commande.cpp @@ -330,5 +330,5 @@ void AbortBlockCurrentCommand( EDA_DRAW_PANEL* Panel, wxDC* DC ) screen->m_BlockLocate.m_Command = BLOCK_IDLE; Panel->GetParent()->DisplayToolMsg( wxEmptyString ); - Panel->SetCursor( Panel->GetCurrentCursor() ); + Panel->SetCursor( (wxStockCursor) Panel->GetCurrentCursor() ); } diff --git a/common/copy_to_clipboard.cpp b/common/copy_to_clipboard.cpp index ad9225b1b0..e09e2a83a1 100644 --- a/common/copy_to_clipboard.cpp +++ b/common/copy_to_clipboard.cpp @@ -46,7 +46,7 @@ void EDA_DRAW_FRAME::CopyToClipboard( wxCommandEvent& event ) if( event.GetId() == ID_GEN_COPY_BLOCK_TO_CLIPBOARD ) { if( GetScreen()->IsBlockActive() ) - m_canvas->SetCursor( wxCursor( m_canvas->GetDefaultCursor() ) ); + m_canvas->SetCursor( wxCursor( (wxStockCursor) m_canvas->GetDefaultCursor() ) ); m_canvas->EndMouseCapture(); } diff --git a/eeschema/block.cpp b/eeschema/block.cpp index d62b4d74bf..110fc7bdb6 100644 --- a/eeschema/block.cpp +++ b/eeschema/block.cpp @@ -399,7 +399,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) case BLOCK_ZOOM: /* Window Zoom */ m_canvas->CallEndMouseCapture( DC ); - m_canvas->SetCursor( m_canvas->GetDefaultCursor() ); + m_canvas->SetCursor( (wxStockCursor) m_canvas->GetDefaultCursor() ); Window_Zoom( GetScreen()->m_BlockLocate ); break; diff --git a/eeschema/netlist_control.cpp b/eeschema/netlist_control.cpp index a0d5c98ab8..c95244c35d 100644 --- a/eeschema/netlist_control.cpp +++ b/eeschema/netlist_control.cpp @@ -299,7 +299,7 @@ void NETLIST_DIALOG::InstallPageSpice() page->m_LeftBoxSizer->Add( page->m_NetOption, 0, wxGROW | wxALL, 5 ); page->m_LowBoxSizer->Add( new wxStaticText( page, -1, _( "Simulator command:" ) ), 0, - wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); + wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); page->m_CommandStringCtrl = new wxTextCtrl( page, -1, m_Parent->GetSimulatorCommand(), wxDefaultPosition, wxDefaultSize ); @@ -374,7 +374,7 @@ void NETLIST_DIALOG::InstallCustomPages() CurrPage->m_LowBoxSizer->Add( new wxStaticText( CurrPage, -1, _( "Netlist command:" ) ), 0, - wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); + wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); CurrPage->m_CommandStringCtrl = new wxTextCtrl( CurrPage, -1, Command, wxDefaultPosition, wxDefaultSize ); @@ -387,7 +387,7 @@ void NETLIST_DIALOG::InstallCustomPages() CurrPage->m_LowBoxSizer->Add( new wxStaticText( CurrPage, -1, _( "Title:" ) ), 0, - wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); + wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); CurrPage->m_TitleStringCtrl = new wxTextCtrl( CurrPage, -1, title, wxDefaultPosition, wxDefaultSize ); diff --git a/eeschema/schedit.cpp b/eeschema/schedit.cpp index 3f44b9ef34..fefb19b17f 100644 --- a/eeschema/schedit.cpp +++ b/eeschema/schedit.cpp @@ -437,7 +437,7 @@ void SCH_EDIT_FRAME::OnCancelCurrentCommand( wxCommandEvent& aEvent ) if( screen->IsBlockActive() ) { - m_canvas->SetCursor( wxCursor( m_canvas->GetDefaultCursor() ) ); + m_canvas->SetCursor( (wxStockCursor) m_canvas->GetDefaultCursor() ); screen->ClearBlockCommand(); // Stop the current command (if any) but keep the current tool diff --git a/eeschema/symbdraw.cpp b/eeschema/symbdraw.cpp index a751de1159..6936e18d68 100644 --- a/eeschema/symbdraw.cpp +++ b/eeschema/symbdraw.cpp @@ -333,7 +333,7 @@ void LIB_EDIT_FRAME::EndDrawGraphicItem( wxDC* DC ) if( GetToolId() != ID_NO_TOOL_SELECTED ) SetCursor( wxCURSOR_PENCIL ); else - SetCursor( m_canvas->GetDefaultCursor() ); + SetCursor( (wxStockCursor) m_canvas->GetDefaultCursor() ); if( GetTempCopyComponent() ) // used when editing an existing item SaveCopyInUndoList( GetTempCopyComponent() ); diff --git a/gerbview/dialogs/dialog_print_using_printer.cpp b/gerbview/dialogs/dialog_print_using_printer.cpp index 636e891d16..e4928cc749 100644 --- a/gerbview/dialogs/dialog_print_using_printer.cpp +++ b/gerbview/dialogs/dialog_print_using_printer.cpp @@ -161,10 +161,10 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) m_BoxSelectLayer[ii]->SetValue( true ); if( ii < 16 ) m_leftLayersBoxSizer->Add( m_BoxSelectLayer[ii], - wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE ); + wxGROW | wxLEFT | wxRIGHT | wxTOP ); else m_rightLayersBoxSizer->Add( m_BoxSelectLayer[ii], - wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE ); + wxGROW | wxLEFT | wxRIGHT | wxTOP ); } diff --git a/gerbview/events_called_functions.cpp b/gerbview/events_called_functions.cpp index 410ec6ac2d..d284747179 100644 --- a/gerbview/events_called_functions.cpp +++ b/gerbview/events_called_functions.cpp @@ -140,7 +140,7 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( GetToolId() == ID_NO_TOOL_SELECTED ) SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); else - m_canvas->SetCursor( m_canvas->GetCurrentCursor() ); + m_canvas->SetCursor( (wxStockCursor) m_canvas->GetCurrentCursor() ); break; default: diff --git a/include/gr_basic.h b/include/gr_basic.h index d7c9925ad4..ce0b607669 100644 --- a/include/gr_basic.h +++ b/include/gr_basic.h @@ -41,6 +41,7 @@ class EDA_RECT; #define GR_AND 0x04000000 #define GR_NXOR 0x08000000 #define GR_INVERT 0x10000000 +#define GR_ALLOW_HIGHCONTRAST 0x20000000 #define GR_HIGHLIGHT 0x80000000 diff --git a/include/xnode.h b/include/xnode.h index 3b7fc38a0a..ed58bdb779 100644 --- a/include/xnode.h +++ b/include/xnode.h @@ -34,6 +34,9 @@ #include +#if wxCHECK_VERSION( 2, 9, 0 ) +#define wxXmlProperty wxXmlAttribute +#endif /** * Class XNODE @@ -78,6 +81,7 @@ public: */ virtual void FormatContents( OUTPUTFORMATTER* out, int nestLevel ) throw( IO_ERROR ); +#if !wxCHECK_VERSION( 2, 9, 0 ) // The following functions did not appear in the base class until recently. // Overload them even if they are present in base class, just to make sure // they are present in any older base class implementation. @@ -101,6 +105,7 @@ public: } //------------------------------------------------------------- +#endif }; #endif // _XATTR_H_ diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 7959322247..5dc0e7447b 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -189,6 +190,7 @@ void DRAWSEGMENT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const wx int l_trace; int color, mode; int radius; + int curr_layer = ( (PCB_SCREEN*) panel->GetScreen() )->m_Active_Layer; BOARD * brd = GetBoard( ); @@ -197,6 +199,16 @@ void DRAWSEGMENT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const wx color = brd->GetLayerColor( GetLayer() ); + if( ( draw_mode & GR_ALLOW_HIGHCONTRAST ) && DisplayOpt.ContrastModeDisplay ) + { + if( !IsOnLayer( curr_layer ) ) + { + color &= ~MASKCOLOR; + color |= DARKDARKGRAY; + } + } + + GRSetDrawMode( DC, draw_mode ); l_trace = m_Width >> 1; /* half trace width */ diff --git a/pcbnew/class_edge_mod.cpp b/pcbnew/class_edge_mod.cpp index 2455224d34..4d168a6fe9 100644 --- a/pcbnew/class_edge_mod.cpp +++ b/pcbnew/class_edge_mod.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -45,6 +46,7 @@ #include #include +#include EDGE_MODULE::EDGE_MODULE( MODULE* parent, STROKE_T aShape ) : DRAWSEGMENT( parent, PCB_MODULE_EDGE_T ) @@ -97,12 +99,14 @@ void EDGE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const wx int ux0, uy0, dx, dy, radius, StAngle, EndAngle; int color, type_trace; int typeaff; + int curr_layer = ( (PCB_SCREEN*) panel->GetScreen() )->m_Active_Layer; PCB_BASE_FRAME* frame; MODULE* module = (MODULE*) m_Parent; if( module == NULL ) return; + BOARD * brd = GetBoard( ); if( brd->IsLayerVisible( m_Layer ) == false ) @@ -110,6 +114,16 @@ void EDGE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const wx color = brd->GetLayerColor( m_Layer ); + if(( draw_mode & GR_ALLOW_HIGHCONTRAST ) && DisplayOpt.ContrastModeDisplay ) + { + if( !IsOnLayer( curr_layer ) ) + { + color &= ~MASKCOLOR; + color |= DARKDARKGRAY; + } + } + + frame = (PCB_BASE_FRAME*) panel->GetParent(); type_trace = m_Shape; diff --git a/pcbnew/class_pad_draw_functions.cpp b/pcbnew/class_pad_draw_functions.cpp index 828d4525dd..d314148b43 100644 --- a/pcbnew/class_pad_draw_functions.cpp +++ b/pcbnew/class_pad_draw_functions.cpp @@ -234,7 +234,9 @@ void D_PAD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDraw_mode, const wxPoi } // if PAD_SMD pad and high contrast mode - if( ( GetAttribute() == PAD_SMD || GetAttribute() == PAD_CONN ) && DisplayOpt.ContrastModeDisplay ) + if( ( aDraw_mode & GR_ALLOW_HIGHCONTRAST ) && + ( GetAttribute() == PAD_SMD || GetAttribute() == PAD_CONN ) && + DisplayOpt.ContrastModeDisplay ) { // when routing tracks if( frame && frame->GetToolId() == ID_TRACK_BUTT ) @@ -301,7 +303,8 @@ void D_PAD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDraw_mode, const wxPoi // if Contrast mode is ON and a technical layer active, show pads on this // layer so we can see pads on paste or solder layer and the size of the // mask - if( DisplayOpt.ContrastModeDisplay && screen->m_Active_Layer > LAST_COPPER_LAYER ) + if( ( aDraw_mode & GR_ALLOW_HIGHCONTRAST ) && + DisplayOpt.ContrastModeDisplay && screen->m_Active_Layer > LAST_COPPER_LAYER ) { if( IsOnLayer( screen->m_Active_Layer ) ) { @@ -373,7 +376,8 @@ void D_PAD::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDraw_mode, const wxPoi // Display net names is restricted to pads that are on the active layer // in hight contrast mode display - if( !IsOnLayer( screen->m_Active_Layer ) && DisplayOpt.ContrastModeDisplay ) + if( ( aDraw_mode & GR_ALLOW_HIGHCONTRAST ) && + !IsOnLayer( screen->m_Active_Layer ) && DisplayOpt.ContrastModeDisplay ) drawInfo.m_Display_netname = false; DrawShape( aPanel->GetClipBox(), aDC, drawInfo ); diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 743a9f2f19..626ee88cec 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -604,7 +604,7 @@ void TRACK::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const wxPoint& return; #endif - if( DisplayOpt.ContrastModeDisplay ) + if( ( draw_mode & GR_ALLOW_HIGHCONTRAST ) && DisplayOpt.ContrastModeDisplay ) { if( !IsOnLayer( curr_layer ) ) { diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp index 34725ccc01..8190d503d2 100644 --- a/pcbnew/edit.cpp +++ b/pcbnew/edit.cpp @@ -160,7 +160,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( GetToolId() == ID_NO_TOOL_SELECTED ) SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); else - SetCursor( m_canvas->GetDefaultCursor() ); + SetCursor( (wxStockCursor) m_canvas->GetDefaultCursor() ); break; diff --git a/pcbnew/find.cpp b/pcbnew/find.cpp index 1cf0ffaf76..0e75b9bfc3 100644 --- a/pcbnew/find.cpp +++ b/pcbnew/find.cpp @@ -240,8 +240,7 @@ void WinEDA_PcbFindFrame::CreateControls() 0 ); itemBoxSizer2->Add( itemStaticText3, 0, - wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, - 5 ); + wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); m_NewText = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T( "" ), wxDefaultPosition, wxDefaultSize, 0 ); diff --git a/pcbnew/tracepcb.cpp b/pcbnew/tracepcb.cpp index cfb277db69..2d05df8dc4 100644 --- a/pcbnew/tracepcb.cpp +++ b/pcbnew/tracepcb.cpp @@ -109,7 +109,7 @@ void PCB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness ); - GetBoard()->Draw( m_canvas, DC, GR_OR ); + GetBoard()->Draw( m_canvas, DC, GR_OR | GR_ALLOW_HIGHCONTRAST); DrawGeneralRatsnest( DC ); From 14d5685528dce7e19df888d5f4f502b8583c0e5a Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Wed, 29 Feb 2012 09:25:38 -0600 Subject: [PATCH 03/68] Load BOARD project settings before loading BOARD in case BOARD has any configuration overrides. Call SetDesignSettings() in PCB_BASE_FRAME::ReadSetup(). --- pcbnew/dialogs/dialog_mask_clearance.cpp | 41 +++++++++++------------ pcbnew/files.cpp | 12 +++---- pcbnew/ioascii.cpp | 2 ++ pcbnew/pcbnew_config.cpp | 42 ++++++++++++------------ 4 files changed, 49 insertions(+), 48 deletions(-) diff --git a/pcbnew/dialogs/dialog_mask_clearance.cpp b/pcbnew/dialogs/dialog_mask_clearance.cpp index 3c7a76a6a8..32c1c3ff76 100644 --- a/pcbnew/dialogs/dialog_mask_clearance.cpp +++ b/pcbnew/dialogs/dialog_mask_clearance.cpp @@ -1,10 +1,10 @@ -///////////////////////////////////////////////////////////////////////////// +// /////////////////////////////////////////////////////////////////////////// // Name: dialog_mask_clearance.cpp // Author: jean-pierre Charras // Modified by: // Created: 17 feb 2009 // Licence: GPL -///////////////////////////////////////////////////////////////////////////// +// /////////////////////////////////////////////////////////////////////////// #include #include @@ -17,15 +17,15 @@ #include /** - * DIALOG_PADS_MASK_CLEARANCE_BASE, derived from DIALOG_PADS_MASK_CLEARANCE_BASE_BASE - * @see dialog_dialog_mask_clearance_base.h and dialog_mask_clearance.cpp, - * automatically created by wxFormBuilder + * Class DIALOG_PADS_MASK_CLEARANCE + * is derived from DIALOG_PADS_MASK_CLEARANCE_BASE. + * @see dialog_dialog_mask_clearance_base.h and dialog_mask_clearance_base.cpp, + * which are maintained by wxFormBuilder */ - -DIALOG_PADS_MASK_CLEARANCE::DIALOG_PADS_MASK_CLEARANCE( PCB_EDIT_FRAME* parent ) : - DIALOG_PADS_MASK_CLEARANCE_BASE( parent ) +DIALOG_PADS_MASK_CLEARANCE::DIALOG_PADS_MASK_CLEARANCE( PCB_EDIT_FRAME* aParent ) : + DIALOG_PADS_MASK_CLEARANCE_BASE( aParent ) { - m_Parent = parent; + m_Parent = aParent; m_BrdSettings = m_Parent->GetBoard()->GetDesignSettings(); MyInit(); @@ -44,30 +44,31 @@ void DIALOG_PADS_MASK_CLEARANCE::MyInit() int Internal_Unit = m_Parent->GetInternalUnits(); PutValueInLocalUnits( *m_SolderMaskMarginCtrl, - m_BrdSettings.m_SolderMaskMargin, + m_BrdSettings.m_SolderMaskMargin, Internal_Unit ); // These 2 parameters are usually < 0, so prepare entering a negative // value, if current is 0 PutValueInLocalUnits( *m_SolderPasteMarginCtrl, - m_BrdSettings.m_SolderPasteMargin, + m_BrdSettings.m_SolderPasteMargin, Internal_Unit ); + if( m_BrdSettings.m_SolderPasteMargin == 0 ) m_SolderPasteMarginCtrl->SetValue( wxT( "-" ) + m_SolderPasteMarginCtrl->GetValue() ); + wxString msg; msg.Printf( wxT( "%f" ), m_BrdSettings.m_SolderPasteMarginRatio * 100.0 ); - if( m_BrdSettings.m_SolderPasteMarginRatio == 0.0 && - msg[0] == '0') // Sometimes Printf add a sign if the value is small + + // Sometimes Printf adds a sign if the value is small + if( m_BrdSettings.m_SolderPasteMarginRatio == 0.0 && msg[0] == '0' ) m_SolderPasteMarginRatioCtrl->SetValue( wxT( "-" ) + msg ); else m_SolderPasteMarginRatioCtrl->SetValue( msg ); } -/*******************************************************************/ void DIALOG_PADS_MASK_CLEARANCE::OnButtonOkClick( wxCommandEvent& event ) -/*******************************************************************/ { m_BrdSettings.m_SolderMaskMargin = ReturnValueFromTextCtrl( *m_SolderMaskMarginCtrl, m_Parent->GetInternalUnits() ); @@ -75,13 +76,15 @@ void DIALOG_PADS_MASK_CLEARANCE::OnButtonOkClick( wxCommandEvent& event ) m_BrdSettings.m_SolderPasteMargin = ReturnValueFromTextCtrl( *m_SolderPasteMarginCtrl, m_Parent->GetInternalUnits() ); - double dtmp = 0; - wxString msg = m_SolderPasteMarginRatioCtrl->GetValue(); + double dtmp = 0; + wxString msg = m_SolderPasteMarginRatioCtrl->GetValue(); + msg.ToDouble( &dtmp ); // A margin ratio de -50% means no paste on a pad, the ratio must be >= 50 % if( dtmp < -50 ) dtmp = -50; + if( dtmp > +100 ) dtmp = +100; @@ -93,10 +96,6 @@ void DIALOG_PADS_MASK_CLEARANCE::OnButtonOkClick( wxCommandEvent& event ) } -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL - */ - void DIALOG_PADS_MASK_CLEARANCE::OnButtonCancelClick( wxCommandEvent& event ) { EndModal( 0 ); diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index 442759f057..ea1bd2724c 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -258,8 +258,10 @@ this file again." ) ); m_DisplayPadFill = DisplayOpt.DisplayPadFill; m_DisplayViaFill = DisplayOpt.DisplayViaFill; - ReadPcbFile( &reader, false ); + // load project settings before BOARD, in case BOARD file has overrides. LoadProjectSettings( GetScreen()->GetFileName() ); + + ReadPcbFile( &reader, false ); } #else @@ -272,6 +274,9 @@ this file again." ) ); m_DisplayModEdge = DisplayOpt.DisplayModEdge; m_DisplayPadFill = DisplayOpt.DisplayPadFill; m_DisplayViaFill = DisplayOpt.DisplayViaFill; + + // load project settings before BOARD, in case BOARD file has overrides. + LoadProjectSettings( GetScreen()->GetFileName() ); } else { @@ -306,11 +311,6 @@ this file again." ) ); wxMessageBox( msg, _( "Open Board File" ), wxOK | wxICON_ERROR ); } - if( !aAppend ) - { - LoadProjectSettings( GetScreen()->GetFileName() ); - } - if( loadedBoard ) { // we should not ask PLUGINs to do these items: diff --git a/pcbnew/ioascii.cpp b/pcbnew/ioascii.cpp index e98b11e26e..1904d5ebc4 100644 --- a/pcbnew/ioascii.cpp +++ b/pcbnew/ioascii.cpp @@ -382,6 +382,8 @@ int PCB_BASE_FRAME::ReadSetup( LINE_READER* aReader ) // projects. GetBoard()->m_NetClasses.GetDefault()->SetParams(); + GetBoard()->SetDesignSettings( bds ); + GetBoard()->SetZoneSettings( zoneInfo ); return 0; diff --git a/pcbnew/pcbnew_config.cpp b/pcbnew/pcbnew_config.cpp index 1df3276a0b..71cf632012 100644 --- a/pcbnew/pcbnew_config.cpp +++ b/pcbnew/pcbnew_config.cpp @@ -103,30 +103,30 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event ) break; case ID_CONFIG_READ: - { - fn = GetScreen()->GetFileName(); - fn.SetExt( ProjectFileExtension ); - - wxFileDialog dlg( this, _( "Read Project File" ), fn.GetPath(), - fn.GetFullName(), ProjectFileWildcard, - wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR ); - - if( dlg.ShowModal() == wxID_CANCEL ) - break; - - if( !wxFileExists( dlg.GetPath() ) ) { - wxString msg; - msg.Printf( _( "File %s not found" ), GetChars( dlg.GetPath() ) ); - DisplayError( this, msg ); - break; + fn = GetScreen()->GetFileName(); + fn.SetExt( ProjectFileExtension ); + + wxFileDialog dlg( this, _( "Read Project File" ), fn.GetPath(), + fn.GetFullName(), ProjectFileWildcard, + wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR ); + + if( dlg.ShowModal() == wxID_CANCEL ) + break; + + if( !wxFileExists( dlg.GetPath() ) ) + { + wxString msg; + msg.Printf( _( "File %s not found" ), GetChars( dlg.GetPath() ) ); + DisplayError( this, msg ); + break; + } + + LoadProjectSettings( dlg.GetPath() ); } - - LoadProjectSettings( dlg.GetPath() ); break; - } - /* Hotkey IDs */ + // Hotkey IDs case ID_PREFERENCES_HOTKEY_EXPORT_CONFIG: ExportHotkeyConfigToFile( g_Board_Editor_Hokeys_Descr ); break; @@ -144,7 +144,7 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event ) DisplayHotkeyList( this, g_Board_Editor_Hokeys_Descr ); break; - /* Macros IDs*/ + // Macros IDs case ID_PREFRENCES_MACROS_SAVE: SaveMacros(); break; From ff624c35e38ac7b5137edf5b9a17ecb30a75a260 Mon Sep 17 00:00:00 2001 From: Alexander Zakamaldin Date: Thu, 1 Mar 2012 09:53:34 -0600 Subject: [PATCH 04/68] Problem with the Help link "getting started in kicad" --- common/basicframe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/basicframe.cpp b/common/basicframe.cpp index a9bbc099fc..36697e380f 100644 --- a/common/basicframe.cpp +++ b/common/basicframe.cpp @@ -341,7 +341,7 @@ void EDA_BASE_FRAME::GetKicadHelp( wxCommandEvent& event ) if( !helpFile ) { // Try to find "Getting_Started_in_KiCad.pdf" - wxGetApp().GetHelpFileName() = wxT( "Getting_Started_in_KiCad.pdf" ); + wxGetApp().SetHelpFileName( wxT( "Getting_Started_in_KiCad.pdf" ) ); helpFile = wxGetApp().GetHelpFile(); } From d6d74ef77ffca38d4c11af02860fbf5deab19c66 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 6 Mar 2012 15:08:59 +0100 Subject: [PATCH 05/68] Libedit: fix bug (svg export does not work) other minor fixes. --- bitmap2component/bitmap2cmp_gui_base.fbp | 1756 +++++++++++----------- common/basicframe.cpp | 13 +- demos/CMakeLists.txt | 3 +- eeschema/dialogs/dialog_SVG_print.cpp | 8 +- eeschema/libedit.cpp | 19 +- eeschema/libedit_plot_component.cpp | 6 + eeschema/libeditframe.cpp | 6 - eeschema/libeditframe.h | 19 + eeschema/sch_screen.cpp | 4 +- pcbnew/dialogs/dialog_mask_clearance.cpp | 33 +- pcbnew/pcbnew.cpp | 6 +- 11 files changed, 962 insertions(+), 911 deletions(-) diff --git a/bitmap2component/bitmap2cmp_gui_base.fbp b/bitmap2component/bitmap2cmp_gui_base.fbp index aac71051ff..138d9b12f6 100644 --- a/bitmap2component/bitmap2cmp_gui_base.fbp +++ b/bitmap2component/bitmap2cmp_gui_base.fbp @@ -1,8 +1,8 @@ - + - + C++ 1 source_name @@ -14,73 +14,73 @@ none 1 bitmap2cmp_gui - + . - + 1 1 0 0 - - - + + + 1 1 impl_virtual - - - + + + 0 wxID_ANY - - + + BM2CMP_FRAME_BASE - + 500,419 wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER - + Bitmap to Component Converter - - + + wxFILTER_NONE wxDefaultValidator - - - + + + wxTAB_TRAVERSAL 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + bMainSizer wxHORIZONTAL none @@ -89,219 +89,219 @@ wxEXPAND 1 - - - + + + 1 1 - - + + 0 wxID_ANY - - + + m_notebook1 protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + Original Picture 1 - - + + 1 1 - - + + 0 wxID_ANY -1,-1 400,300 m_InitialPicturePanel protected - + 5 5 - - - - + + + + wxFILTER_NONE wxDefaultValidator - - - + + + wxHSCROLL|wxVSCROLL - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + OnPaint - - - - - - + + + + + + - + Greyscale Picture 0 - - + + 1 1 - - + + 0 wxID_ANY -1,-1 400,300 m_GreyscalePicturePanel protected - + 5 5 - - - - + + + + wxFILTER_NONE wxDefaultValidator - - - + + + wxHSCROLL|wxVSCROLL - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + OnPaint - - - - - - + + + + + + - + Black&&White Picture 0 - - + + 1 1 - - + + 0 wxID_ANY - - + + m_BNPicturePanel protected - + 5 5 - - - - + + + + wxFILTER_NONE wxDefaultValidator - - - + + + wxHSCROLL|wxVSCROLL - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + OnPaint - - - - - - + + + + + + @@ -311,54 +311,54 @@ wxEXPAND 0 - - + + 1 1 - - + + 0 wxID_ANY - - + + m_panelRight protected - - - - - + + + + + wxFILTER_NONE wxDefaultValidator - - - + + + wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + brightSizer wxVERTICAL none @@ -369,11 +369,11 @@ wxID_ANY Bitmap Info: - + sbSizerInfo wxVERTICAL none - + 5 wxEXPAND|wxBOTTOM @@ -381,10 +381,10 @@ 3 wxBOTH - - + + 0 - + fgSizerInfo wxFLEX_GROWMODE_SPECIFIED none @@ -395,55 +395,55 @@ wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY Size X: - - + + m_staticTextSizeX protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -451,55 +451,55 @@ wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY 0000 - - + + m_SizeXValue protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -507,55 +507,55 @@ wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY pixels - - + + m_SizeXunits protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -563,55 +563,55 @@ wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY Size Y: - - + + m_staticTextSizeY protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -619,55 +619,55 @@ wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY 0000 - - + + m_SizeYValue protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -675,55 +675,55 @@ wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY pixels - - + + m_SizeYunits protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -731,55 +731,55 @@ wxALIGN_RIGHT|wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY BPP: - - + + m_staticTextBPP protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -787,55 +787,55 @@ wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY 0000 - - + + m_BPPValue protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -843,55 +843,55 @@ wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY bits - - + + m_BPPunits protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -903,56 +903,56 @@ wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL 0 - - + + 1 0 1 - - + + 0 wxID_ANY Load Bitmap - - + + m_buttonLoad protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + OnLoadFile - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -960,56 +960,56 @@ wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL 0 - - + + 1 0 1 - - + + 0 wxID_ANY Export to Eeschema - - + + m_buttonExportEeschema protected - - - - + + + + Create a library file for Eeschema This library contains only one component: logo - + wxFILTER_NONE wxDefaultValidator - - - - + + + + OnExportEeschema - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1017,56 +1017,56 @@ wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL 0 - - + + 1 0 1 - - + + 0 wxID_ANY Export to Pcbnew - - + + m_buttonExportPcbnew protected - - - - + + + + Create a footprint file for PcbNew This footprint contains only one footprint: logo - + wxFILTER_NONE wxDefaultValidator - - - - + + + + OnExportPcbnew - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1074,58 +1074,58 @@ wxALL|wxEXPAND 0 - + "Normal" "Negative" - + 1 1 - - + + 0 wxID_ANY Options 1 - - + + m_rbOptions protected - + 0 - + wxRA_SPECIFY_COLS - - - + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + OnOptionsSelection - - - - - - + + + + + + @@ -1133,55 +1133,55 @@ wxTOP|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY Threshold Value: - - + + m_ThresholdText protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1189,76 +1189,76 @@ wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY 50 - + 0 - + m_sliderThreshold protected - - + + wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_TOP - + Adjust the level to convert the greyscale picture to a black and white picture. - + wxFILTER_NONE wxDefaultValidator - + 25 - - - - - - - - - - - - + + + + + + + + + + + + OnThresholdChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1266,54 +1266,54 @@ - - + + 1 1 - + 1 - + 0 wxID_ANY - - + + m_statusBar protected - - + + wxST_SIZEGRIP - - - + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/basicframe.cpp b/common/basicframe.cpp index 36697e380f..a322e734d0 100644 --- a/common/basicframe.cpp +++ b/common/basicframe.cpp @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include @@ -310,7 +309,7 @@ wxString EDA_BASE_FRAME::GetFileFromHistory( int cmdId, const wxString& type, if( !wxFileName::FileExists( fn ) ) { msg = type + _( " file <" ) + fn + _( "> was not found." ); - DisplayError( this, msg ); + wxMessageBox( msg ); fileHistory->RemoveFileFromHistory( i ); fn = wxEmptyString; } @@ -349,7 +348,7 @@ void EDA_BASE_FRAME::GetKicadHelp( wxCommandEvent& event ) { msg.Printf( _( "Help file %s could not be found." ), GetChars( wxGetApp().GetHelpFileName() ) ); - DisplayError( this, msg ); + wxMessageBox( msg ); } else { @@ -376,7 +375,7 @@ void EDA_BASE_FRAME::GetKicadHelp( wxCommandEvent& event ) else { msg.Printf( _( "Help file %s not found." ), GetChars( wxGetApp().GetHelpFileName() ) ); - DisplayError( this, msg ); + wxMessageBox( msg ); } #elif defined ONLINE_HELP_FILES_FORMAT_IS_PDF @@ -386,7 +385,7 @@ void EDA_BASE_FRAME::GetKicadHelp( wxCommandEvent& event ) { msg.Printf( _( "Help file %s could not be found." ), GetChars( wxGetApp().GetHelpFileName() ) ); - DisplayError( this, msg ); + wxMessageBox( msg ); } else { @@ -589,7 +588,7 @@ bool EDA_BASE_FRAME::IsWritable( const wxFileName& aFileName ) if( !msg.IsEmpty() ) { - DisplayError( this, msg ); + wxMessageBox( msg ); return false; } @@ -643,7 +642,7 @@ edits you made?" ), if( !wxRenameFile( aFileName.GetFullPath(), backupFileName.GetFullPath() ) ) { msg = _( "Could not create backup file " ) + backupFileName.GetFullPath(); - DisplayError( this, msg ); + wxMessageBox( msg ); } } diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt index 19cced24a8..aec5809bf7 100644 --- a/demos/CMakeLists.txt +++ b/demos/CMakeLists.txt @@ -1,4 +1,5 @@ -install(DIRECTORY complex_hierarchy ecc83 electric flat_hierarchy interf_u microwave +install(DIRECTORY complex_hierarchy ecc83 electric flat_hierarchy + kit-dev-coldfire-xilinx_5213 interf_u microwave pic_programmer pspice "sonde xilinx" test_xil_95108 video DESTINATION ${KICAD_DEMOS} COMPONENT resources diff --git a/eeschema/dialogs/dialog_SVG_print.cpp b/eeschema/dialogs/dialog_SVG_print.cpp index fee1553ca8..5d90897ae4 100644 --- a/eeschema/dialogs/dialog_SVG_print.cpp +++ b/eeschema/dialogs/dialog_SVG_print.cpp @@ -228,7 +228,13 @@ bool DIALOG_SVG_PRINT::DrawSVGPage( EDA_DRAW_FRAME* frame, wxSize( 0x7FFFFF0, 0x7FFFFF0 ) ) ); screen->m_IsPrinting = true; - screen->Draw( panel, &dc, GR_COPY ); + if( frame->IsType( SCHEMATIC_FRAME ) ) + screen->Draw( panel, &dc, GR_COPY ); + + if( frame->IsType( LIBEDITOR_FRAME ) ) + ((LIB_EDIT_FRAME*)frame)->RedrawComponent( &dc, + wxPoint(sheetSize.x/2, + sheetSize.y/2) ); if( aPrint_Sheet_Ref ) frame->TraceWorkSheet( &dc, screen, g_DrawDefaultLineThickness ); diff --git a/eeschema/libedit.cpp b/eeschema/libedit.cpp index e21f9c0778..d5595602cf 100644 --- a/eeschema/libedit.cpp +++ b/eeschema/libedit.cpp @@ -250,13 +250,8 @@ bool LIB_EDIT_FRAME::LoadOneLibraryPartAux( LIB_ALIAS* aEntry, CMP_LIBRARY* aLib } -void LIB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) +void LIB_EDIT_FRAME::RedrawComponent( wxDC* aDC, wxPoint aOffset ) { - if( GetScreen() == NULL ) - return; - - m_canvas->DrawBackGround( DC ); - if( m_component ) { // display reference like in schematic (a reference U is shown U? or U?A) @@ -266,10 +261,20 @@ void LIB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) wxString fieldText = Field->m_Text; wxString fieldfullText = Field->GetFullText( m_unit ); Field->m_Text = fieldfullText; - m_component->Draw( m_canvas, DC, wxPoint( 0, 0 ), m_unit, + m_component->Draw( m_canvas, aDC, aOffset, m_unit, m_convert, GR_DEFAULT_DRAWMODE ); Field->m_Text = fieldText; } +} + +void LIB_EDIT_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) +{ + if( GetScreen() == NULL ) + return; + + m_canvas->DrawBackGround( DC ); + + RedrawComponent( DC, wxPoint( 0, 0 ) ); if( m_canvas->IsMouseCaptured() ) m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); diff --git a/eeschema/libedit_plot_component.cpp b/eeschema/libedit_plot_component.cpp index 9fbac84439..41974bfc96 100644 --- a/eeschema/libedit_plot_component.cpp +++ b/eeschema/libedit_plot_component.cpp @@ -15,6 +15,7 @@ #include #include #include +#include void LIB_EDIT_FRAME::OnPlotCurrentComponent( wxCommandEvent& event ) @@ -128,6 +129,11 @@ void LIB_EDIT_FRAME::CreatePNGorJPEGFile( const wxString& aFileName, bool aFmt_j } +void LIB_EDIT_FRAME::SVG_Print_Component( const wxString& FullFileName ) +{ + DIALOG_SVG_PRINT::DrawSVGPage( this, FullFileName, GetScreen() ); +} + void LIB_EDIT_FRAME::PrintPage( wxDC* aDC, int aPrintMask, bool aPrintMirrorMode, void* aData) { if( ! m_component ) diff --git a/eeschema/libeditframe.cpp b/eeschema/libeditframe.cpp index c0b4d2c69d..1a6e875ea8 100644 --- a/eeschema/libeditframe.cpp +++ b/eeschema/libeditframe.cpp @@ -47,7 +47,6 @@ #include #include -#include #include #include @@ -926,11 +925,6 @@ void LIB_EDIT_FRAME::ClearTempCopyComponent() } -void LIB_EDIT_FRAME::SVG_Print_Component( const wxString& FullFileName ) -{ - DIALOG_SVG_PRINT::DrawSVGPage( this, FullFileName, GetScreen() ); -} - void LIB_EDIT_FRAME::EditSymbolText( wxDC* DC, LIB_ITEM* DrawItem ) { diff --git a/eeschema/libeditframe.h b/eeschema/libeditframe.h index 3841c47e01..41d5c37f5c 100644 --- a/eeschema/libeditframe.h +++ b/eeschema/libeditframe.h @@ -247,7 +247,26 @@ public: */ void DisplayLibInfos(); + /** + * Function RedrawComponent + * Redraw the current component loaded in library editor + * Display reference like in schematic (a reference U is shown U? or U?A) + * accordint to the current selected unit and De Morgan selection + * although it is stored without ? and part id. + * @param aDC = the current device context + * @param aOffset = a draw offset. usually à,0 to draw on the screen, but + * can be set to page size / 2 to draw or print in SVG format. + */ + void RedrawComponent( wxDC* aDC, wxPoint aOffset ); + + /** + * Function RedrawActiveWindow + * Redraw the current component loaded in library editor, an axes + * Display reference like in schematic (a reference U is shown U? or U?A) + * update status bar and info shown in the bottom of the window + */ void RedrawActiveWindow( wxDC* DC, bool EraseBg ); + void OnCloseWindow( wxCloseEvent& Event ); void ReCreateHToolbar(); void ReCreateVToolbar(); diff --git a/eeschema/sch_screen.cpp b/eeschema/sch_screen.cpp index 3747e97718..abbf723742 100644 --- a/eeschema/sch_screen.cpp +++ b/eeschema/sch_screen.cpp @@ -530,7 +530,9 @@ bool SCH_SCREEN::Save( FILE* aFile ) const return true; } - +// note: SCH_SCREEN::Draw is useful only for schematic. +// library editor and library viewer do not use a draw list, and therefore +// SCH_SCREEN::Draw draws nothing void SCH_SCREEN::Draw( EDA_DRAW_PANEL* aCanvas, wxDC* aDC, int aDrawMode, int aColor ) { for( SCH_ITEM* item = m_drawList.begin(); item != NULL; item = item->Next() ) diff --git a/pcbnew/dialogs/dialog_mask_clearance.cpp b/pcbnew/dialogs/dialog_mask_clearance.cpp index 32c1c3ff76..126fbe79f1 100644 --- a/pcbnew/dialogs/dialog_mask_clearance.cpp +++ b/pcbnew/dialogs/dialog_mask_clearance.cpp @@ -1,13 +1,30 @@ -// /////////////////////////////////////////////////////////////////////////// -// Name: dialog_mask_clearance.cpp -// Author: jean-pierre Charras -// Modified by: -// Created: 17 feb 2009 -// Licence: GPL -// /////////////////////////////////////////////////////////////////////////// +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +/** + * @file dialog_mask_clearance.cpp + */ #include -#include #include #include #include diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index 84a18f2d03..3face0a320 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -155,6 +155,10 @@ Changing extension to .brd." ), GetChars( fn.GetFullPath() ) ); frame->Zoom_Automatique( true ); + // Load config and default values before loading a board file + // Some will be overwritten after loading the board file + frame->LoadProjectSettings( fn.GetFullPath() ); + /* Load file specified in the command line. */ if( fn.IsOk() ) { @@ -180,8 +184,6 @@ Changing extension to .brd." ), GetChars( fn.GetFullPath() ) ); } } - frame->LoadProjectSettings( fn.GetFullPath() ); - // update the layer names in the listbox frame->ReCreateLayerBox( NULL ); From f36ffece703215ccfd7625a0514341589611fb98 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Tue, 6 Mar 2012 14:10:12 -0600 Subject: [PATCH 06/68] remove clamping from PAGE_INFO setters --- common/class_page_info.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common/class_page_info.cpp b/common/class_page_info.cpp index 14607d9f3b..edd6749355 100644 --- a/common/class_page_info.cpp +++ b/common/class_page_info.cpp @@ -204,20 +204,25 @@ void PAGE_INFO::SetPortrait( bool isPortrait ) static int clampWidth( int aWidthInMils ) { +/* was giving EESCHEMA single component SVG plotter grief if( aWidthInMils < 4000 ) // 4" is about a baseball card aWidthInMils = 4000; + else if( aWidthInMils > 44000 ) //44" is plotter size aWidthInMils = 44000; +*/ return aWidthInMils; } static int clampHeight( int aHeightInMils ) { +/* was giving EESCHEMA single component SVG plotter grief if( aHeightInMils < 4000 ) aHeightInMils = 4000; else if( aHeightInMils > 44000 ) aHeightInMils = 44000; +*/ return aHeightInMils; } From e3dd66ddb4d06c929aedccea9412ce3d81962234 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Wed, 7 Mar 2012 21:18:00 +0100 Subject: [PATCH 07/68] All: try to fix incorrect acs in plot SVG under wxWidgets 2.9: wxWidgets 2.9 knows wxSVGFILEDC device context. Unfortunately, arcs are drawn as pies (this is a feature, not a bug). This is not correct for Kicad. So Kicad has its own wxSVGFILEDC (named KicadSVGFileDC) that is basically the same as wxSVGFILEDC, but with arcs drawn as arcs, not pies. Note also under wxWidgets 2.8 does not know wxSVGFILEDC , so kicad had already its own SVG device context. --- common/dcsvg.cpp | 689 ++++++++++++++++++++++++-- eeschema/dialogs/dialog_SVG_print.cpp | 2 +- include/dcsvg.h | 229 ++++++++- pcbnew/dialogs/dialog_SVG_print.cpp | 2 +- 4 files changed, 864 insertions(+), 58 deletions(-) diff --git a/common/dcsvg.cpp b/common/dcsvg.cpp index e54d95f3a6..e6066c334d 100644 --- a/common/dcsvg.cpp +++ b/common/dcsvg.cpp @@ -19,20 +19,663 @@ #include #endif -#if wxCHECK_VERSION( 2, 9, 0 ) -// Do nothing, because wxWidgets 3 supports the SVG format -// previously, was a contribution library, not included in wxWidgets base - -#else - #include +#include #include #include -#define wxSVG_DEBUG false +#if wxCHECK_VERSION( 2, 9, 0 ) + +// We could do nothing, because wxWidgets 3 supports the SVG format +// (previously, it was a contribution library, not included in wxWidgets) +// However arcs are drawn as pies, and we must change it. +// Unfortunately most of functions are private, and we cannot derive +// our KicadSVGFileDCImpl from wxSVGFileDCImpl +// and just override the 2 incorrect functions +// Just wxWidget dcsvg is copied here and 2 functions are modified: +// KicadSVGFileDCImpl::DoDrawArc() and KicadSVGFileDCImpl::DoDrawEllipticArc() + +namespace +{ + +inline double DegToRad(double deg) { return (deg * M_PI) / 180.0; } + +// This function returns a string representation of a floating point number in +// C locale (i.e. always using "." for the decimal separator) and with the +// fixed precision (which is 2 for some unknown reason but this is what it was +// in this code originally). +inline wxString NumStr(double f) +{ + return wxString::FromCDouble(f, 2); +} + +// Return the colour representation as HTML-like "#rrggbb" string and also +// returns its alpha as opacity number in 0..1 range. +wxString Col2SVG(wxColour c, float *opacity) +{ + if ( c.Alpha() != wxALPHA_OPAQUE ) + { + *opacity = c.Alpha()/255.; + + // Remove the alpha before using GetAsString(wxC2S_HTML_SYNTAX) as it + // doesn't support colours with alpha channel. + c = wxColour(c.GetRGB()); + } + else // No alpha. + { + *opacity = 1.; + } + + return c.GetAsString(wxC2S_HTML_SYNTAX); +} + +wxString wxPenString(wxColour c, int style = wxPENSTYLE_SOLID) +{ + float opacity; + wxString s = wxT("stroke:") + Col2SVG(c, &opacity) + wxT("; "); + + switch ( style ) + { + case wxPENSTYLE_SOLID: + s += wxString::Format(wxT("stroke-opacity:%s; "), NumStr(opacity)); + break; + case wxPENSTYLE_TRANSPARENT: + s += wxT("stroke-opacity:0.0; "); + break; + default : + wxASSERT_MSG(false, wxT("wxSVGFileDC::Requested Pen Style not available")); + } + + return s; +} + +wxString wxBrushString(wxColour c, int style = wxBRUSHSTYLE_SOLID) +{ + float opacity; + wxString s = wxT("fill:") + Col2SVG(c, &opacity) + wxT("; "); + + switch ( style ) + { + case wxBRUSHSTYLE_SOLID: + s += wxString::Format(wxT("fill-opacity:%s; "), NumStr(opacity)); + break; + case wxBRUSHSTYLE_TRANSPARENT: + s += wxT("fill-opacity:0.0; "); + break; + default : + wxASSERT_MSG(false, wxT("wxSVGFileDC::Requested Brush Style not available")); + } + + return s; +} + +} // anonymous namespace + +// ---------------------------------------------------------- +// KicadSVGFileDCImpl +// ---------------------------------------------------------- + +IMPLEMENT_ABSTRACT_CLASS(KicadSVGFileDCImpl, wxDC) + +KicadSVGFileDCImpl::KicadSVGFileDCImpl( KicadSVGFileDC *owner, const wxString &filename, + int width, int height, double dpi ) : + wxDCImpl( owner ) + { + Init( filename, width, height, dpi ); + } + +void KicadSVGFileDCImpl::Init (const wxString &filename, int Width, int Height, double dpi) +{ + m_width = Width; + m_height = Height; + + m_dpi = dpi; + + m_OK = true; + + m_mm_to_pix_x = dpi/25.4; + m_mm_to_pix_y = dpi/25.4; + + m_backgroundBrush = *wxTRANSPARENT_BRUSH; + m_textForegroundColour = *wxBLACK; + m_textBackgroundColour = *wxWHITE; + m_colour = wxColourDisplay(); + + m_pen = *wxBLACK_PEN; + m_font = *wxNORMAL_FONT; + m_brush = *wxWHITE_BRUSH; + + m_graphics_changed = true; + + ////////////////////code here + + m_outfile = new wxFileOutputStream(filename); + m_OK = m_outfile->IsOk(); + if (m_OK) + { + m_filename = filename; + m_sub_images = 0; + wxString s; + s = wxT("") + wxString(wxT("\n")); + write(s); + s = wxT(" ") + wxString(wxT("\n")); + write(s); + s = wxT(" \n"), NumStr(float(Width)/dpi*2.54), NumStr(float(Height)/dpi*2.54), Width, Height ); + write(s); + s = wxT("SVG Picture created as ") + wxFileName(filename).GetFullName() + wxT(" ") + wxT("\n"); + write(s); + s = wxString (wxT("Picture generated by wxSVG ")) + wxSVGVersion + wxT(" ")+ wxT("\n"); + write(s); + s = wxT("") + wxString(wxT("\n")); + write(s); + } +} + +KicadSVGFileDCImpl::~KicadSVGFileDCImpl() +{ + wxString s = wxT(" \n \n"); + write(s); + delete m_outfile; +} + +void KicadSVGFileDCImpl::DoGetSizeMM( int *width, int *height ) const +{ + if (width) + *width = wxRound( (double)m_width / m_mm_to_pix_x ); + + if (height) + *height = wxRound( (double)m_height / m_mm_to_pix_y ); +} + +wxSize KicadSVGFileDCImpl::GetPPI() const +{ + return wxSize( wxRound(m_dpi), wxRound(m_dpi) ); +} + +void KicadSVGFileDCImpl::DoDrawLine (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) +{ + if (m_graphics_changed) NewGraphics(); + wxString s; + s.Printf ( wxT(" \n"), x1,y1,x2,y2 ); + if (m_OK) + { + write(s); + } + CalcBoundingBox(x1, y1); + CalcBoundingBox(x2, y2); +} + +void KicadSVGFileDCImpl::DoDrawLines(int n, wxPoint points[], wxCoord xoffset , wxCoord yoffset ) +{ + for ( int i = 1; i < n; i++ ) + { + DoDrawLine ( points [i-1].x + xoffset, points [i-1].y + yoffset, + points [ i ].x + xoffset, points [ i ].y + yoffset ); + } +} + +void KicadSVGFileDCImpl::DoDrawPoint (wxCoord x1, wxCoord y1) +{ + wxString s; + if (m_graphics_changed) NewGraphics(); + s = wxT(" ") + wxString(wxT("\n")); + write(s); + DoDrawLine ( x1,y1,x1,y1 ); + s = wxT(""); + write(s); +} + +void KicadSVGFileDCImpl::DoDrawCheckMark(wxCoord x1, wxCoord y1, wxCoord width, wxCoord height) +{ + wxDCImpl::DoDrawCheckMark (x1,y1,width,height); +} + +void KicadSVGFileDCImpl::DoDrawText(const wxString& text, wxCoord x1, wxCoord y1) +{ + DoDrawRotatedText(text, x1,y1,0.0); +} + +void KicadSVGFileDCImpl::DoDrawRotatedText(const wxString& sText, wxCoord x, wxCoord y, double angle) +{ + //known bug; if the font is drawn in a scaled DC, it will not behave exactly as wxMSW + if (m_graphics_changed) NewGraphics(); + wxString s, sTmp; + + // calculate bounding box + wxCoord w, h, desc; + DoGetTextExtent(sText, &w, &h, &desc); + + double rad = DegToRad(angle); + + // wxT("upper left") and wxT("upper right") + CalcBoundingBox(x, y); + CalcBoundingBox((wxCoord)(x + w*cos(rad)), (wxCoord)(y - h*sin(rad))); + + // wxT("bottom left") and wxT("bottom right") + x += (wxCoord)(h*sin(rad)); + y += (wxCoord)(h*cos(rad)); + CalcBoundingBox(x, y); + CalcBoundingBox((wxCoord)(x + h*sin(rad)), (wxCoord)(y + h*cos(rad))); + + if (m_backgroundMode == wxBRUSHSTYLE_SOLID) + { + // draw background first + // just like DoDrawRectangle except we pass the text color to it and set the border to a 1 pixel wide text background + + sTmp.Printf ( wxT(" "), NumStr(-angle), x,y ); + s += sTmp + wxT("\n"); + write(s); + } + //now do the text itself + s.Printf (wxT(" 0) s += wxT("style=\"font-family:") + sTmp + wxT("; "); + else s += wxT("style=\" "); + + wxString fontweights [3] = { wxT("normal"), wxT("lighter"), wxT("bold") }; + s += wxT("font-weight:") + fontweights[m_font.GetWeight() - wxNORMAL] + wxT("; "); + + wxString fontstyles [5] = { wxT("normal"), wxT("style error"), wxT("style error"), wxT("italic"), wxT("oblique") }; + s += wxT("font-style:") + fontstyles[m_font.GetStyle() - wxNORMAL] + wxT("; "); + + sTmp.Printf (wxT("font-size:%dpt; "), m_font.GetPointSize() ); + s += sTmp; + //text will be solid, unless alpha value isn't opaque in the foreground colour + s += wxBrushString(m_textForegroundColour) + wxPenString(m_textForegroundColour); + sTmp.Printf ( wxT("stroke-width:0;\" transform=\"rotate( %s %d %d ) \" >"), NumStr(-angle), x,y ); + s += sTmp + sText + wxT(" ") + wxT("\n"); + if (m_OK) + { + write(s); + } +} + +void KicadSVGFileDCImpl::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) +{ + DoDrawRoundedRectangle(x, y, width, height, 0); +} + +void KicadSVGFileDCImpl::DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius ) + +{ + if (m_graphics_changed) NewGraphics(); + wxString s; + + s.Printf ( wxT(" \n"); + write(s); + + CalcBoundingBox(x, y); + CalcBoundingBox(x + width, y + height); +} + +void KicadSVGFileDCImpl::DoDrawPolygon(int n, wxPoint points[], + wxCoord xoffset, wxCoord yoffset, + wxPolygonFillMode fillStyle) +{ + if (m_graphics_changed) NewGraphics(); + wxString s, sTmp; + s = wxT(" \n"); + write(s); +} + +void KicadSVGFileDCImpl::DoDrawEllipse (wxCoord x, wxCoord y, wxCoord width, wxCoord height) + +{ + if (m_graphics_changed) NewGraphics(); + + int rh = height /2; + int rw = width /2; + + wxString s; + s.Printf ( wxT(" \n"); + + write(s); + + CalcBoundingBox(x, y); + CalcBoundingBox(x + width, y + height); +} + +void KicadSVGFileDCImpl::DoDrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord xc, wxCoord yc) +{ + /* Draws an arc of a circle, centred on (xc, yc), with starting point + (x1, y1) and ending at (x2, y2). The current pen is used for the outline + and the current brush for filling the shape. + + The arc is drawn in an anticlockwise direction from the start point to + the end point + */ + + if (m_graphics_changed) NewGraphics(); + wxString s; + + // we need the radius of the circle which has two estimates + double r1 = sqrt ( double( (x1-xc)*(x1-xc) ) + double( (y1-yc)*(y1-yc) ) ); + double r2 = sqrt ( double( (x2-xc)*(x2-xc) ) + double( (y2-yc)*(y2-yc) ) ); + + wxASSERT_MSG( (fabs ( r2-r1 ) <= 3), wxT("wxSVGFileDC::DoDrawArc Error in getting radii of circle")); + if ( fabs ( r2-r1 ) > 3 ) //pixels + { + s = wxT(" \n"); + write(s); + } + + double theta1 = atan2((double)(yc-y1),(double)(x1-xc)); + if ( theta1 < 0 ) theta1 = theta1 + M_PI * 2; + double theta2 = atan2((double)(yc-y2), (double)(x2-xc)); + if ( theta2 < 0 ) theta2 = theta2 + M_PI * 2; + if ( theta2 < theta1 ) theta2 = theta2 + M_PI *2; + + int fArc; // flag for large or small arc 0 means less than 180 degrees + if ( fabs(theta2 - theta1) > M_PI ) fArc = 1; else fArc = 0; + + int fSweep = 0; // flag for sweep always 0 + + // Draw a pie: + // the z means close the path and fill + // s.Printf ( wxT(" \n"); + + if (m_OK) + { + write(s); + } +} + +void KicadSVGFileDCImpl::DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,double sa,double ea) +{ + /* + Draws an arc of an ellipse. The current pen is used for drawing the arc + and the current brush is used for drawing the pie. This function is + currently only available for X window and PostScript device contexts. + + x and y specify the x and y coordinates of the upper-left corner of the + rectangle that contains the ellipse. + + width and height specify the width and height of the rectangle that + contains the ellipse. + + start and end specify the start and end of the arc relative to the + three-o'clock position from the center of the rectangle. Angles are + specified in degrees (360 is a complete circle). Positive values mean + counter-clockwise motion. If start is equal to end, a complete ellipse + will be drawn. */ + + //known bug: SVG draws with the current pen along the radii, but this does not happen in wxMSW + + if (m_graphics_changed) NewGraphics(); + + wxString s; + //radius + double rx = w / 2; + double ry = h / 2; + // center + double xc = x + rx; + double yc = y + ry; + + double xs, ys, xe, ye; + xs = xc + rx * cos (DegToRad(sa)); + xe = xc + rx * cos (DegToRad(ea)); + ys = yc - ry * sin (DegToRad(sa)); + ye = yc - ry * sin (DegToRad(ea)); + + ///now same as circle arc... + + double theta1 = atan2(ys-yc, xs-xc); + double theta2 = atan2(ye-yc, xe-xc); + + int fArc; // flag for large or small arc 0 means less than 180 degrees + if ( (theta2 - theta1) > 0 ) fArc = 1; else fArc = 0; + + int fSweep; + if ( fabs(theta2 - theta1) > M_PI) fSweep = 1; else fSweep = 0; + + // Draw a pie: + // s.Printf ( wxT(" \n"); + + if (m_OK) + { + write(s); + } +} + +void KicadSVGFileDCImpl::DoGetTextExtent(const wxString& string, wxCoord *w, wxCoord *h, wxCoord *descent , wxCoord *externalLeading , const wxFont *font) const + +{ + wxScreenDC sDC; + + sDC.SetFont (m_font); + if ( font != NULL ) sDC.SetFont ( *font ); + sDC.GetTextExtent(string, w, h, descent, externalLeading ); +} + +wxCoord KicadSVGFileDCImpl::GetCharHeight() const +{ + wxScreenDC sDC; + sDC.SetFont (m_font); + + return sDC.GetCharHeight(); + +} + +wxCoord KicadSVGFileDCImpl::GetCharWidth() const +{ + wxScreenDC sDC; + sDC.SetFont (m_font); + + return sDC.GetCharWidth(); +} + + +// ---------------------------------------------------------- +// wxSVGFileDCImpl - set functions +// ---------------------------------------------------------- + +void KicadSVGFileDCImpl::SetBackground( const wxBrush &brush ) +{ + m_backgroundBrush = brush; +} + + +void KicadSVGFileDCImpl::SetBackgroundMode( int mode ) +{ + m_backgroundMode = mode; +} + + +void KicadSVGFileDCImpl::SetBrush(const wxBrush& brush) + +{ + m_brush = brush; + + m_graphics_changed = true; +} + + +void KicadSVGFileDCImpl::SetPen(const wxPen& pen) +{ + // width, color, ends, joins : currently implemented + // dashes, stipple : not implemented + m_pen = pen; + + m_graphics_changed = true; +} + +void KicadSVGFileDCImpl::NewGraphics() +{ + wxString s, sBrush, sPenCap, sPenJoin, sPenStyle, sLast, sWarn; + + sBrush = wxT("\n"), + m_pen.GetWidth(), NumStr(m_logicalOriginX), NumStr(m_logicalOriginY), NumStr(m_scaleX), NumStr(m_scaleY) ); + + s = sBrush + sPenCap + sPenJoin + sPenStyle + sLast + wxT("\n") + sWarn; + write(s); + m_graphics_changed = false; +} + + +void KicadSVGFileDCImpl::SetFont(const wxFont& font) + +{ + m_font = font; +} + +// export a bitmap as a raster image in png +bool KicadSVGFileDCImpl::DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, + wxDC* source, wxCoord xsrc, wxCoord ysrc, + wxRasterOperationMode logicalFunc /*= wxCOPY*/, bool useMask /*= false*/, + wxCoord /*xsrcMask = -1*/, wxCoord /*ysrcMask = -1*/) +{ + if (logicalFunc != wxCOPY) + { + wxASSERT_MSG(false, wxT("wxSVGFileDC::DoBlit Call requested nonCopy mode; this is not possible")); + return false; + } + if (useMask != false) + { + wxASSERT_MSG(false, wxT("wxSVGFileDC::DoBlit Call requested false mask; this is not possible")); + return false; + } + wxBitmap myBitmap (width, height); + wxMemoryDC memDC; + memDC.SelectObject( myBitmap ); + memDC.Blit(0, 0, width, height, source, xsrc, ysrc); + memDC.SelectObject( wxNullBitmap ); + DoDrawBitmap(myBitmap, xdest, ydest); + return false; +} + +void KicadSVGFileDCImpl::DoDrawIcon(const class wxIcon & myIcon, wxCoord x, wxCoord y) +{ + wxBitmap myBitmap (myIcon.GetWidth(), myIcon.GetHeight() ); + wxMemoryDC memDC; + memDC.SelectObject( myBitmap ); + memDC.DrawIcon(myIcon,0,0); + memDC.SelectObject( wxNullBitmap ); + DoDrawBitmap(myBitmap, x, y); +} + +void KicadSVGFileDCImpl::DoDrawBitmap(const class wxBitmap & bmp, wxCoord x, wxCoord y , bool WXUNUSED(bTransparent) /*=0*/ ) +{ + if (m_graphics_changed) NewGraphics(); + + wxString sTmp, s, sPNG; + if ( wxImage::FindHandler(wxBITMAP_TYPE_PNG) == NULL ) + wxImage::AddHandler(new wxPNGHandler); + +// create suitable file name + sTmp.Printf ( wxT("_image%d.png"), m_sub_images); + sPNG = m_filename.BeforeLast(wxT('.')) + sTmp; + while (wxFile::Exists(sPNG) ) + { + m_sub_images ++; + sTmp.Printf ( wxT("_image%d.png"), m_sub_images); + sPNG = m_filename.BeforeLast(wxT('.')) + sTmp; + } + +//create copy of bitmap (wxGTK doesn't like saving a constant bitmap) + wxBitmap myBitmap = bmp; +//save it + bool bPNG_OK = myBitmap.SaveFile(sPNG,wxBITMAP_TYPE_PNG); + +// reference the bitmap from the SVG doc +// only use filename & ext + sPNG = sPNG.AfterLast(wxFileName::GetPathSeparator()); + +// reference the bitmap from the SVG doc + int w = myBitmap.GetWidth(); + int h = myBitmap.GetHeight(); + sTmp.Printf ( wxT(" \n"), sPNG.c_str() ); + s += sTmp + wxT("Image from wxSVG ") + wxT("\n"); + + if (m_OK && bPNG_OK) + { + write(s); + } + m_OK = m_outfile->IsOk() && bPNG_OK; +} + +void KicadSVGFileDCImpl::write(const wxString &s) +{ + const wxCharBuffer buf = s.utf8_str(); + m_outfile->Write(buf, strlen((const char *)buf)); + m_OK = m_outfile->IsOk(); +} + +#else -// or true to see the calls being executed #define newline wxString( wxT( "\n" ) ) #define space wxString( wxT( " " ) ) #define semicolon wxString( wxT( ";" ) ) @@ -212,7 +855,6 @@ void wxSVGFileDC::DoDrawLine( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2 ) { write( s ); } - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DrawLine Call executed" ) ); CalcBoundingBox( x1, y1 ); CalcBoundingBox( x2, y2 ); return; @@ -251,7 +893,6 @@ void wxSVGFileDC::DoDrawCheckMark( wxCoord x1, wxCoord y1, wxCoord width, wxCoor void wxSVGFileDC::DoDrawText( const wxString& text, wxCoord x1, wxCoord y1 ) { DoDrawRotatedText( text, x1, y1, 0.0 ); - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DrawText Call executed" ) ); } @@ -283,8 +924,6 @@ void wxSVGFileDC::DoDrawRotatedText( const wxString& sText, wxCoord x, wxCoord y // draw background first // just like DoDrawRectangle except we pass the text color to it and set the border to a 1 pixel wide text background - wxASSERT_MSG( !wxSVG_DEBUG, - wxT( "wxSVGFileDC::Draw Rotated Text Call plotting text background" ) ); sTmp.Printf( wxT( " " ) + newline; write( s ); - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DoDrawRoundedRectangle Call executed" ) ); CalcBoundingBox( x, y ); CalcBoundingBox( x + width, y + height ); } @@ -383,8 +1020,6 @@ void wxSVGFileDC::DoDrawPolygon( int n, s = s + wxT( "\" /> " ); s = s + newline; write( s ); - - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DoDrawPolygon Call executed" ) ); } @@ -403,7 +1038,6 @@ void wxSVGFileDC::DoDrawEllipse( wxCoord x, wxCoord y, wxCoord width, wxCoord he write( s ); - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DoDrawEllipse Call executed" ) ); CalcBoundingBox( x, y ); CalcBoundingBox( x + width, y + height ); } @@ -477,8 +1111,6 @@ void wxSVGFileDC::DoDrawArc( wxCoord x1, { write( s ); } - - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DoDrawArc Call executed" ) ); } @@ -560,8 +1192,6 @@ void wxSVGFileDC::DoDrawEllipticArc( wxCoord x, { write( s ); } - - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DoDrawEllipticArc Call executed" ) ); } @@ -579,7 +1209,6 @@ void wxSVGFileDC::DoGetTextExtent( const wxString& string, if( font != NULL ) sDC.SetFont( *font ); sDC.GetTextExtent( string, w, h, descent, externalLeading ); - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::GetTextExtent Call executed" ) ); } @@ -590,7 +1219,6 @@ wxCoord wxSVGFileDC::GetCharHeight() const sDC.SetFont( m_font ); - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::GetCharHeight Call executing" ) ); return sDC.GetCharHeight(); } @@ -601,7 +1229,6 @@ wxCoord wxSVGFileDC::GetCharWidth() const sDC.SetFont( m_font ); - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::GetCharWidth Call executing" ) ); return sDC.GetCharWidth(); } @@ -627,7 +1254,6 @@ void wxSVGFileDC::SetBrush( const wxBrush& brush ) m_brush = brush; m_graphics_changed = true; - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::SetBrush Call executed" ) ); } @@ -638,7 +1264,6 @@ void wxSVGFileDC::SetPen( const wxPen& pen ) m_pen = pen; m_graphics_changed = true; - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::SetPen Call executed" ) ); } @@ -711,7 +1336,6 @@ void wxSVGFileDC::NewGraphics() s = sBrush + sPenCap + sPenJoin + sPenStyle + sLast + newline + sWarn; write( s ); m_graphics_changed = false; - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::NewGraphics Call executed" ) ); } @@ -719,8 +1343,6 @@ void wxSVGFileDC::SetFont( const wxFont& font ) { m_font = font; - - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::SetFont Call executed" ) ); } @@ -856,7 +1478,6 @@ bool wxSVGFileDC::DoBlit( wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord h memDC.Blit( 0, 0, width, height, source, xsrc, ysrc ); memDC.SelectObject( wxNullBitmap ); DoDrawBitmap( myBitmap, xdest, ydest ); - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DoBlit Call executed" ) ); return false; } @@ -870,7 +1491,6 @@ void wxSVGFileDC::DoDrawIcon( const class wxIcon& myIcon, wxCoord x, wxCoord y ) memDC.DrawIcon( myIcon, 0, 0 ); memDC.SelectObject( wxNullBitmap ); DoDrawBitmap( myBitmap, x, y ); - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DoDrawIcon Call executed" ) ); return; } @@ -915,7 +1535,6 @@ void wxSVGFileDC::DoDrawBitmap( const class wxBitmap& bmp, write( s ); } m_OK = m_outfile->Ok() && bPNG_OK; - wxASSERT_MSG( !wxSVG_DEBUG, wxT( "wxSVGFileDC::DoDrawBitmap Call executed" ) ); return; } @@ -981,10 +1600,4 @@ void wxSVGFileDC::write( const wxString& s ) m_OK = m_outfile->Ok(); } - -#ifdef __BORLANDC__ -#pragma warn .rch -#pragma warn .ccc -#endif - #endif // wxCHECK_VERSION diff --git a/eeschema/dialogs/dialog_SVG_print.cpp b/eeschema/dialogs/dialog_SVG_print.cpp index 5d90897ae4..3f205245bb 100644 --- a/eeschema/dialogs/dialog_SVG_print.cpp +++ b/eeschema/dialogs/dialog_SVG_print.cpp @@ -217,7 +217,7 @@ bool DIALOG_SVG_PRINT::DrawSVGPage( EDA_DRAW_FRAME* frame, LOCALE_IO toggle; float dpi = (float) frame->GetInternalUnits(); - wxSVGFileDC dc( FullFileName, sheetSize.x, sheetSize.y, dpi ); + KicadSVGFileDC dc( FullFileName, sheetSize.x, sheetSize.y, dpi ); EDA_RECT tmp = *panel->GetClipBox(); GRResetPenAndBrush( &dc ); diff --git a/include/dcsvg.h b/include/dcsvg.h index a47e89f3bd..2f8edc825b 100644 --- a/include/dcsvg.h +++ b/include/dcsvg.h @@ -1,19 +1,213 @@ -#if wxCHECK_VERSION( 2, 9, 0 ) -// Do nothing, because wxWidgets 3 supports the SVG format -// previously, was a contribution library, not included in wxWidgets base -#include -#else -#ifndef __DCSVG_H -#define __DCSVG_H +#ifndef __KICAD_DCSVG_H +#define __KICAD_DCSVG_H + +#include #include #include #define wxSVGVersion wxT( "v0101" ) -#ifdef __BORLANDC__ -#pragma warn -rch -#pragma warn -ccc -#endif + +#if wxCHECK_VERSION( 2, 9, 0 ) + +// We could do nothing, because wxWidgets 3 supports the SVG format +// (previously, it was a contribution library, not included in wxWidgets) +// However arcs are drawn as pies, and we must change it. +// Unfortunately most of functions are private, and we cannot derive +// our KicadSVGFileDCImpl from wxSVGFileDCImpl +// and just override the 2 incorrect functions +// Just wxWidget dcsvg is copied here and 2 functions are modified: +// KicadSVGFileDCImpl::DoDrawArc() and KicadSVGFileDCImpl::DoDrawEllipticArc() +// Also note: SetLogicalFunction() does not set an error in debug mode + +class WXDLLIMPEXP_FWD_BASE wxFileOutputStream; +class WXDLLIMPEXP_FWD_CORE KicadSVGFileDC; + +class WXDLLIMPEXP_CORE KicadSVGFileDCImpl : public wxDCImpl +{ +public: + KicadSVGFileDCImpl( KicadSVGFileDC *owner, const wxString &filename, + int width=320, int height=240, double dpi=72.0 ); + + virtual ~KicadSVGFileDCImpl(); + + bool IsOk() const { return m_OK; } + + virtual bool CanDrawBitmap() const { return true; } + virtual bool CanGetTextExtent() const { return true; } + + virtual int GetDepth() const + { + wxFAIL_MSG(wxT("wxSVGFILEDC::GetDepth Call not implemented")); + return -1; + } + + virtual void Clear() + { + wxFAIL_MSG(wxT("wxSVGFILEDC::Clear() Call not implemented \nNot sensible for an output file?")); + } + + virtual void DestroyClippingRegion() + { + wxFAIL_MSG(wxT("wxSVGFILEDC::void Call not yet implemented")); + } + + virtual wxCoord GetCharHeight() const; + virtual wxCoord GetCharWidth() const; + + virtual void SetClippingRegion(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), + wxCoord WXUNUSED(w), wxCoord WXUNUSED(h)) + { + wxFAIL_MSG(wxT("wxSVGFILEDC::SetClippingRegion not implemented")); + } + + virtual void SetPalette(const wxPalette& WXUNUSED(palette)) + { + wxFAIL_MSG(wxT("wxSVGFILEDC::SetPalette not implemented")); + } + + virtual void GetClippingBox(wxCoord *WXUNUSED(x), wxCoord *WXUNUSED(y), + wxCoord *WXUNUSED(w), wxCoord *WXUNUSED(h)) + { + wxFAIL_MSG(wxT("wxSVGFILEDC::GetClippingBox not implemented")); + } + + virtual void SetLogicalFunction(wxRasterOperationMode WXUNUSED(function)) + { +// wxFAIL_MSG(wxT("KicadSVGFILEDC::SetLogicalFunction not implemented")); + } + + virtual wxRasterOperationMode GetLogicalFunction() const + { + wxFAIL_MSG(wxT("wxSVGFILEDC::GetLogicalFunction() not implemented")); + return wxCOPY; + } + + virtual void SetBackground( const wxBrush &brush ); + virtual void SetBackgroundMode( int mode ); + virtual void SetBrush(const wxBrush& brush); + virtual void SetFont(const wxFont& font); + virtual void SetPen(const wxPen& pen); + +private: + virtual bool DoGetPixel(wxCoord, wxCoord, wxColour *) const + { + wxFAIL_MSG(wxT("wxSVGFILEDC::DoGetPixel Call not implemented")); + return true; + } + + virtual bool DoBlit(wxCoord, wxCoord, wxCoord, wxCoord, wxDC *, + wxCoord, wxCoord, wxRasterOperationMode = wxCOPY, + bool = 0, int = -1, int = -1); + + virtual void DoCrossHair(wxCoord, wxCoord) + { + wxFAIL_MSG(wxT("wxSVGFILEDC::CrossHair Call not implemented")); + } + + virtual void DoDrawArc(wxCoord, wxCoord, wxCoord, wxCoord, wxCoord, wxCoord); + + virtual void DoDrawBitmap(const wxBitmap &, wxCoord, wxCoord, bool = false); + + virtual void DoDrawCheckMark(wxCoord x, wxCoord y, wxCoord w, wxCoord h); + + virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord w, wxCoord h); + + virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, + double sa, double ea); + + virtual void DoDrawIcon(const wxIcon &, wxCoord, wxCoord); + + virtual void DoDrawLine (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2); + + virtual void DoDrawLines(int n, wxPoint points[], + wxCoord xoffset = 0, wxCoord yoffset = 0); + + virtual void DoDrawPoint(wxCoord, wxCoord); + + virtual void DoDrawPolygon(int n, wxPoint points[], + wxCoord xoffset, wxCoord yoffset, + wxPolygonFillMode fillStyle); + + virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord w, wxCoord h); + + virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, + double angle); + + virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y, + wxCoord w, wxCoord h, + double radius = 20) ; + + virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y); + + virtual bool DoFloodFill(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), + const wxColour& WXUNUSED(col), + wxFloodFillStyle WXUNUSED(style) = wxFLOOD_SURFACE) + { + wxFAIL_MSG(wxT("wxSVGFILEDC::DoFloodFill Call not implemented")); + return false; + } + + virtual void DoGetSize(int * x, int *y) const + { + if ( x ) + *x = m_width; + if ( y ) + *y = m_height; + } + + virtual void DoGetTextExtent(const wxString& string, wxCoord *w, wxCoord *h, + wxCoord *descent = NULL, + wxCoord *externalLeading = NULL, + const wxFont *font = NULL) const; + + virtual void DoSetDeviceClippingRegion(const wxRegion& WXUNUSED(region)) + { + wxFAIL_MSG(wxT("wxSVGFILEDC::DoSetDeviceClippingRegion not yet implemented")); + } + + virtual void DoSetClippingRegion( int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(width), int WXUNUSED(height) ) + { + wxFAIL_MSG(wxT("wxSVGFILEDC::DoSetClippingRegion not yet implemented")); + } + + virtual void DoGetSizeMM( int *width, int *height ) const; + + virtual wxSize GetPPI() const; + + void Init (const wxString &filename, int width, int height, double dpi); + + void NewGraphics(); + + void write( const wxString &s ); + +private: + wxFileOutputStream *m_outfile; + wxString m_filename; + int m_sub_images; // number of png format images we have + bool m_OK; + bool m_graphics_changed; + int m_width, m_height; + double m_dpi; + +private: + DECLARE_ABSTRACT_CLASS(KicadSVGFileDCImpl) +}; + + +class WXDLLIMPEXP_CORE KicadSVGFileDC : public wxDC +{ +public: + KicadSVGFileDC(const wxString& filename, + int width = 320, + int height = 240, + double dpi = 72.0) + : wxDC(new KicadSVGFileDCImpl(this, filename, width, height, dpi)) + { + } +}; + +#else class wxSVGFileDC : public wxDC { @@ -387,7 +581,8 @@ public: void SetFont( const wxFont& font ); void SetLogicalFunction( int WXUNUSED (function) ) - { /*wxASSERT_MSG (false, wxT("wxSVGFILEDC::SetLogicalFunction Call implemented")); */ + { + //wxASSERT_MSG (false, wxT("wxSVGFILEDC::SetLogicalFunction not implemented")); return; }; @@ -414,10 +609,8 @@ public: }; }; -#ifdef __BORLANDC__ -#pragma warn .rch -#pragma warn .ccc -#endif -#endif +typedef KicadSVGFileDC wxSVGFileDC; -#endif // wxCHECK_VERSION +#endif // wxCHECK_VERSION + +#endif // __KICAD_DCSVG_H diff --git a/pcbnew/dialogs/dialog_SVG_print.cpp b/pcbnew/dialogs/dialog_SVG_print.cpp index a9d444fd60..b9d1fcfb4c 100644 --- a/pcbnew/dialogs/dialog_SVG_print.cpp +++ b/pcbnew/dialogs/dialog_SVG_print.cpp @@ -250,7 +250,7 @@ bool DIALOG_SVG_PRINT::DrawPage( const wxString& FullFileName, // paper pageSize is in internal units, either nanometers or deci-mils wxSize pageSize = m_Parent->GetPageSizeIU(); - wxSVGFileDC dc( FullFileName, pageSize.x, pageSize.y, dpi ); + KicadSVGFileDC dc( FullFileName, pageSize.x, pageSize.y, dpi ); EDA_RECT tmp = *panel->GetClipBox(); GRResetPenAndBrush( &dc ); From 09a999c8a1f255563fe8327554544ef99ff789c1 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Thu, 8 Mar 2012 18:47:23 +0100 Subject: [PATCH 08/68] All: added a standard exit dialog called by int DisplayExitDialog( wxWindow* aParent, const wxString& aMessage ) Called when closing pcbnew, cvpcb and eeschema. Minor code cleaning: remove duplicate or not used strings (mainly file extensions and wildcards) --- common/CMakeLists.txt | 1 + common/confirm.cpp | 28 + common/dialogs/dialog_exit_base.cpp | 96 +++ common/dialogs/dialog_exit_base.fbp | 804 ++++++++++++++++++ common/dialogs/dialog_exit_base.h | 61 ++ common/drawpanel.cpp | 2 +- common/footprint_info.cpp | 3 +- common/pcbcommon.cpp | 9 - common/wildcards_and_files_ext.cpp | 8 + cvpcb/cvframe.cpp | 9 +- cvpcb/dialogs/dialog_cvpcb_config.cpp | 2 +- cvpcb/loadcmp.cpp | 3 +- eeschema/dialogs/dialog_schematic_find.cpp | 1 + eeschema/schframe.cpp | 12 +- include/confirm.h | 15 + include/pcbcommon.h | 6 - include/wildcards_and_files_ext.h | 5 + .../dialog_edit_module_for_BoardEditor.cpp | 7 +- .../dialog_edit_module_for_Modedit.cpp | 7 +- pcbnew/dialogs/dialog_netlist.cpp | 4 +- .../dialog_pcbnew_config_libs_and_paths.cpp | 4 +- pcbnew/librairi.cpp | 14 +- pcbnew/loadcmp.cpp | 3 +- pcbnew/modedit.cpp | 7 +- pcbnew/moduleframe.cpp | 3 +- pcbnew/modview.cpp | 5 +- pcbnew/modview_frame.cpp | 5 +- pcbnew/pcbframe.cpp | 10 +- pcbnew/pcbnew.cpp | 3 - pcbnew/pcbnew.h | 14 +- pcbnew/xchgmod.cpp | 7 +- 31 files changed, 1084 insertions(+), 74 deletions(-) create mode 100644 common/dialogs/dialog_exit_base.cpp create mode 100644 common/dialogs/dialog_exit_base.fbp create mode 100644 common/dialogs/dialog_exit_base.h diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 3749bc051d..d0daea73f5 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -15,6 +15,7 @@ set(COMMON_ABOUT_DLG_SRCS dialog_about/dialog_about.cpp dialog_about/dialog_about_base.cpp dialogs/dialog_display_info_HTML_base.cpp + dialogs/dialog_exit_base.cpp dialogs/dialog_image_editor.cpp dialogs/dialog_image_editor_base.cpp dialogs/dialog_get_component.cpp diff --git a/common/confirm.cpp b/common/confirm.cpp index 95a8a96616..4c480f48af 100644 --- a/common/confirm.cpp +++ b/common/confirm.cpp @@ -8,7 +8,35 @@ #include #include #include +#include +#include +class DIALOG_EXIT: public DIALOG_EXIT_BASE +{ +public: + DIALOG_EXIT( wxWindow * parent, const wxString& aMessage ) : + DIALOG_EXIT_BASE( parent ) + { + m_bitmap->SetBitmap( KiBitmap( cancel_xpm ) ); + if( ! aMessage.IsEmpty() ) + m_TextInfo->SetLabel( aMessage ); + GetSizer()->Fit( this ); + GetSizer()->SetSizeHints( this ); + }; + +private: + void OnSaveAndExit( wxCommandEvent& event ) { EndModal( wxID_OK ); } + void OnCancel( wxCommandEvent& event ) { EndModal( wxID_CANCEL ); } + void OnExitNoSave( wxCommandEvent& event ) { EndModal( wxID_NO ); } +}; + +int DisplayExitDialog( wxWindow* parent, const wxString& aMessage ) +{ + DIALOG_EXIT dlg( parent, aMessage ); + + int ret = dlg.ShowModal(); + return ret; +} void DisplayError( wxWindow* parent, const wxString& text, int displaytime ) { diff --git a/common/dialogs/dialog_exit_base.cpp b/common/dialogs/dialog_exit_base.cpp new file mode 100644 index 0000000000..4d0205dafc --- /dev/null +++ b/common/dialogs/dialog_exit_base.cpp @@ -0,0 +1,96 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Feb 9 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_exit_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_EXIT_BASE::DIALOG_EXIT_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bSizerMain; + bSizerMain = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerUpper; + bSizerUpper = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizerBitmap; + bSizerBitmap = new wxBoxSizer( wxVERTICAL ); + + m_bitmap = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerBitmap->Add( m_bitmap, 0, wxALL, 5 ); + + + bSizerUpper->Add( bSizerBitmap, 0, 0, 5 ); + + wxBoxSizer* bSizerMessages; + bSizerMessages = new wxBoxSizer( wxVERTICAL ); + + m_TextInfo = new wxStaticText( this, wxID_ANY, _("Save the changes before closing?"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextInfo->Wrap( -1 ); + m_TextInfo->SetFont( wxFont( 8, 74, 90, 92, false, wxT("MS Shell Dlg 2") ) ); + + bSizerMessages->Add( m_TextInfo, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + + + bSizerMessages->Add( 10, 10, 0, 0, 5 ); + + m_staticText2 = new wxStaticText( this, wxID_ANY, _("If you don't save, all your changes will be permanently lost."), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText2->Wrap( -1 ); + bSizerMessages->Add( m_staticText2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + + + bSizerUpper->Add( bSizerMessages, 1, wxEXPAND, 5 ); + + + bSizerMain->Add( bSizerUpper, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizerLower; + bSizerLower = new wxBoxSizer( wxVERTICAL ); + + m_staticline = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizerLower->Add( m_staticline, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxBoxSizer* bSizerButtons; + bSizerButtons = new wxBoxSizer( wxHORIZONTAL ); + + m_buttonSaveAndExit = new wxButton( this, wxID_ANY, _("Save and Exit"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButtons->Add( m_buttonSaveAndExit, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_buttonExitNoSave = new wxButton( this, wxID_ANY, _("Exit without Save"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButtons->Add( m_buttonExitNoSave, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButtons->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + + bSizerLower->Add( bSizerButtons, 0, wxALIGN_RIGHT, 5 ); + + + bSizerMain->Add( bSizerLower, 0, wxEXPAND, 5 ); + + + this->SetSizer( bSizerMain ); + this->Layout(); + + this->Centre( wxBOTH ); + + // Connect Events + m_buttonSaveAndExit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EXIT_BASE::OnSaveAndExit ), NULL, this ); + m_buttonExitNoSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EXIT_BASE::OnExitNoSave ), NULL, this ); + m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EXIT_BASE::OnCancel ), NULL, this ); +} + +DIALOG_EXIT_BASE::~DIALOG_EXIT_BASE() +{ + // Disconnect Events + m_buttonSaveAndExit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EXIT_BASE::OnSaveAndExit ), NULL, this ); + m_buttonExitNoSave->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EXIT_BASE::OnExitNoSave ), NULL, this ); + m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EXIT_BASE::OnCancel ), NULL, this ); + +} diff --git a/common/dialogs/dialog_exit_base.fbp b/common/dialogs/dialog_exit_base.fbp new file mode 100644 index 0000000000..a5702a029e --- /dev/null +++ b/common/dialogs/dialog_exit_base.fbp @@ -0,0 +1,804 @@ + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_exit_base + 1000 + none + 1 + dialog_exit_base + + . + + 1 + 1 + 1 + 0 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + DIALOG_EXIT_BASE + 1 + + + 1 + + Resizable + 1 + 345,155 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bSizerMain + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + + bSizerUpper + wxHORIZONTAL + none + + 5 + + 0 + + + bSizerBitmap + wxVERTICAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmap + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizerMessages + wxVERTICAL + none + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + MS Shell Dlg 2,90,92,8,74,0 + 0 + 0 + wxID_ANY + Save the changes before closing? + + 0 + + + 0 + + 1 + m_TextInfo + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + 10 + protected + 10 + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + If you don't save, all your changes will be permanently lost. + + 0 + + + 0 + + 1 + m_staticText2 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bSizerLower + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_staticline + 1 + + + protected + 1 + + Resizable + 1 + + wxLI_HORIZONTAL + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_RIGHT + 0 + + + bSizerButtons + wxHORIZONTAL + none + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Save and Exit + + 0 + + + 0 + + 1 + m_buttonSaveAndExit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSaveAndExit + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Exit without Save + + 0 + + + 0 + + 1 + m_buttonExitNoSave + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnExitNoSave + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_CANCEL + Cancel + + 0 + + + 0 + + 1 + m_buttonCancel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCancel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/dialogs/dialog_exit_base.h b/common/dialogs/dialog_exit_base.h new file mode 100644 index 0000000000..43ebdc5e9f --- /dev/null +++ b/common/dialogs/dialog_exit_base.h @@ -0,0 +1,61 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Feb 9 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_EXIT_BASE_H__ +#define __DIALOG_EXIT_BASE_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_EXIT_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_EXIT_BASE : public wxDialog +{ + private: + + protected: + wxStaticBitmap* m_bitmap; + wxStaticText* m_TextInfo; + wxStaticText* m_staticText2; + wxStaticLine* m_staticline; + wxButton* m_buttonSaveAndExit; + wxButton* m_buttonExitNoSave; + wxButton* m_buttonCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnSaveAndExit( wxCommandEvent& event ) { event.Skip(); } + virtual void OnExitNoSave( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_EXIT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 345,155 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_EXIT_BASE(); + +}; + +#endif //__DIALOG_EXIT_BASE_H__ diff --git a/common/drawpanel.cpp b/common/drawpanel.cpp index 0514b6a424..b4ff7f47e0 100644 --- a/common/drawpanel.cpp +++ b/common/drawpanel.cpp @@ -1,7 +1,7 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2009 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 2007-2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * diff --git a/common/footprint_info.cpp b/common/footprint_info.cpp index fead30cbb2..0907ca81a1 100644 --- a/common/footprint_info.cpp +++ b/common/footprint_info.cpp @@ -22,6 +22,7 @@ #include #include +#include /* Read the list of libraries (*.mod files) @@ -53,7 +54,7 @@ bool FOOTPRINT_LIST::ReadFootprintFiles( wxArrayString & aFootprintsLibNames ) for( unsigned ii = 0; ii < aFootprintsLibNames.GetCount(); ii++ ) { filename = aFootprintsLibNames[ii]; - filename.SetExt( ModuleFileExtension ); + filename.SetExt( FootprintLibFileExtension ); libname = wxGetApp().FindLibraryPath( filename ); diff --git a/common/pcbcommon.cpp b/common/pcbcommon.cpp index 7d0d53bb4a..058af23ea9 100644 --- a/common/pcbcommon.cpp +++ b/common/pcbcommon.cpp @@ -81,15 +81,6 @@ int g_TabAllCopperLayerMask[NB_COPPER_LAYERS] = { DISPLAY_OPTIONS DisplayOpt; /* Display options for board items */ -/* PCB file name extension definitions. */ -wxString NetExtBuffer( wxT( "net" ) ); -wxString NetCmpExtBuffer( wxT( "cmp" ) ); -wxString g_Shapes3DExtBuffer( wxT( "wrl" ) ); -const wxString ModuleFileExtension( wxT( "mod" ) ); - -/* PCB file name wild card definitions. */ -const wxString ModuleFileWildcard( _( "KiCad footprint library files (*.mod)|*.mod" ) ); - int g_RotationAngle; int g_AnchorColor = BLUE; diff --git a/common/wildcards_and_files_ext.cpp b/common/wildcards_and_files_ext.cpp index ba15f597cf..b95206625f 100644 --- a/common/wildcards_and_files_ext.cpp +++ b/common/wildcards_and_files_ext.cpp @@ -32,9 +32,12 @@ * file extensions and wildcards used in kicad. */ +const wxString VrmlFileExtension( wxT( "wrl" ) ); + const wxString ProjectFileExtension( wxT( "pro" ) ); const wxString SchematicFileExtension( wxT( "sch" ) ); const wxString NetlistFileExtension( wxT( "net" ) ); +const wxString FootprintLibFileExtension( wxT( "mod" ) ); const wxString ComponentFileExtension( wxT( "cmp" ) ); const wxString GerberFileExtension( wxT( "pho" ) ); const wxString PcbFileExtension( wxT( "brd" ) ); @@ -44,11 +47,15 @@ const wxString DrillFileExtension( wxT( "drl" ) ); const wxString ReportFileExtension( wxT( "rpt" ) ); const wxString FootprintPlaceFileExtension( wxT( "pos" ) ); +// These strings are wildcards for file selection dialogs. +// Because thes are static, one should explicitely call wxGetTranslation +// to display them translated. const wxString ProjectFileWildcard( _( "KiCad project files (*.pro)|*.pro" ) ); const wxString SchematicFileWildcard( _( "KiCad schematic files (*.sch)|*.sch" ) ); const wxString NetlistFileWildcard( _( "KiCad netlist files (*.net)|*.net" ) ); const wxString GerberFileWildcard( _( "Gerber files (*.pho)|*.pho" ) ); const wxString PcbFileWildcard( _( "KiCad printed circuit board files (*.brd)|*.brd" ) ); +const wxString FootprintLibFileWildcard( _( "KiCad footprint library file (*.mod)|*.mod" ) ); const wxString PdfFileWildcard( _( "Portable document format files (*.pdf)|*.pdf" ) ); const wxString MacrosFileWildcard( _( "KiCad recorded macros (*.mcr)|*.mcr" ) ); const wxString AllFilesWildcard( _( "All files (*)|*" ) ); @@ -59,3 +66,4 @@ const wxString ComponentFileWildcard( _( "KiCad cmp/footprint link files (*.cmp) const wxString DrillFileWildcard( _( "Drill files (*.drl)|*.drl;*.DRL" ) ); const wxString ReportFileWildcard = _( "Report files (*.rpt)|*.rpt" ); const wxString FootprintPlaceFileWildcard = _( "Footprint place files (*.pos)|*.pos" ); +const wxString VrmlFileWildcard( _( "Vrml files (*.wrl)|*.wrl" ) ); diff --git a/cvpcb/cvframe.cpp b/cvpcb/cvframe.cpp index 0903bb9bf9..84172ef68e 100644 --- a/cvpcb/cvframe.cpp +++ b/cvpcb/cvframe.cpp @@ -240,13 +240,8 @@ void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event ) if( m_modified ) { - unsigned ii; - wxMessageDialog dialog( this, - _( "Component to Footprint links modified.\nSave before exit ?" ), - _( "Confirmation" ), - wxYES_NO | wxCANCEL | wxICON_EXCLAMATION | wxYES_DEFAULT ); - - ii = dialog.ShowModal(); + wxString msg = _( "Component to Footprint links modified.\nSave before exit ?" ); + int ii = DisplayExitDialog( this, msg ); switch( ii ) { diff --git a/cvpcb/dialogs/dialog_cvpcb_config.cpp b/cvpcb/dialogs/dialog_cvpcb_config.cpp index 5fc56bfe83..b53bec3ea5 100644 --- a/cvpcb/dialogs/dialog_cvpcb_config.cpp +++ b/cvpcb/dialogs/dialog_cvpcb_config.cpp @@ -299,7 +299,7 @@ void DIALOG_CVPCB_CONFIG::OnAddOrInsertLibClick( wxCommandEvent& event ) if( (event.GetId() == ID_ADD_LIB) || (event.GetId() == ID_INSERT_LIB) ) { list = m_ListLibr; - wildcard = ModuleFileWildcard; + wildcard = FootprintLibFileWildcard; } wxArrayInt selections; diff --git a/cvpcb/loadcmp.cpp b/cvpcb/loadcmp.cpp index 0e212776dc..0bd78719a9 100644 --- a/cvpcb/loadcmp.cpp +++ b/cvpcb/loadcmp.cpp @@ -19,6 +19,7 @@ #include #include #include +#include /** @@ -42,7 +43,7 @@ MODULE* DISPLAY_FOOTPRINTS_FRAME::Get_Module( const wxString& CmpName ) for( ii = 0; ii < parent->m_ModuleLibNames.GetCount(); ii++ ) { fn = parent->m_ModuleLibNames[ii]; - fn.SetExt( ModuleFileExtension ); + fn.SetExt( FootprintLibFileExtension ); tmp = wxGetApp().FindLibraryPath( fn ); diff --git a/eeschema/dialogs/dialog_schematic_find.cpp b/eeschema/dialogs/dialog_schematic_find.cpp index 0cfe86b1ba..d5d23ec283 100644 --- a/eeschema/dialogs/dialog_schematic_find.cpp +++ b/eeschema/dialogs/dialog_schematic_find.cpp @@ -78,6 +78,7 @@ DIALOG_SCH_FIND::DIALOG_SCH_FIND( wxWindow* aParent, wxFindReplaceData* aData, // Adjust the height of the dialog to prevent controls from being hidden when // switching between the find and find/replace modes of the dialog. This ignores // the users preferred height if any of the controls would be hidden. + GetSizer()->SetSizeHints( this ); wxSize size = aSize; if( aSize != wxDefaultSize ) diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index 6022d6d391..6a660b7dc0 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -422,12 +423,13 @@ void SCH_EDIT_FRAME::OnCloseWindow( wxCloseEvent& aEvent ) if( SheetList.IsModified() ) { - wxMessageDialog dialog( this, - _( "Schematic modified, Save before exit?" ), - _( "Confirmation" ), wxYES_NO | wxCANCEL | - wxICON_EXCLAMATION | wxYES_DEFAULT ); + wxString msg; + msg.Printf( _("Save the changes in\n<%s>\nbefore closing?"), + GetChars( g_RootSheet->GetScreen()->GetFileName() ) ); - switch( dialog.ShowModal() ) + int ii = DisplayExitDialog( this, msg ); + + switch( ii ) { case wxID_CANCEL: aEvent.Veto(); diff --git a/include/confirm.h b/include/confirm.h index f00208de54..8a1ef11758 100644 --- a/include/confirm.h +++ b/include/confirm.h @@ -8,6 +8,21 @@ #ifndef __INCLUDE__CONFIRM_H__ #define __INCLUDE__CONFIRM_H__ 1 +/** + * Function DisplayExitDialog + * displays a dialog with 3 buttons: + * Save and Exit + * Cancel + * Exit without save + * + * @param aParent = the parent window + * @param aMessage = the main message to put in dialog + * If empty, the standard message will be shown: + * Save the changes before closing? + * @return wxID_YES, wxID_CANCEL, wxID_NO. + */ +int DisplayExitDialog( wxWindow* aParent, const wxString& aMessage ); + /** * Function DisplayError diff --git a/include/pcbcommon.h b/include/pcbcommon.h index 0cc432bde7..1fc354e525 100644 --- a/include/pcbcommon.h +++ b/include/pcbcommon.h @@ -35,12 +35,6 @@ extern int g_TabAllCopperLayerMask[NB_COPPER_LAYERS]; extern DISPLAY_OPTIONS DisplayOpt; -extern wxString NetExtBuffer; -extern wxString NetCmpExtBuffer; -extern const wxString ModuleFileExtension; - -extern const wxString ModuleFileWildcard; - extern int g_CurrentVersionPCB; extern int g_RotationAngle; diff --git a/include/wildcards_and_files_ext.h b/include/wildcards_and_files_ext.h index b1ae8c55e9..e6a01c9c7e 100644 --- a/include/wildcards_and_files_ext.h +++ b/include/wildcards_and_files_ext.h @@ -41,11 +41,13 @@ * that they cannot be changed. * Mainly wild cards are most of time translated when displayed */ +extern const wxString VrmlFileExtension; extern const wxString ProjectFileExtension; extern const wxString SchematicFileExtension; extern const wxString NetlistFileExtension; extern const wxString GerberFileExtension; extern const wxString PcbFileExtension; +extern const wxString FootprintLibFileExtension; extern const wxString PdfFileExtension; extern const wxString MacrosFileExtension; extern const wxString ComponentFileExtension; @@ -67,5 +69,8 @@ extern const wxString ComponentFileWildcard; extern const wxString DrillFileWildcard; extern const wxString ReportFileWildcard; extern const wxString FootprintPlaceFileWildcard; +extern const wxString VrmlFileWildcard; +extern const wxString DocModulesFileName; +extern const wxString FootprintLibFileWildcard; #endif // INCLUDE_WILDCARDS_AND_FILES_EXT_H_ diff --git a/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp b/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp index 783fbafb1c..540be1f5cb 100644 --- a/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp +++ b/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp @@ -17,6 +17,7 @@ #include #include +#include DIALOG_MODULE_BOARD_EDITOR::DIALOG_MODULE_BOARD_EDITOR( PCB_EDIT_FRAME* aParent, @@ -404,18 +405,16 @@ void DIALOG_MODULE_BOARD_EDITOR::Browse3DLib( wxCommandEvent& event ) { wxString fullfilename, shortfilename; wxString fullpath; - wxString mask = wxT( "*" ); fullpath = wxGetApp().ReturnLastVisitedLibraryPath( LIB3D_PATH ); - mask += g_Shapes3DExtBuffer; #ifdef __WINDOWS__ fullpath.Replace( wxT( "/" ), wxT( "\\" ) ); #endif fullfilename = EDA_FileSelector( _( "3D Shape:" ), fullpath, wxEmptyString, - g_Shapes3DExtBuffer, - mask, + VrmlFileExtension, + wxGetTranslation( VrmlFileWildcard ), this, wxFD_OPEN, true diff --git a/pcbnew/dialogs/dialog_edit_module_for_Modedit.cpp b/pcbnew/dialogs/dialog_edit_module_for_Modedit.cpp index 546b927369..3274aa7abb 100644 --- a/pcbnew/dialogs/dialog_edit_module_for_Modedit.cpp +++ b/pcbnew/dialogs/dialog_edit_module_for_Modedit.cpp @@ -16,6 +16,7 @@ #include #include #include +#include DIALOG_MODULE_MODULE_EDITOR::DIALOG_MODULE_MODULE_EDITOR( FOOTPRINT_EDIT_FRAME* aParent, @@ -259,18 +260,16 @@ void DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DLib( wxCommandEvent& event ) { wxString fullfilename, shortfilename; wxString fullpath; - wxString mask = wxT( "*" ); fullpath = wxGetApp().ReturnLastVisitedLibraryPath( LIB3D_PATH ); - mask += g_Shapes3DExtBuffer; #ifdef __WINDOWS__ fullpath.Replace( wxT( "/" ), wxT( "\\" ) ); #endif fullfilename = EDA_FileSelector( _( "3D Shape:" ), fullpath, wxEmptyString, - g_Shapes3DExtBuffer, - mask, + VrmlFileExtension, + wxGetTranslation( VrmlFileWildcard ), this, wxFD_OPEN, true diff --git a/pcbnew/dialogs/dialog_netlist.cpp b/pcbnew/dialogs/dialog_netlist.cpp index 25d690e8b6..6c7c07ed47 100644 --- a/pcbnew/dialogs/dialog_netlist.cpp +++ b/pcbnew/dialogs/dialog_netlist.cpp @@ -29,7 +29,7 @@ void PCB_EDIT_FRAME::InstallNetlistFrame( wxDC* DC ) if( !fn.FileExists() ) { fn = GetScreen()->GetFileName(); - fn.SetExt( NetExtBuffer ); + fn.SetExt( NetlistFileExtension ); lastNetlistName = fn.GetFullPath(); } @@ -102,7 +102,7 @@ void DIALOG_NETLIST::OnOpenNelistClick( wxCommandEvent& event ) void DIALOG_NETLIST::OnReadNetlistFileClick( wxCommandEvent& event ) { wxFileName fn = m_NetlistFilenameCtrl->GetValue(); - fn.SetExt( NetCmpExtBuffer ); + fn.SetExt( ComponentFileExtension ); m_Parent->ReadPcbNetlist( m_NetlistFilenameCtrl->GetValue(), fn.GetFullPath(), m_MessageWindow, diff --git a/pcbnew/dialogs/dialog_pcbnew_config_libs_and_paths.cpp b/pcbnew/dialogs/dialog_pcbnew_config_libs_and_paths.cpp index db74fe5499..684a5d9f6c 100644 --- a/pcbnew/dialogs/dialog_pcbnew_config_libs_and_paths.cpp +++ b/pcbnew/dialogs/dialog_pcbnew_config_libs_and_paths.cpp @@ -43,6 +43,7 @@ #include #include +#include void PCB_EDIT_FRAME::InstallConfigFrame( ) @@ -271,7 +272,8 @@ void DIALOG_PCBNEW_CONFIG_LIBS::OnAddOrInsertLibClick( wxCommandEvent& event ) libpath = wxGetApp().ReturnLastVisitedLibraryPath(); wxFileDialog FilesDialog( this, _( "Footprint library files:" ), libpath, - wxEmptyString, g_FootprintLibFileWildcard, + wxEmptyString, + wxGetTranslation( FootprintLibFileWildcard ), wxFD_DEFAULT_STYLE | wxFD_MULTIPLE ); if( FilesDialog.ShowModal() != wxID_OK ) diff --git a/pcbnew/librairi.cpp b/pcbnew/librairi.cpp index 80108cda86..37611da303 100644 --- a/pcbnew/librairi.cpp +++ b/pcbnew/librairi.cpp @@ -22,6 +22,7 @@ #include #include #include +#include /* @@ -151,7 +152,7 @@ void FOOTPRINT_EDIT_FRAME::Export_Module( MODULE* aModule, bool aCreateSysLib ) return; fn.SetName( aModule->m_LibRef ); - fn.SetExt( aCreateSysLib ? ModuleFileExtension : ModExportFileExtension ); + fn.SetExt( aCreateSysLib ? FootprintLibFileExtension : ModExportFileExtension ); if( aCreateSysLib ) path = wxGetApp().ReturnLastVisitedLibraryPath(); @@ -160,8 +161,9 @@ void FOOTPRINT_EDIT_FRAME::Export_Module( MODULE* aModule, bool aCreateSysLib ) fn.SetPath( path ); title = aCreateSysLib ? _( "Create New Library" ) : _( "Export Module" ); - wildcard = aCreateSysLib ? ModuleFileWildcard : ModExportFileWildcard; - wxFileDialog dlg( this, msg, fn.GetPath(), fn.GetFullName(), wildcard, + wildcard = aCreateSysLib ? FootprintLibFileWildcard : ModExportFileWildcard; + wxFileDialog dlg( this, msg, fn.GetPath(), fn.GetFullName(), + wxGetTranslation( wildcard ), wxFD_SAVE | wxFD_OVERWRITE_PROMPT ); if( dlg.ShowModal() == wxID_CANCEL ) @@ -369,7 +371,8 @@ void PCB_EDIT_FRAME::ArchiveModulesOnBoard( const wxString& aLibName, bool aNewM if( aLibName.IsEmpty() ) { wxFileDialog dlg( this, _( "Library" ), path, - wxEmptyString, ModuleFileWildcard, + wxEmptyString, + wxGetTranslation( FootprintLibFileWildcard ), wxFD_SAVE ); if( dlg.ShowModal() == wxID_CANCEL ) @@ -730,7 +733,8 @@ void FOOTPRINT_EDIT_FRAME::Select_Active_Library() if( dlg.ShowModal() != wxID_OK ) return; - wxFileName fileName = wxFileName( wxEmptyString, dlg.GetTextSelection(), ModuleFileExtension ); + wxFileName fileName = wxFileName( wxEmptyString, dlg.GetTextSelection(), + FootprintLibFileExtension ); fileName = wxGetApp().FindLibraryPath( fileName ); if( fileName.IsOk() && fileName.FileExists() ) diff --git a/pcbnew/loadcmp.cpp b/pcbnew/loadcmp.cpp index b533e099a3..95e4b04a08 100644 --- a/pcbnew/loadcmp.cpp +++ b/pcbnew/loadcmp.cpp @@ -49,6 +49,7 @@ #include #include #include +#include static void DisplayCmpDoc( wxString& Name ); @@ -272,7 +273,7 @@ MODULE* PCB_BASE_FRAME::GetModuleLibrary( const wxString& aLibraryFullFilename, if( one_lib ) fn = aLibraryFullFilename; else - fn = wxFileName( wxEmptyString, g_LibraryNames[ii], ModuleFileExtension ); + fn = wxFileName( wxEmptyString, g_LibraryNames[ii], FootprintLibFileExtension ); tmp = wxGetApp().FindLibraryPath( fn ); diff --git a/pcbnew/modedit.cpp b/pcbnew/modedit.cpp index ee9e1c2f5d..809311a386 100644 --- a/pcbnew/modedit.cpp +++ b/pcbnew/modedit.cpp @@ -27,6 +27,7 @@ #include #include +#include // Functions defined in block_module_editor, but used here // These 2 functions are used in modedit to rotate or mirror the whole footprint @@ -247,7 +248,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_MODEDIT_DELETE_PART: { - wxFileName fn = wxFileName( wxEmptyString, m_CurrentLib, ModuleFileExtension ); + wxFileName fn = wxFileName( wxEmptyString, m_CurrentLib, FootprintLibFileExtension ); wxString full_libraryfilename = wxGetApp().FindLibraryPath( fn ); if( wxFileName::FileExists( full_libraryfilename ) ) @@ -287,7 +288,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; { wxFileName fn; - fn = wxFileName( wxEmptyString, m_CurrentLib, ModuleFileExtension ); + fn = wxFileName( wxEmptyString, m_CurrentLib, FootprintLibFileExtension ); wxString full_filename = wxGetApp().FindLibraryPath( fn ); Save_Module_In_Library( full_filename, GetBoard()->m_Modules, true, true ); GetScreen()->ClrModify(); @@ -415,7 +416,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) if( !m_CurrentLib.IsEmpty() ) { - wxFileName fn = wxFileName( wxEmptyString, m_CurrentLib, ModuleFileExtension ); + wxFileName fn = wxFileName( wxEmptyString, m_CurrentLib, FootprintLibFileExtension ); full_libraryfilename = wxGetApp().FindLibraryPath( fn ); } diff --git a/pcbnew/moduleframe.cpp b/pcbnew/moduleframe.cpp index e7ec4482e4..2fe1ecfe75 100644 --- a/pcbnew/moduleframe.cpp +++ b/pcbnew/moduleframe.cpp @@ -45,6 +45,7 @@ #include #include #include +#include static PCB_SCREEN* s_screenModule; // the PCB_SCREEN used by the footprint editor @@ -492,7 +493,7 @@ void FOOTPRINT_EDIT_FRAME::UpdateTitle() } else { - wxFileName fileName = wxFileName( wxEmptyString, m_CurrentLib, ModuleFileExtension ); + wxFileName fileName = wxFileName( wxEmptyString, m_CurrentLib, FootprintLibFileExtension ); fileName = wxGetApp().FindLibraryPath( fileName ); if( !fileName.IsOk() || !fileName.FileExists() ) diff --git a/pcbnew/modview.cpp b/pcbnew/modview.cpp index c4fab2f2a7..df7f1065d7 100644 --- a/pcbnew/modview.cpp +++ b/pcbnew/modview.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #define NEXT_PART 1 @@ -109,7 +110,7 @@ void FOOTPRINT_VIEWER_FRAME::SelectCurrentLibrary( wxCommandEvent& event ) */ void FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint( wxCommandEvent& event ) { - wxString libname = m_libraryName + wxT(".") + ModuleFileExtension; + wxString libname = m_libraryName + wxT(".") + FootprintLibFileExtension; MODULE* oldmodule = GetBoard()->m_Modules; MODULE * module = Load_Module_From_Library( libname, false ); if( module ) @@ -160,7 +161,7 @@ void FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint( int aMode ) SetCurItem( NULL ); // Delete the current footprint GetBoard()->m_Modules.DeleteAll(); - GetModuleLibrary( m_libraryName + wxT(".") + ModuleFileExtension, + GetModuleLibrary( m_libraryName + wxT(".") + FootprintLibFileExtension, m_footprintName, true ); Update3D_Frame(); } diff --git a/pcbnew/modview_frame.cpp b/pcbnew/modview_frame.cpp index 85c3b09b50..0e6f2780d6 100644 --- a/pcbnew/modview_frame.cpp +++ b/pcbnew/modview_frame.cpp @@ -44,6 +44,7 @@ #include #include +#include /** @@ -188,7 +189,7 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( wxWindow* parent, wxSemaphore* s // If a footprint was previsiously loaded, reload it if( !m_libraryName.IsEmpty() && !m_footprintName.IsEmpty() ) - GetModuleLibrary( m_libraryName + wxT(".") + ModuleFileExtension, + GetModuleLibrary( m_libraryName + wxT(".") + FootprintLibFileExtension, m_footprintName, false ); @@ -436,7 +437,7 @@ void FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList( wxCommandEvent& event ) SetCurItem( NULL ); // Delete the current footprint GetBoard()->m_Modules.DeleteAll(); - GetModuleLibrary( m_libraryName + wxT(".") + ModuleFileExtension, + GetModuleLibrary( m_libraryName + wxT(".") + FootprintLibFileExtension, m_footprintName, true ); DisplayLibInfos(); Zoom_Automatique( false ); diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index 97a29a56d6..aef0669b73 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -461,13 +461,11 @@ void PCB_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event ) if( GetScreen()->IsModify() ) { - unsigned ii; - wxMessageDialog dialog( this, _( "Board modified, Save before exit ?" ), - _( "Confirmation" ), - wxYES_NO | wxCANCEL | wxICON_EXCLAMATION | wxYES_DEFAULT ); - - ii = dialog.ShowModal(); + wxString msg; + msg.Printf( _("Save the changes in\n<%s>\nbefore closing?"), + GetChars( GetScreen()->GetFileName() ) ); + int ii = DisplayExitDialog( this, msg ); switch( ii ) { case wxID_CANCEL: diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index 3face0a320..c188009bf2 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -73,9 +73,6 @@ int g_MagneticTrackOption = capture_cursor_in_track_tool; wxPoint g_Offset_Module; /* Distance to offset module trace when moving. */ -// Wildcard for footprint libraries filesnames -const wxString g_FootprintLibFileWildcard( _( "KiCad footprint library file (*.mod)|*.mod" ) ); - /* Name of the document footprint list * usually located in share/modules/footprints_doc * this is of the responsibility to users to create this file diff --git a/pcbnew/pcbnew.h b/pcbnew/pcbnew.h index ca9db9d4cd..6ef054e972 100644 --- a/pcbnew/pcbnew.h +++ b/pcbnew/pcbnew.h @@ -40,6 +40,14 @@ /* Flag to force the SKETCH mode to display items (.m_Flags member) */ #define FORCE_SKETCH ( IS_DRAGGED | IN_EDIT ) +/* Name of the document footprint list + * usually located in share/modules/footprints_doc + * this is of the responsibility to users to create this file + * if they want to have a list of footprints + * default is "footprints_doc/footprints.pdf" + */ +extern wxString g_DocModulesFileName; + /* variables */ extern bool Drc_On; extern bool g_AutoDeleteOldTrack; @@ -47,15 +55,9 @@ extern bool g_Drag_Pistes_On; extern bool g_Show_Module_Ratsnest; extern bool g_Show_Pads_Module_in_Move; extern bool g_Raccord_45_Auto; - -extern const wxString g_FootprintLibFileWildcard; // Wildcard for footprint libraries filesnames - - extern bool g_Track_45_Only_Allowed; extern bool g_Alternate_Track_Posture; extern bool Segments_45_Only; -extern wxString g_Shapes3DExtBuffer; -extern wxString g_DocModulesFileName; /* Layer pair for auto routing and switch layers by hotkey */ extern int Route_Layer_TOP; diff --git a/pcbnew/xchgmod.cpp b/pcbnew/xchgmod.cpp index ee94b38ef2..f32fe805f9 100644 --- a/pcbnew/xchgmod.cpp +++ b/pcbnew/xchgmod.cpp @@ -16,6 +16,7 @@ #include #include #include +#include static char* quiet_gcc_4_4_3; // GCC 4.4.3 and next .. @@ -160,7 +161,7 @@ int DIALOG_EXCHANGE_MODULE::Maj_ListeCmp( const wxString& reference, /* Build CMP file name by changing the extension of NetList filename */ fn = m_Parent->GetScreen()->GetFileName(); - fn.SetExt( NetCmpExtBuffer ); + fn.SetExt( ComponentFileExtension ); FichCmp = wxFopen( fn.GetFullPath(), wxT( "rt" ) ); @@ -598,8 +599,8 @@ void PCB_EDIT_FRAME::RecreateCmpFileFromBoard( wxCommandEvent& aEvent ) /* Calculation file name by changing the extension name to NetList */ fn = GetScreen()->GetFileName(); - fn.SetExt( NetCmpExtBuffer ); - wildcard = _( "Component files (." ) + NetCmpExtBuffer + wxT( ")|*." ) + NetCmpExtBuffer; + fn.SetExt( ComponentFileExtension ); + wildcard = wxGetTranslation( ComponentFileWildcard ); wxFileDialog dlg( this, _( "Save Component Files" ), wxGetCwd(), fn.GetFullName(), wildcard, From d80207d69e1c098f63dcd08f37f0063e415b6b85 Mon Sep 17 00:00:00 2001 From: Marco Mattila Date: Thu, 8 Mar 2012 22:44:03 +0200 Subject: [PATCH 09/68] Add more pad local copper zone settings in pcbnew. Tune the pad properties dialog a little. --- pcbnew/class_module.cpp | 6 + pcbnew/class_module.h | 7 + pcbnew/class_pad.cpp | 26 + pcbnew/class_pad.h | 7 + pcbnew/class_zone.cpp | 19 +- pcbnew/class_zone.h | 4 +- pcbnew/dialogs/dialog_pad_properties.cpp | 71 +- pcbnew/dialogs/dialog_pad_properties_base.cpp | 660 +- pcbnew/dialogs/dialog_pad_properties_base.fbp | 16525 ++++++++-------- pcbnew/dialogs/dialog_pad_properties_base.h | 126 +- pcbnew/item_io.cpp | 21 +- pcbnew/kicad_plugin.cpp | 36 + ...nvert_brd_items_to_polygons_with_Boost.cpp | 7 +- ...ones_convert_to_polygons_aux_functions.cpp | 2 +- 14 files changed, 9126 insertions(+), 8391 deletions(-) diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index d426415ed3..7a44399225 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -69,6 +69,8 @@ MODULE::MODULE( BOARD* parent ) : m_LocalSolderPasteMargin = 0; m_LocalSolderPasteMarginRatio = 0.0; m_ZoneConnection = UNDEFINED_CONNECTION; // Use zone setting by default + m_ThermalWidth = 0; // Use zone setting by default + m_ThermalGap = 0; // Use zone setting by default m_Reference = new TEXTE_MODULE( this, TEXT_is_REFERENCE ); @@ -103,6 +105,8 @@ MODULE::MODULE( const MODULE& aModule ) : m_LocalSolderPasteMargin = aModule.m_LocalSolderPasteMargin; m_LocalSolderPasteMarginRatio = aModule.m_LocalSolderPasteMarginRatio; m_ZoneConnection = aModule.m_ZoneConnection; + m_ThermalWidth = aModule.m_ThermalWidth; + m_ThermalGap = aModule.m_ThermalGap; // Copy reference and value. m_Reference = new TEXTE_MODULE( *aModule.m_Reference ); @@ -219,6 +223,8 @@ void MODULE::Copy( MODULE* aModule ) m_LocalSolderPasteMargin = aModule->m_LocalSolderPasteMargin; m_LocalSolderPasteMarginRatio = aModule->m_LocalSolderPasteMarginRatio; m_ZoneConnection = aModule->m_ZoneConnection; + m_ThermalWidth = aModule->m_ThermalWidth; + m_ThermalGap = aModule->m_ThermalGap; // Copy reference and value. m_Reference->Copy( aModule->m_Reference ); diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index 25fd605040..c32d0fe6e2 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -122,6 +122,7 @@ public: // The final margin is the sum of these 2 values ZoneConnection m_ZoneConnection; + int m_ThermalWidth, m_ThermalGap; public: MODULE( BOARD* parent ); @@ -198,6 +199,12 @@ public: void SetZoneConnection( ZoneConnection aType ) { m_ZoneConnection = aType; } ZoneConnection GetZoneConnection() const { return m_ZoneConnection; } + void SetThermalWidth( int aWidth ) { m_ThermalWidth = aWidth; } + int GetThermalWidth() const { return m_ThermalWidth; } + + void SetThermalGap( int aGap ) { m_ThermalGap = aGap; } + int GetThermalGap() const { return m_ThermalGap; } + int GetAttributes() const { return m_Attributs; } void SetAttributes( int aAttributes ) { m_Attributs = aAttributes; } diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index a606f20664..38a9e314e2 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -71,6 +71,8 @@ D_PAD::D_PAD( MODULE* parent ) : m_LocalSolderPasteMargin = 0; m_LocalSolderPasteMarginRatio = 0.0; m_ZoneConnection = UNDEFINED_CONNECTION; // Use parent setting by default + m_ThermalWidth = 0; // Use parent setting by default + m_ThermalGap = 0; // Use parent setting by default // set layers mask to default for a standard pad m_layerMask = PAD_STANDARD_DEFAULT_LAYERS; @@ -305,6 +307,8 @@ void D_PAD::Copy( D_PAD* source ) m_LocalSolderPasteMargin = source->m_LocalSolderPasteMargin; m_LocalSolderPasteMarginRatio = source->m_LocalSolderPasteMarginRatio; m_ZoneConnection = source->m_ZoneConnection; + m_ThermalWidth = source->m_ThermalWidth; + m_ThermalGap = source->m_ThermalGap; SetSubRatsnest( 0 ); SetSubNet( 0 ); @@ -453,6 +457,28 @@ ZoneConnection D_PAD::GetZoneConnection() const } +int D_PAD::GetThermalWidth() const +{ + MODULE* module = (MODULE*) GetParent(); + + if( m_ThermalWidth == 0 && module ) + return module->GetThermalWidth(); + else + return m_ThermalWidth; +} + + +int D_PAD::GetThermalGap() const +{ + MODULE* module = (MODULE*) GetParent(); + + if( m_ThermalGap == 0 && module ) + return module->GetThermalGap(); + else + return m_ThermalGap; +} + + void D_PAD::DisplayInfo( EDA_DRAW_FRAME* frame ) { MODULE* module; diff --git a/pcbnew/class_pad.h b/pcbnew/class_pad.h index 73180350b2..0cadcb2eed 100644 --- a/pcbnew/class_pad.h +++ b/pcbnew/class_pad.h @@ -269,6 +269,12 @@ public: void SetZoneConnection( ZoneConnection aType ) { m_ZoneConnection = aType; } ZoneConnection GetZoneConnection() const; + void SetThermalWidth( int aWidth ) { m_ThermalWidth = aWidth; } + int GetThermalWidth() const; + + void SetThermalGap( int aGap ) { m_ThermalGap = aGap; } + int GetThermalGap() const; + /* Reading and writing data on files */ int ReadDescr( LINE_READER* aReader ); @@ -534,6 +540,7 @@ private: double m_LocalSolderPasteMarginRatio; ///< Local solder mask margin ratio value of pad size ///< The final margin is the sum of these 2 values ZoneConnection m_ZoneConnection; + int m_ThermalWidth, m_ThermalGap; }; #endif // PAD_H_ diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 3ba3501c64..7ce8eeba1f 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -450,6 +450,24 @@ void ZONE_CONTAINER::DrawWhileCreateOutline( EDA_DRAW_PANEL* panel, wxDC* DC, in } +int ZONE_CONTAINER::GetThermalReliefGap( D_PAD* aPad ) const +{ + if( aPad == NULL || aPad->GetThermalGap() == 0 ) + return m_ThermalReliefGap; + else + return aPad->GetThermalGap(); +} + + +int ZONE_CONTAINER::GetThermalReliefCopperBridge( D_PAD* aPad ) const +{ + if( aPad == NULL || aPad->GetThermalWidth() == 0 ) + return m_ThermalReliefCopperBridge; + else + return aPad->GetThermalWidth(); +} + + bool ZONE_CONTAINER::HitTest( const wxPoint& refPos ) { if( HitTestForCorner( refPos ) ) @@ -888,7 +906,6 @@ ZoneConnection ZONE_CONTAINER::GetPadConnection( D_PAD* aPad ) const return m_PadConnection; else return aPad->GetZoneConnection(); - } diff --git a/pcbnew/class_zone.h b/pcbnew/class_zone.h index ae15cc5a22..990ced3ee0 100644 --- a/pcbnew/class_zone.h +++ b/pcbnew/class_zone.h @@ -274,13 +274,13 @@ public: int GetFillMode() const { return m_FillMode; } void SetThermalReliefGap( int aThermalReliefGap ) { m_ThermalReliefGap = aThermalReliefGap; } - int GetThermalReliefGap() const { return m_ThermalReliefGap; } + int GetThermalReliefGap( D_PAD* aPad = NULL ) const; void SetThermalReliefCopperBridge( int aThermalReliefCopperBridge ) { m_ThermalReliefCopperBridge = aThermalReliefCopperBridge; } - int GetThermalReliefCopperBridge() const { return m_ThermalReliefCopperBridge; } + int GetThermalReliefCopperBridge( D_PAD* aPad = NULL ) const; void SetArcSegCount( int aArcSegCount ) { m_ArcToSegmentsCount = aArcSegCount; } int GetArcSegCount() const { return m_ArcToSegmentsCount; } diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index 340d205818..4998b8c16f 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -80,6 +80,9 @@ private: bool m_canUpdate; + static wxPoint prevPosition; + static wxSize prevSize; + void initValues(); void OnPadShapeSelection( wxCommandEvent& event ); void OnDrillShapeSelected( wxCommandEvent& event ); @@ -95,6 +98,10 @@ private: }; +wxPoint DIALOG_PAD_PROPERTIES::prevPosition( -1, -1 ); +wxSize DIALOG_PAD_PROPERTIES::prevSize; + + DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aPad ) : DIALOG_PAD_PROPERTIES_BASE( aParent ), m_Pad_Master( aParent->GetBoard()->GetDesignSettings().m_Pad_Master ) @@ -114,7 +121,14 @@ DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aP m_sdbSizer1OK->SetDefault(); GetSizer()->SetSizeHints( this ); - Center(); + + if( prevPosition.x != -1 ) + SetSize( prevPosition.x, prevPosition.y, + prevSize.x, prevSize.y ); + else + Center(); + + m_PadNumCtrl->SetFocus(); m_canUpdate = true; } @@ -241,12 +255,13 @@ void DIALOG_PAD_PROPERTIES::initValues() m_PadShapeOffsetY_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) ); m_PadShapeDelta_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) ); m_PadLengthDie_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) ); - m_NetClearanceUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); // Display current pad masks clearances units m_NetClearanceUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); m_SolderMaskMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); m_SolderPasteMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); + m_ThermalWidthUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); + m_ThermalGapUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); // Display current pad parameters units: PutValueInLocalUnits( *m_PadPosition_X_Ctrl, m_dummyPad->GetPosition().x, internalUnits ); @@ -264,12 +279,12 @@ void DIALOG_PAD_PROPERTIES::initValues() if( m_dummyPad->GetDelta().x ) { PutValueInLocalUnits( *m_ShapeDelta_Ctrl, m_dummyPad->GetDelta().x, internalUnits ); - m_radioBtnDeltaXdir->SetValue(true); + m_trapDeltaDirChoice->SetSelection( 0 ); } else { PutValueInLocalUnits( *m_ShapeDelta_Ctrl, m_dummyPad->GetDelta().y, internalUnits ); - m_radioBtnDeltaYdir->SetValue(true); + m_trapDeltaDirChoice->SetSelection( 1 ); } PutValueInLocalUnits( *m_LengthDieCtrl, m_dummyPad->GetDieLength(), internalUnits ); @@ -278,6 +293,8 @@ void DIALOG_PAD_PROPERTIES::initValues() PutValueInLocalUnits( *m_SolderMaskMarginCtrl, m_dummyPad->GetLocalSolderMaskMargin(), internalUnits ); + PutValueInLocalUnits( *m_ThermalWidthCtrl, m_dummyPad->GetThermalWidth(), internalUnits ); + PutValueInLocalUnits( *m_ThermalGapCtrl, m_dummyPad->GetThermalGap(), internalUnits ); // These 2 parameters are usually < 0, so prepare entering a negative value, if current is 0 PutValueInLocalUnits( *m_SolderPasteMarginCtrl, @@ -345,7 +362,7 @@ void DIALOG_PAD_PROPERTIES::initValues() m_PadOrient->SetSelection( 1 ); break; - case - 900: + case -900: m_PadOrient->SetSelection( 2 ); break; @@ -437,30 +454,34 @@ void DIALOG_PAD_PROPERTIES::OnPadShapeSelection( wxCommandEvent& event ) { case 0: //CIRCLE: m_ShapeDelta_Ctrl->Enable( false ); - m_radioBtnDeltaXdir->Enable( false ); - m_radioBtnDeltaYdir->Enable( false ); + m_trapDeltaDirChoice->Enable( false ); m_ShapeSize_Y_Ctrl->Enable( false ); + m_ShapeOffset_X_Ctrl->Enable( false ); + m_ShapeOffset_Y_Ctrl->Enable( false ); break; case 1: //OVALE: m_ShapeDelta_Ctrl->Enable( false ); - m_radioBtnDeltaXdir->Enable( false ); - m_radioBtnDeltaYdir->Enable( false ); + m_trapDeltaDirChoice->Enable( false ); m_ShapeSize_Y_Ctrl->Enable( true ); + m_ShapeOffset_X_Ctrl->Enable( true ); + m_ShapeOffset_Y_Ctrl->Enable( true ); break; case 2: // PAD_RECT: m_ShapeDelta_Ctrl->Enable( false ); - m_radioBtnDeltaXdir->Enable( false ); - m_radioBtnDeltaYdir->Enable( false ); + m_trapDeltaDirChoice->Enable( false ); m_ShapeSize_Y_Ctrl->Enable( true ); + m_ShapeOffset_X_Ctrl->Enable( true ); + m_ShapeOffset_Y_Ctrl->Enable( true ); break; case 3: //TRAPEZE: m_ShapeDelta_Ctrl->Enable( true ); - m_radioBtnDeltaXdir->Enable( true ); - m_radioBtnDeltaYdir->Enable( true ); + m_trapDeltaDirChoice->Enable( true ); m_ShapeSize_Y_Ctrl->Enable( true ); + m_ShapeOffset_X_Ctrl->Enable( true ); + m_ShapeOffset_Y_Ctrl->Enable( true ); break; } @@ -532,9 +553,6 @@ void DIALOG_PAD_PROPERTIES::PadOrientEvent( wxCommandEvent& event ) void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) - -/* Adjust the better mask layer according to the selected pad type - */ { long layer_mask; int ii; @@ -549,6 +567,10 @@ void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) // Enable/disable drill dialog items: event.SetId( m_DrillShapeCtrl->GetSelection() ); OnDrillShapeSelected( event ); + if( ii == 0 || ii == NBTYPES-1 ) + m_DrillShapeCtrl->Enable( true ); + else + m_DrillShapeCtrl->Enable( false ); // Enable/disable Pad name,and pad length die // (disable for NPTH pads (mechanical pads) @@ -610,6 +632,9 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) bool rastnestIsChanged = false; int isign = m_isFlipped ? -1 : 1; + prevPosition = GetPosition(); + prevSize = GetSize(); + bool success = TransfertDataToPad( m_dummyPad, true ); if( !success ) // An error on parameters has occured return; @@ -649,7 +674,7 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) m_CurrentPad->SetOrientation( m_Pad_Master.GetOrientation() * isign + module->GetOrientation() ); - m_CurrentPad->SetSize( m_Pad_Master.GetSize() ); + m_CurrentPad->SetSize( m_Pad_Master.GetSize() ); size = m_Pad_Master.GetDelta(); size.y *= isign; @@ -702,6 +727,8 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) m_CurrentPad->SetLocalSolderPasteMargin( m_Pad_Master.GetLocalSolderPasteMargin() ); m_CurrentPad->SetLocalSolderPasteMarginRatio( m_Pad_Master.GetLocalSolderPasteMarginRatio() ); m_CurrentPad->SetZoneConnection( m_Pad_Master.GetZoneConnection() ); + m_CurrentPad->SetThermalWidth( m_Pad_Master.GetThermalWidth() ); + m_CurrentPad->SetThermalGap( m_Pad_Master.GetThermalGap() ); module->CalculateBoundingBox(); m_CurrentPad->DisplayInfo( m_Parent ); @@ -737,6 +764,10 @@ bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad, bool aPromptOnError internalUnits ) ); aPad->SetLocalSolderPasteMargin( ReturnValueFromTextCtrl( *m_SolderPasteMarginCtrl, internalUnits ) ); + aPad->SetThermalWidth( ReturnValueFromTextCtrl( *m_ThermalWidthCtrl, + internalUnits ) ); + aPad->SetThermalGap( ReturnValueFromTextCtrl( *m_ThermalGapCtrl, + internalUnits ) ); double dtmp = 0.0; msg = m_SolderPasteMarginRatioCtrl->GetValue(); msg.ToDouble( &dtmp ); @@ -805,7 +836,7 @@ bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad, bool aPromptOnError // m_DeltaSize.x or m_DeltaSize.y must be NULL. for a trapezoid. wxSize delta; - if( m_radioBtnDeltaXdir->GetValue() ) + if( m_trapDeltaDirChoice->GetSelection() == 0 ) delta.x = ReturnValueFromTextCtrl( *m_ShapeDelta_Ctrl, internalUnits ); else delta.y = ReturnValueFromTextCtrl( *m_ShapeDelta_Ctrl, internalUnits ); @@ -1005,9 +1036,9 @@ void DIALOG_PAD_PROPERTIES::OnValuesChanged( wxCommandEvent& event ) } -/*********************************************************************/ void DIALOG_PAD_PROPERTIES::OnCancelButtonClick( wxCommandEvent& event ) -/*********************************************************************/ { + prevPosition = GetPosition(); + prevSize = GetSize(); EndModal( wxID_CANCEL ); } diff --git a/pcbnew/dialogs/dialog_pad_properties_base.cpp b/pcbnew/dialogs/dialog_pad_properties_base.cpp index b4a6cfd4bc..279035d6fe 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.cpp +++ b/pcbnew/dialogs/dialog_pad_properties_base.cpp @@ -11,253 +11,213 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); wxBoxSizer* m_MainSizer; m_MainSizer = new wxBoxSizer( wxVERTICAL ); + m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bGeneralSizer; bGeneralSizer = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* m_LeftBoxSizer; m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); - m_PadNumText = new wxStaticText( this, wxID_ANY, _("Number:"), wxDefaultPosition, wxDefaultSize, 0 ); + wxFlexGridSizer* fgSizer5; + fgSizer5 = new wxFlexGridSizer( 0, 2, 0, 0 ); + fgSizer5->AddGrowableCol( 1 ); + fgSizer5->SetFlexibleDirection( wxBOTH ); + fgSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_PadNumText = new wxStaticText( m_panel2, wxID_ANY, _("Number:"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadNumText->Wrap( -1 ); - m_LeftBoxSizer->Add( m_PadNumText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + fgSizer5->Add( m_PadNumText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_PadNumCtrl = new wxTextCtrl( this, wxID_PADNUMCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_LeftBoxSizer->Add( m_PadNumCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + m_PadNumCtrl = new wxTextCtrl( m_panel2, wxID_PADNUMCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer5->Add( m_PadNumCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - m_PadNameText = new wxStaticText( this, wxID_ANY, _("Net name:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadNameText = new wxStaticText( m_panel2, wxID_ANY, _("Net name:"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadNameText->Wrap( -1 ); - m_LeftBoxSizer->Add( m_PadNameText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + fgSizer5->Add( m_PadNameText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_PadNetNameCtrl = new wxTextCtrl( this, wxID_PADNETNAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_LeftBoxSizer->Add( m_PadNetNameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + m_PadNetNameCtrl = new wxTextCtrl( m_panel2, wxID_PADNETNAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer5->Add( m_PadNetNameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - wxStaticBoxSizer* sbSizer2; - sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Pad Geometry") ), wxVERTICAL ); + m_staticText44 = new wxStaticText( m_panel2, wxID_ANY, _("Type:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText44->Wrap( -1 ); + fgSizer5->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - wxFlexGridSizer* fgSizerGeometry; - fgSizerGeometry = new wxFlexGridSizer( 14, 3, 0, 0 ); - fgSizerGeometry->SetFlexibleDirection( wxBOTH ); - fgSizerGeometry->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxString m_PadTypeChoices[] = { _("Through-hole"), _("SMD"), _("Contact"), _("NPTH, Mechanical") }; + int m_PadTypeNChoices = sizeof( m_PadTypeChoices ) / sizeof( wxString ); + m_PadType = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadTypeNChoices, m_PadTypeChoices, 0 ); + m_PadType->SetSelection( 0 ); + fgSizer5->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - m_staticText4 = new wxStaticText( this, wxID_ANY, _("Position X"), wxDefaultPosition, wxDefaultSize, 0 ); + m_LeftBoxSizer->Add( fgSizer5, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxFlexGridSizer* fgSizer6; + fgSizer6 = new wxFlexGridSizer( 0, 3, 0, 0 ); + fgSizer6->SetFlexibleDirection( wxBOTH ); + fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText45->Wrap( -1 ); + fgSizer6->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") }; + int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); + m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 ); + m_PadShape->SetSelection( 0 ); + fgSizer6->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText46 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText46->Wrap( -1 ); + fgSizer6->Add( m_staticText46, 0, wxALL, 5 ); + + m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText4->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText4, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + fgSizer6->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - m_PadPosition_X_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_PadPosition_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_PadPosition_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_PadPosition_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - m_PadPosX_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadPosX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadPosX_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadPosX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + fgSizer6->Add( m_PadPosX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - m_staticText41 = new wxStaticText( this, wxID_ANY, _("Position Y"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText41->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText41, 0, wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + fgSizer6->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - m_PadPosition_Y_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_PadPosition_Y_Ctrl, 0, wxALL, 5 ); + m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_PadPosition_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - m_PadPosY_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadPosY_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadPosY_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizer6->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - m_staticline7 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline7, 0, wxEXPAND | wxALL, 5 ); - - m_staticline8 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline8, 0, wxEXPAND | wxALL, 5 ); - - m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline9, 0, wxEXPAND | wxALL, 5 ); - - m_textPadDrillX = new wxStaticText( this, wxID_ANY, _("Drill X"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPadDrillX->Wrap( -1 ); - fgSizerGeometry->Add( m_textPadDrillX, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxALIGN_RIGHT, 5 ); - - m_PadDrill_X_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_PadDrill_X_Ctrl, 0, wxALL, 5 ); - - m_PadDrill_X_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadDrill_X_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadDrill_X_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_textPadDrillY = new wxStaticText( this, wxID_ANY, _("Drill Y"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPadDrillY->Wrap( -1 ); - fgSizerGeometry->Add( m_textPadDrillY, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_PadDrill_Y_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_PadDrill_Y_Ctrl, 0, wxALL, 5 ); - - m_PadDrill_Y_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadDrill_Y_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_staticline4 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline4, 0, wxEXPAND | wxALL, 5 ); - - m_staticline5 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline5, 0, wxEXPAND | wxALL, 5 ); - - m_staticline6 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline6, 0, wxEXPAND | wxALL, 5 ); - - m_staticText12 = new wxStaticText( this, wxID_ANY, _("Shape size X"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText12->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText12, 0, wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + fgSizer6->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - m_ShapeSize_X_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_ShapeSize_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_ShapeSize_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeSize_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - m_PadShapeSizeX_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeSizeX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeSizeX_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadShapeSizeX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + fgSizer6->Add( m_PadShapeSizeX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - m_staticText15 = new wxStaticText( this, wxID_ANY, _("Shape size Y"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText15 = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText15->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText15, 0, wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + fgSizer6->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - m_ShapeSize_Y_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_ShapeSize_Y_Ctrl, 0, wxALL, 5 ); + m_ShapeSize_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeSize_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - m_PadShapeSizeY_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeSizeY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeSizeY_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadShapeSizeY_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizer6->Add( m_PadShapeSizeY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - m_staticText17 = new wxStaticText( this, wxID_ANY, _("Shape offset X"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText48 = new wxStaticText( m_panel2, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText48->Wrap( -1 ); + fgSizer6->Add( m_staticText48, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxString m_PadOrientChoices[] = { _("0"), _("90"), _("-90"), _("180"), _("Custom") }; + int m_PadOrientNChoices = sizeof( m_PadOrientChoices ) / sizeof( wxString ); + m_PadOrient = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadOrientNChoices, m_PadOrientChoices, 0 ); + m_PadOrient->SetSelection( 0 ); + fgSizer6->Add( m_PadOrient, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_staticText491 = new wxStaticText( m_panel2, wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText491->Wrap( -1 ); + fgSizer6->Add( m_staticText491, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_PadOrientText = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_PadOrientText->Wrap( -1 ); + fgSizer6->Add( m_PadOrientText, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadOrientCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_PadOrientCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_customOrientUnits = new wxStaticText( m_panel2, wxID_ANY, _("0.1 deg"), wxDefaultPosition, wxDefaultSize, 0 ); + m_customOrientUnits->Wrap( -1 ); + fgSizer6->Add( m_customOrientUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText17 = new wxStaticText( m_panel2, wxID_ANY, _("Offset X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText17->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText17, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + fgSizer6->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - m_ShapeOffset_X_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_ShapeOffset_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_ShapeOffset_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeOffset_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - m_PadShapeOffsetX_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeOffsetX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeOffsetX_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadShapeOffsetX_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizer6->Add( m_PadShapeOffsetX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - m_staticText19 = new wxStaticText( this, wxID_ANY, _("Shape offset Y"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText19 = new wxStaticText( m_panel2, wxID_ANY, _("Offset Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText19->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText19, 0, wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + fgSizer6->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - m_ShapeOffset_Y_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_ShapeOffset_Y_Ctrl, 0, wxALL, 5 ); + m_ShapeOffset_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeOffset_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - m_PadShapeOffsetY_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeOffsetY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeOffsetY_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadShapeOffsetY_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizer6->Add( m_PadShapeOffsetY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - m_staticText21 = new wxStaticText( this, wxID_ANY, _("Shape delta dim"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText21->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - m_ShapeDelta_Ctrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_ShapeDelta_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadShapeDelta_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeDelta_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadShapeDelta_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText23 = new wxStaticText( this, wxID_ANY, _("Trap. direction"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText23->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText23, 0, wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); - - wxBoxSizer* bSizerbdir; - bSizerbdir = new wxBoxSizer( wxHORIZONTAL ); - - m_radioBtnDeltaXdir = new wxRadioButton( this, wxID_DDIRX, _(">"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); - m_radioBtnDeltaXdir->SetValue( true ); - bSizerbdir->Add( m_radioBtnDeltaXdir, 0, wxALL, 5 ); - - m_radioBtnDeltaYdir = new wxRadioButton( this, wxID_DDIRY, _("^"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerbdir->Add( m_radioBtnDeltaYdir, 0, wxALL, 5 ); - - fgSizerGeometry->Add( bSizerbdir, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 ); - - m_staticTextDDirInfo = new wxStaticText( this, wxID_ANY, _("Rot 0"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextDDirInfo->Wrap( -1 ); - fgSizerGeometry->Add( m_staticTextDDirInfo, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - m_staticline10 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline10, 0, wxEXPAND | wxALL, 5 ); - - m_staticline101 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline101, 0, wxEXPAND | wxALL, 5 ); - - m_staticline1011 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgSizerGeometry->Add( m_staticline1011, 0, wxEXPAND | wxALL, 5 ); - - m_staticText38 = new wxStaticText( this, wxID_ANY, _("Length die"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText38 = new wxStaticText( m_panel2, wxID_ANY, _("Die length:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText38->Wrap( -1 ); m_staticText38->SetToolTip( _("Wire length from pad to die on chip ( used to calculate actual track length)") ); - fgSizerGeometry->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); + fgSizer6->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - m_LengthDieCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_LengthDieCtrl, 0, wxALL, 5 ); + m_LengthDieCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_LengthDieCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - m_PadLengthDie_Unit = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadLengthDie_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadLengthDie_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadLengthDie_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + fgSizer6->Add( m_PadLengthDie_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 ); + m_staticText21 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. delta dim:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText21->Wrap( -1 ); + fgSizer6->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - m_LeftBoxSizer->Add( sbSizer2, 1, wxEXPAND, 5 ); + m_ShapeDelta_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeDelta_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - bGeneralSizer->Add( m_LeftBoxSizer, 0, wxBOTTOM|wxLEFT|wxEXPAND, 5 ); + m_PadShapeDelta_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeDelta_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadShapeDelta_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - wxBoxSizer* bMiddleSizer; - bMiddleSizer = new wxBoxSizer( wxVERTICAL ); + m_staticText23 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. direction:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText23->Wrap( -1 ); + fgSizer6->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); + + wxString m_trapDeltaDirChoiceChoices[] = { _("Horiz."), _("Vert.") }; + int m_trapDeltaDirChoiceNChoices = sizeof( m_trapDeltaDirChoiceChoices ) / sizeof( wxString ); + m_trapDeltaDirChoice = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_trapDeltaDirChoiceNChoices, m_trapDeltaDirChoiceChoices, 0 ); + m_trapDeltaDirChoice->SetSelection( 0 ); + fgSizer6->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 ); + + m_LeftBoxSizer->Add( fgSizer6, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxBoxSizer* bMiddleUpperSizer; bMiddleUpperSizer = new wxBoxSizer( wxHORIZONTAL ); m_DrillShapeBoxSizer = new wxBoxSizer( wxVERTICAL ); - wxString m_PadShapeChoices[] = { _("Circle"), _("Oval"), _("Rect"), _("Trapezoidal") }; - int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); - m_PadShape = new wxRadioBox( this, ID_LISTBOX_SHAPE_PAD, _("Pad Shape"), wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 1, wxRA_SPECIFY_COLS ); - m_PadShape->SetSelection( 0 ); - m_DrillShapeBoxSizer->Add( m_PadShape, 0, wxALL|wxEXPAND, 5 ); - - wxString m_DrillShapeCtrlChoices[] = { _("Circle"), _("Oval") }; - int m_DrillShapeCtrlNChoices = sizeof( m_DrillShapeCtrlChoices ) / sizeof( wxString ); - m_DrillShapeCtrl = new wxRadioBox( this, ID_RADIOBOX_DRILL_SHAPE, _("Drill Shape"), wxDefaultPosition, wxDefaultSize, m_DrillShapeCtrlNChoices, m_DrillShapeCtrlChoices, 1, wxRA_SPECIFY_COLS ); - m_DrillShapeCtrl->SetSelection( 0 ); - m_DrillShapeBoxSizer->Add( m_DrillShapeCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - bMiddleUpperSizer->Add( m_DrillShapeBoxSizer, 0, wxBOTTOM, 5 ); wxBoxSizer* m_MiddleRightBoxSizer; m_MiddleRightBoxSizer = new wxBoxSizer( wxVERTICAL ); - wxString m_PadOrientChoices[] = { _("0"), _("90"), _("-90"), _("180"), _("Custom") }; - int m_PadOrientNChoices = sizeof( m_PadOrientChoices ) / sizeof( wxString ); - m_PadOrient = new wxRadioBox( this, ID_LISTBOX_ORIENT_PAD, _("Pad Orient"), wxDefaultPosition, wxDefaultSize, m_PadOrientNChoices, m_PadOrientChoices, 1, wxRA_SPECIFY_COLS ); - m_PadOrient->SetSelection( 0 ); - m_MiddleRightBoxSizer->Add( m_PadOrient, 0, wxALL|wxEXPAND, 5 ); - - m_PadOrientText = new wxStaticText( this, wxID_ANY, _("Pad Orient (0.1 deg)"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadOrientText->Wrap( -1 ); - m_MiddleRightBoxSizer->Add( m_PadOrientText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadOrientCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_MiddleRightBoxSizer->Add( m_PadOrientCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - bMiddleUpperSizer->Add( m_MiddleRightBoxSizer, 0, wxBOTTOM, 5 ); - m_panelShowPad = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER|wxTAB_TRAVERSAL ); - m_panelShowPad->SetBackgroundColour( wxColour( 0, 0, 0 ) ); - - bMiddleUpperSizer->Add( m_panelShowPad, 1, wxEXPAND, 5 ); - - bMiddleSizer->Add( bMiddleUpperSizer, 1, wxEXPAND, 5 ); + m_LeftBoxSizer->Add( bMiddleUpperSizer, 0, wxEXPAND, 5 ); wxStaticBoxSizer* sbSizeModuleInfo; - sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Footprint Orientation") ), wxHORIZONTAL ); + sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Footprint Orientation") ), wxVERTICAL ); wxFlexGridSizer* fgSizer4; fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 ); @@ -265,194 +225,298 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind fgSizer4->SetFlexibleDirection( wxBOTH ); fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - m_staticTitleModuleRot = new wxStaticText( this, wxID_ANY, _("Rotation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTitleModuleRot = new wxStaticText( m_panel2, wxID_ANY, _("Rotation:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTitleModuleRot->Wrap( -1 ); fgSizer4->Add( m_staticTitleModuleRot, 0, wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT, 5 ); - m_staticModuleRotValue = new wxStaticText( this, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticModuleRotValue = new wxStaticText( m_panel2, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticModuleRotValue->Wrap( -1 ); fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - m_staticTitleModuleSide = new wxStaticText( this, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTitleModuleSide = new wxStaticText( m_panel2, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTitleModuleSide->Wrap( -1 ); fgSizer4->Add( m_staticTitleModuleSide, 0, wxALL|wxALIGN_RIGHT, 5 ); - m_staticModuleSideValue = new wxStaticText( this, wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticModuleSideValue = new wxStaticText( m_panel2, wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticModuleSideValue->Wrap( -1 ); fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 ); sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 ); - m_staticTextWarningPadFlipped = new wxStaticText( this, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextWarningPadFlipped = new wxStaticText( m_panel2, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextWarningPadFlipped->Wrap( -1 ); m_staticTextWarningPadFlipped->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 ); - bMiddleSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + m_LeftBoxSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM, 5 ); - wxStaticBoxSizer* sbClearancesSizer; - sbClearancesSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Local Settings") ), wxVERTICAL ); + bGeneralSizer->Add( m_LeftBoxSizer, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bSizer10; + bSizer10 = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizer2; + sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Drill") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizerGeometry; + fgSizerGeometry = new wxFlexGridSizer( 14, 3, 0, 0 ); + fgSizerGeometry->SetFlexibleDirection( wxBOTH ); + fgSizerGeometry->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText47 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText47->Wrap( -1 ); + fgSizerGeometry->Add( m_staticText47, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_DrillShapeCtrlChoices[] = { _("Circular"), _("Oval") }; + int m_DrillShapeCtrlNChoices = sizeof( m_DrillShapeCtrlChoices ) / sizeof( wxString ); + m_DrillShapeCtrl = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_DrillShapeCtrlNChoices, m_DrillShapeCtrlChoices, 0 ); + m_DrillShapeCtrl->SetSelection( 0 ); + fgSizerGeometry->Add( m_DrillShapeCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_staticText51 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText51->Wrap( -1 ); + fgSizerGeometry->Add( m_staticText51, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_textPadDrillX = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPadDrillX->Wrap( -1 ); + fgSizerGeometry->Add( m_textPadDrillX, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_PadDrill_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerGeometry->Add( m_PadDrill_X_Ctrl, 0, wxALL, 5 ); + + m_PadDrill_X_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadDrill_X_Unit->Wrap( -1 ); + fgSizerGeometry->Add( m_PadDrill_X_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_textPadDrillY = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPadDrillY->Wrap( -1 ); + fgSizerGeometry->Add( m_textPadDrillY, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_PadDrill_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerGeometry->Add( m_PadDrill_Y_Ctrl, 0, wxALL, 5 ); + + m_PadDrill_Y_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadDrill_Y_Unit->Wrap( -1 ); + fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 ); + + bSizer10->Add( sbSizer2, 0, wxALL, 5 ); + + wxStaticBoxSizer* m_LayersSizer; + m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Layers") ), wxVERTICAL ); + + wxBoxSizer* bSizer11; + bSizer11 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText511 = new wxStaticText( m_panel2, wxID_ANY, _("Copper:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText511->Wrap( -1 ); + bSizer11->Add( m_staticText511, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_rbCopperLayersSelChoices[] = { _("Front"), _("Back"), _("All"), _("None") }; + int m_rbCopperLayersSelNChoices = sizeof( m_rbCopperLayersSelChoices ) / sizeof( wxString ); + m_rbCopperLayersSel = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_rbCopperLayersSelNChoices, m_rbCopperLayersSelChoices, 0 ); + m_rbCopperLayersSel->SetSelection( 0 ); + bSizer11->Add( m_rbCopperLayersSel, 1, wxALL, 5 ); + + m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerTechlayers; + sbSizerTechlayers = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Technical") ), wxVERTICAL ); + + m_PadLayerAdhCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerAdhCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerAdhCu = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerAdhCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerPateCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerPateCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerPateCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerPateCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerSilkCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerSilkCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerSilkCu = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerSilkCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerMaskCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerMaskCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerMaskCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerMaskCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerDraft = new wxCheckBox( m_panel2, wxID_ANY, _("Draft layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerDraft, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerECO1 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.1 layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerECO1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerECO2 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 ); + + m_LayersSizer->Add( sbSizerTechlayers, 0, wxALL|wxEXPAND, 5 ); + + bSizer10->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 5 ); + + bGeneralSizer->Add( bSizer10, 0, wxEXPAND|wxALL, 5 ); + + wxBoxSizer* bSizer13x; + bSizer13x = new wxBoxSizer( wxVERTICAL ); + + m_panelShowPad = new wxPanel( m_panel2, wxID_ANY, wxDefaultPosition, wxSize( 200,200 ), wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER ); + m_panelShowPad->SetBackgroundColour( wxColour( 0, 0, 0 ) ); + + bSizer13x->Add( m_panelShowPad, 1, wxEXPAND|wxRIGHT|wxSHAPED|wxTOP, 5 ); + + bGeneralSizer->Add( bSizer13x, 1, wxEXPAND, 5 ); + + m_panel2->SetSizer( bGeneralSizer ); + m_panel2->Layout(); + bGeneralSizer->Fit( m_panel2 ); + m_notebook1->AddPage( m_panel2, _("General"), true ); + m_localSettingsPanel = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer14; + bSizer14 = new wxBoxSizer( wxHORIZONTAL ); + + + bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer13; bSizer13 = new wxBoxSizer( wxVERTICAL ); - wxBoxSizer* bSizer12; - bSizer12 = new wxBoxSizer( wxHORIZONTAL ); - - m_staticText40 = new wxStaticText( this, wxID_ANY, _("Pad connection to zones:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText40->Wrap( -1 ); - bSizer12->Add( m_staticText40, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT, 5 ); - - wxString m_ZoneConnectionChoiceChoices[] = { _("From parent module"), _("Solid"), _("Thermal relief"), _("None") }; - int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString ); - m_ZoneConnectionChoice = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 ); - m_ZoneConnectionChoice->SetSelection( 0 ); - bSizer12->Add( m_ZoneConnectionChoice, 0, wxALL, 5 ); - - bSizer13->Add( bSizer12, 0, wxEXPAND, 5 ); - - m_staticTextWarning = new wxStaticText( this, wxID_ANY, _("Set clearances to 0\nto use Parent footprint or global values"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextWarning->Wrap( -1 ); - m_staticTextWarning->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); - - bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - sbClearancesSizer->Add( bSizer13, 0, wxEXPAND, 5 ); + wxStaticBoxSizer* sbClearancesSizer; + sbClearancesSizer = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Clearances") ), wxVERTICAL ); wxFlexGridSizer* fgClearancesGridSizer; fgClearancesGridSizer = new wxFlexGridSizer( 5, 3, 0, 0 ); fgClearancesGridSizer->SetFlexibleDirection( wxBOTH ); fgClearancesGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - m_staticTextNetClearance = new wxStaticText( this, wxID_ANY, _("Net pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextNetClearance = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Net pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextNetClearance->Wrap( -1 ); m_staticTextNetClearance->SetToolTip( _("This is the local net clearance for pad.\nIf 0, the footprint local value or the Netclass value is used") ); - fgClearancesGridSizer->Add( m_staticTextNetClearance, 0, wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + fgClearancesGridSizer->Add( m_staticTextNetClearance, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - m_NetClearanceValueCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_NetClearanceValueCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); fgClearancesGridSizer->Add( m_NetClearanceValueCtrl, 0, wxALL|wxEXPAND, 5 ); - m_NetClearanceUnits = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_NetClearanceUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_NetClearanceUnits->Wrap( -1 ); fgClearancesGridSizer->Add( m_NetClearanceUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgClearancesGridSizer->Add( m_staticline1, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); - - m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgClearancesGridSizer->Add( m_staticline2, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); - - m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - fgClearancesGridSizer->Add( m_staticline3, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); - - m_MaskClearanceTitle = new wxStaticText( this, wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MaskClearanceTitle = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); m_MaskClearanceTitle->Wrap( -1 ); m_MaskClearanceTitle->SetToolTip( _("This is the local clearance between this pad and the solder mask\nIf 0, the footprint local value or the global value is used") ); - fgClearancesGridSizer->Add( m_MaskClearanceTitle, 0, wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + fgClearancesGridSizer->Add( m_MaskClearanceTitle, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - m_SolderMaskMarginCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderMaskMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); fgClearancesGridSizer->Add( m_SolderMaskMarginCtrl, 0, wxALL|wxEXPAND, 5 ); - m_SolderMaskMarginUnits = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderMaskMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_SolderMaskMarginUnits->Wrap( -1 ); fgClearancesGridSizer->Add( m_SolderMaskMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - m_staticTextSolderPaste = new wxStaticText( this, wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextSolderPaste = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextSolderPaste->Wrap( -1 ); m_staticTextSolderPaste->SetToolTip( _("This is the local clearance between this pad and the solder paste.\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value ratio\nA negative value means a smaller mask size than pad size") ); - fgClearancesGridSizer->Add( m_staticTextSolderPaste, 0, wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + fgClearancesGridSizer->Add( m_staticTextSolderPaste, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - m_SolderPasteMarginCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderPasteMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); fgClearancesGridSizer->Add( m_SolderPasteMarginCtrl, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 ); - m_SolderPasteMarginUnits = new wxStaticText( this, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderPasteMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_SolderPasteMarginUnits->Wrap( -1 ); fgClearancesGridSizer->Add( m_SolderPasteMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - m_staticTextRatio = new wxStaticText( this, wxID_ANY, _("Solder mask ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextRatio = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextRatio->Wrap( -1 ); m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in per cent between this pad and the solder paste.\nA value of 10 means the clearance value is 10 per cent of the pad size\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value\nA negative value means a smaller mask size than pad size.") ); - fgClearancesGridSizer->Add( m_staticTextRatio, 0, wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); + fgClearancesGridSizer->Add( m_staticTextRatio, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - m_SolderPasteMarginRatioCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderPasteMarginRatioCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); fgClearancesGridSizer->Add( m_SolderPasteMarginRatioCtrl, 0, wxALL|wxEXPAND, 5 ); - m_SolderPasteRatioMarginUnits = new wxStaticText( this, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderPasteRatioMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); m_SolderPasteRatioMarginUnits->Wrap( -1 ); fgClearancesGridSizer->Add( m_SolderPasteRatioMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); sbClearancesSizer->Add( fgClearancesGridSizer, 1, wxEXPAND, 5 ); - bMiddleSizer->Add( sbClearancesSizer, 0, wxEXPAND|wxLEFT|wxRIGHT, 5 ); + bSizer13->Add( sbClearancesSizer, 0, wxEXPAND|wxALL, 5 ); - bGeneralSizer->Add( bMiddleSizer, 1, wxEXPAND, 5 ); + wxStaticBoxSizer* sbSizer7; + sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Copper Zones") ), wxVERTICAL ); - wxBoxSizer* m_RightBoxSizer; - m_RightBoxSizer = new wxBoxSizer( wxVERTICAL ); + wxFlexGridSizer* fgSizer41; + fgSizer41 = new wxFlexGridSizer( 0, 3, 0, 0 ); + fgSizer41->SetFlexibleDirection( wxBOTH ); + fgSizer41->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - wxString m_PadTypeChoices[] = { _("Standard"), _("SMD"), _("Conn"), _("NPTH, Mechanical") }; - int m_PadTypeNChoices = sizeof( m_PadTypeChoices ) / sizeof( wxString ); - m_PadType = new wxRadioBox( this, ID_LISTBOX_TYPE_PAD, _("Pad Type"), wxDefaultPosition, wxDefaultSize, m_PadTypeNChoices, m_PadTypeChoices, 1, wxRA_SPECIFY_COLS ); - m_PadType->SetSelection( 0 ); - m_RightBoxSizer->Add( m_PadType, 0, wxALL|wxEXPAND, 5 ); + m_staticText40 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText40->Wrap( -1 ); + fgSizer41->Add( m_staticText40, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - wxStaticBoxSizer* m_LayersSizer; - m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers") ), wxVERTICAL ); + wxString m_ZoneConnectionChoiceChoices[] = { _("From parent module"), _("Solid"), _("Thermal relief"), _("None") }; + int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString ); + m_ZoneConnectionChoice = new wxChoice( m_localSettingsPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 ); + m_ZoneConnectionChoice->SetSelection( 0 ); + fgSizer41->Add( m_ZoneConnectionChoice, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - wxString m_rbCopperLayersSelChoices[] = { _("Front layer"), _("Back layer"), _("All copper layers"), _("No copper layers") }; - int m_rbCopperLayersSelNChoices = sizeof( m_rbCopperLayersSelChoices ) / sizeof( wxString ); - m_rbCopperLayersSel = new wxRadioBox( this, wxID_ANY, _("Copper Layers"), wxDefaultPosition, wxDefaultSize, m_rbCopperLayersSelNChoices, m_rbCopperLayersSelChoices, 1, wxRA_SPECIFY_COLS ); - m_rbCopperLayersSel->SetSelection( 2 ); - m_LayersSizer->Add( m_rbCopperLayersSel, 0, wxALL|wxEXPAND, 5 ); + m_staticText43 = new wxStaticText( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText43->Wrap( -1 ); + fgSizer41->Add( m_staticText43, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - wxStaticBoxSizer* sbSizerTechlayers; - sbSizerTechlayers = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Technical Layers") ), wxVERTICAL ); + m_staticText49 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief width:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText49->Wrap( -1 ); + fgSizer41->Add( m_staticText49, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - m_PadLayerAdhCmp = new wxCheckBox( this, wxID_ANY, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerAdhCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_ThermalWidthCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer41->Add( m_ThermalWidthCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 ); - m_PadLayerAdhCu = new wxCheckBox( this, wxID_ANY, _("Adhesive Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerAdhCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_ThermalWidthUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ThermalWidthUnits->Wrap( -1 ); + fgSizer41->Add( m_ThermalWidthUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); - m_PadLayerPateCmp = new wxCheckBox( this, wxID_ANY, _("Solder paste Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerPateCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_staticText52 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief gap:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText52->Wrap( -1 ); + fgSizer41->Add( m_staticText52, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - m_PadLayerPateCu = new wxCheckBox( this, wxID_ANY, _("Solder paste Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerPateCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_ThermalGapCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer41->Add( m_ThermalGapCtrl, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - m_PadLayerSilkCmp = new wxCheckBox( this, wxID_ANY, _("Silkscreen Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerSilkCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_ThermalGapUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ThermalGapUnits->Wrap( -1 ); + fgSizer41->Add( m_ThermalGapUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); - m_PadLayerSilkCu = new wxCheckBox( this, wxID_ANY, _("Silkscreen Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerSilkCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + sbSizer7->Add( fgSizer41, 1, wxEXPAND, 5 ); - m_PadLayerMaskCmp = new wxCheckBox( this, wxID_ANY, _("Solder mask Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerMaskCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + bSizer13->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 ); - m_PadLayerMaskCu = new wxCheckBox( this, wxID_ANY, _("Solder mask Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerMaskCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextWarning->Wrap( -1 ); + m_staticTextWarning->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); - m_PadLayerDraft = new wxCheckBox( this, wxID_ANY, _("Draft layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerDraft, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); - m_PadLayerECO1 = new wxCheckBox( this, wxID_ANY, _("E.C.O.1 layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerECO1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + bSizer14->Add( bSizer13, 0, wxALIGN_CENTER_VERTICAL, 5 ); - m_PadLayerECO2 = new wxCheckBox( this, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 ); - m_LayersSizer->Add( sbSizerTechlayers, 1, wxALL|wxEXPAND, 5 ); + bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); - m_RightBoxSizer->Add( m_LayersSizer, 0, wxALL, 5 ); + m_localSettingsPanel->SetSizer( bSizer14 ); + m_localSettingsPanel->Layout(); + bSizer14->Fit( m_localSettingsPanel ); + m_notebook1->AddPage( m_localSettingsPanel, _("Local Settings"), false ); - bGeneralSizer->Add( m_RightBoxSizer, 0, wxBOTTOM|wxRIGHT|wxEXPAND, 5 ); - - m_MainSizer->Add( bGeneralSizer, 1, wxEXPAND, 5 ); + m_MainSizer->Add( m_notebook1, 1, wxALL|wxEXPAND, 5 ); m_sdbSizer1 = new wxStdDialogButtonSizer(); m_sdbSizer1OK = new wxButton( this, wxID_OK ); @@ -460,7 +524,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); m_sdbSizer1->Realize(); - m_MainSizer->Add( m_sdbSizer1, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); + m_MainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 5 ); this->SetSizer( m_MainSizer ); this->Layout(); @@ -470,23 +534,20 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind // Connect Events m_PadNumCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_PadNetNameCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadDrill_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadDrill_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); + m_PadShape->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); m_ShapeSize_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_ShapeSize_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadOrient->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); + m_PadOrientCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_ShapeOffset_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_ShapeOffset_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_ShapeDelta_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_radioBtnDeltaXdir->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_radioBtnDeltaYdir->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadShape->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); - m_DrillShapeCtrl->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); - m_PadOrient->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); - m_PadOrientCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_panelShowPad->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); - m_NetClearanceValueCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadType->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); - m_rbCopperLayersSel->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_trapDeltaDirChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_DrillShapeCtrl->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); + m_PadDrill_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadDrill_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_rbCopperLayersSel->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerAdhCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerAdhCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerPateCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); @@ -498,6 +559,8 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_PadLayerDraft->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerECO1->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerECO2->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_panelShowPad->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); + m_NetClearanceValueCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); } @@ -507,23 +570,20 @@ DIALOG_PAD_PROPERTIES_BASE::~DIALOG_PAD_PROPERTIES_BASE() // Disconnect Events m_PadNumCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_PadNetNameCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadDrill_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadDrill_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); + m_PadShape->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); m_ShapeSize_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_ShapeSize_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadOrient->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); + m_PadOrientCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_ShapeOffset_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_ShapeOffset_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_ShapeDelta_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_radioBtnDeltaXdir->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_radioBtnDeltaYdir->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadShape->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); - m_DrillShapeCtrl->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); - m_PadOrient->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); - m_PadOrientCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_panelShowPad->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); - m_NetClearanceValueCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadType->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); - m_rbCopperLayersSel->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_trapDeltaDirChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_DrillShapeCtrl->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); + m_PadDrill_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadDrill_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_rbCopperLayersSel->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerAdhCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerAdhCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerPateCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); @@ -535,6 +595,8 @@ DIALOG_PAD_PROPERTIES_BASE::~DIALOG_PAD_PROPERTIES_BASE() m_PadLayerDraft->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerECO1->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); m_PadLayerECO2->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_panelShowPad->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); + m_NetClearanceValueCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); diff --git a/pcbnew/dialogs/dialog_pad_properties_base.fbp b/pcbnew/dialogs/dialog_pad_properties_base.fbp index 7da377d22f..f5eb61081c 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.fbp +++ b/pcbnew/dialogs/dialog_pad_properties_base.fbp @@ -57,7 +57,7 @@ 0 - + -1,-1 1 DIALOG_PAD_PROPERTIES_BASE 1 @@ -69,7 +69,7 @@ Resizable 1 - 900,800 + 1000,750 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Pad Properties @@ -125,4181 +125,6441 @@ none 5 - wxEXPAND + wxALL|wxEXPAND 1 - + + 1 + 1 + 1 + 1 + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 - bGeneralSizer - wxHORIZONTAL - none - - 5 - wxBOTTOM|wxLEFT|wxEXPAND - 0 - + 1 + m_notebook1 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + General + 1 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 - m_LeftBoxSizer - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Number: - - - 0 - - - 0 - - 1 - m_PadNumText - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PADNUMCTRL - - - 0 - - 0 - - 0 - - 1 - m_PadNumCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Net name: - - - 0 - - - 0 - - 1 - m_PadNameText - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PADNETNAMECTRL - - - 0 - - 0 - - 0 - - 1 - m_PadNetNameCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY - Pad Geometry - - sbSizer2 - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - - - 0 - - fgSizerGeometry - wxFLEX_GROWMODE_SPECIFIED - none - 14 - 0 - - 5 - wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position X - - - 0 - - - 0 - - 1 - m_staticText4 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - + 1 + m_panel2 + 1 + + + protected + 1 + + + Resizable + + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bGeneralSizer + wxHORIZONTAL + none + + 5 + wxALL|wxEXPAND + 0 + + + m_LeftBoxSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 2 + wxBOTH + 1 + + 0 + + fgSizer5 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Number: + + + 0 + + + 0 + + 1 + m_PadNumText + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PADNUMCTRL + + + 0 + + 0 + + 0 + + 1 + m_PadNumCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Net name: + + + 0 + + + 0 + + 1 + m_PadNameText + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PADNETNAMECTRL + + + 0 + + 0 + + 0 + + 1 + m_PadNetNameCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Type: + + + 0 + + + 0 + + 1 + m_staticText44 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Through-hole" "SMD" "Contact" "NPTH, Mechanical" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_PadType + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + PadTypeSelected + + + + + + + + + + + + + + + + + + + + + + + - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadPosition_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 3 + wxBOTH + + + 0 + + fgSizer6 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape: + + + 0 + + + 0 + + 1 + m_staticText45 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Circular" "Oval" "Rectangular" "Trapezoidal" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_PadShape + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPadShapeSelection + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + + 0 + + + 0 + + 1 + m_staticText46 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position X: + + + 0 + + + 0 + + 1 + m_staticText4 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadPosition_X_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadPosX_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position Y: + + + 0 + + + 0 + + 1 + m_staticText41 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadPosition_Y_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadPosY_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size X: + + + 0 + + + 0 + + 1 + m_staticText12 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeSize_X_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeSizeX_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size Y: + + + 0 + + + 0 + + 1 + m_staticText15 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeSize_Y_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeSizeY_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Orientation: + + + 0 + + + 0 + + 1 + m_staticText48 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "0" "90" "-90" "180" "Custom" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_PadOrient + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + PadOrientEvent + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + deg + + + 0 + + + 0 + + 1 + m_staticText491 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + + 0 + + + 0 + + 1 + m_PadOrientText + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadOrientCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0.1 deg + + + 0 + + + 0 + + 1 + m_customOrientUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Offset X: + + + 0 + + + 0 + + 1 + m_staticText17 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeOffset_X_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeOffsetX_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Offset Y: + + + 0 + + + 0 + + 1 + m_staticText19 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeOffset_Y_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeOffsetY_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Die length: + + + 0 + + + 0 + + 1 + m_staticText38 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + Wire length from pad to die on chip ( used to calculate actual track length) + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_LengthDieCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadLengthDie_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Trap. delta dim: + + + 0 + + + 0 + + 1 + m_staticText21 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeDelta_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeDelta_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Trap. direction: + + + 0 + + + 0 + + 1 + m_staticText23 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Horiz." "Vert." + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_trapDeltaDirChoice + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadPosX_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - + + + 5 + wxEXPAND + 0 + + + bMiddleUpperSizer + wxHORIZONTAL + none + + 5 + wxBOTTOM + 0 + + + m_DrillShapeBoxSizer + wxVERTICAL + protected + + + + 5 + wxBOTTOM + 0 + + + m_MiddleRightBoxSizer + wxVERTICAL + none + - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position Y - - - 0 - - - 0 - - 1 - m_staticText41 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadPosition_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadPosY_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline7 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline8 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline9 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Drill X - - - 0 - - - 0 - - 1 - m_textPadDrillX - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadDrill_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadDrill_X_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Drill Y - - - 0 - - - 0 - - 1 - m_textPadDrillY - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadDrill_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadDrill_Y_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline4 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline5 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline6 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape size X - - - 0 - - - 0 - - 1 - m_staticText12 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeSize_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeSizeX_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape size Y - - - 0 - - - 0 - - 1 - m_staticText15 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeSize_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeSizeY_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape offset X - - - 0 - - - 0 - - 1 - m_staticText17 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeOffset_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeOffsetX_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape offset Y - - - 0 - - - 0 - - 1 - m_staticText19 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeOffset_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeOffsetY_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape delta dim - - - 0 - - - 0 - - 1 - m_staticText21 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeDelta_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeDelta_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Trap. direction - - - 0 - - - 0 - - 1 - m_staticText23 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL - 0 - - - bSizerbdir - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_DDIRX - > - - - 0 - - - 0 - - 1 - m_radioBtnDeltaXdir - 1 - - - protected - 1 - - - Resizable - - 1 - - wxRB_GROUP - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 1 - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - + + + 5 + wxEXPAND|wxBOTTOM + 0 + + wxID_ANY + Footprint Orientation + + sbSizeModuleInfo + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 2 + wxBOTH + 1 + + 0 + + fgSizer4 + wxFLEX_GROWMODE_SPECIFIED + none + 2 + 0 + + 5 + wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Rotation: + + + 0 + + + 0 + + 1 + m_staticTitleModuleRot + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + + + 0 + + + 0 + + 1 + m_staticModuleRotValue + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_RIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Board side: + + + 0 + + + 0 + + 1 + m_staticTitleModuleSide + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Front side + + + 0 + + + 0 + + 1 + m_staticModuleSideValue + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_DDIRY - ^ - - - 0 - - - 0 - - 1 - m_radioBtnDeltaYdir - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 0 - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,90,92,-1,70,0 + 0 + 0 + wxID_ANY + Warning: This pad is flipped on board. Back and front layers will be swapped. + + + 0 + + + 0 + + 1 + m_staticTextWarningPadFlipped + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + + bSizer10 + wxVERTICAL + none + + 5 + wxALL + 0 + + wxID_ANY + Drill + + sbSizer2 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgSizerGeometry + wxFLEX_GROWMODE_SPECIFIED + none + 14 + 0 + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape: + + + 0 + + + 0 + + 1 + m_staticText47 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Circular" "Oval" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_DrillShapeCtrl + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrillShapeSelected + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + + 0 + + + 0 + + 1 + m_staticText51 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size X: + + + 0 + + + 0 + + 1 + m_textPadDrillX + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadDrill_X_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadDrill_X_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size Y: + + + 0 + + + 0 + + 1 + m_textPadDrillY + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadDrill_Y_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadDrill_Y_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Rot 0 - - - 0 - - - 0 - - 1 - m_staticTextDDirInfo - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - + + + 5 + wxALL|wxEXPAND + 1 + + wxID_ANY + Layers + + m_LayersSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 0 + + + bSizer11 + wxHORIZONTAL + none + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Copper: + + + 0 + + + 0 + + 1 + m_staticText511 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Front" "Back" "All" "None" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_rbCopperLayersSel + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + wxID_ANY + Technical + + sbSizerTechlayers + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Adhesive Cmp + + + 0 + + + 0 + + 1 + m_PadLayerAdhCmp + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Adhesive Copper + + + 0 + + + 0 + + 1 + m_PadLayerAdhCu + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste Cmp + + + 0 + + + 0 + + 1 + m_PadLayerPateCmp + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste Copper + + + 0 + + + 0 + + 1 + m_PadLayerPateCu + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Silkscreen Cmp + + + 0 + + + 0 + + 1 + m_PadLayerSilkCmp + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Silkscreen Copper + + + 0 + + + 0 + + 1 + m_PadLayerSilkCu + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask Cmp + + + 0 + + + 0 + + 1 + m_PadLayerMaskCmp + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask Copper + + + 0 + + + 0 + + 1 + m_PadLayerMaskCu + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Draft layer + + + 0 + + + 0 + + 1 + m_PadLayerDraft + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + E.C.O.1 layer + + + 0 + + + 0 + + 1 + m_PadLayerECO1 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + E.C.O.2 layer + + + 0 + + + 0 + + 1 + m_PadLayerECO2 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline10 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline101 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline1011 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Length die - - - 0 - - - 0 - - 1 - m_staticText38 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Wire length from pad to die on chip ( used to calculate actual track length) - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_LengthDieCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadLengthDie_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - + + + + + 5 + wxEXPAND + 1 + + + bSizer13x + wxVERTICAL + none + + 5 + wxEXPAND|wxRIGHT|wxSHAPED|wxTOP + 1 + + 1 + 1 + 1 + 1 + + + 0,0,0 + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + -1,-1 + 1 + m_panelShowPad + 1 + + + protected + 1 + + + Resizable + + 1 + 200,200 + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER + + + + + + + + + + + + + + + + + OnPaintShowPanel + + + + + + @@ -4307,3861 +6567,2124 @@ - - 5 - wxEXPAND - 1 - + + + Local Settings + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 - bMiddleSizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - bMiddleUpperSizer - wxHORIZONTAL - none - - 5 - wxBOTTOM - 0 - - - m_DrillShapeBoxSizer - wxVERTICAL - protected - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Circle" "Oval" "Rect" "Trapezoidal" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_LISTBOX_SHAPE_PAD - Pad Shape - - 1 - - 0 - - - 0 - - 1 - m_PadShape - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - OnPadShapeSelection - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Circle" "Oval" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_RADIOBOX_DRILL_SHAPE - Drill Shape - - 1 - - 0 - - - 0 - - 1 - m_DrillShapeCtrl - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - OnDrillShapeSelected - - - - - - - - - - - - 5 - wxBOTTOM - 0 - - - m_MiddleRightBoxSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "0" "90" "-90" "180" "Custom" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_LISTBOX_ORIENT_PAD - Pad Orient - - 1 - - 0 - - - 0 - - 1 - m_PadOrient - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - PadOrientEvent - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pad Orient (0.1 deg) - - - 0 - - - 0 - - 1 - m_PadOrientText - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadOrientCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - - - 5 - wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - 0,0,0 - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_panelShowPad - 1 - - - protected - 1 - - - Resizable - - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER|wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - OnPaintShowPanel - - - - - - - + 1 + m_localSettingsPanel + 1 + + + protected + 1 + + + Resizable + + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer14 + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + 0 + protected + 0 - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - wxID_ANY - Footprint Orientation - - sbSizeModuleInfo - wxHORIZONTAL - none - - - 5 - wxEXPAND - 1 - - 2 - wxBOTH - 1 - - 0 - - fgSizer4 - wxFLEX_GROWMODE_SPECIFIED - none - 2 - 0 - - 5 - wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Rotation: - - - 0 - - - 0 - - 1 - m_staticTitleModuleRot - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - - - 0 - - - 0 - - 1 - m_staticModuleRotValue - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Board side: - - - 0 - - - 0 - - 1 - m_staticTitleModuleSide - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Front side - - - 0 - - - 0 - - 1 - m_staticModuleSideValue - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,90,92,-1,70,0 - 0 - 0 - wxID_ANY - Warning: This pad is flipped on board. Back and front layers will be swapped. - - - 0 - - - 0 - - 1 - m_staticTextWarningPadFlipped - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxLEFT|wxRIGHT - 0 - - wxID_ANY - Local Settings - - sbClearancesSizer - wxVERTICAL - none - - - 5 - wxEXPAND - 0 - - - bSizer13 - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - - bSizer12 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pad connection to zones: - - - 0 - - - 0 - - 1 - m_staticText40 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bSizer13 + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Clearances + + sbClearancesSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgClearancesGridSizer + wxFLEX_GROWMODE_SPECIFIED + none + 5 + 0 + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Net pad clearance: + + + 0 + + + 0 + + 1 + m_staticTextNetClearance + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + This is the local net clearance for pad. If 0, the footprint local value or the Netclass value is used + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "From parent module" "Solid" "Thermal relief" "None" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_ZoneConnectionChoice - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_NetClearanceValueCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_NetClearanceUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask clearance: + + + 0 + + + 0 + + 1 + m_MaskClearanceTitle + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + This is the local clearance between this pad and the solder mask If 0, the footprint local value or the global value is used + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_SolderMaskMarginCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_SolderMaskMarginUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste clearance: + + + 0 + + + 0 + + 1 + m_staticTextSolderPaste + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + This is the local clearance between this pad and the solder paste. If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value ratio A negative value means a smaller mask size than pad size + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_SolderPasteMarginCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_SolderPasteMarginUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask ratio clearance: + + + 0 + + + 0 + + 1 + m_staticTextRatio + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + This is the local clearance ratio in per cent between this pad and the solder paste. A value of 10 means the clearance value is 10 per cent of the pad size If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value A negative value means a smaller mask size than pad size. + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_SolderPasteMarginRatioCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + % + + + 0 + + + 0 + + 1 + m_SolderPasteRatioMarginUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + - - 5 - wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,90,92,-1,70,0 - 0 - 0 - wxID_ANY - Set clearances to 0 to use Parent footprint or global values - - - 0 - - - 0 - - 1 - m_staticTextWarning - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - + + + 5 + wxEXPAND|wxALL + 1 + + wxID_ANY + Copper Zones + + sbSizer7 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgSizer41 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pad connection: + + + 0 + + + 0 + + 1 + m_staticText40 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "From parent module" "Solid" "Thermal relief" "None" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_ZoneConnectionChoice + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + + 0 + + + 0 + + 1 + m_staticText43 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Thermal relief width: + + + 0 + + + 0 + + 1 + m_staticText49 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ThermalWidthCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_ThermalWidthUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Thermal relief gap: + + + 0 + + + 0 + + 1 + m_staticText52 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ThermalGapCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_ThermalGapUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - - - 0 - - fgClearancesGridSizer - wxFLEX_GROWMODE_SPECIFIED - none - 5 - 0 - - 5 - wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Net pad clearance: - - - 0 - - - 0 - - 1 - m_staticTextNetClearance - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - This is the local net clearance for pad. If 0, the footprint local value or the Netclass value is used - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_NetClearanceValueCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_NetClearanceUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline1 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline2 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline3 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask clearance: - - - 0 - - - 0 - - 1 - m_MaskClearanceTitle - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - This is the local clearance between this pad and the solder mask If 0, the footprint local value or the global value is used - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_SolderMaskMarginCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_SolderMaskMarginUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste clearance: - - - 0 - - - 0 - - 1 - m_staticTextSolderPaste - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - This is the local clearance between this pad and the solder paste. If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value ratio A negative value means a smaller mask size than pad size - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_SolderPasteMarginCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_SolderPasteMarginUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask ratio clearance: - - - 0 - - - 0 - - 1 - m_staticTextRatio - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - This is the local clearance ratio in per cent between this pad and the solder paste. A value of 10 means the clearance value is 10 per cent of the pad size If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value A negative value means a smaller mask size than pad size. - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_SolderPasteMarginRatioCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - % - - - 0 - - - 0 - - 1 - m_SolderPasteRatioMarginUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - + + 5 + wxALIGN_CENTER_HORIZONTAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,90,92,-1,70,0 + 0 + 0 + wxID_ANY + Set fields to 0 to use parent or global values + + + 0 + + + 0 + + 1 + m_staticTextWarning + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + - - - - - 5 - wxBOTTOM|wxRIGHT|wxEXPAND - 0 - - - m_RightBoxSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Standard" "SMD" "Conn" "NPTH, Mechanical" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_LISTBOX_TYPE_PAD - Pad Type - - 1 - - 0 - - - 0 - - 1 - m_PadType - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - PadTypeSelected - - - - - - - - - - 5 - wxALL - 0 - - wxID_ANY - Layers - - m_LayersSizer - wxVERTICAL - none - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Front layer" "Back layer" "All copper layers" "No copper layers" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Copper Layers - - 1 - - 0 - - - 0 - - 1 - m_rbCopperLayersSel - 1 - - - protected - 1 - - - Resizable - - 2 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - OnSetLayers - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - wxID_ANY - Technical Layers - - sbSizerTechlayers - wxVERTICAL - none - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Adhesive Cmp - - - 0 - - - 0 - - 1 - m_PadLayerAdhCmp - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Adhesive Copper - - - 0 - - - 0 - - 1 - m_PadLayerAdhCu - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste Cmp - - - 0 - - - 0 - - 1 - m_PadLayerPateCmp - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste Copper - - - 0 - - - 0 - - 1 - m_PadLayerPateCu - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Silkscreen Cmp - - - 0 - - - 0 - - 1 - m_PadLayerSilkCmp - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Silkscreen Copper - - - 0 - - - 0 - - 1 - m_PadLayerSilkCu - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask Cmp - - - 0 - - - 0 - - 1 - m_PadLayerMaskCmp - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask Copper - - - 0 - - - 0 - - 1 - m_PadLayerMaskCu - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Draft layer - - - 0 - - - 0 - - 1 - m_PadLayerDraft - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - E.C.O.1 layer - - - 0 - - - 0 - - 1 - m_PadLayerECO1 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - E.C.O.2 layer - - - 0 - - - 0 - - 1 - m_PadLayerECO2 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - + + 5 + wxEXPAND + 1 + + 0 + protected + 0 @@ -8171,7 +8694,7 @@ 5 - wxTOP|wxBOTTOM|wxEXPAND + wxALL|wxEXPAND 0 0 diff --git a/pcbnew/dialogs/dialog_pad_properties_base.h b/pcbnew/dialogs/dialog_pad_properties_base.h index 69bf5821a3..79b019f846 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.h +++ b/pcbnew/dialogs/dialog_pad_properties_base.h @@ -18,14 +18,15 @@ #include #include #include -#include -#include +#include #include #include -#include -#include -#include #include +#include +#include +#include +#include +#include #include #include @@ -44,93 +45,68 @@ class DIALOG_PAD_PROPERTIES_BASE : public wxDialog wxID_DIALOG_EDIT_PAD = 1000, wxID_PADNUMCTRL, wxID_PADNETNAMECTRL, - wxID_DDIRX, - wxID_DDIRY, - ID_LISTBOX_SHAPE_PAD, - ID_RADIOBOX_DRILL_SHAPE, - ID_LISTBOX_ORIENT_PAD, - ID_LISTBOX_TYPE_PAD, }; + wxNotebook* m_notebook1; + wxPanel* m_panel2; wxStaticText* m_PadNumText; wxTextCtrl* m_PadNumCtrl; wxStaticText* m_PadNameText; wxTextCtrl* m_PadNetNameCtrl; + wxStaticText* m_staticText44; + wxChoice* m_PadType; + wxStaticText* m_staticText45; + wxChoice* m_PadShape; + wxStaticText* m_staticText46; wxStaticText* m_staticText4; wxTextCtrl* m_PadPosition_X_Ctrl; wxStaticText* m_PadPosX_Unit; wxStaticText* m_staticText41; wxTextCtrl* m_PadPosition_Y_Ctrl; wxStaticText* m_PadPosY_Unit; - wxStaticLine* m_staticline7; - wxStaticLine* m_staticline8; - wxStaticLine* m_staticline9; - wxStaticText* m_textPadDrillX; - wxTextCtrl* m_PadDrill_X_Ctrl; - wxStaticText* m_PadDrill_X_Unit; - wxStaticText* m_textPadDrillY; - wxTextCtrl* m_PadDrill_Y_Ctrl; - wxStaticText* m_PadDrill_Y_Unit; - wxStaticLine* m_staticline4; - wxStaticLine* m_staticline5; - wxStaticLine* m_staticline6; wxStaticText* m_staticText12; wxTextCtrl* m_ShapeSize_X_Ctrl; wxStaticText* m_PadShapeSizeX_Unit; wxStaticText* m_staticText15; wxTextCtrl* m_ShapeSize_Y_Ctrl; wxStaticText* m_PadShapeSizeY_Unit; + wxStaticText* m_staticText48; + wxChoice* m_PadOrient; + wxStaticText* m_staticText491; + wxStaticText* m_PadOrientText; + wxTextCtrl* m_PadOrientCtrl; + wxStaticText* m_customOrientUnits; wxStaticText* m_staticText17; wxTextCtrl* m_ShapeOffset_X_Ctrl; wxStaticText* m_PadShapeOffsetX_Unit; wxStaticText* m_staticText19; wxTextCtrl* m_ShapeOffset_Y_Ctrl; wxStaticText* m_PadShapeOffsetY_Unit; + wxStaticText* m_staticText38; + wxTextCtrl* m_LengthDieCtrl; + wxStaticText* m_PadLengthDie_Unit; wxStaticText* m_staticText21; wxTextCtrl* m_ShapeDelta_Ctrl; wxStaticText* m_PadShapeDelta_Unit; wxStaticText* m_staticText23; - wxRadioButton* m_radioBtnDeltaXdir; - wxRadioButton* m_radioBtnDeltaYdir; - wxStaticText* m_staticTextDDirInfo; - wxStaticLine* m_staticline10; - wxStaticLine* m_staticline101; - wxStaticLine* m_staticline1011; - wxStaticText* m_staticText38; - wxTextCtrl* m_LengthDieCtrl; - wxStaticText* m_PadLengthDie_Unit; + wxChoice* m_trapDeltaDirChoice; wxBoxSizer* m_DrillShapeBoxSizer; - wxRadioBox* m_PadShape; - wxRadioBox* m_DrillShapeCtrl; - wxRadioBox* m_PadOrient; - wxStaticText* m_PadOrientText; - wxTextCtrl* m_PadOrientCtrl; - wxPanel* m_panelShowPad; wxStaticText* m_staticTitleModuleRot; wxStaticText* m_staticModuleRotValue; wxStaticText* m_staticTitleModuleSide; wxStaticText* m_staticModuleSideValue; wxStaticText* m_staticTextWarningPadFlipped; - wxStaticText* m_staticText40; - wxChoice* m_ZoneConnectionChoice; - wxStaticText* m_staticTextWarning; - wxStaticText* m_staticTextNetClearance; - wxTextCtrl* m_NetClearanceValueCtrl; - wxStaticText* m_NetClearanceUnits; - wxStaticLine* m_staticline1; - wxStaticLine* m_staticline2; - wxStaticLine* m_staticline3; - wxStaticText* m_MaskClearanceTitle; - wxTextCtrl* m_SolderMaskMarginCtrl; - wxStaticText* m_SolderMaskMarginUnits; - wxStaticText* m_staticTextSolderPaste; - wxTextCtrl* m_SolderPasteMarginCtrl; - wxStaticText* m_SolderPasteMarginUnits; - wxStaticText* m_staticTextRatio; - wxTextCtrl* m_SolderPasteMarginRatioCtrl; - wxStaticText* m_SolderPasteRatioMarginUnits; - wxRadioBox* m_PadType; - wxRadioBox* m_rbCopperLayersSel; + wxStaticText* m_staticText47; + wxChoice* m_DrillShapeCtrl; + wxStaticText* m_staticText51; + wxStaticText* m_textPadDrillX; + wxTextCtrl* m_PadDrill_X_Ctrl; + wxStaticText* m_PadDrill_X_Unit; + wxStaticText* m_textPadDrillY; + wxTextCtrl* m_PadDrill_Y_Ctrl; + wxStaticText* m_PadDrill_Y_Unit; + wxStaticText* m_staticText511; + wxChoice* m_rbCopperLayersSel; wxCheckBox* m_PadLayerAdhCmp; wxCheckBox* m_PadLayerAdhCu; wxCheckBox* m_PadLayerPateCmp; @@ -142,25 +118,49 @@ class DIALOG_PAD_PROPERTIES_BASE : public wxDialog wxCheckBox* m_PadLayerDraft; wxCheckBox* m_PadLayerECO1; wxCheckBox* m_PadLayerECO2; + wxPanel* m_panelShowPad; + wxPanel* m_localSettingsPanel; + wxStaticText* m_staticTextNetClearance; + wxTextCtrl* m_NetClearanceValueCtrl; + wxStaticText* m_NetClearanceUnits; + wxStaticText* m_MaskClearanceTitle; + wxTextCtrl* m_SolderMaskMarginCtrl; + wxStaticText* m_SolderMaskMarginUnits; + wxStaticText* m_staticTextSolderPaste; + wxTextCtrl* m_SolderPasteMarginCtrl; + wxStaticText* m_SolderPasteMarginUnits; + wxStaticText* m_staticTextRatio; + wxTextCtrl* m_SolderPasteMarginRatioCtrl; + wxStaticText* m_SolderPasteRatioMarginUnits; + wxStaticText* m_staticText40; + wxChoice* m_ZoneConnectionChoice; + wxStaticText* m_staticText43; + wxStaticText* m_staticText49; + wxTextCtrl* m_ThermalWidthCtrl; + wxStaticText* m_ThermalWidthUnits; + wxStaticText* m_staticText52; + wxTextCtrl* m_ThermalGapCtrl; + wxStaticText* m_ThermalGapUnits; + wxStaticText* m_staticTextWarning; wxStdDialogButtonSizer* m_sdbSizer1; wxButton* m_sdbSizer1OK; wxButton* m_sdbSizer1Cancel; // Virtual event handlers, overide them in your derived class virtual void OnValuesChanged( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPadShapeSelection( wxCommandEvent& event ) { event.Skip(); } - virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); } - virtual void PadOrientEvent( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } virtual void PadTypeSelected( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPadShapeSelection( wxCommandEvent& event ) { event.Skip(); } + virtual void PadOrientEvent( wxCommandEvent& event ) { event.Skip(); } virtual void OnSetLayers( wxCommandEvent& event ) { event.Skip(); } + virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void PadPropertiesAccept( wxCommandEvent& event ) { event.Skip(); } public: - DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_EDIT_PAD, const wxString& title = _("Pad Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 900,800 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSUNKEN_BORDER ); + DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_EDIT_PAD, const wxString& title = _("Pad Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 1000,750 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSUNKEN_BORDER ); ~DIALOG_PAD_PROPERTIES_BASE(); }; diff --git a/pcbnew/item_io.cpp b/pcbnew/item_io.cpp index 7dcbd21105..a3121514be 100644 --- a/pcbnew/item_io.cpp +++ b/pcbnew/item_io.cpp @@ -722,6 +722,12 @@ bool D_PAD::Save( FILE* aFile ) const if( m_ZoneConnection != UNDEFINED_CONNECTION ) fprintf( aFile, ".ZoneConnection %d\n", m_ZoneConnection ); + if( m_ThermalWidth != 0 ) + fprintf( aFile, ".ThermalWidth %d\n", m_ThermalWidth ); + + if( m_ThermalGap != 0 ) + fprintf( aFile, ".ThermalGap %d\n", m_ThermalGap ); + if( fprintf( aFile, "$EndPAD\n" ) != sizeof("$EndPAD\n") - 1 ) return false; @@ -785,6 +791,12 @@ bool MODULE::Save( FILE* aFile ) const if( m_ZoneConnection != UNDEFINED_CONNECTION ) fprintf( aFile, ".ZoneConnection %d\n", m_ZoneConnection ); + if( m_ThermalWidth != 0 ) + fprintf( aFile, ".ThermalWidth %d\n", m_ThermalWidth ); + + if( m_ThermalGap != 0 ) + fprintf( aFile, ".ThermalGap %d\n", m_ThermalGap ); + // attributes if( m_Attributs != MOD_DEFAULT ) { @@ -1034,6 +1046,10 @@ int D_PAD::ReadDescr( LINE_READER* aReader ) SetLocalClearance( atoi( Line + 16 ) ); else if( strnicmp( Line, ".ZoneConnection ", 16 ) == 0 ) m_ZoneConnection = (ZoneConnection)atoi( Line + 16 ); + else if( strnicmp( Line, ".ThermalWidth ", 14 ) == 0 ) + m_ThermalWidth = atoi( Line + 14 ); + else if( strnicmp( Line, ".ThermalGap ", 12 ) == 0 ) + m_ThermalGap = atoi( Line + 12 ); break; default: @@ -1281,7 +1297,10 @@ int MODULE::ReadDescr( LINE_READER* aReader ) SetLocalClearance( atoi( Line + 16 ) ); else if( strnicmp( Line, ".ZoneConnection ", 16 ) == 0 ) m_ZoneConnection = (ZoneConnection)atoi( Line + 16 ); - + else if( strnicmp( Line, ".ThermalWidth ", 14 ) == 0 ) + m_ThermalWidth = atoi( Line + 14 ); + else if( strnicmp( Line, ".ThermalGap ", 12 ) == 0 ) + m_ThermalGap = atoi( Line + 12 ); break; default: diff --git a/pcbnew/kicad_plugin.cpp b/pcbnew/kicad_plugin.cpp index 19e870ae49..85dd0096a2 100644 --- a/pcbnew/kicad_plugin.cpp +++ b/pcbnew/kicad_plugin.cpp @@ -1024,6 +1024,18 @@ void KICAD_PLUGIN::loadMODULE() module->SetZoneConnection( (ZoneConnection)tmp ); } + else if( TESTLINE( ".ThermalWidth" ) ) + { + BIU tmp = biuParse( line + SZ( ".ThermalWidth" ) ); + module->SetThermalWidth( tmp ); + } + + else if( TESTLINE( ".ThermalGap" ) ) + { + BIU tmp = biuParse( line + SZ( ".ThermalGap" ) ); + module->SetThermalGap( tmp ); + } + else if( TESTLINE( "$EndMODULE" ) ) { module->CalculateBoundingBox(); @@ -1232,6 +1244,18 @@ void KICAD_PLUGIN::loadPAD( MODULE* aModule ) pad->SetZoneConnection( (ZoneConnection)tmp ); } + else if( TESTLINE( ".ThermalWidth" ) ) + { + BIU tmp = biuParse( line + SZ( ".ThermalWidth" ) ); + pad->SetThermalWidth( tmp ); + } + + else if( TESTLINE( ".ThermalGap" ) ) + { + BIU tmp = biuParse( line + SZ( ".ThermalGap" ) ); + pad->SetThermalGap( tmp ); + } + else if( TESTLINE( "$EndPAD" ) ) { wxPoint padpos = pad->GetPosition(); @@ -3192,6 +3216,12 @@ void KICAD_PLUGIN::savePAD( const D_PAD* me ) const if( me->GetZoneConnection() != UNDEFINED_CONNECTION ) fprintf( m_fp, ".ZoneConnection %d\n", me->GetZoneConnection() ); + if( me->GetThermalWidth() != 0 ) + fprintf( m_fp, ".ThermalWidth %d\n", me->GetThermalWidth() ); + + if( me->GetThermalGap() != 0 ) + fprintf( m_fp, ".ThermalGap %d\n", me->GetThermalGap() ); + fprintf( m_fp, "$EndPAD\n" ); CHECK_WRITE_ERROR(); @@ -3248,6 +3278,12 @@ void KICAD_PLUGIN::saveMODULE( const MODULE* me ) const if( me->GetZoneConnection() != UNDEFINED_CONNECTION ) fprintf( m_fp, ".ZoneConnection %d\n", me->GetZoneConnection() ); + if( me->GetThermalWidth() != 0 ) + fprintf( m_fp, ".ThermalWidth %d\n", me->GetThermalWidth() ); + + if( me->GetThermalGap() != 0 ) + fprintf( m_fp, ".ThermalGap %d\n", me->GetThermalGap() ); + // attributes if( me->GetAttributes() != MOD_DEFAULT ) { diff --git a/pcbnew/zones_convert_brd_items_to_polygons_with_Boost.cpp b/pcbnew/zones_convert_brd_items_to_polygons_with_Boost.cpp index 1fee5e48ec..d3fa83d413 100644 --- a/pcbnew/zones_convert_brd_items_to_polygons_with_Boost.cpp +++ b/pcbnew/zones_convert_brd_items_to_polygons_with_Boost.cpp @@ -371,13 +371,14 @@ void ZONE_CONTAINER::AddClearanceAreasPolygonsToPolysList( BOARD* aPcb ) if( pad->GetNet() != GetNet() ) continue; item_boundingbox = pad->GetBoundingBox(); - item_boundingbox.Inflate( m_ThermalReliefGap, m_ThermalReliefGap ); + int thermalGap = GetThermalReliefGap( pad ); + item_boundingbox.Inflate( thermalGap, thermalGap ); if( item_boundingbox.Intersects( zone_boundingbox ) ) { CreateThermalReliefPadPolygon( cornerBufferPolysToSubstract, - *pad, m_ThermalReliefGap, - m_ThermalReliefCopperBridge, + *pad, thermalGap, + GetThermalReliefCopperBridge( pad ), m_ZoneMinThickness, s_CircleToSegmentsCount, s_Correction, s_thermalRot ); diff --git a/pcbnew/zones_convert_to_polygons_aux_functions.cpp b/pcbnew/zones_convert_to_polygons_aux_functions.cpp index 5de29c7c80..f65a296d68 100644 --- a/pcbnew/zones_convert_to_polygons_aux_functions.cpp +++ b/pcbnew/zones_convert_to_polygons_aux_functions.cpp @@ -75,7 +75,7 @@ void BuildUnconnectedThermalStubsPolygonList( std::vector& aCornerBuffe endpoint.x = ( pad->GetSize().x / 2 ) + aZone->m_ThermalReliefGap; endpoint.y = ( pad->GetSize().y / 2 ) + aZone->m_ThermalReliefGap; - int copperThickness = aZone->m_ThermalReliefCopperBridge - aZone->m_ZoneMinThickness; + int copperThickness = aZone->GetThermalReliefCopperBridge( pad ) - aZone->m_ZoneMinThickness; if( copperThickness < 0 ) copperThickness = 0; From 02c7630bbb1308c42374f23c4f4b456b0aac2dd4 Mon Sep 17 00:00:00 2001 From: Marco Mattila Date: Thu, 8 Mar 2012 22:47:09 +0200 Subject: [PATCH 10/68] Fix compilation issue with KicadSVGFileDC. --- include/dcsvg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/dcsvg.h b/include/dcsvg.h index 2f8edc825b..0fffcde175 100644 --- a/include/dcsvg.h +++ b/include/dcsvg.h @@ -609,7 +609,7 @@ public: }; }; -typedef KicadSVGFileDC wxSVGFileDC; +typedef wxSVGFileDC KicadSVGFileDC; #endif // wxCHECK_VERSION From 6881dae3bc43df9e7a340f6201c5843db2e4e2ea Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 9 Mar 2012 19:58:58 +0100 Subject: [PATCH 11/68] Dialog exit: better icon. Pcbnew: * graphic_item_properties_base.fbp * dialog pad edit: make some strings more easier to translate. * global pad edition: fix a bug that change pad position instead of pad size (round pas only). Eeschema: * fix a bug: new created wires were not alwaes shows until the screen was redrawn. --- bitmaps_png/CMakeLists.txt | 1 + bitmaps_png/cpp_48/dialog_warning.cpp | 182 + bitmaps_png/sources/dialog_warning.svg | 255 + common/confirm.cpp | 2 +- eeschema/bus-wire-junction.cpp | 5 +- include/bitmaps.h | 1 + .../dialog_graphic_item_properties_base.fbp | 2674 +-- ...og_graphic_item_properties_for_Modedit.cpp | 16 +- .../dialog_graphic_items_options_base.fbp | 2 +- pcbnew/dialogs/dialog_pad_properties_base.cpp | 1206 +- pcbnew/dialogs/dialog_pad_properties_base.fbp | 17448 ++++++++-------- pcbnew/dialogs/dialog_pad_properties_base.h | 336 +- pcbnew/globaleditpad.cpp | 6 +- 13 files changed, 11291 insertions(+), 10843 deletions(-) create mode 100644 bitmaps_png/cpp_48/dialog_warning.cpp create mode 100644 bitmaps_png/sources/dialog_warning.svg diff --git a/bitmaps_png/CMakeLists.txt b/bitmaps_png/CMakeLists.txt index 2a1b4b08b5..8285dd7f00 100644 --- a/bitmaps_png/CMakeLists.txt +++ b/bitmaps_png/CMakeLists.txt @@ -510,6 +510,7 @@ set( BMAPS_MID # 48 x 48 for now set( BMAPS_BIG + dialog_warning icon_3d icon_cvpcb icon_eeschema diff --git a/bitmaps_png/cpp_48/dialog_warning.cpp b/bitmaps_png/cpp_48/dialog_warning.cpp new file mode 100644 index 0000000000..c715301a0a --- /dev/null +++ b/bitmaps_png/cpp_48/dialog_warning.cpp @@ -0,0 +1,182 @@ + +/* Do not modify this file, it was automatically generated by the + * PNG2cpp CMake script, using a *.png file as input. + */ + +#include + +static const unsigned char png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, + 0x87, 0x00, 0x00, 0x0a, 0x49, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xcd, 0x99, 0x6b, 0x6c, 0x5c, + 0xd7, 0x71, 0xc7, 0x7f, 0x73, 0xce, 0xdd, 0x37, 0xb9, 0x5c, 0x3e, 0x77, 0xf9, 0x12, 0xc5, 0x37, + 0x25, 0x59, 0x6f, 0x09, 0x8e, 0x2c, 0x47, 0x7e, 0x54, 0x81, 0x12, 0xd8, 0x28, 0x9a, 0xc6, 0x75, + 0x53, 0x5b, 0xa6, 0x65, 0x17, 0x4e, 0xd0, 0x02, 0x71, 0x9b, 0x14, 0x4d, 0xdc, 0x06, 0x89, 0x2b, + 0xb4, 0xa9, 0x9b, 0xc4, 0x4e, 0xbf, 0x05, 0xfd, 0xd4, 0x00, 0x01, 0x5a, 0x04, 0x41, 0x82, 0x02, + 0x05, 0x02, 0xc4, 0x40, 0x12, 0xa4, 0x45, 0xed, 0xd6, 0x6d, 0x25, 0x59, 0xac, 0x1d, 0xdb, 0x91, + 0x1f, 0x91, 0x2a, 0x99, 0x94, 0x28, 0x8a, 0xe4, 0x52, 0x14, 0xc9, 0xbd, 0xf7, 0x9e, 0xe9, 0x87, + 0xbb, 0xe4, 0xee, 0x4a, 0xa4, 0xd2, 0xb4, 0x94, 0xcc, 0x0b, 0x0c, 0xf6, 0xde, 0xdd, 0x73, 0xf7, + 0xce, 0x7f, 0xe6, 0x3f, 0x33, 0x67, 0xe6, 0x8a, 0xaa, 0x72, 0x4b, 0x0e, 0x11, 0x39, 0xf1, 0x28, + 0x77, 0xd8, 0x18, 0xff, 0xbd, 0xeb, 0x5b, 0x3a, 0xc3, 0x2d, 0x3a, 0xe4, 0x56, 0x00, 0x78, 0xf5, + 0xa8, 0x3c, 0x2e, 0x96, 0x6f, 0x00, 0x19, 0xe7, 0xf0, 0xc4, 0xf0, 0x52, 0x7c, 0x81, 0x07, 0xb6, + 0x7e, 0x57, 0xaf, 0x6e, 0x78, 0x00, 0xa7, 0x8e, 0xca, 0xc7, 0x8c, 0x35, 0xff, 0xb0, 0xf9, 0xc0, + 0xfd, 0x89, 0xf4, 0xa6, 0x9d, 0x84, 0x73, 0x17, 0x19, 0x3f, 0xf9, 0xcf, 0x4b, 0xc5, 0x89, 0x73, + 0xa7, 0x76, 0xf6, 0x71, 0x90, 0x67, 0xd5, 0xad, 0xe7, 0xf3, 0xcc, 0x7a, 0xfe, 0xd9, 0xdb, 0x4f, + 0x4b, 0x42, 0x0c, 0xdf, 0xde, 0xb4, 0xef, 0x60, 0x22, 0xdd, 0xbb, 0x1f, 0x77, 0xf5, 0x22, 0x36, + 0x9b, 0xa7, 0xeb, 0xc8, 0xef, 0x26, 0xac, 0xe7, 0xed, 0x3c, 0x79, 0x86, 0x47, 0xd6, 0xdb, 0x03, + 0xeb, 0x0a, 0x60, 0x6e, 0x86, 0x4f, 0xa7, 0x1a, 0x9a, 0xd3, 0xf5, 0x3b, 0x1e, 0x40, 0x17, 0x67, + 0x10, 0x40, 0x8b, 0xe3, 0x48, 0xba, 0x95, 0xae, 0x7b, 0x3e, 0x91, 0x32, 0x86, 0xaf, 0xfd, 0xf4, + 0x3e, 0xf1, 0x36, 0x24, 0x80, 0x13, 0x9f, 0x96, 0xb4, 0xc0, 0xf1, 0xf6, 0xbd, 0xf7, 0xa4, 0x55, + 0x1d, 0x04, 0x8b, 0x60, 0x3c, 0xb0, 0x31, 0xdc, 0xa5, 0xd7, 0xa9, 0xdf, 0xfe, 0x20, 0x89, 0xfa, + 0xfa, 0x5c, 0xb6, 0x9b, 0x27, 0x37, 0x24, 0x00, 0x33, 0xcf, 0xd3, 0xe9, 0xa6, 0xb6, 0x44, 0x7a, + 0xe8, 0x10, 0x3a, 0x37, 0x0e, 0x36, 0x16, 0x89, 0xf1, 0xa0, 0x34, 0x8f, 0x2e, 0x4e, 0xd3, 0x75, + 0xe8, 0xb7, 0x53, 0x06, 0xfe, 0xf2, 0xed, 0xa7, 0x25, 0xb1, 0xa1, 0x00, 0xbc, 0x72, 0x54, 0xb2, + 0x22, 0x7c, 0xb1, 0x7d, 0xdf, 0xfd, 0x29, 0x42, 0x1f, 0xd4, 0x81, 0x29, 0x2b, 0x6f, 0x3c, 0xb0, + 0x1e, 0xee, 0xf2, 0x5b, 0xa4, 0x47, 0xee, 0x27, 0xd3, 0xd8, 0x92, 0x9e, 0x9f, 0xe1, 0xf7, 0x37, + 0x14, 0x80, 0x38, 0xfc, 0x51, 0x5d, 0x5b, 0xbb, 0x4d, 0xf5, 0xdf, 0x8d, 0xab, 0xb6, 0xbe, 0x8d, + 0x81, 0xb1, 0x20, 0x16, 0x4a, 0x0b, 0xe8, 0xd5, 0x8b, 0x74, 0xdc, 0xf3, 0xc9, 0x94, 0xc2, 0x9f, + 0x8d, 0x8d, 0x4a, 0x66, 0x43, 0x00, 0xf8, 0xd9, 0xc3, 0xd2, 0x84, 0xf0, 0xc7, 0x85, 0xfd, 0x1f, + 0x49, 0x11, 0x2e, 0x82, 0x3a, 0xc4, 0x78, 0x88, 0xf1, 0x22, 0xc5, 0xc5, 0x82, 0x08, 0x88, 0xe0, + 0x2e, 0xbf, 0x45, 0x72, 0xe0, 0x20, 0x99, 0xd6, 0x8e, 0xb8, 0xc2, 0x67, 0x37, 0x04, 0x80, 0x52, + 0x82, 0x67, 0x1a, 0xda, 0xbb, 0x24, 0xb9, 0xf9, 0x4e, 0xdc, 0xec, 0xf9, 0xe5, 0xf2, 0x02, 0x62, + 0xae, 0xaf, 0xcc, 0xe0, 0x2f, 0xe0, 0x66, 0xce, 0xd1, 0x79, 0xef, 0xef, 0x24, 0x15, 0xfe, 0xe4, + 0xd5, 0x27, 0x24, 0xf7, 0x81, 0x02, 0x18, 0x1b, 0x95, 0x36, 0x84, 0xa7, 0xf3, 0xfb, 0x8f, 0x24, + 0xb5, 0x34, 0x07, 0x61, 0x09, 0xd4, 0xa1, 0x2e, 0x40, 0x43, 0x1f, 0xf1, 0x62, 0x51, 0x3c, 0xa8, + 0xae, 0x88, 0x4e, 0xbe, 0x49, 0xa2, 0x7b, 0x17, 0xd9, 0xf6, 0xcd, 0x56, 0x02, 0x9e, 0xf9, 0x40, + 0x01, 0x84, 0xca, 0x97, 0x72, 0x5d, 0x3d, 0x1a, 0xef, 0xdc, 0x81, 0x5e, 0xf9, 0x45, 0xa4, 0xac, + 0x0b, 0xc1, 0x05, 0x80, 0xc3, 0x1b, 0x3a, 0x84, 0x69, 0xea, 0x2c, 0x83, 0x70, 0x80, 0xa2, 0xfe, + 0x02, 0x6e, 0xea, 0x1d, 0xda, 0x0f, 0x3d, 0x9c, 0x50, 0xe1, 0x0f, 0xc7, 0x46, 0xa5, 0xed, 0x03, + 0x01, 0x70, 0xfa, 0x71, 0xe9, 0x14, 0xf8, 0x54, 0x7e, 0xcf, 0x91, 0x24, 0x0b, 0x57, 0x20, 0x5c, + 0x8a, 0x14, 0x77, 0x01, 0x38, 0x1f, 0xdb, 0xdc, 0x03, 0xf1, 0x24, 0xb6, 0x63, 0x2b, 0xa0, 0x65, + 0x60, 0x21, 0xa0, 0xb8, 0xc9, 0x37, 0x88, 0x15, 0x86, 0x69, 0xec, 0x19, 0xc6, 0xc1, 0x97, 0x3f, + 0x18, 0x0f, 0x28, 0xc7, 0x1b, 0x37, 0xf5, 0xa9, 0x57, 0x18, 0x46, 0xaf, 0xbc, 0x1b, 0x29, 0x1e, + 0x06, 0x10, 0xfa, 0x80, 0x62, 0x0a, 0x43, 0x11, 0x6d, 0xe2, 0x69, 0x4c, 0x73, 0x0f, 0x68, 0x88, + 0x2e, 0x7b, 0x28, 0x58, 0xc2, 0x5d, 0x7a, 0x93, 0xb6, 0x03, 0x1f, 0x4f, 0xa0, 0x3c, 0x35, 0x76, + 0x54, 0xba, 0x6e, 0x2b, 0x80, 0xb1, 0x51, 0xe9, 0x55, 0x18, 0x6d, 0xdb, 0x7b, 0x38, 0x41, 0xf1, + 0x7d, 0x34, 0x2c, 0xa1, 0xd5, 0xd6, 0x6f, 0x1b, 0x00, 0xaf, 0x52, 0xab, 0x6c, 0xe7, 0x1d, 0x28, + 0x44, 0xbf, 0x6b, 0x18, 0xc5, 0xc9, 0xe5, 0x37, 0x89, 0x35, 0x76, 0xd1, 0x34, 0xb0, 0x4d, 0x9c, + 0xe1, 0xcf, 0x6f, 0x2b, 0x00, 0x07, 0x7f, 0xd1, 0xdc, 0x33, 0xa0, 0x5e, 0x73, 0x2f, 0x6e, 0xfa, + 0xdd, 0x15, 0xea, 0xa8, 0xf3, 0xc1, 0x58, 0x4c, 0x61, 0x78, 0x85, 0xf3, 0xa8, 0x42, 0x2c, 0x89, + 0x97, 0x1f, 0x8c, 0x94, 0x5f, 0x8e, 0x91, 0xa0, 0x84, 0xbb, 0xf8, 0x1a, 0x6d, 0xfb, 0x1f, 0x8c, + 0x01, 0x8f, 0x9e, 0x38, 0x26, 0xfd, 0xb7, 0x05, 0xc0, 0xd8, 0x63, 0x32, 0x0c, 0xfc, 0x56, 0xeb, + 0xee, 0xc3, 0x71, 0x9d, 0x39, 0x1b, 0x51, 0x66, 0xc5, 0xfa, 0x01, 0xa6, 0x7d, 0x18, 0xac, 0x17, + 0xc1, 0x74, 0x6e, 0x25, 0x80, 0x4d, 0xe7, 0x36, 0x04, 0x53, 0x5e, 0x17, 0x46, 0x94, 0x9a, 0xfa, + 0x39, 0xb6, 0xae, 0x89, 0xd6, 0xa1, 0x1d, 0x12, 0x73, 0x3c, 0x77, 0x5b, 0x00, 0x38, 0x78, 0xae, + 0xa5, 0x77, 0x08, 0x9b, 0xcd, 0xa3, 0xd3, 0xef, 0x55, 0x71, 0x3f, 0x40, 0xac, 0x87, 0x2d, 0x0c, + 0x55, 0x02, 0x56, 0xcb, 0x94, 0x21, 0x04, 0x2f, 0x86, 0xe9, 0xd8, 0x52, 0xf1, 0x40, 0x39, 0xd5, + 0xea, 0xc4, 0x18, 0x2d, 0x7b, 0x8e, 0x78, 0x0e, 0x7e, 0xe3, 0xf4, 0x31, 0xd9, 0x76, 0x4b, 0x01, + 0x9c, 0x38, 0x2a, 0xdb, 0xc5, 0xc8, 0x03, 0x2d, 0xbb, 0xee, 0x8b, 0xe9, 0x95, 0x77, 0xae, 0xb3, + 0xbe, 0x8f, 0xe9, 0xdc, 0x56, 0x2e, 0x60, 0xcb, 0x5c, 0x0f, 0x6b, 0x2c, 0x6e, 0x3b, 0xb7, 0x82, + 0xb5, 0x91, 0xf5, 0xcb, 0x40, 0xdc, 0xd4, 0xdb, 0x98, 0x78, 0x92, 0xfc, 0xc8, 0x6e, 0x23, 0xca, + 0xd7, 0x7f, 0x55, 0x00, 0xbf, 0xd2, 0xde, 0xdc, 0x33, 0x7c, 0xad, 0xa5, 0x7f, 0xc8, 0x9a, 0x54, + 0x0e, 0x37, 0xf9, 0x3a, 0x88, 0x41, 0xc4, 0x80, 0x38, 0x48, 0x66, 0xb1, 0x85, 0x41, 0xd0, 0x80, + 0xa9, 0xe9, 0x05, 0xbe, 0xfc, 0x37, 0x3f, 0x46, 0x55, 0x51, 0x94, 0x5f, 0x3f, 0x34, 0xc2, 0xc7, + 0xee, 0x1a, 0x04, 0x63, 0x30, 0xdd, 0xdb, 0x09, 0xcf, 0xbc, 0x54, 0xe5, 0xa5, 0x10, 0x37, 0x7e, + 0x9a, 0xc6, 0x1d, 0xf7, 0xda, 0x4b, 0x3f, 0x3f, 0xfd, 0x6b, 0xa7, 0x46, 0x65, 0xdf, 0xee, 0x6f, + 0xeb, 0x7f, 0xae, 0xbb, 0x07, 0x4e, 0x8d, 0xca, 0x3e, 0x15, 0x73, 0x7f, 0xcb, 0x1d, 0x87, 0xac, + 0x5e, 0x7e, 0x23, 0xb2, 0x7e, 0xe8, 0x47, 0x55, 0xd7, 0x05, 0xd8, 0xee, 0xed, 0x51, 0xc0, 0xba, + 0x90, 0x86, 0x8c, 0xc7, 0xfb, 0x93, 0x33, 0x91, 0x5c, 0x9a, 0xc1, 0x33, 0xac, 0xd0, 0xc9, 0xeb, + 0xd8, 0x82, 0x78, 0x89, 0x2a, 0xcf, 0x85, 0xe8, 0xf4, 0x7b, 0x18, 0x81, 0xc2, 0x96, 0xdd, 0x9e, + 0x08, 0x2f, 0xdc, 0x12, 0x0a, 0x59, 0x78, 0x3e, 0x3f, 0x38, 0x6c, 0x25, 0x96, 0x44, 0xa7, 0xcf, + 0x55, 0x14, 0x08, 0x7d, 0x24, 0x9e, 0xc6, 0xe6, 0xfb, 0xca, 0xb4, 0x09, 0xf0, 0x8c, 0x92, 0x4d, + 0xc7, 0x08, 0x82, 0x80, 0x30, 0x0c, 0x69, 0xac, 0x8f, 0x55, 0x62, 0x02, 0xb0, 0x3d, 0xbb, 0x2a, + 0x29, 0xb5, 0xfc, 0x1f, 0x6e, 0xfc, 0x55, 0x72, 0x23, 0x07, 0x8c, 0x18, 0x73, 0xe7, 0xc9, 0xc7, + 0xe4, 0xc3, 0xeb, 0x0a, 0xe0, 0xc4, 0xe3, 0x72, 0x37, 0xd6, 0x7c, 0xa8, 0x69, 0xe4, 0x80, 0x75, + 0x97, 0x5e, 0xaf, 0xc9, 0x3a, 0xb8, 0x00, 0x6f, 0xf3, 0xae, 0x72, 0xb6, 0x09, 0x56, 0x82, 0xb4, + 0x29, 0x1b, 0x27, 0x08, 0x02, 0x7c, 0xdf, 0xa7, 0xa9, 0x3e, 0x56, 0xb3, 0xde, 0x16, 0x06, 0x91, + 0x44, 0x7a, 0x25, 0x86, 0xd4, 0x85, 0xe8, 0xcc, 0x59, 0x24, 0x5c, 0xa4, 0x7d, 0xeb, 0xee, 0x98, + 0x35, 0xfc, 0xf5, 0xba, 0x02, 0xf0, 0x94, 0x17, 0xda, 0xfa, 0xb7, 0xc4, 0xc4, 0x80, 0xce, 0x9e, + 0x5f, 0xb1, 0x1a, 0x2e, 0x40, 0x52, 0x59, 0x4c, 0x4b, 0x4f, 0x4d, 0x76, 0x41, 0x03, 0x5a, 0xb3, + 0x09, 0x7c, 0xdf, 0x8f, 0x00, 0xd4, 0xc5, 0x2a, 0xe0, 0x34, 0xda, 0x27, 0xd9, 0xde, 0xbd, 0x11, + 0x7d, 0xaa, 0xa8, 0xe4, 0xc6, 0x4f, 0xd2, 0xd0, 0xbf, 0xc7, 0x18, 0x1b, 0xdb, 0x76, 0x72, 0x54, + 0x8e, 0xac, 0x0b, 0x80, 0x53, 0x8f, 0xcb, 0x61, 0x63, 0xed, 0x8e, 0xdc, 0xf0, 0x5e, 0xe3, 0x26, + 0x5e, 0x2b, 0x5b, 0x2c, 0x12, 0x42, 0x1f, 0xaf, 0x77, 0x0f, 0xaa, 0x0e, 0xd5, 0x5a, 0xaf, 0xb4, + 0x36, 0x24, 0x09, 0x82, 0x00, 0x23, 0x4a, 0x43, 0xda, 0xae, 0xd0, 0x6b, 0xd9, 0xe2, 0xa6, 0xad, + 0x0f, 0x49, 0xd7, 0xaf, 0x64, 0x30, 0x4a, 0x57, 0x71, 0x93, 0x6f, 0xc1, 0xdc, 0xfb, 0xe4, 0x07, + 0x07, 0x12, 0x06, 0xbe, 0xb1, 0x2e, 0x00, 0x44, 0x79, 0x21, 0x3f, 0xbc, 0x35, 0x61, 0x82, 0x25, + 0xb4, 0x78, 0xa1, 0x46, 0x49, 0xa9, 0x6f, 0x42, 0x9a, 0xbb, 0xaa, 0x2a, 0x71, 0x80, 0xaa, 0x0f, + 0xce, 0xa7, 0x35, 0x17, 0xc7, 0xf7, 0x7d, 0xb2, 0x29, 0x0f, 0xd1, 0x10, 0x75, 0x95, 0x80, 0xc7, + 0x95, 0x20, 0x58, 0xc0, 0x76, 0x8f, 0xa0, 0xc5, 0x0b, 0xe8, 0xec, 0x79, 0xf4, 0xda, 0x14, 0x94, + 0xe6, 0x71, 0xe7, 0xff, 0x9d, 0x86, 0x4d, 0xdb, 0xc4, 0x7a, 0x5e, 0xef, 0xc9, 0xa3, 0xf2, 0xf1, + 0xff, 0x17, 0x80, 0x93, 0x47, 0xe5, 0x41, 0xeb, 0x79, 0x83, 0x0d, 0xbd, 0xdb, 0xc5, 0x4d, 0x9c, + 0xae, 0xa1, 0x0e, 0x2e, 0xc0, 0xf6, 0xee, 0x59, 0xa1, 0x4c, 0xe5, 0xd3, 0x47, 0x35, 0x24, 0x9f, + 0x4b, 0x10, 0x04, 0x01, 0x8d, 0xf5, 0x31, 0x34, 0x5c, 0x02, 0xff, 0x1a, 0x94, 0x66, 0x61, 0xe9, + 0x4a, 0x24, 0xfe, 0x1c, 0xa6, 0xa5, 0x1b, 0x53, 0xdf, 0x52, 0xbb, 0x47, 0x9c, 0x9f, 0x44, 0xaf, + 0x5d, 0xa6, 0x30, 0x34, 0x9c, 0xb2, 0x86, 0xe7, 0x39, 0x2e, 0xe6, 0xff, 0x06, 0x40, 0x44, 0xac, + 0xe1, 0xf9, 0xc2, 0xd0, 0x48, 0x52, 0x17, 0x67, 0xd0, 0xb9, 0x89, 0x9a, 0xcc, 0x63, 0x1a, 0x5a, + 0x31, 0x8d, 0xed, 0x15, 0x0a, 0x54, 0xf1, 0x9f, 0x60, 0x91, 0xd6, 0x7a, 0x65, 0x7c, 0x7c, 0x1c, + 0xb7, 0x70, 0x05, 0x96, 0xa6, 0xc1, 0x9f, 0x83, 0x70, 0xb1, 0xbc, 0xc6, 0x45, 0x35, 0x5d, 0x1d, + 0xde, 0x96, 0x1b, 0x13, 0x8e, 0x4e, 0x9c, 0x26, 0xdb, 0x3d, 0x84, 0x97, 0x88, 0x15, 0x7e, 0xd9, + 0x30, 0x6c, 0x4d, 0x00, 0xa7, 0x1e, 0xe5, 0x13, 0x36, 0x1e, 0xeb, 0xae, 0xef, 0x1e, 0x16, 0x1d, + 0x7f, 0xb5, 0xaa, 0xaa, 0x96, 0xad, 0xdf, 0xbf, 0xbf, 0xac, 0x8c, 0x1f, 0xf5, 0x02, 0xc1, 0x3c, + 0xf8, 0xb3, 0xb0, 0x38, 0x0d, 0xa5, 0x59, 0x3a, 0x1a, 0x84, 0xd2, 0xd2, 0x22, 0xf9, 0xc6, 0x64, + 0x39, 0x43, 0x85, 0x95, 0xc6, 0xa6, 0x4a, 0x4c, 0xcb, 0x26, 0x4c, 0x73, 0x77, 0x2d, 0x80, 0x85, + 0x69, 0x74, 0x6e, 0x82, 0xc2, 0xc0, 0x70, 0xda, 0x58, 0xbe, 0x7a, 0xb3, 0x61, 0xd8, 0xea, 0x00, + 0x8e, 0x8b, 0x31, 0x96, 0xaf, 0xe7, 0x07, 0x86, 0xd2, 0xcc, 0x5f, 0x44, 0xe7, 0x2f, 0x47, 0xfb, + 0x96, 0xb2, 0x48, 0x2e, 0x8f, 0xa9, 0xcb, 0x82, 0x7f, 0x15, 0x4a, 0xc5, 0xe8, 0x33, 0x58, 0x28, + 0xb7, 0x94, 0x51, 0x75, 0x4d, 0xc5, 0x0d, 0x7f, 0xf5, 0x7b, 0x07, 0x69, 0x6f, 0x4e, 0xd7, 0x2a, + 0xcf, 0x8d, 0x20, 0xbc, 0x91, 0xbb, 0x6e, 0xf4, 0xc2, 0xc5, 0xd7, 0xa8, 0xeb, 0xe8, 0x27, 0x16, + 0x4f, 0xdc, 0x74, 0x18, 0xb6, 0x2a, 0x80, 0x93, 0x67, 0x78, 0xc4, 0xc6, 0xe3, 0x6d, 0xd9, 0xce, + 0x3e, 0x74, 0x62, 0x2c, 0xa2, 0x48, 0x18, 0x05, 0x1e, 0xfe, 0x55, 0xbc, 0xbe, 0x5d, 0xd1, 0xf5, + 0x32, 0x1d, 0x56, 0x55, 0x2c, 0xe4, 0xd8, 0x47, 0x87, 0x79, 0xf4, 0xf0, 0xe0, 0xaa, 0x96, 0xaf, + 0xbe, 0xc7, 0xe4, 0x0a, 0x98, 0xd6, 0xcd, 0xb5, 0x00, 0x96, 0xe6, 0xd0, 0xe2, 0x79, 0xda, 0x07, + 0x87, 0xd2, 0x06, 0xbe, 0xb2, 0xd6, 0x30, 0xec, 0x06, 0x00, 0x3f, 0xbd, 0x4f, 0x3c, 0x23, 0x7c, + 0xb5, 0xbd, 0x7f, 0x30, 0xad, 0xc5, 0x71, 0x74, 0xb1, 0x58, 0x6e, 0xc8, 0xa3, 0xe6, 0xdc, 0x14, + 0x06, 0x30, 0xd9, 0xe6, 0x55, 0x94, 0xae, 0xa5, 0xc8, 0x52, 0xc9, 0xe7, 0x07, 0x2f, 0xbf, 0xc7, + 0xc2, 0x52, 0x69, 0xcd, 0x35, 0x95, 0x86, 0xdf, 0xe1, 0x0d, 0x7d, 0x08, 0xe4, 0xba, 0x9d, 0xef, + 0xa5, 0x37, 0xc8, 0xe4, 0x37, 0x91, 0x48, 0x25, 0xd3, 0xc5, 0xa9, 0xd5, 0x87, 0x61, 0x37, 0x00, + 0xc8, 0x75, 0xf2, 0x44, 0x22, 0x95, 0x6c, 0xa8, 0x2b, 0x6c, 0xc2, 0x4d, 0xbe, 0x79, 0xc3, 0x68, + 0xc4, 0x1b, 0xd8, 0xbf, 0xb6, 0x45, 0xcb, 0x4a, 0x2e, 0x2c, 0xfa, 0xec, 0x7a, 0xf2, 0xbb, 0x1c, + 0x7b, 0xee, 0x27, 0xec, 0x7b, 0xea, 0x7b, 0xbc, 0xf8, 0xca, 0xd9, 0x55, 0x2d, 0x5f, 0x39, 0x57, + 0x4c, 0xb6, 0x09, 0x53, 0x18, 0xa8, 0x7d, 0x9e, 0x7f, 0x0d, 0x9d, 0x39, 0x1b, 0x79, 0xc1, 0xe3, + 0xd9, 0xd5, 0x86, 0x61, 0x35, 0x00, 0xfe, 0xe9, 0x09, 0x49, 0x62, 0xf8, 0x4a, 0xbe, 0xbf, 0x3f, + 0xa3, 0xc5, 0x0b, 0x50, 0xaa, 0x7d, 0x1f, 0x61, 0xdb, 0x87, 0x30, 0x99, 0x86, 0x35, 0x94, 0xa8, + 0xc8, 0x8b, 0xaf, 0x9c, 0xe5, 0xf2, 0xec, 0x62, 0x34, 0xb9, 0x70, 0xca, 0xdf, 0xfd, 0xe8, 0x4c, + 0x95, 0xf5, 0xc3, 0x35, 0xc1, 0xc7, 0xfa, 0xf7, 0x45, 0xf3, 0xa3, 0x6a, 0x2f, 0x4c, 0x9d, 0x21, + 0xd5, 0x5c, 0x20, 0x95, 0x49, 0xc7, 0x02, 0xe5, 0x73, 0x22, 0xb5, 0x0b, 0x4c, 0x39, 0x63, 0x8a, + 0x88, 0x48, 0x5d, 0x89, 0x4f, 0x25, 0xd3, 0xa9, 0x74, 0xa6, 0xb5, 0x03, 0x37, 0x75, 0xe6, 0x3a, + 0xa8, 0x06, 0xaf, 0x7f, 0xf7, 0x9a, 0x56, 0xaf, 0xbe, 0xee, 0xeb, 0xa8, 0xab, 0xb9, 0xb5, 0xab, + 0x35, 0xbd, 0x26, 0xff, 0xa3, 0x86, 0x27, 0xf2, 0x82, 0x64, 0xea, 0xb1, 0x1d, 0x43, 0xb5, 0xcf, + 0x0d, 0x96, 0xd0, 0xe9, 0xb3, 0xe4, 0xfb, 0x07, 0xd2, 0x46, 0x78, 0xe6, 0xc5, 0x87, 0x69, 0x5c, + 0xd6, 0x17, 0xc0, 0x94, 0x4f, 0xe4, 0x9b, 0xf7, 0x92, 0xb1, 0x96, 0xe3, 0xf9, 0xbe, 0xbe, 0x8c, + 0x16, 0xcf, 0x83, 0xbf, 0x50, 0x6b, 0xfd, 0xce, 0x61, 0x24, 0x95, 0xb9, 0x89, 0x22, 0x15, 0x20, + 0x3b, 0xfa, 0x1a, 0xf8, 0x83, 0xdf, 0xdc, 0x4a, 0xae, 0x2e, 0xce, 0x7d, 0xbb, 0xdb, 0x79, 0xea, + 0x81, 0x9b, 0x04, 0xf2, 0x4a, 0x7c, 0x45, 0xe7, 0x5e, 0xdf, 0xce, 0x68, 0x9e, 0x5a, 0xed, 0x85, + 0xe9, 0x77, 0x49, 0x35, 0x34, 0x93, 0xce, 0xd6, 0x49, 0x73, 0x8c, 0x2f, 0x94, 0x0d, 0xbf, 0x82, + 0x42, 0x00, 0xf3, 0xaf, 0x9f, 0xe4, 0x0b, 0xb9, 0x5c, 0xfa, 0x8b, 0xbd, 0x7b, 0xef, 0x4c, 0x87, + 0xe7, 0x5e, 0x86, 0x60, 0xa9, 0x4a, 0x7b, 0x4b, 0xe2, 0xae, 0x87, 0x90, 0x64, 0xba, 0x3c, 0x36, + 0x5c, 0xbe, 0x4d, 0xaa, 0x5c, 0x2e, 0x95, 0x11, 0xe2, 0xf2, 0x83, 0x9d, 0x62, 0x4c, 0x95, 0xc7, + 0x6b, 0x5e, 0x67, 0x95, 0x1b, 0x7e, 0xb4, 0xea, 0xb7, 0x48, 0xfc, 0xb7, 0xfe, 0x8d, 0xf0, 0xdc, + 0x1b, 0xb5, 0xe1, 0xd7, 0xd4, 0x87, 0x2f, 0x75, 0xbc, 0x7b, 0x7a, 0x6c, 0xf1, 0xbf, 0x26, 0x19, + 0x1c, 0xfd, 0x21, 0xe3, 0x80, 0x33, 0x80, 0x7c, 0xf3, 0x30, 0xb9, 0x84, 0xc7, 0x9f, 0xe6, 0x7b, + 0x37, 0xa7, 0x5d, 0xf1, 0x7c, 0xad, 0xf2, 0x80, 0xd7, 0x35, 0x8c, 0xc4, 0x13, 0xff, 0x2b, 0xfa, + 0x54, 0x5f, 0x1b, 0xd1, 0x9b, 0xdf, 0xb3, 0x46, 0x1c, 0x79, 0x3d, 0xdb, 0xcb, 0x83, 0x81, 0x2a, + 0xb8, 0x33, 0x67, 0x89, 0xd7, 0x67, 0xa9, 0x6f, 0xac, 0x67, 0xb0, 0x91, 0x2f, 0x45, 0x2d, 0x4a, + 0xd4, 0xc0, 0x9a, 0xdd, 0xad, 0x7c, 0x36, 0x93, 0x4d, 0x9b, 0x54, 0xae, 0x09, 0x9d, 0xfe, 0xc5, + 0x8d, 0xa9, 0xaa, 0xa9, 0xa3, 0xf2, 0x00, 0x6e, 0x42, 0x1f, 0x6e, 0x96, 0x2e, 0xc3, 0x55, 0x8b, + 0xd8, 0x6a, 0x22, 0x5e, 0x3c, 0x4a, 0xd5, 0x35, 0x3c, 0x0a, 0xd1, 0xe9, 0xb3, 0xb4, 0xf5, 0x6c, + 0x4e, 0x26, 0x2c, 0xc7, 0xbe, 0xf5, 0x11, 0x7a, 0x00, 0xe3, 0xfd, 0xed, 0x61, 0x9a, 0x93, 0x96, + 0xcf, 0xb5, 0xf5, 0x74, 0xa7, 0xb4, 0x78, 0xa1, 0x3c, 0x59, 0xbb, 0x6e, 0x02, 0x7d, 0xea, 0xc7, + 0x60, 0xd6, 0xf5, 0x75, 0xda, 0x2f, 0x99, 0xfa, 0x95, 0x3d, 0x77, 0xfd, 0xd7, 0xc5, 0x0b, 0xc4, + 0xba, 0x3a, 0xc8, 0x36, 0x67, 0x19, 0x71, 0xc5, 0x67, 0x81, 0x27, 0xcd, 0x70, 0x0b, 0x0f, 0x25, + 0xd2, 0x71, 0x4d, 0x66, 0x1b, 0xd1, 0xd9, 0x0b, 0x6b, 0xce, 0x11, 0x57, 0x9a, 0xf0, 0xdb, 0x21, + 0x6b, 0xbd, 0x89, 0x55, 0x87, 0x16, 0xdf, 0xa7, 0xb5, 0xa3, 0x3d, 0x9e, 0xb0, 0x3c, 0x74, 0xa0, + 0x1b, 0x6b, 0xe2, 0x1e, 0x77, 0x37, 0xb4, 0x34, 0xa7, 0xb8, 0x76, 0x25, 0xda, 0x1e, 0x6c, 0xf0, + 0x43, 0xe7, 0x27, 0x89, 0xd7, 0xe7, 0x10, 0x30, 0x9f, 0xdf, 0xc9, 0x90, 0x11, 0x65, 0xce, 0x5f, + 0x5a, 0x72, 0xd8, 0xf8, 0x0d, 0xe9, 0x6b, 0x23, 0x1e, 0x12, 0xcf, 0x10, 0x96, 0x16, 0x51, 0xc5, + 0x9c, 0x5f, 0x64, 0xc2, 0xbb, 0x16, 0xf0, 0x8f, 0xb3, 0x53, 0xb3, 0x8f, 0x35, 0xb5, 0x36, 0xda, + 0x58, 0x61, 0x47, 0xd5, 0x20, 0x4a, 0x37, 0x98, 0xe6, 0x52, 0x7e, 0x69, 0x68, 0x99, 0x7c, 0xe7, + 0x1d, 0x5f, 0xe1, 0xd4, 0x67, 0x7e, 0xc4, 0xb4, 0x00, 0xde, 0xcb, 0x8f, 0xf0, 0x6c, 0xd2, 0xf2, + 0xf9, 0x4c, 0x26, 0x19, 0xc4, 0xe2, 0x36, 0x16, 0x79, 0x42, 0x36, 0x18, 0x77, 0x14, 0x0d, 0x7d, + 0x37, 0x7f, 0xcd, 0x0f, 0x03, 0x3f, 0x98, 0x7a, 0xe9, 0x02, 0x1f, 0xfe, 0xcc, 0x4f, 0xb8, 0x20, + 0xe5, 0xaa, 0xe6, 0xfd, 0xfd, 0x83, 0xec, 0x6a, 0x4a, 0x70, 0xd0, 0x0a, 0x9d, 0xa1, 0xc3, 0x28, + 0x88, 0xea, 0xc6, 0x40, 0x21, 0x82, 0x0a, 0xa8, 0x15, 0x96, 0x66, 0x7c, 0xfe, 0xe3, 0x3b, 0x3f, + 0xe3, 0x5f, 0xbe, 0xff, 0x36, 0x33, 0x40, 0xb0, 0x52, 0x89, 0xcb, 0x63, 0x46, 0xaf, 0x5c, 0x20, + 0x36, 0xa0, 0x0b, 0xd0, 0x68, 0x4a, 0x4c, 0x18, 0x0d, 0x5f, 0x09, 0x00, 0xf7, 0x3f, 0x05, 0xed, + 0x23, 0xdf, 0x99, 0x02, 0xd5, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, + 0x60, 0x82, +}; + +const BITMAP_OPAQUE dialog_warning_xpm[1] = {{ png, sizeof( png ), "dialog_warning_xpm" }}; + +//EOF diff --git a/bitmaps_png/sources/dialog_warning.svg b/bitmaps_png/sources/dialog_warning.svg new file mode 100644 index 0000000000..97d8164c37 --- /dev/null +++ b/bitmaps_png/sources/dialog_warning.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + unsorted + + + + + Open Clip Art Library, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors + + + + + + + + + + + + + + image/svg+xml + + + en + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/confirm.cpp b/common/confirm.cpp index 4c480f48af..717f267cb0 100644 --- a/common/confirm.cpp +++ b/common/confirm.cpp @@ -17,7 +17,7 @@ public: DIALOG_EXIT( wxWindow * parent, const wxString& aMessage ) : DIALOG_EXIT_BASE( parent ) { - m_bitmap->SetBitmap( KiBitmap( cancel_xpm ) ); + m_bitmap->SetBitmap( KiBitmap( dialog_warning_xpm ) ); if( ! aMessage.IsEmpty() ) m_TextInfo->SetLabel( aMessage ); GetSizer()->Fit( this ); diff --git a/eeschema/bus-wire-junction.cpp b/eeschema/bus-wire-junction.cpp index b20d6639ac..a81042526e 100644 --- a/eeschema/bus-wire-junction.cpp +++ b/eeschema/bus-wire-junction.cpp @@ -250,7 +250,7 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC ) screen->Append( tmp ); // Correct and remove segments that need merged. - screen->SchematicCleanUp( m_canvas, DC ); + screen->SchematicCleanUp( NULL, DC ); // A junction may be needed to connect the last segment. If the last segment was // removed by a cleanup, a junction may be needed to connect the segment's end point @@ -276,7 +276,8 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC ) // Now add the new wires and any required junctions to the schematic item list. screen->Append( s_wires ); - screen->SchematicCleanUp( m_canvas, DC ); + screen->SchematicCleanUp( NULL, DC ); + m_canvas->Refresh(); // Put the snap shot of the previous wire, buses, and junctions in the undo/redo list. PICKED_ITEMS_LIST oldItems; diff --git a/include/bitmaps.h b/include/bitmaps.h index 12d80f0b2b..ad07b108a7 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -152,6 +152,7 @@ EXTERN_BITMAP( delete_sheet_xpm ) EXTERN_BITMAP( delete_text_xpm ) EXTERN_BITMAP( delete_track_xpm ) EXTERN_BITMAP( delete_xpm ) +EXTERN_BITMAP( dialog_warning_xpm ) EXTERN_BITMAP( directory_xpm ) EXTERN_BITMAP( display_options_xpm ) EXTERN_BITMAP( down_xpm ) diff --git a/pcbnew/dialogs/dialog_graphic_item_properties_base.fbp b/pcbnew/dialogs/dialog_graphic_item_properties_base.fbp index f1a5fb834a..9c2cb7784f 100644 --- a/pcbnew/dialogs/dialog_graphic_item_properties_base.fbp +++ b/pcbnew/dialogs/dialog_graphic_item_properties_base.fbp @@ -1,8 +1,8 @@ - + - + C++ 1 source_name @@ -15,9 +15,9 @@ none 1 DIALOG_GRAPHIC_ITEM_PROPERTIES_BASE - + . - + 1 1 0 @@ -28,15 +28,15 @@ 1 1 0 - - - - + + + + 1 wxBOTH 0 1 - + 1 0 Dock @@ -44,82 +44,82 @@ Left 1 impl_virtual - - + + 1 - + 0 0 wxID_ANY - - + + 0 - - + + 0 -1,-1 1 DIALOG_GRAPHIC_ITEM_PROPERTIES_BASE 1 - - + + 1 - - + + Resizable - + 1 537,215 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU - + Graphic Item Properties 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - + + + + + + + + + + + + + OnClose - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + bMainSizer wxVERTICAL none @@ -128,7 +128,7 @@ wxALL|wxEXPAND 1 - + bUpperSizer wxHORIZONTAL none @@ -140,9 +140,9 @@ 3 wxBOTH 1 - + 0 - + fgUpperLeftGridSizer wxFLEX_GROWMODE_SPECIFIED none @@ -157,82 +157,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 0 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Start point X - - + + 0 - - + + 0 - + 1 m_StartPointXLabel 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -244,86 +244,86 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - + 0 - + 0 - + 1 m_Center_StartXCtrl 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -335,82 +335,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Unit - - + + 0 - - + + 0 - + 1 m_StartPointXUnit 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -422,82 +422,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 0 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Start point Y - - + + 0 - - + + 0 - + 1 m_StartPointYLabel 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -509,86 +509,86 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - + 0 - + 0 - + 1 m_Center_StartYCtrl 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -600,82 +600,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Unit - - + + 0 - - + + 0 - + 1 m_StartPointYUnit 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -687,82 +687,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 0 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY End point X - - + + 0 - - + + 0 - + 1 m_EndPointXLabel 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -774,86 +774,86 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - + 0 - + 0 - + 1 m_EndX_Radius_Ctrl 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -865,82 +865,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Unit - - + + 0 - - + + 0 - + 1 m_EndPointXUnit 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -952,82 +952,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 0 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY End point Y - - + + 0 - - + + 0 - + 1 m_EndPointYLabel 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1039,86 +1039,86 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - + 0 - + 0 - + 1 m_EndY_Ctrl 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1130,82 +1130,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Unit - - + + 0 - - + + 0 - + 1 m_EndPointYUnit 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1219,80 +1219,80 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - - + + 0 - + 1 m_staticline2 1 - - + + protected 1 - - + + Resizable - + 1 - + wxLI_VERTICAL - + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1300,7 +1300,7 @@ wxEXPAND 1 - + bUpperRightSizer wxVERTICAL none @@ -1312,9 +1312,9 @@ 3 wxBOTH 1 - + 0 - + fgUpperRightGridSizer wxFLEX_GROWMODE_SPECIFIED none @@ -1329,82 +1329,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Arc angle: - - + + 0 - - + + 0 - + 1 m_Angle_Text 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1416,86 +1416,86 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - + 0 - + 0 - + 1 m_Angle_Ctrl 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1507,82 +1507,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY 0.1 degree - - + + 0 - - + + 0 - + 1 m_AngleUnit 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1594,82 +1594,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 0 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Item thickness: - - + + 0 - - + + 0 - + 1 m_ThicknessLabel 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1681,86 +1681,86 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - + 0 - + 0 - + 1 m_ThicknessCtrl 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1772,82 +1772,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Unit - - + + 0 - - + + 0 - + 1 m_ThicknessTextUnit 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1859,82 +1859,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 0 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Default thickness: - - + + 0 - - + + 0 - + 1 m_DefaultThicknessLabel 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1946,86 +1946,86 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - + 0 - + 0 - + 1 m_DefaultThicknessCtrl 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2037,82 +2037,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Unit - - + + 0 - - + + 0 - + 1 m_DefaulThicknessTextUnit 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2125,9 +2125,9 @@ 2 wxBOTH 1 - + 0 - + fgLowerRightSizer wxFLEX_GROWMODE_SPECIFIED none @@ -2142,82 +2142,82 @@ 1 1 1 - - - - + + + + 1 0 1 - + 0 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY Layer: - - + + 0 - - + + 0 - + 1 m_LayerLabel 1 - - + + protected 1 - - + + Resizable - + 1 - - - + + + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -2229,82 +2229,82 @@ 1 1 1 - - - - + + + + 1 0 - + 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - - + + 0 - + 1 m_LayerSelectionCtrl 1 - - + + protected 1 - - + + Resizable - + 0 1 - - + + 0 Select the layer on which text should lay. - + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2322,80 +2322,80 @@ 1 1 1 - - - - + + + + 1 0 1 - + 1 0 Dock 0 Left 1 - + 1 - + 0 0 wxID_ANY - - + + 0 - - + + 0 - + 1 m_staticline1 1 - - + + protected 1 - - + + Resizable - + 1 - + wxLI_HORIZONTAL - + 0 - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2411,17 +2411,17 @@ 1 0 0 - + m_StandardButtonsSizer protected - + OnCancelClick - - - + + + OnOkClick - - + + diff --git a/pcbnew/dialogs/dialog_graphic_item_properties_for_Modedit.cpp b/pcbnew/dialogs/dialog_graphic_item_properties_for_Modedit.cpp index 463ed07f6d..fac6f67cd4 100644 --- a/pcbnew/dialogs/dialog_graphic_item_properties_for_Modedit.cpp +++ b/pcbnew/dialogs/dialog_graphic_item_properties_for_Modedit.cpp @@ -215,17 +215,21 @@ void DIALOG_MODEDIT_FP_BODY_ITEM_PROPERTIES::OnOkClick( wxCommandEvent& event ) wxString msg; - msg = m_Center_StartXCtrl->GetValue(); - m_item->SetStartX( ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() )); + wxPoint coord; + msg = m_Center_StartXCtrl->GetValue(); + coord.x = ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() ); msg = m_Center_StartYCtrl->GetValue(); - m_item->SetStartY( ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() )); + coord.y = ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() ); + m_item->SetStart( coord ); + m_item->SetStart0( coord ); msg = m_EndX_Radius_Ctrl->GetValue(); - m_item->SetEndX( ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() )); - + coord.x = ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() ); msg = m_EndY_Ctrl->GetValue(); - m_item->SetEndY( ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() )); + coord.y = ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() ); + m_item->SetEnd( coord ); + m_item->SetEnd0( coord ); msg = m_ThicknessCtrl->GetValue(); m_item->SetWidth( ReturnValueFromString( g_UserUnit, msg, m_parent->GetInternalUnits() )); diff --git a/pcbnew/dialogs/dialog_graphic_items_options_base.fbp b/pcbnew/dialogs/dialog_graphic_items_options_base.fbp index 7d69b6b510..65fe930685 100644 --- a/pcbnew/dialogs/dialog_graphic_items_options_base.fbp +++ b/pcbnew/dialogs/dialog_graphic_items_options_base.fbp @@ -1,6 +1,6 @@ - + C++ diff --git a/pcbnew/dialogs/dialog_pad_properties_base.cpp b/pcbnew/dialogs/dialog_pad_properties_base.cpp index 279035d6fe..722503d919 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.cpp +++ b/pcbnew/dialogs/dialog_pad_properties_base.cpp @@ -1,603 +1,603 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Aug 24 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_pad_properties_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); - - wxBoxSizer* m_MainSizer; - m_MainSizer = new wxBoxSizer( wxVERTICAL ); - - m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); - m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bGeneralSizer; - bGeneralSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* m_LeftBoxSizer; - m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgSizer5; - fgSizer5 = new wxFlexGridSizer( 0, 2, 0, 0 ); - fgSizer5->AddGrowableCol( 1 ); - fgSizer5->SetFlexibleDirection( wxBOTH ); - fgSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_PadNumText = new wxStaticText( m_panel2, wxID_ANY, _("Number:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadNumText->Wrap( -1 ); - fgSizer5->Add( m_PadNumText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadNumCtrl = new wxTextCtrl( m_panel2, wxID_PADNUMCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer5->Add( m_PadNumCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_PadNameText = new wxStaticText( m_panel2, wxID_ANY, _("Net name:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadNameText->Wrap( -1 ); - fgSizer5->Add( m_PadNameText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadNetNameCtrl = new wxTextCtrl( m_panel2, wxID_PADNETNAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer5->Add( m_PadNetNameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_staticText44 = new wxStaticText( m_panel2, wxID_ANY, _("Type:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText44->Wrap( -1 ); - fgSizer5->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - wxString m_PadTypeChoices[] = { _("Through-hole"), _("SMD"), _("Contact"), _("NPTH, Mechanical") }; - int m_PadTypeNChoices = sizeof( m_PadTypeChoices ) / sizeof( wxString ); - m_PadType = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadTypeNChoices, m_PadTypeChoices, 0 ); - m_PadType->SetSelection( 0 ); - fgSizer5->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_LeftBoxSizer->Add( fgSizer5, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxFlexGridSizer* fgSizer6; - fgSizer6 = new wxFlexGridSizer( 0, 3, 0, 0 ); - fgSizer6->SetFlexibleDirection( wxBOTH ); - fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText45->Wrap( -1 ); - fgSizer6->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") }; - int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); - m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 ); - m_PadShape->SetSelection( 0 ); - fgSizer6->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText46 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText46->Wrap( -1 ); - fgSizer6->Add( m_staticText46, 0, wxALL, 5 ); - - m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText4->Wrap( -1 ); - fgSizer6->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_PadPosition_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_PadPosition_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadPosX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadPosX_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadPosX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText41->Wrap( -1 ); - fgSizer6->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_PadPosition_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadPosY_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText12->Wrap( -1 ); - fgSizer6->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeSize_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeSize_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeSizeX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeSizeX_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeSizeX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText15 = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText15->Wrap( -1 ); - fgSizer6->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeSize_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeSize_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeSizeY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeSizeY_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeSizeY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText48 = new wxStaticText( m_panel2, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText48->Wrap( -1 ); - fgSizer6->Add( m_staticText48, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxString m_PadOrientChoices[] = { _("0"), _("90"), _("-90"), _("180"), _("Custom") }; - int m_PadOrientNChoices = sizeof( m_PadOrientChoices ) / sizeof( wxString ); - m_PadOrient = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadOrientNChoices, m_PadOrientChoices, 0 ); - m_PadOrient->SetSelection( 0 ); - fgSizer6->Add( m_PadOrient, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_staticText491 = new wxStaticText( m_panel2, wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText491->Wrap( -1 ); - fgSizer6->Add( m_staticText491, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_PadOrientText = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_PadOrientText->Wrap( -1 ); - fgSizer6->Add( m_PadOrientText, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadOrientCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_PadOrientCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_customOrientUnits = new wxStaticText( m_panel2, wxID_ANY, _("0.1 deg"), wxDefaultPosition, wxDefaultSize, 0 ); - m_customOrientUnits->Wrap( -1 ); - fgSizer6->Add( m_customOrientUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText17 = new wxStaticText( m_panel2, wxID_ANY, _("Offset X:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText17->Wrap( -1 ); - fgSizer6->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeOffset_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeOffset_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeOffsetX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeOffsetX_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeOffsetX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText19 = new wxStaticText( m_panel2, wxID_ANY, _("Offset Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText19->Wrap( -1 ); - fgSizer6->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeOffset_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeOffset_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeOffsetY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeOffsetY_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeOffsetY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText38 = new wxStaticText( m_panel2, wxID_ANY, _("Die length:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText38->Wrap( -1 ); - m_staticText38->SetToolTip( _("Wire length from pad to die on chip ( used to calculate actual track length)") ); - - fgSizer6->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_LengthDieCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_LengthDieCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLengthDie_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadLengthDie_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadLengthDie_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText21 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. delta dim:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText21->Wrap( -1 ); - fgSizer6->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeDelta_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeDelta_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeDelta_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeDelta_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeDelta_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText23 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. direction:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText23->Wrap( -1 ); - fgSizer6->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); - - wxString m_trapDeltaDirChoiceChoices[] = { _("Horiz."), _("Vert.") }; - int m_trapDeltaDirChoiceNChoices = sizeof( m_trapDeltaDirChoiceChoices ) / sizeof( wxString ); - m_trapDeltaDirChoice = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_trapDeltaDirChoiceNChoices, m_trapDeltaDirChoiceChoices, 0 ); - m_trapDeltaDirChoice->SetSelection( 0 ); - fgSizer6->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 ); - - m_LeftBoxSizer->Add( fgSizer6, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - wxBoxSizer* bMiddleUpperSizer; - bMiddleUpperSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_DrillShapeBoxSizer = new wxBoxSizer( wxVERTICAL ); - - bMiddleUpperSizer->Add( m_DrillShapeBoxSizer, 0, wxBOTTOM, 5 ); - - wxBoxSizer* m_MiddleRightBoxSizer; - m_MiddleRightBoxSizer = new wxBoxSizer( wxVERTICAL ); - - bMiddleUpperSizer->Add( m_MiddleRightBoxSizer, 0, wxBOTTOM, 5 ); - - m_LeftBoxSizer->Add( bMiddleUpperSizer, 0, wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizeModuleInfo; - sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Footprint Orientation") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizer4; - fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 ); - fgSizer4->AddGrowableCol( 1 ); - fgSizer4->SetFlexibleDirection( wxBOTH ); - fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticTitleModuleRot = new wxStaticText( m_panel2, wxID_ANY, _("Rotation:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTitleModuleRot->Wrap( -1 ); - fgSizer4->Add( m_staticTitleModuleRot, 0, wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_staticModuleRotValue = new wxStaticText( m_panel2, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticModuleRotValue->Wrap( -1 ); - fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_staticTitleModuleSide = new wxStaticText( m_panel2, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTitleModuleSide->Wrap( -1 ); - fgSizer4->Add( m_staticTitleModuleSide, 0, wxALL|wxALIGN_RIGHT, 5 ); - - m_staticModuleSideValue = new wxStaticText( m_panel2, wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticModuleSideValue->Wrap( -1 ); - fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 ); - - sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 ); - - m_staticTextWarningPadFlipped = new wxStaticText( m_panel2, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextWarningPadFlipped->Wrap( -1 ); - m_staticTextWarningPadFlipped->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); - - sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_LeftBoxSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM, 5 ); - - bGeneralSizer->Add( m_LeftBoxSizer, 0, wxALL|wxEXPAND, 5 ); - - wxBoxSizer* bSizer10; - bSizer10 = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSizer2; - sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Drill") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizerGeometry; - fgSizerGeometry = new wxFlexGridSizer( 14, 3, 0, 0 ); - fgSizerGeometry->SetFlexibleDirection( wxBOTH ); - fgSizerGeometry->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText47 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText47->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText47, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_DrillShapeCtrlChoices[] = { _("Circular"), _("Oval") }; - int m_DrillShapeCtrlNChoices = sizeof( m_DrillShapeCtrlChoices ) / sizeof( wxString ); - m_DrillShapeCtrl = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_DrillShapeCtrlNChoices, m_DrillShapeCtrlChoices, 0 ); - m_DrillShapeCtrl->SetSelection( 0 ); - fgSizerGeometry->Add( m_DrillShapeCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_staticText51 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText51->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText51, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_textPadDrillX = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPadDrillX->Wrap( -1 ); - fgSizerGeometry->Add( m_textPadDrillX, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_PadDrill_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_PadDrill_X_Ctrl, 0, wxALL, 5 ); - - m_PadDrill_X_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadDrill_X_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadDrill_X_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_textPadDrillY = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPadDrillY->Wrap( -1 ); - fgSizerGeometry->Add( m_textPadDrillY, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_PadDrill_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_PadDrill_Y_Ctrl, 0, wxALL, 5 ); - - m_PadDrill_Y_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadDrill_Y_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 ); - - bSizer10->Add( sbSizer2, 0, wxALL, 5 ); - - wxStaticBoxSizer* m_LayersSizer; - m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Layers") ), wxVERTICAL ); - - wxBoxSizer* bSizer11; - bSizer11 = new wxBoxSizer( wxHORIZONTAL ); - - m_staticText511 = new wxStaticText( m_panel2, wxID_ANY, _("Copper:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText511->Wrap( -1 ); - bSizer11->Add( m_staticText511, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_rbCopperLayersSelChoices[] = { _("Front"), _("Back"), _("All"), _("None") }; - int m_rbCopperLayersSelNChoices = sizeof( m_rbCopperLayersSelChoices ) / sizeof( wxString ); - m_rbCopperLayersSel = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_rbCopperLayersSelNChoices, m_rbCopperLayersSelChoices, 0 ); - m_rbCopperLayersSel->SetSelection( 0 ); - bSizer11->Add( m_rbCopperLayersSel, 1, wxALL, 5 ); - - m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizerTechlayers; - sbSizerTechlayers = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Technical") ), wxVERTICAL ); - - m_PadLayerAdhCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerAdhCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerAdhCu = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerAdhCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerPateCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerPateCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerPateCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerPateCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerSilkCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerSilkCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerSilkCu = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerSilkCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerMaskCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerMaskCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerMaskCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerMaskCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerDraft = new wxCheckBox( m_panel2, wxID_ANY, _("Draft layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerDraft, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerECO1 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.1 layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerECO1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerECO2 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 ); - - m_LayersSizer->Add( sbSizerTechlayers, 0, wxALL|wxEXPAND, 5 ); - - bSizer10->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 5 ); - - bGeneralSizer->Add( bSizer10, 0, wxEXPAND|wxALL, 5 ); - - wxBoxSizer* bSizer13x; - bSizer13x = new wxBoxSizer( wxVERTICAL ); - - m_panelShowPad = new wxPanel( m_panel2, wxID_ANY, wxDefaultPosition, wxSize( 200,200 ), wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER ); - m_panelShowPad->SetBackgroundColour( wxColour( 0, 0, 0 ) ); - - bSizer13x->Add( m_panelShowPad, 1, wxEXPAND|wxRIGHT|wxSHAPED|wxTOP, 5 ); - - bGeneralSizer->Add( bSizer13x, 1, wxEXPAND, 5 ); - - m_panel2->SetSizer( bGeneralSizer ); - m_panel2->Layout(); - bGeneralSizer->Fit( m_panel2 ); - m_notebook1->AddPage( m_panel2, _("General"), true ); - m_localSettingsPanel = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizer14; - bSizer14 = new wxBoxSizer( wxHORIZONTAL ); - - - bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizer13; - bSizer13 = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbClearancesSizer; - sbClearancesSizer = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Clearances") ), wxVERTICAL ); - - wxFlexGridSizer* fgClearancesGridSizer; - fgClearancesGridSizer = new wxFlexGridSizer( 5, 3, 0, 0 ); - fgClearancesGridSizer->SetFlexibleDirection( wxBOTH ); - fgClearancesGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticTextNetClearance = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Net pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextNetClearance->Wrap( -1 ); - m_staticTextNetClearance->SetToolTip( _("This is the local net clearance for pad.\nIf 0, the footprint local value or the Netclass value is used") ); - - fgClearancesGridSizer->Add( m_staticTextNetClearance, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_NetClearanceValueCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgClearancesGridSizer->Add( m_NetClearanceValueCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_NetClearanceUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_NetClearanceUnits->Wrap( -1 ); - fgClearancesGridSizer->Add( m_NetClearanceUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_MaskClearanceTitle = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_MaskClearanceTitle->Wrap( -1 ); - m_MaskClearanceTitle->SetToolTip( _("This is the local clearance between this pad and the solder mask\nIf 0, the footprint local value or the global value is used") ); - - fgClearancesGridSizer->Add( m_MaskClearanceTitle, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_SolderMaskMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgClearancesGridSizer->Add( m_SolderMaskMarginCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_SolderMaskMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SolderMaskMarginUnits->Wrap( -1 ); - fgClearancesGridSizer->Add( m_SolderMaskMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticTextSolderPaste = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextSolderPaste->Wrap( -1 ); - m_staticTextSolderPaste->SetToolTip( _("This is the local clearance between this pad and the solder paste.\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value ratio\nA negative value means a smaller mask size than pad size") ); - - fgClearancesGridSizer->Add( m_staticTextSolderPaste, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_SolderPasteMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgClearancesGridSizer->Add( m_SolderPasteMarginCtrl, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_SolderPasteMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SolderPasteMarginUnits->Wrap( -1 ); - fgClearancesGridSizer->Add( m_SolderPasteMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticTextRatio = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextRatio->Wrap( -1 ); - m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in per cent between this pad and the solder paste.\nA value of 10 means the clearance value is 10 per cent of the pad size\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value\nA negative value means a smaller mask size than pad size.") ); - - fgClearancesGridSizer->Add( m_staticTextRatio, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_SolderPasteMarginRatioCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgClearancesGridSizer->Add( m_SolderPasteMarginRatioCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_SolderPasteRatioMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SolderPasteRatioMarginUnits->Wrap( -1 ); - fgClearancesGridSizer->Add( m_SolderPasteRatioMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - sbClearancesSizer->Add( fgClearancesGridSizer, 1, wxEXPAND, 5 ); - - bSizer13->Add( sbClearancesSizer, 0, wxEXPAND|wxALL, 5 ); - - wxStaticBoxSizer* sbSizer7; - sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Copper Zones") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizer41; - fgSizer41 = new wxFlexGridSizer( 0, 3, 0, 0 ); - fgSizer41->SetFlexibleDirection( wxBOTH ); - fgSizer41->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText40 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText40->Wrap( -1 ); - fgSizer41->Add( m_staticText40, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_ZoneConnectionChoiceChoices[] = { _("From parent module"), _("Solid"), _("Thermal relief"), _("None") }; - int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString ); - m_ZoneConnectionChoice = new wxChoice( m_localSettingsPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 ); - m_ZoneConnectionChoice->SetSelection( 0 ); - fgSizer41->Add( m_ZoneConnectionChoice, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText43 = new wxStaticText( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText43->Wrap( -1 ); - fgSizer41->Add( m_staticText43, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText49 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief width:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText49->Wrap( -1 ); - fgSizer41->Add( m_staticText49, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_ThermalWidthCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer41->Add( m_ThermalWidthCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 ); - - m_ThermalWidthUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ThermalWidthUnits->Wrap( -1 ); - fgSizer41->Add( m_ThermalWidthUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText52 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief gap:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText52->Wrap( -1 ); - fgSizer41->Add( m_staticText52, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_ThermalGapCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer41->Add( m_ThermalGapCtrl, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_ThermalGapUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ThermalGapUnits->Wrap( -1 ); - fgSizer41->Add( m_ThermalGapUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - sbSizer7->Add( fgSizer41, 1, wxEXPAND, 5 ); - - bSizer13->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 ); - - m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextWarning->Wrap( -1 ); - m_staticTextWarning->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); - - bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); - - bSizer14->Add( bSizer13, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - - bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_localSettingsPanel->SetSizer( bSizer14 ); - m_localSettingsPanel->Layout(); - bSizer14->Fit( m_localSettingsPanel ); - m_notebook1->AddPage( m_localSettingsPanel, _("Local Settings"), false ); - - m_MainSizer->Add( m_notebook1, 1, wxALL|wxEXPAND, 5 ); - - m_sdbSizer1 = new wxStdDialogButtonSizer(); - m_sdbSizer1OK = new wxButton( this, wxID_OK ); - m_sdbSizer1->AddButton( m_sdbSizer1OK ); - m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); - m_sdbSizer1->Realize(); - m_MainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 5 ); - - this->SetSizer( m_MainSizer ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - m_PadNumCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadNetNameCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); - m_PadShape->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); - m_ShapeSize_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeSize_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadOrient->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); - m_PadOrientCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeOffset_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeOffset_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeDelta_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_trapDeltaDirChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_DrillShapeCtrl->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); - m_PadDrill_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadDrill_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_rbCopperLayersSel->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerAdhCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerAdhCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerPateCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerPateCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerSilkCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerSilkCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerMaskCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerMaskCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerDraft->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerECO1->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerECO2->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_panelShowPad->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); - m_NetClearanceValueCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); - m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); -} - -DIALOG_PAD_PROPERTIES_BASE::~DIALOG_PAD_PROPERTIES_BASE() -{ - // Disconnect Events - m_PadNumCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadNetNameCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); - m_PadShape->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); - m_ShapeSize_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeSize_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadOrient->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); - m_PadOrientCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeOffset_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeOffset_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeDelta_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_trapDeltaDirChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_DrillShapeCtrl->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); - m_PadDrill_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadDrill_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_rbCopperLayersSel->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerAdhCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerAdhCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerPateCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerPateCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerSilkCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerSilkCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerMaskCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerMaskCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerDraft->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerECO1->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerECO2->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_panelShowPad->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); - m_NetClearanceValueCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); - m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Jun 30 2011) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_pad_properties_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + + wxBoxSizer* m_MainSizer; + m_MainSizer = new wxBoxSizer( wxVERTICAL ); + + m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bGeneralSizer; + bGeneralSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* m_LeftBoxSizer; + m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgSizer5; + fgSizer5 = new wxFlexGridSizer( 0, 2, 0, 0 ); + fgSizer5->AddGrowableCol( 1 ); + fgSizer5->SetFlexibleDirection( wxBOTH ); + fgSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_PadNumText = new wxStaticText( m_panel2, wxID_ANY, _("Pad number:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadNumText->Wrap( -1 ); + fgSizer5->Add( m_PadNumText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadNumCtrl = new wxTextCtrl( m_panel2, wxID_PADNUMCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer5->Add( m_PadNumCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_PadNameText = new wxStaticText( m_panel2, wxID_ANY, _("Net name:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadNameText->Wrap( -1 ); + fgSizer5->Add( m_PadNameText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadNetNameCtrl = new wxTextCtrl( m_panel2, wxID_PADNETNAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer5->Add( m_PadNetNameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_staticText44 = new wxStaticText( m_panel2, wxID_ANY, _("Pad type:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText44->Wrap( -1 ); + fgSizer5->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + wxString m_PadTypeChoices[] = { _("Through-hole"), _("SMD"), _("Connector"), _("NPTH, Mechanical") }; + int m_PadTypeNChoices = sizeof( m_PadTypeChoices ) / sizeof( wxString ); + m_PadType = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadTypeNChoices, m_PadTypeChoices, 0 ); + m_PadType->SetSelection( 0 ); + fgSizer5->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_LeftBoxSizer->Add( fgSizer5, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxFlexGridSizer* fgSizer6; + fgSizer6 = new wxFlexGridSizer( 0, 3, 0, 0 ); + fgSizer6->SetFlexibleDirection( wxBOTH ); + fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText45->Wrap( -1 ); + fgSizer6->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") }; + int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); + m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 ); + m_PadShape->SetSelection( 0 ); + fgSizer6->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText46 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText46->Wrap( -1 ); + fgSizer6->Add( m_staticText46, 0, wxALL, 5 ); + + m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4->Wrap( -1 ); + fgSizer6->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_PadPosition_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_PadPosition_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadPosX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadPosX_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadPosX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41->Wrap( -1 ); + fgSizer6->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_PadPosition_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadPosY_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText12->Wrap( -1 ); + fgSizer6->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeSize_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeSize_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeSizeX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeSizeX_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadShapeSizeX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText15 = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText15->Wrap( -1 ); + fgSizer6->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeSize_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeSize_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeSizeY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeSizeY_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadShapeSizeY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText48 = new wxStaticText( m_panel2, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText48->Wrap( -1 ); + fgSizer6->Add( m_staticText48, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxString m_PadOrientChoices[] = { _("0"), _("90"), _("-90"), _("180"), _("Custom") }; + int m_PadOrientNChoices = sizeof( m_PadOrientChoices ) / sizeof( wxString ); + m_PadOrient = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadOrientNChoices, m_PadOrientChoices, 0 ); + m_PadOrient->SetSelection( 0 ); + fgSizer6->Add( m_PadOrient, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_staticText491 = new wxStaticText( m_panel2, wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText491->Wrap( -1 ); + fgSizer6->Add( m_staticText491, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_PadOrientText = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_PadOrientText->Wrap( -1 ); + fgSizer6->Add( m_PadOrientText, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadOrientCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_PadOrientCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_customOrientUnits = new wxStaticText( m_panel2, wxID_ANY, _("0.1 deg"), wxDefaultPosition, wxDefaultSize, 0 ); + m_customOrientUnits->Wrap( -1 ); + fgSizer6->Add( m_customOrientUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText17 = new wxStaticText( m_panel2, wxID_ANY, _("Shape offset X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText17->Wrap( -1 ); + fgSizer6->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeOffset_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeOffset_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeOffsetX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeOffsetX_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadShapeOffsetX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText19 = new wxStaticText( m_panel2, wxID_ANY, _("Shape offset Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText19->Wrap( -1 ); + fgSizer6->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeOffset_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeOffset_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeOffsetY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeOffsetY_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadShapeOffsetY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText38 = new wxStaticText( m_panel2, wxID_ANY, _("Die length:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText38->Wrap( -1 ); + m_staticText38->SetToolTip( _("Wire length from pad to die on chip ( used to calculate actual track length)") ); + + fgSizer6->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_LengthDieCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_LengthDieCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLengthDie_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadLengthDie_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadLengthDie_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText21 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. delta dim:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText21->Wrap( -1 ); + fgSizer6->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeDelta_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer6->Add( m_ShapeDelta_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeDelta_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeDelta_Unit->Wrap( -1 ); + fgSizer6->Add( m_PadShapeDelta_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText23 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. direction:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText23->Wrap( -1 ); + fgSizer6->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); + + wxString m_trapDeltaDirChoiceChoices[] = { _("Horiz."), _("Vert.") }; + int m_trapDeltaDirChoiceNChoices = sizeof( m_trapDeltaDirChoiceChoices ) / sizeof( wxString ); + m_trapDeltaDirChoice = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_trapDeltaDirChoiceNChoices, m_trapDeltaDirChoiceChoices, 0 ); + m_trapDeltaDirChoice->SetSelection( 0 ); + fgSizer6->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 ); + + m_LeftBoxSizer->Add( fgSizer6, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + wxBoxSizer* bMiddleUpperSizer; + bMiddleUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + + m_DrillShapeBoxSizer = new wxBoxSizer( wxVERTICAL ); + + bMiddleUpperSizer->Add( m_DrillShapeBoxSizer, 0, wxBOTTOM, 5 ); + + wxBoxSizer* m_MiddleRightBoxSizer; + m_MiddleRightBoxSizer = new wxBoxSizer( wxVERTICAL ); + + bMiddleUpperSizer->Add( m_MiddleRightBoxSizer, 0, wxBOTTOM, 5 ); + + m_LeftBoxSizer->Add( bMiddleUpperSizer, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizeModuleInfo; + sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Footprint Orientation") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizer4; + fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 ); + fgSizer4->AddGrowableCol( 1 ); + fgSizer4->SetFlexibleDirection( wxBOTH ); + fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticTitleModuleRot = new wxStaticText( m_panel2, wxID_ANY, _("Rotation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTitleModuleRot->Wrap( -1 ); + fgSizer4->Add( m_staticTitleModuleRot, 0, wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_staticModuleRotValue = new wxStaticText( m_panel2, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticModuleRotValue->Wrap( -1 ); + fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_staticTitleModuleSide = new wxStaticText( m_panel2, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTitleModuleSide->Wrap( -1 ); + fgSizer4->Add( m_staticTitleModuleSide, 0, wxALL|wxALIGN_RIGHT, 5 ); + + m_staticModuleSideValue = new wxStaticText( m_panel2, wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticModuleSideValue->Wrap( -1 ); + fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 ); + + sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 ); + + m_staticTextWarningPadFlipped = new wxStaticText( m_panel2, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextWarningPadFlipped->Wrap( -1 ); + m_staticTextWarningPadFlipped->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); + + sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_LeftBoxSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM, 5 ); + + bGeneralSizer->Add( m_LeftBoxSizer, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bSizer10; + bSizer10 = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizer2; + sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Drill") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizerGeometry; + fgSizerGeometry = new wxFlexGridSizer( 14, 3, 0, 0 ); + fgSizerGeometry->SetFlexibleDirection( wxBOTH ); + fgSizerGeometry->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText47 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText47->Wrap( -1 ); + fgSizerGeometry->Add( m_staticText47, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_DrillShapeCtrlChoices[] = { _("Circular"), _("Oval") }; + int m_DrillShapeCtrlNChoices = sizeof( m_DrillShapeCtrlChoices ) / sizeof( wxString ); + m_DrillShapeCtrl = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_DrillShapeCtrlNChoices, m_DrillShapeCtrlChoices, 0 ); + m_DrillShapeCtrl->SetSelection( 0 ); + fgSizerGeometry->Add( m_DrillShapeCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_staticText51 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText51->Wrap( -1 ); + fgSizerGeometry->Add( m_staticText51, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_textPadDrillX = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPadDrillX->Wrap( -1 ); + fgSizerGeometry->Add( m_textPadDrillX, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_PadDrill_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerGeometry->Add( m_PadDrill_X_Ctrl, 0, wxALL, 5 ); + + m_PadDrill_X_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadDrill_X_Unit->Wrap( -1 ); + fgSizerGeometry->Add( m_PadDrill_X_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_textPadDrillY = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPadDrillY->Wrap( -1 ); + fgSizerGeometry->Add( m_textPadDrillY, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_PadDrill_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerGeometry->Add( m_PadDrill_Y_Ctrl, 0, wxALL, 5 ); + + m_PadDrill_Y_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadDrill_Y_Unit->Wrap( -1 ); + fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 ); + + bSizer10->Add( sbSizer2, 0, wxALL, 5 ); + + wxStaticBoxSizer* m_LayersSizer; + m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Layers") ), wxVERTICAL ); + + wxBoxSizer* bSizer11; + bSizer11 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText511 = new wxStaticText( m_panel2, wxID_ANY, _("Copper:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText511->Wrap( -1 ); + bSizer11->Add( m_staticText511, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_rbCopperLayersSelChoices[] = { _("Front"), _("Back"), _("All"), _("None") }; + int m_rbCopperLayersSelNChoices = sizeof( m_rbCopperLayersSelChoices ) / sizeof( wxString ); + m_rbCopperLayersSel = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_rbCopperLayersSelNChoices, m_rbCopperLayersSelChoices, 0 ); + m_rbCopperLayersSel->SetSelection( 0 ); + bSizer11->Add( m_rbCopperLayersSel, 1, wxALL, 5 ); + + m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerTechlayers; + sbSizerTechlayers = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Technical") ), wxVERTICAL ); + + m_PadLayerAdhCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerAdhCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerAdhCu = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerAdhCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerPateCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerPateCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerPateCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerPateCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerSilkCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerSilkCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerSilkCu = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerSilkCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerMaskCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerMaskCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerMaskCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerMaskCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerDraft = new wxCheckBox( m_panel2, wxID_ANY, _("Draft layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerDraft, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerECO1 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.1 layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerECO1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerECO2 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 ); + + m_LayersSizer->Add( sbSizerTechlayers, 0, wxALL|wxEXPAND, 5 ); + + bSizer10->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 5 ); + + bGeneralSizer->Add( bSizer10, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bSizer13x; + bSizer13x = new wxBoxSizer( wxVERTICAL ); + + m_panelShowPad = new wxPanel( m_panel2, wxID_ANY, wxDefaultPosition, wxSize( 200,200 ), wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER ); + m_panelShowPad->SetBackgroundColour( wxColour( 0, 0, 0 ) ); + + bSizer13x->Add( m_panelShowPad, 1, wxEXPAND|wxRIGHT|wxSHAPED|wxTOP, 5 ); + + bGeneralSizer->Add( bSizer13x, 1, wxEXPAND, 5 ); + + m_panel2->SetSizer( bGeneralSizer ); + m_panel2->Layout(); + bGeneralSizer->Fit( m_panel2 ); + m_notebook1->AddPage( m_panel2, _("General"), true ); + m_localSettingsPanel = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer14; + bSizer14 = new wxBoxSizer( wxHORIZONTAL ); + + + bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer13; + bSizer13 = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbClearancesSizer; + sbClearancesSizer = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Clearances") ), wxVERTICAL ); + + wxFlexGridSizer* fgClearancesGridSizer; + fgClearancesGridSizer = new wxFlexGridSizer( 5, 3, 0, 0 ); + fgClearancesGridSizer->SetFlexibleDirection( wxBOTH ); + fgClearancesGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticTextNetClearance = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Net pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextNetClearance->Wrap( -1 ); + m_staticTextNetClearance->SetToolTip( _("This is the local net clearance for pad.\nIf 0, the footprint local value or the Netclass value is used") ); + + fgClearancesGridSizer->Add( m_staticTextNetClearance, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_NetClearanceValueCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgClearancesGridSizer->Add( m_NetClearanceValueCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_NetClearanceUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_NetClearanceUnits->Wrap( -1 ); + fgClearancesGridSizer->Add( m_NetClearanceUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_MaskClearanceTitle = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MaskClearanceTitle->Wrap( -1 ); + m_MaskClearanceTitle->SetToolTip( _("This is the local clearance between this pad and the solder mask\nIf 0, the footprint local value or the global value is used") ); + + fgClearancesGridSizer->Add( m_MaskClearanceTitle, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_SolderMaskMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgClearancesGridSizer->Add( m_SolderMaskMarginCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_SolderMaskMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderMaskMarginUnits->Wrap( -1 ); + fgClearancesGridSizer->Add( m_SolderMaskMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticTextSolderPaste = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextSolderPaste->Wrap( -1 ); + m_staticTextSolderPaste->SetToolTip( _("This is the local clearance between this pad and the solder paste.\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value ratio\nA negative value means a smaller mask size than pad size") ); + + fgClearancesGridSizer->Add( m_staticTextSolderPaste, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_SolderPasteMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgClearancesGridSizer->Add( m_SolderPasteMarginCtrl, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_SolderPasteMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderPasteMarginUnits->Wrap( -1 ); + fgClearancesGridSizer->Add( m_SolderPasteMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticTextRatio = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextRatio->Wrap( -1 ); + m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in per cent between this pad and the solder paste.\nA value of 10 means the clearance value is 10 per cent of the pad size\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value\nA negative value means a smaller mask size than pad size.") ); + + fgClearancesGridSizer->Add( m_staticTextRatio, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_SolderPasteMarginRatioCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgClearancesGridSizer->Add( m_SolderPasteMarginRatioCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_SolderPasteRatioMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderPasteRatioMarginUnits->Wrap( -1 ); + fgClearancesGridSizer->Add( m_SolderPasteRatioMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + sbClearancesSizer->Add( fgClearancesGridSizer, 1, wxEXPAND, 5 ); + + bSizer13->Add( sbClearancesSizer, 0, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbSizer7; + sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Copper Zones") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizer41; + fgSizer41 = new wxFlexGridSizer( 0, 3, 0, 0 ); + fgSizer41->SetFlexibleDirection( wxBOTH ); + fgSizer41->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText40 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText40->Wrap( -1 ); + fgSizer41->Add( m_staticText40, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_ZoneConnectionChoiceChoices[] = { _("From parent module"), _("Solid"), _("Thermal relief"), _("None") }; + int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString ); + m_ZoneConnectionChoice = new wxChoice( m_localSettingsPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 ); + m_ZoneConnectionChoice->SetSelection( 0 ); + fgSizer41->Add( m_ZoneConnectionChoice, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText43 = new wxStaticText( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText43->Wrap( -1 ); + fgSizer41->Add( m_staticText43, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText49 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief width:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText49->Wrap( -1 ); + fgSizer41->Add( m_staticText49, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_ThermalWidthCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer41->Add( m_ThermalWidthCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 ); + + m_ThermalWidthUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ThermalWidthUnits->Wrap( -1 ); + fgSizer41->Add( m_ThermalWidthUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText52 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief gap:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText52->Wrap( -1 ); + fgSizer41->Add( m_staticText52, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_ThermalGapCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer41->Add( m_ThermalGapCtrl, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_ThermalGapUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ThermalGapUnits->Wrap( -1 ); + fgSizer41->Add( m_ThermalGapUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + sbSizer7->Add( fgSizer41, 1, wxEXPAND, 5 ); + + bSizer13->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 ); + + m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextWarning->Wrap( -1 ); + m_staticTextWarning->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); + + bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); + + bSizer14->Add( bSizer13, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + + bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_localSettingsPanel->SetSizer( bSizer14 ); + m_localSettingsPanel->Layout(); + bSizer14->Fit( m_localSettingsPanel ); + m_notebook1->AddPage( m_localSettingsPanel, _("Local Settings"), false ); + + m_MainSizer->Add( m_notebook1, 1, wxALL|wxEXPAND, 5 ); + + m_sdbSizer1 = new wxStdDialogButtonSizer(); + m_sdbSizer1OK = new wxButton( this, wxID_OK ); + m_sdbSizer1->AddButton( m_sdbSizer1OK ); + m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); + m_sdbSizer1->Realize(); + m_MainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 5 ); + + this->SetSizer( m_MainSizer ); + this->Layout(); + + this->Centre( wxBOTH ); + + // Connect Events + m_PadNumCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadNetNameCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); + m_PadShape->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); + m_ShapeSize_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeSize_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadOrient->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); + m_PadOrientCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeOffset_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeOffset_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeDelta_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_trapDeltaDirChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_DrillShapeCtrl->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); + m_PadDrill_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadDrill_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_rbCopperLayersSel->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerAdhCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerAdhCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerPateCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerPateCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerSilkCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerSilkCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerMaskCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerMaskCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerDraft->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerECO1->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerECO2->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_panelShowPad->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); + m_NetClearanceValueCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); + m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); +} + +DIALOG_PAD_PROPERTIES_BASE::~DIALOG_PAD_PROPERTIES_BASE() +{ + // Disconnect Events + m_PadNumCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadNetNameCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); + m_PadShape->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); + m_ShapeSize_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeSize_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadOrient->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); + m_PadOrientCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeOffset_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeOffset_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeDelta_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_trapDeltaDirChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_DrillShapeCtrl->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); + m_PadDrill_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadDrill_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_rbCopperLayersSel->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerAdhCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerAdhCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerPateCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerPateCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerSilkCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerSilkCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerMaskCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerMaskCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerDraft->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerECO1->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerECO2->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_panelShowPad->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); + m_NetClearanceValueCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); + m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); + +} diff --git a/pcbnew/dialogs/dialog_pad_properties_base.fbp b/pcbnew/dialogs/dialog_pad_properties_base.fbp index f5eb61081c..7cd6b6ab16 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.fbp +++ b/pcbnew/dialogs/dialog_pad_properties_base.fbp @@ -1,8724 +1,8724 @@ - - - - - - C++ - 1 - source_name - 0 - res - UTF-8 - connect - dialog_pad_properties_base - 1000 - none - 1 - dialog_pad_properties_base - - . - - 1 - 1 - 1 - 0 - - 1 - 1 - 1 - 1 - 0 - - - - - 1 - wxBOTH - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_DIALOG_EDIT_PAD - - - 0 - - - 0 - -1,-1 - 1 - DIALOG_PAD_PROPERTIES_BASE - 1 - - - 1 - - - Resizable - - 1 - 1000,750 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Pad Properties - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxSUNKEN_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - m_MainSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_notebook1 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - General - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_panel2 - 1 - - - protected - 1 - - - Resizable - - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bGeneralSizer - wxHORIZONTAL - none - - 5 - wxALL|wxEXPAND - 0 - - - m_LeftBoxSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - 2 - wxBOTH - 1 - - 0 - - fgSizer5 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Number: - - - 0 - - - 0 - - 1 - m_PadNumText - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PADNUMCTRL - - - 0 - - 0 - - 0 - - 1 - m_PadNumCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Net name: - - - 0 - - - 0 - - 1 - m_PadNameText - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PADNETNAMECTRL - - - 0 - - 0 - - 0 - - 1 - m_PadNetNameCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Type: - - - 0 - - - 0 - - 1 - m_staticText44 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Through-hole" "SMD" "Contact" "NPTH, Mechanical" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_PadType - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - PadTypeSelected - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 1 - - 3 - wxBOTH - - - 0 - - fgSizer6 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape: - - - 0 - - - 0 - - 1 - m_staticText45 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Circular" "Oval" "Rectangular" "Trapezoidal" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_PadShape - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPadShapeSelection - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - - 0 - - - 0 - - 1 - m_staticText46 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position X: - - - 0 - - - 0 - - 1 - m_staticText4 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadPosition_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadPosX_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position Y: - - - 0 - - - 0 - - 1 - m_staticText41 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadPosition_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadPosY_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size X: - - - 0 - - - 0 - - 1 - m_staticText12 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeSize_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeSizeX_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size Y: - - - 0 - - - 0 - - 1 - m_staticText15 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeSize_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeSizeY_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Orientation: - - - 0 - - - 0 - - 1 - m_staticText48 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "0" "90" "-90" "180" "Custom" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_PadOrient - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - PadOrientEvent - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - deg - - - 0 - - - 0 - - 1 - m_staticText491 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - - 0 - - - 0 - - 1 - m_PadOrientText - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadOrientCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0.1 deg - - - 0 - - - 0 - - 1 - m_customOrientUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Offset X: - - - 0 - - - 0 - - 1 - m_staticText17 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeOffset_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeOffsetX_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Offset Y: - - - 0 - - - 0 - - 1 - m_staticText19 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeOffset_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeOffsetY_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Die length: - - - 0 - - - 0 - - 1 - m_staticText38 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Wire length from pad to die on chip ( used to calculate actual track length) - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_LengthDieCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadLengthDie_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Trap. delta dim: - - - 0 - - - 0 - - 1 - m_staticText21 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ShapeDelta_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadShapeDelta_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Trap. direction: - - - 0 - - - 0 - - 1 - m_staticText23 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Horiz." "Vert." - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_trapDeltaDirChoice - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bMiddleUpperSizer - wxHORIZONTAL - none - - 5 - wxBOTTOM - 0 - - - m_DrillShapeBoxSizer - wxVERTICAL - protected - - - - 5 - wxBOTTOM - 0 - - - m_MiddleRightBoxSizer - wxVERTICAL - none - - - - - - 5 - wxEXPAND|wxBOTTOM - 0 - - wxID_ANY - Footprint Orientation - - sbSizeModuleInfo - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 2 - wxBOTH - 1 - - 0 - - fgSizer4 - wxFLEX_GROWMODE_SPECIFIED - none - 2 - 0 - - 5 - wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Rotation: - - - 0 - - - 0 - - 1 - m_staticTitleModuleRot - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - - - 0 - - - 0 - - 1 - m_staticModuleRotValue - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Board side: - - - 0 - - - 0 - - 1 - m_staticTitleModuleSide - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Front side - - - 0 - - - 0 - - 1 - m_staticModuleSideValue - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,90,92,-1,70,0 - 0 - 0 - wxID_ANY - Warning: This pad is flipped on board. Back and front layers will be swapped. - - - 0 - - - 0 - - 1 - m_staticTextWarningPadFlipped - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 0 - - - bSizer10 - wxVERTICAL - none - - 5 - wxALL - 0 - - wxID_ANY - Drill - - sbSizer2 - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - - - 0 - - fgSizerGeometry - wxFLEX_GROWMODE_SPECIFIED - none - 14 - 0 - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape: - - - 0 - - - 0 - - 1 - m_staticText47 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Circular" "Oval" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_DrillShapeCtrl - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnDrillShapeSelected - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - - 0 - - - 0 - - 1 - m_staticText51 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size X: - - - 0 - - - 0 - - 1 - m_textPadDrillX - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadDrill_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadDrill_X_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size Y: - - - 0 - - - 0 - - 1 - m_textPadDrillY - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadDrill_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadDrill_Y_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - wxID_ANY - Layers - - m_LayersSizer - wxVERTICAL - none - - - 5 - wxEXPAND - 0 - - - bSizer11 - wxHORIZONTAL - none - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Copper: - - - 0 - - - 0 - - 1 - m_staticText511 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Front" "Back" "All" "None" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_rbCopperLayersSel - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Technical - - sbSizerTechlayers - wxVERTICAL - none - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Adhesive Cmp - - - 0 - - - 0 - - 1 - m_PadLayerAdhCmp - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Adhesive Copper - - - 0 - - - 0 - - 1 - m_PadLayerAdhCu - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste Cmp - - - 0 - - - 0 - - 1 - m_PadLayerPateCmp - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste Copper - - - 0 - - - 0 - - 1 - m_PadLayerPateCu - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Silkscreen Cmp - - - 0 - - - 0 - - 1 - m_PadLayerSilkCmp - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Silkscreen Copper - - - 0 - - - 0 - - 1 - m_PadLayerSilkCu - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask Cmp - - - 0 - - - 0 - - 1 - m_PadLayerMaskCmp - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask Copper - - - 0 - - - 0 - - 1 - m_PadLayerMaskCu - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Draft layer - - - 0 - - - 0 - - 1 - m_PadLayerDraft - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - E.C.O.1 layer - - - 0 - - - 0 - - 1 - m_PadLayerECO1 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - E.C.O.2 layer - - - 0 - - - 0 - - 1 - m_PadLayerECO2 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer13x - wxVERTICAL - none - - 5 - wxEXPAND|wxRIGHT|wxSHAPED|wxTOP - 1 - - 1 - 1 - 1 - 1 - - - 0,0,0 - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - -1,-1 - 1 - m_panelShowPad - 1 - - - protected - 1 - - - Resizable - - 1 - 200,200 - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER - - - - - - - - - - - - - - - - - OnPaintShowPanel - - - - - - - - - - - - - - - - Local Settings - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_localSettingsPanel - 1 - - - protected - 1 - - - Resizable - - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer14 - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - - bSizer13 - wxVERTICAL - none - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Clearances - - sbClearancesSizer - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - - - 0 - - fgClearancesGridSizer - wxFLEX_GROWMODE_SPECIFIED - none - 5 - 0 - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Net pad clearance: - - - 0 - - - 0 - - 1 - m_staticTextNetClearance - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - This is the local net clearance for pad. If 0, the footprint local value or the Netclass value is used - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_NetClearanceValueCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_NetClearanceUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask clearance: - - - 0 - - - 0 - - 1 - m_MaskClearanceTitle - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - This is the local clearance between this pad and the solder mask If 0, the footprint local value or the global value is used - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_SolderMaskMarginCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_SolderMaskMarginUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste clearance: - - - 0 - - - 0 - - 1 - m_staticTextSolderPaste - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - This is the local clearance between this pad and the solder paste. If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value ratio A negative value means a smaller mask size than pad size - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_SolderPasteMarginCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_SolderPasteMarginUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask ratio clearance: - - - 0 - - - 0 - - 1 - m_staticTextRatio - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - This is the local clearance ratio in per cent between this pad and the solder paste. A value of 10 means the clearance value is 10 per cent of the pad size If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value A negative value means a smaller mask size than pad size. - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_SolderPasteMarginRatioCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - % - - - 0 - - - 0 - - 1 - m_SolderPasteRatioMarginUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 1 - - wxID_ANY - Copper Zones - - sbSizer7 - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - - - 0 - - fgSizer41 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pad connection: - - - 0 - - - 0 - - 1 - m_staticText40 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "From parent module" "Solid" "Thermal relief" "None" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_ZoneConnectionChoice - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - - 0 - - - 0 - - 1 - m_staticText43 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Thermal relief width: - - - 0 - - - 0 - - 1 - m_staticText49 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ThermalWidthCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_ThermalWidthUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Thermal relief gap: - - - 0 - - - 0 - - 1 - m_staticText52 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ThermalGapCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_ThermalGapUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,90,92,-1,70,0 - 0 - 0 - wxID_ANY - Set fields to 0 to use parent or global values - - - 0 - - - 0 - - 1 - m_staticTextWarning - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizer1 - protected - - OnCancelButtonClick - - - - PadPropertiesAccept - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + res + UTF-8 + connect + dialog_pad_properties_base + 1000 + none + 1 + dialog_pad_properties_base + + . + + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + 0 + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_DIALOG_EDIT_PAD + + + 0 + + + 0 + -1,-1 + 1 + DIALOG_PAD_PROPERTIES_BASE + 1 + + + 1 + + + Resizable + + 1 + 857,618 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + Pad Properties + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxSUNKEN_BORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + m_MainSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_notebook1 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + General + 1 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_panel2 + 1 + + + protected + 1 + + + Resizable + + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bGeneralSizer + wxHORIZONTAL + none + + 5 + wxALL|wxEXPAND + 0 + + + m_LeftBoxSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 2 + wxBOTH + 1 + + 0 + + fgSizer5 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pad number: + + + 0 + + + 0 + + 1 + m_PadNumText + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PADNUMCTRL + + + 0 + + 0 + + 0 + + 1 + m_PadNumCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Net name: + + + 0 + + + 0 + + 1 + m_PadNameText + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PADNETNAMECTRL + + + 0 + + 0 + + 0 + + 1 + m_PadNetNameCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pad type: + + + 0 + + + 0 + + 1 + m_staticText44 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Through-hole" "SMD" "Connector" "NPTH, Mechanical" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_PadType + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + PadTypeSelected + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 3 + wxBOTH + + + 0 + + fgSizer6 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape: + + + 0 + + + 0 + + 1 + m_staticText45 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Circular" "Oval" "Rectangular" "Trapezoidal" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_PadShape + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPadShapeSelection + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + + 0 + + + 0 + + 1 + m_staticText46 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position X: + + + 0 + + + 0 + + 1 + m_staticText4 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadPosition_X_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadPosX_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position Y: + + + 0 + + + 0 + + 1 + m_staticText41 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadPosition_Y_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadPosY_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size X: + + + 0 + + + 0 + + 1 + m_staticText12 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeSize_X_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeSizeX_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size Y: + + + 0 + + + 0 + + 1 + m_staticText15 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeSize_Y_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeSizeY_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Orientation: + + + 0 + + + 0 + + 1 + m_staticText48 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "0" "90" "-90" "180" "Custom" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_PadOrient + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + PadOrientEvent + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + deg + + + 0 + + + 0 + + 1 + m_staticText491 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + + 0 + + + 0 + + 1 + m_PadOrientText + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadOrientCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0.1 deg + + + 0 + + + 0 + + 1 + m_customOrientUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape offset X: + + + 0 + + + 0 + + 1 + m_staticText17 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeOffset_X_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeOffsetX_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape offset Y: + + + 0 + + + 0 + + 1 + m_staticText19 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeOffset_Y_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeOffsetY_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Die length: + + + 0 + + + 0 + + 1 + m_staticText38 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + Wire length from pad to die on chip ( used to calculate actual track length) + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_LengthDieCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadLengthDie_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Trap. delta dim: + + + 0 + + + 0 + + 1 + m_staticText21 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ShapeDelta_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadShapeDelta_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Trap. direction: + + + 0 + + + 0 + + 1 + m_staticText23 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Horiz." "Vert." + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_trapDeltaDirChoice + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bMiddleUpperSizer + wxHORIZONTAL + none + + 5 + wxBOTTOM + 0 + + + m_DrillShapeBoxSizer + wxVERTICAL + protected + + + + 5 + wxBOTTOM + 0 + + + m_MiddleRightBoxSizer + wxVERTICAL + none + + + + + + 5 + wxEXPAND|wxBOTTOM + 0 + + wxID_ANY + Footprint Orientation + + sbSizeModuleInfo + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 2 + wxBOTH + 1 + + 0 + + fgSizer4 + wxFLEX_GROWMODE_SPECIFIED + none + 2 + 0 + + 5 + wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Rotation: + + + 0 + + + 0 + + 1 + m_staticTitleModuleRot + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + + + 0 + + + 0 + + 1 + m_staticModuleRotValue + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_RIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Board side: + + + 0 + + + 0 + + 1 + m_staticTitleModuleSide + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Front side + + + 0 + + + 0 + + 1 + m_staticModuleSideValue + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,90,92,-1,70,0 + 0 + 0 + wxID_ANY + Warning: This pad is flipped on board. Back and front layers will be swapped. + + + 0 + + + 0 + + 1 + m_staticTextWarningPadFlipped + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + bSizer10 + wxVERTICAL + none + + 5 + wxALL + 0 + + wxID_ANY + Drill + + sbSizer2 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgSizerGeometry + wxFLEX_GROWMODE_SPECIFIED + none + 14 + 0 + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape: + + + 0 + + + 0 + + 1 + m_staticText47 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Circular" "Oval" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_DrillShapeCtrl + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrillShapeSelected + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + + 0 + + + 0 + + 1 + m_staticText51 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size X: + + + 0 + + + 0 + + 1 + m_textPadDrillX + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadDrill_X_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadDrill_X_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size Y: + + + 0 + + + 0 + + 1 + m_textPadDrillY + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_PadDrill_Y_Ctrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_PadDrill_Y_Unit + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 1 + + wxID_ANY + Layers + + m_LayersSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 0 + + + bSizer11 + wxHORIZONTAL + none + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Copper: + + + 0 + + + 0 + + 1 + m_staticText511 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "Front" "Back" "All" "None" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_rbCopperLayersSel + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + wxID_ANY + Technical + + sbSizerTechlayers + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Adhesive Cmp + + + 0 + + + 0 + + 1 + m_PadLayerAdhCmp + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Adhesive Copper + + + 0 + + + 0 + + 1 + m_PadLayerAdhCu + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste Cmp + + + 0 + + + 0 + + 1 + m_PadLayerPateCmp + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste Copper + + + 0 + + + 0 + + 1 + m_PadLayerPateCu + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Silkscreen Cmp + + + 0 + + + 0 + + 1 + m_PadLayerSilkCmp + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Silkscreen Copper + + + 0 + + + 0 + + 1 + m_PadLayerSilkCu + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask Cmp + + + 0 + + + 0 + + 1 + m_PadLayerMaskCmp + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask Copper + + + 0 + + + 0 + + 1 + m_PadLayerMaskCu + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Draft layer + + + 0 + + + 0 + + 1 + m_PadLayerDraft + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + E.C.O.1 layer + + + 0 + + + 0 + + 1 + m_PadLayerECO1 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + E.C.O.2 layer + + + 0 + + + 0 + + 1 + m_PadLayerECO2 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer13x + wxVERTICAL + none + + 5 + wxEXPAND|wxRIGHT|wxSHAPED|wxTOP + 1 + + 1 + 1 + 1 + 1 + + + 0,0,0 + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + -1,-1 + 1 + m_panelShowPad + 1 + + + protected + 1 + + + Resizable + + 1 + 200,200 + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER + + + + + + + + + + + + + + + + + OnPaintShowPanel + + + + + + + + + + + + + + + + Local Settings + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_localSettingsPanel + 1 + + + protected + 1 + + + Resizable + + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer14 + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bSizer13 + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Clearances + + sbClearancesSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgClearancesGridSizer + wxFLEX_GROWMODE_SPECIFIED + none + 5 + 0 + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Net pad clearance: + + + 0 + + + 0 + + 1 + m_staticTextNetClearance + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + This is the local net clearance for pad. If 0, the footprint local value or the Netclass value is used + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_NetClearanceValueCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_NetClearanceUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask clearance: + + + 0 + + + 0 + + 1 + m_MaskClearanceTitle + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + This is the local clearance between this pad and the solder mask If 0, the footprint local value or the global value is used + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_SolderMaskMarginCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_SolderMaskMarginUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste clearance: + + + 0 + + + 0 + + 1 + m_staticTextSolderPaste + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + This is the local clearance between this pad and the solder paste. If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value ratio A negative value means a smaller mask size than pad size + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_SolderPasteMarginCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_SolderPasteMarginUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask ratio clearance: + + + 0 + + + 0 + + 1 + m_staticTextRatio + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + This is the local clearance ratio in per cent between this pad and the solder paste. A value of 10 means the clearance value is 10 per cent of the pad size If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value A negative value means a smaller mask size than pad size. + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_SolderPasteMarginRatioCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + % + + + 0 + + + 0 + + 1 + m_SolderPasteRatioMarginUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 1 + + wxID_ANY + Copper Zones + + sbSizer7 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgSizer41 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pad connection: + + + 0 + + + 0 + + 1 + m_staticText40 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + "From parent module" "Solid" "Thermal relief" "None" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_ZoneConnectionChoice + 1 + + + protected + 1 + + + Resizable + + 0 + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + + 0 + + + 0 + + 1 + m_staticText43 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Thermal relief width: + + + 0 + + + 0 + + 1 + m_staticText49 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ThermalWidthCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_ThermalWidthUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Thermal relief gap: + + + 0 + + + 0 + + 1 + m_staticText52 + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + 0 + + 0 + + 1 + m_ThermalGapCtrl + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + + 0 + + + 0 + + 1 + m_ThermalGapUnits + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,90,92,-1,70,0 + 0 + 0 + wxID_ANY + Set fields to 0 to use parent or global values + + + 0 + + + 0 + + 1 + m_staticTextWarning + 1 + + + protected + 1 + + + Resizable + + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizer1 + protected + + OnCancelButtonClick + + + + PadPropertiesAccept + + + + + + + + diff --git a/pcbnew/dialogs/dialog_pad_properties_base.h b/pcbnew/dialogs/dialog_pad_properties_base.h index 79b019f846..bcfaa069fc 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.h +++ b/pcbnew/dialogs/dialog_pad_properties_base.h @@ -1,168 +1,168 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Aug 24 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_PAD_PROPERTIES_BASE_H__ -#define __DIALOG_PAD_PROPERTIES_BASE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_PAD_PROPERTIES_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_PAD_PROPERTIES_BASE : public wxDialog -{ - private: - - protected: - enum - { - wxID_DIALOG_EDIT_PAD = 1000, - wxID_PADNUMCTRL, - wxID_PADNETNAMECTRL, - }; - - wxNotebook* m_notebook1; - wxPanel* m_panel2; - wxStaticText* m_PadNumText; - wxTextCtrl* m_PadNumCtrl; - wxStaticText* m_PadNameText; - wxTextCtrl* m_PadNetNameCtrl; - wxStaticText* m_staticText44; - wxChoice* m_PadType; - wxStaticText* m_staticText45; - wxChoice* m_PadShape; - wxStaticText* m_staticText46; - wxStaticText* m_staticText4; - wxTextCtrl* m_PadPosition_X_Ctrl; - wxStaticText* m_PadPosX_Unit; - wxStaticText* m_staticText41; - wxTextCtrl* m_PadPosition_Y_Ctrl; - wxStaticText* m_PadPosY_Unit; - wxStaticText* m_staticText12; - wxTextCtrl* m_ShapeSize_X_Ctrl; - wxStaticText* m_PadShapeSizeX_Unit; - wxStaticText* m_staticText15; - wxTextCtrl* m_ShapeSize_Y_Ctrl; - wxStaticText* m_PadShapeSizeY_Unit; - wxStaticText* m_staticText48; - wxChoice* m_PadOrient; - wxStaticText* m_staticText491; - wxStaticText* m_PadOrientText; - wxTextCtrl* m_PadOrientCtrl; - wxStaticText* m_customOrientUnits; - wxStaticText* m_staticText17; - wxTextCtrl* m_ShapeOffset_X_Ctrl; - wxStaticText* m_PadShapeOffsetX_Unit; - wxStaticText* m_staticText19; - wxTextCtrl* m_ShapeOffset_Y_Ctrl; - wxStaticText* m_PadShapeOffsetY_Unit; - wxStaticText* m_staticText38; - wxTextCtrl* m_LengthDieCtrl; - wxStaticText* m_PadLengthDie_Unit; - wxStaticText* m_staticText21; - wxTextCtrl* m_ShapeDelta_Ctrl; - wxStaticText* m_PadShapeDelta_Unit; - wxStaticText* m_staticText23; - wxChoice* m_trapDeltaDirChoice; - wxBoxSizer* m_DrillShapeBoxSizer; - wxStaticText* m_staticTitleModuleRot; - wxStaticText* m_staticModuleRotValue; - wxStaticText* m_staticTitleModuleSide; - wxStaticText* m_staticModuleSideValue; - wxStaticText* m_staticTextWarningPadFlipped; - wxStaticText* m_staticText47; - wxChoice* m_DrillShapeCtrl; - wxStaticText* m_staticText51; - wxStaticText* m_textPadDrillX; - wxTextCtrl* m_PadDrill_X_Ctrl; - wxStaticText* m_PadDrill_X_Unit; - wxStaticText* m_textPadDrillY; - wxTextCtrl* m_PadDrill_Y_Ctrl; - wxStaticText* m_PadDrill_Y_Unit; - wxStaticText* m_staticText511; - wxChoice* m_rbCopperLayersSel; - wxCheckBox* m_PadLayerAdhCmp; - wxCheckBox* m_PadLayerAdhCu; - wxCheckBox* m_PadLayerPateCmp; - wxCheckBox* m_PadLayerPateCu; - wxCheckBox* m_PadLayerSilkCmp; - wxCheckBox* m_PadLayerSilkCu; - wxCheckBox* m_PadLayerMaskCmp; - wxCheckBox* m_PadLayerMaskCu; - wxCheckBox* m_PadLayerDraft; - wxCheckBox* m_PadLayerECO1; - wxCheckBox* m_PadLayerECO2; - wxPanel* m_panelShowPad; - wxPanel* m_localSettingsPanel; - wxStaticText* m_staticTextNetClearance; - wxTextCtrl* m_NetClearanceValueCtrl; - wxStaticText* m_NetClearanceUnits; - wxStaticText* m_MaskClearanceTitle; - wxTextCtrl* m_SolderMaskMarginCtrl; - wxStaticText* m_SolderMaskMarginUnits; - wxStaticText* m_staticTextSolderPaste; - wxTextCtrl* m_SolderPasteMarginCtrl; - wxStaticText* m_SolderPasteMarginUnits; - wxStaticText* m_staticTextRatio; - wxTextCtrl* m_SolderPasteMarginRatioCtrl; - wxStaticText* m_SolderPasteRatioMarginUnits; - wxStaticText* m_staticText40; - wxChoice* m_ZoneConnectionChoice; - wxStaticText* m_staticText43; - wxStaticText* m_staticText49; - wxTextCtrl* m_ThermalWidthCtrl; - wxStaticText* m_ThermalWidthUnits; - wxStaticText* m_staticText52; - wxTextCtrl* m_ThermalGapCtrl; - wxStaticText* m_ThermalGapUnits; - wxStaticText* m_staticTextWarning; - wxStdDialogButtonSizer* m_sdbSizer1; - wxButton* m_sdbSizer1OK; - wxButton* m_sdbSizer1Cancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnValuesChanged( wxCommandEvent& event ) { event.Skip(); } - virtual void PadTypeSelected( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPadShapeSelection( wxCommandEvent& event ) { event.Skip(); } - virtual void PadOrientEvent( wxCommandEvent& event ) { event.Skip(); } - virtual void OnSetLayers( wxCommandEvent& event ) { event.Skip(); } - virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } - virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void PadPropertiesAccept( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_EDIT_PAD, const wxString& title = _("Pad Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 1000,750 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSUNKEN_BORDER ); - ~DIALOG_PAD_PROPERTIES_BASE(); - -}; - -#endif //__DIALOG_PAD_PROPERTIES_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Jun 30 2011) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_PAD_PROPERTIES_BASE_H__ +#define __DIALOG_PAD_PROPERTIES_BASE_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_PAD_PROPERTIES_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_PAD_PROPERTIES_BASE : public wxDialog +{ + private: + + protected: + enum + { + wxID_DIALOG_EDIT_PAD = 1000, + wxID_PADNUMCTRL, + wxID_PADNETNAMECTRL, + }; + + wxNotebook* m_notebook1; + wxPanel* m_panel2; + wxStaticText* m_PadNumText; + wxTextCtrl* m_PadNumCtrl; + wxStaticText* m_PadNameText; + wxTextCtrl* m_PadNetNameCtrl; + wxStaticText* m_staticText44; + wxChoice* m_PadType; + wxStaticText* m_staticText45; + wxChoice* m_PadShape; + wxStaticText* m_staticText46; + wxStaticText* m_staticText4; + wxTextCtrl* m_PadPosition_X_Ctrl; + wxStaticText* m_PadPosX_Unit; + wxStaticText* m_staticText41; + wxTextCtrl* m_PadPosition_Y_Ctrl; + wxStaticText* m_PadPosY_Unit; + wxStaticText* m_staticText12; + wxTextCtrl* m_ShapeSize_X_Ctrl; + wxStaticText* m_PadShapeSizeX_Unit; + wxStaticText* m_staticText15; + wxTextCtrl* m_ShapeSize_Y_Ctrl; + wxStaticText* m_PadShapeSizeY_Unit; + wxStaticText* m_staticText48; + wxChoice* m_PadOrient; + wxStaticText* m_staticText491; + wxStaticText* m_PadOrientText; + wxTextCtrl* m_PadOrientCtrl; + wxStaticText* m_customOrientUnits; + wxStaticText* m_staticText17; + wxTextCtrl* m_ShapeOffset_X_Ctrl; + wxStaticText* m_PadShapeOffsetX_Unit; + wxStaticText* m_staticText19; + wxTextCtrl* m_ShapeOffset_Y_Ctrl; + wxStaticText* m_PadShapeOffsetY_Unit; + wxStaticText* m_staticText38; + wxTextCtrl* m_LengthDieCtrl; + wxStaticText* m_PadLengthDie_Unit; + wxStaticText* m_staticText21; + wxTextCtrl* m_ShapeDelta_Ctrl; + wxStaticText* m_PadShapeDelta_Unit; + wxStaticText* m_staticText23; + wxChoice* m_trapDeltaDirChoice; + wxBoxSizer* m_DrillShapeBoxSizer; + wxStaticText* m_staticTitleModuleRot; + wxStaticText* m_staticModuleRotValue; + wxStaticText* m_staticTitleModuleSide; + wxStaticText* m_staticModuleSideValue; + wxStaticText* m_staticTextWarningPadFlipped; + wxStaticText* m_staticText47; + wxChoice* m_DrillShapeCtrl; + wxStaticText* m_staticText51; + wxStaticText* m_textPadDrillX; + wxTextCtrl* m_PadDrill_X_Ctrl; + wxStaticText* m_PadDrill_X_Unit; + wxStaticText* m_textPadDrillY; + wxTextCtrl* m_PadDrill_Y_Ctrl; + wxStaticText* m_PadDrill_Y_Unit; + wxStaticText* m_staticText511; + wxChoice* m_rbCopperLayersSel; + wxCheckBox* m_PadLayerAdhCmp; + wxCheckBox* m_PadLayerAdhCu; + wxCheckBox* m_PadLayerPateCmp; + wxCheckBox* m_PadLayerPateCu; + wxCheckBox* m_PadLayerSilkCmp; + wxCheckBox* m_PadLayerSilkCu; + wxCheckBox* m_PadLayerMaskCmp; + wxCheckBox* m_PadLayerMaskCu; + wxCheckBox* m_PadLayerDraft; + wxCheckBox* m_PadLayerECO1; + wxCheckBox* m_PadLayerECO2; + wxPanel* m_panelShowPad; + wxPanel* m_localSettingsPanel; + wxStaticText* m_staticTextNetClearance; + wxTextCtrl* m_NetClearanceValueCtrl; + wxStaticText* m_NetClearanceUnits; + wxStaticText* m_MaskClearanceTitle; + wxTextCtrl* m_SolderMaskMarginCtrl; + wxStaticText* m_SolderMaskMarginUnits; + wxStaticText* m_staticTextSolderPaste; + wxTextCtrl* m_SolderPasteMarginCtrl; + wxStaticText* m_SolderPasteMarginUnits; + wxStaticText* m_staticTextRatio; + wxTextCtrl* m_SolderPasteMarginRatioCtrl; + wxStaticText* m_SolderPasteRatioMarginUnits; + wxStaticText* m_staticText40; + wxChoice* m_ZoneConnectionChoice; + wxStaticText* m_staticText43; + wxStaticText* m_staticText49; + wxTextCtrl* m_ThermalWidthCtrl; + wxStaticText* m_ThermalWidthUnits; + wxStaticText* m_staticText52; + wxTextCtrl* m_ThermalGapCtrl; + wxStaticText* m_ThermalGapUnits; + wxStaticText* m_staticTextWarning; + wxStdDialogButtonSizer* m_sdbSizer1; + wxButton* m_sdbSizer1OK; + wxButton* m_sdbSizer1Cancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnValuesChanged( wxCommandEvent& event ) { event.Skip(); } + virtual void PadTypeSelected( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPadShapeSelection( wxCommandEvent& event ) { event.Skip(); } + virtual void PadOrientEvent( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSetLayers( wxCommandEvent& event ) { event.Skip(); } + virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } + virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void PadPropertiesAccept( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_EDIT_PAD, const wxString& title = _("Pad Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 857,618 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSUNKEN_BORDER ); + ~DIALOG_PAD_PROPERTIES_BASE(); + +}; + +#endif //__DIALOG_PAD_PROPERTIES_BASE_H__ diff --git a/pcbnew/globaleditpad.cpp b/pcbnew/globaleditpad.cpp index 03cc4c3bf3..42d88ac0f3 100644 --- a/pcbnew/globaleditpad.cpp +++ b/pcbnew/globaleditpad.cpp @@ -335,7 +335,11 @@ void PCB_BASE_FRAME::GlobalChange_PadSettings( D_PAD* aPad, } if( pad->GetShape() == PAD_CIRCLE ) - pad->SetY( pad->GetSize().x ); + { + // Ensure pad size.y = pad size.x + int size = pad->GetSize().x; + pad->SetSize( wxSize( size, size ) ); + } switch( pad->GetAttribute() ) { From f36217fb926b5ab884aeb9d9c478a0f5fc7e47f6 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sat, 10 Mar 2012 08:58:21 +0100 Subject: [PATCH 12/68] Pcbnew: regression fix when using the new netlist format: * when a footprint has many pads having the same pad name, only the first pad was connected to the net --- pcbnew/netlist_reader.h | 13 ++++++++----- pcbnew/netlist_reader_common.cpp | 32 ++++++++++++++++++++++++-------- pcbnew/netlist_reader_kicad.cpp | 12 ++++++++---- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/pcbnew/netlist_reader.h b/pcbnew/netlist_reader.h index e6ed974f38..bc958b8128 100644 --- a/pcbnew/netlist_reader.h +++ b/pcbnew/netlist_reader.h @@ -363,15 +363,18 @@ public: void RemoveExtraFootprints( ); /** - * Function SetPadNetName - * Update a pad netname + * Function SetPadsNetName + * Update pads netnames for a given module. + * Because a pad name can be found more than once in this module, + * all pads matching the pad name are updated * @param aModule = module reference * @param aPadname = pad name (pad num) * @param aNetname = new net name of the pad - * @return a pointer to the pad or NULL if the pad is not found + * @param aPadList = a std::vector& buffer where the updated pads can be stored + * @return the pad count */ - D_PAD* SetPadNetName( const wxString & aModule, const wxString & aPadname, - const wxString & aNetname ); + int SetPadsNetName( const wxString & aModule, const wxString & aPadname, + const wxString & aNetname, std::vector & aPadList ); private: diff --git a/pcbnew/netlist_reader_common.cpp b/pcbnew/netlist_reader_common.cpp index b20baad8c1..d06b4b5c07 100644 --- a/pcbnew/netlist_reader_common.cpp +++ b/pcbnew/netlist_reader_common.cpp @@ -278,27 +278,43 @@ void NETLIST_READER::TestFootprintsMatchingAndExchange() } /** - * Function SetPadNetName - * Update a pad netname + * Function SetPadsNetName + * Update pads netnames for a given module. + * Because a pad name can be found more than once in this module, + * all pads matching the pad name are updated * @param aModule = module reference * @param aPadname = pad name (pad num) * @param aNetname = new net name of the pad - * @return a pointer to the pad or NULL if the pad is not found + * @param aPadList = a std::vector& buffer where the updated pads can be stored + * @return the pad count */ -D_PAD* NETLIST_READER::SetPadNetName( const wxString & aModule, const wxString & aPadname, - const wxString & aNetname ) +int NETLIST_READER::SetPadsNetName( const wxString & aModule, const wxString & aPadname, + const wxString & aNetname, std::vector & aPadList ) { if( m_pcbframe == NULL ) - return NULL; + return 0; + int padcount = 0; MODULE* module = m_pcbframe->GetBoard()->FindModuleByReference( aModule ); if( module ) { D_PAD * pad = module->FindPadByName( aPadname ); if( pad ) { + padcount++; + aPadList.push_back( pad ); pad->SetNetname( aNetname ); - return pad; + // Search for other pads having the same pad name/num + for( D_PAD* curr_pad = pad->Next(); curr_pad; curr_pad = curr_pad->Next() ) + { + if( pad->PadNameEqual( curr_pad ) ) + { + padcount++; + aPadList.push_back( curr_pad ); + curr_pad->SetNetname( aNetname ); + } + } + return padcount; } if( m_messageWindow ) { @@ -309,7 +325,7 @@ D_PAD* NETLIST_READER::SetPadNetName( const wxString & aModule, const wxString & } } - return NULL; + return 0; } diff --git a/pcbnew/netlist_reader_kicad.cpp b/pcbnew/netlist_reader_kicad.cpp index f9462e6767..632b682dee 100644 --- a/pcbnew/netlist_reader_kicad.cpp +++ b/pcbnew/netlist_reader_kicad.cpp @@ -245,8 +245,9 @@ void NETLIST_READER_KICAD_PARSER::ParseNet( BOARD * aBrd ) wxString name; wxString cmpref; wxString pin; - D_PAD * pad = NULL; int nodecount = 0; + std::vector padList; + // The token net was read, so the next data is (code ) while( (token = NextTok()) != T_RIGHT ) { @@ -292,7 +293,7 @@ void NETLIST_READER_KICAD_PARSER::ParseNet( BOARD * aBrd ) break; } } - pad = netlist_reader->SetPadNetName( cmpref, pin, name ); + netlist_reader->SetPadsNetName( cmpref, pin, name, padList ); nodecount++; break; @@ -303,8 +304,11 @@ void NETLIST_READER_KICAD_PARSER::ParseNet( BOARD * aBrd ) } // When there is only one item in net, clear pad netname - if( nodecount < 2 && pad ) - pad->SetNetname( wxEmptyString ); + // Remember one can have more than one pad in list, because a footprint + // can have many pads with the same pad name + if( nodecount < 2 ) + for( unsigned ii = 0; ii < padList.size(); ii++ ) + padList[ii]->SetNetname( wxEmptyString ); } From 55b3776f421b04378c6034b54cc12fef84228b8a Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sat, 10 Mar 2012 14:00:31 +0100 Subject: [PATCH 13/68] Pcbnew: Fix Bug #951414 (Windows specific) Ckecks more pad parameters in pad editor dialog (previously not tested, so a pad could have some very incorrect parameters) --- pcbnew/dialogs/dialog_pad_properties.cpp | 166 +- pcbnew/dialogs/dialog_pad_properties_base.cpp | 59 +- pcbnew/dialogs/dialog_pad_properties_base.fbp | 1700 ++++++++--------- pcbnew/dialogs/dialog_pad_properties_base.h | 9 +- 4 files changed, 959 insertions(+), 975 deletions(-) diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index 4998b8c16f..b1031fd3f5 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -21,6 +21,7 @@ #include #include +#include // list of pad shapes. @@ -84,6 +85,7 @@ private: static wxSize prevSize; void initValues(); + bool PadValuesOK(); // test if all values are acceptable for the pad void OnPadShapeSelection( wxCommandEvent& event ); void OnDrillShapeSelected( wxCommandEvent& event ); void PadOrientEvent( wxCommandEvent& event ); @@ -93,7 +95,7 @@ private: void OnSetLayers( wxCommandEvent& event ); void OnCancelButtonClick( wxCommandEvent& event ); void OnPaintShowPanel( wxPaintEvent& event ); - bool TransfertDataToPad( D_PAD* aPad, bool aPromptOnError = false ); + bool TransfertDataToPad( D_PAD* aPad ); void OnValuesChanged( wxCommandEvent& event ); }; @@ -209,6 +211,23 @@ void DIALOG_PAD_PROPERTIES::initValues() wxString msg; double angle; + // Setup layers names from board + // Should be made first, before calling m_rbCopperLayersSel->SetSelection() + m_rbCopperLayersSel->SetString( 0, m_Board->GetLayerName( LAYER_N_FRONT ) ); + m_rbCopperLayersSel->SetString( 1, m_Board->GetLayerName( LAYER_N_BACK ) ); + + m_PadLayerAdhCmp->SetLabel( m_Board->GetLayerName( ADHESIVE_N_FRONT ) ); + m_PadLayerAdhCu->SetLabel( m_Board->GetLayerName( ADHESIVE_N_BACK ) ); + m_PadLayerPateCmp->SetLabel( m_Board->GetLayerName( SOLDERPASTE_N_FRONT ) ); + m_PadLayerPateCu->SetLabel( m_Board->GetLayerName( SOLDERPASTE_N_BACK ) ); + m_PadLayerSilkCmp->SetLabel( m_Board->GetLayerName( SILKSCREEN_N_FRONT ) ); + m_PadLayerSilkCu->SetLabel( m_Board->GetLayerName( SILKSCREEN_N_BACK ) ); + m_PadLayerMaskCmp->SetLabel( m_Board->GetLayerName( SOLDERMASK_N_FRONT ) ); + m_PadLayerMaskCu->SetLabel( m_Board->GetLayerName( SOLDERMASK_N_BACK ) ); + m_PadLayerECO1->SetLabel( m_Board->GetLayerName( ECO1_N ) ); + m_PadLayerECO2->SetLabel( m_Board->GetLayerName( ECO2_N ) ); + m_PadLayerDraft->SetLabel( m_Board->GetLayerName( DRAW_N ) ); + m_isFlipped = false; if( m_CurrentPad ) @@ -424,26 +443,9 @@ void DIALOG_PAD_PROPERTIES::initValues() else m_DrillShapeCtrl->SetSelection( 1 ); - // Setup layers names from board - - m_rbCopperLayersSel->SetString( 0, m_Board->GetLayerName( LAYER_N_FRONT ) ); - m_rbCopperLayersSel->SetString( 1, m_Board->GetLayerName( LAYER_N_BACK ) ); - - m_PadLayerAdhCmp->SetLabel( m_Board->GetLayerName( ADHESIVE_N_FRONT ) ); - m_PadLayerAdhCu->SetLabel( m_Board->GetLayerName( ADHESIVE_N_BACK ) ); - m_PadLayerPateCmp->SetLabel( m_Board->GetLayerName( SOLDERPASTE_N_FRONT ) ); - m_PadLayerPateCu->SetLabel( m_Board->GetLayerName( SOLDERPASTE_N_BACK ) ); - m_PadLayerSilkCmp->SetLabel( m_Board->GetLayerName( SILKSCREEN_N_FRONT ) ); - m_PadLayerSilkCu->SetLabel( m_Board->GetLayerName( SILKSCREEN_N_BACK ) ); - m_PadLayerMaskCmp->SetLabel( m_Board->GetLayerName( SOLDERMASK_N_FRONT ) ); - m_PadLayerMaskCu->SetLabel( m_Board->GetLayerName( SOLDERMASK_N_BACK ) ); - m_PadLayerECO1->SetLabel( m_Board->GetLayerName( ECO1_N ) ); - m_PadLayerECO2->SetLabel( m_Board->GetLayerName( ECO2_N ) ); - m_PadLayerDraft->SetLabel( m_Board->GetLayerName( DRAW_N ) ); - // Update some dialog widgets state (Enable/disable options): wxCommandEvent cmd_event; - OnPadShapeSelection( cmd_event ); + SetPadLayersList( m_dummyPad->GetLayerMask() ); OnDrillShapeSelected( cmd_event ); } @@ -623,23 +625,93 @@ void DIALOG_PAD_PROPERTIES::OnSetLayers( wxCommandEvent& event ) m_panelShowPad->Refresh(); } +// test if all values are acceptable for the pad +bool DIALOG_PAD_PROPERTIES::PadValuesOK() +{ + bool error = TransfertDataToPad( m_dummyPad ); + + wxArrayString error_msgs; + wxString msg; + + // Test for incorrect values + if( (m_dummyPad->GetSize().x < m_dummyPad->GetDrillSize().x) || + (m_dummyPad->GetSize().y < m_dummyPad->GetDrillSize().y) ) + { + error_msgs.Add( _( "Incorrect value for pad drill: pad drill bigger than pad size" ) ); + } + + int padlayers_mask = m_dummyPad->GetLayerMask(); + if( ( padlayers_mask == 0 ) && ( m_dummyPad->GetAttribute() != PAD_HOLE_NOT_PLATED ) ) + error_msgs.Add( _( "Error: pad has no layer and is not a mechanical pad" ) ); + + padlayers_mask &= (LAYER_BACK | LAYER_FRONT); + if( padlayers_mask == 0 ) + { + if( m_dummyPad->GetDrillSize().x || m_dummyPad->GetDrillSize().y ) + { + msg = _( "Error: pad is not on a copper layer and has a hole" ); + if( m_dummyPad->GetAttribute() == PAD_HOLE_NOT_PLATED ) + { + msg += wxT("\n"); + msg += _( "For NPTH pad, set pad drill value to pad size value,\n\ +if you do not want this pad plotted in gerber files"); + } + error_msgs.Add( msg ); + } + } + + if( m_dummyPad->GetSize().x / 2 <= ABS( m_dummyPad->GetOffset().x ) || + m_dummyPad->GetSize().y / 2 <= ABS( m_dummyPad->GetOffset().y ) ) + { + error_msgs.Add( _( "Incorrect value for pad offset" ) ); + } + + if( error ) + { + error_msgs.Add( _( "Too large value for pad delta size" ) ); + } + + switch( m_dummyPad->GetAttribute() ) + { + case PAD_STANDARD : // Pad through hole, a hole is expected + if( m_dummyPad->GetDrillSize().x <= 0 ) + error_msgs.Add( _( "Incorrect value for pad drill (too small value)" ) ); + break; + + case PAD_SMD: // SMD and Connector pads (One external copper layer only) + case PAD_CONN: + if( (padlayers_mask & LAYER_BACK) && (padlayers_mask & LAYER_FRONT) ) + error_msgs.Add( _( "Error: only one copper layer allowed for this pad" ) ); + break; + + case PAD_HOLE_NOT_PLATED: // Not plated + break; + } + + if( error_msgs.GetCount() ) + { + HTML_MESSAGE_BOX dlg( this, _("Pad setup errors list" ) ); + dlg.ListSet( error_msgs ); + dlg.ShowModal(); + } + return error_msgs.GetCount() == 0; +} void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) /* Updates the different parameters for the component being edited. */ { + if( ! PadValuesOK() ) + return; + bool rastnestIsChanged = false; int isign = m_isFlipped ? -1 : 1; prevPosition = GetPosition(); prevSize = GetSize(); - bool success = TransfertDataToPad( m_dummyPad, true ); - if( !success ) // An error on parameters has occured - return; - - TransfertDataToPad( &m_Pad_Master, false ); + TransfertDataToPad( &m_Pad_Master ); if( m_CurrentPad ) // Set current Pad parameters { @@ -745,9 +817,7 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) } // Copy values from dialog to aPad parameters. -// If aPromptOnError is true, and an incorrect value is detected, -// user will be prompted for an error -bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad, bool aPromptOnError ) +bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad ) { long padLayerMask; int internalUnits = m_Parent->GetInternalUnits(); @@ -980,47 +1050,7 @@ bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad, bool aPromptOnError aPad->SetLayerMask( padLayerMask ); - // Test for incorrect values - if( aPromptOnError ) - { - if( (aPad->GetSize().x < aPad->GetDrillSize().x) || (aPad->GetSize().y < aPad->GetDrillSize().y) ) - { - DisplayError( NULL, _( "Incorrect value for pad drill: pad drill bigger than pad size" ) ); - return false; - } - - int padlayers_mask = padLayerMask & (LAYER_BACK | LAYER_FRONT); - if( padlayers_mask == 0 ) - { - if( aPad->GetDrillSize().x || aPad->GetDrillSize().y ) - { - msg = _( "Error: pad is not on a copper layer and has a hole" ); - if( aPad->GetAttribute() == PAD_HOLE_NOT_PLATED ) - { - msg += wxT("\n"); - msg += _( "For NPTH pad, set pad drill value to pad size value,\n\ -if you do not want this pad plotted in gerber files"); - } - DisplayError( NULL, msg ); - return false; - } - } - - if( aPad->GetSize().x / 2 <= ABS( aPad->GetOffset().x ) || - aPad->GetSize().y / 2 <= ABS( aPad->GetOffset().y ) ) - { - DisplayError( NULL, _( "Incorrect value for pad offset" ) ); - return false; - } - - if( error ) - { - DisplayError( NULL, _( "Too large value for pad delta size" ) ); - return false; - } - } - - return true; + return error; } diff --git a/pcbnew/dialogs/dialog_pad_properties_base.cpp b/pcbnew/dialogs/dialog_pad_properties_base.cpp index 722503d919..02f196d276 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.cpp +++ b/pcbnew/dialogs/dialog_pad_properties_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) +// C++ code generated with wxFormBuilder (version Feb 9 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -54,6 +54,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_PadType->SetSelection( 0 ); fgSizer5->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + m_LeftBoxSizer->Add( fgSizer5, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); wxFlexGridSizer* fgSizer6; @@ -61,20 +62,6 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind fgSizer6->SetFlexibleDirection( wxBOTH ); fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText45->Wrap( -1 ); - fgSizer6->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") }; - int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); - m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 ); - m_PadShape->SetSelection( 0 ); - fgSizer6->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText46 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText46->Wrap( -1 ); - fgSizer6->Add( m_staticText46, 0, wxALL, 5 ); - m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText4->Wrap( -1 ); fgSizer6->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); @@ -88,14 +75,27 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText41->Wrap( -1 ); - fgSizer6->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + fgSizer6->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_PadPosition_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizer6->Add( m_PadPosition_Y_Ctrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadPosY_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizer6->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); + + m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText45->Wrap( -1 ); + fgSizer6->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") }; + int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); + m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 ); + m_PadShape->SetSelection( 0 ); + fgSizer6->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + + + fgSizer6->Add( 0, 0, 0, wxEXPAND, 5 ); m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText12->Wrap( -1 ); @@ -200,6 +200,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_trapDeltaDirChoice->SetSelection( 0 ); fgSizer6->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 ); + m_LeftBoxSizer->Add( fgSizer6, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); wxBoxSizer* bMiddleUpperSizer; @@ -207,13 +208,16 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_DrillShapeBoxSizer = new wxBoxSizer( wxVERTICAL ); + bMiddleUpperSizer->Add( m_DrillShapeBoxSizer, 0, wxBOTTOM, 5 ); wxBoxSizer* m_MiddleRightBoxSizer; m_MiddleRightBoxSizer = new wxBoxSizer( wxVERTICAL ); + bMiddleUpperSizer->Add( m_MiddleRightBoxSizer, 0, wxBOTTOM, 5 ); + m_LeftBoxSizer->Add( bMiddleUpperSizer, 0, wxEXPAND, 5 ); wxStaticBoxSizer* sbSizeModuleInfo; @@ -241,6 +245,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_staticModuleSideValue->Wrap( -1 ); fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 ); + sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 ); m_staticTextWarningPadFlipped = new wxStaticText( m_panel2, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); @@ -249,8 +254,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 ); + m_LeftBoxSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM, 5 ); + bGeneralSizer->Add( m_LeftBoxSizer, 0, wxALL|wxEXPAND, 5 ); wxBoxSizer* bSizer10; @@ -300,8 +307,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_PadDrill_Y_Unit->Wrap( -1 ); fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 ); + bSizer10->Add( sbSizer2, 0, wxALL, 5 ); wxStaticBoxSizer* m_LayersSizer; @@ -320,6 +329,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_rbCopperLayersSel->SetSelection( 0 ); bSizer11->Add( m_rbCopperLayersSel, 1, wxALL, 5 ); + m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 ); wxStaticBoxSizer* sbSizerTechlayers; @@ -358,10 +368,13 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_PadLayerECO2 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 ); sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 ); + m_LayersSizer->Add( sbSizerTechlayers, 0, wxALL|wxEXPAND, 5 ); + bSizer10->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 5 ); + bGeneralSizer->Add( bSizer10, 0, wxALL|wxEXPAND, 5 ); wxBoxSizer* bSizer13x; @@ -372,8 +385,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind bSizer13x->Add( m_panelShowPad, 1, wxEXPAND|wxRIGHT|wxSHAPED|wxTOP, 5 ); + bGeneralSizer->Add( bSizer13x, 1, wxEXPAND, 5 ); + m_panel2->SetSizer( bGeneralSizer ); m_panel2->Layout(); bGeneralSizer->Fit( m_panel2 ); @@ -448,8 +463,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_SolderPasteRatioMarginUnits->Wrap( -1 ); fgClearancesGridSizer->Add( m_SolderPasteRatioMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + sbClearancesSizer->Add( fgClearancesGridSizer, 1, wxEXPAND, 5 ); + bSizer13->Add( sbClearancesSizer, 0, wxEXPAND|wxALL, 5 ); wxStaticBoxSizer* sbSizer7; @@ -496,8 +513,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_ThermalGapUnits->Wrap( -1 ); fgSizer41->Add( m_ThermalGapUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); + sbSizer7->Add( fgSizer41, 1, wxEXPAND, 5 ); + bSizer13->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 ); m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -506,11 +525,13 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); + bSizer14->Add( bSizer13, 0, wxALIGN_CENTER_VERTICAL, 5 ); bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); + m_localSettingsPanel->SetSizer( bSizer14 ); m_localSettingsPanel->Layout(); bSizer14->Fit( m_localSettingsPanel ); @@ -524,8 +545,10 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); m_sdbSizer1->Realize(); + m_MainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 5 ); + this->SetSizer( m_MainSizer ); this->Layout(); diff --git a/pcbnew/dialogs/dialog_pad_properties_base.fbp b/pcbnew/dialogs/dialog_pad_properties_base.fbp index 7cd6b6ab16..df88164010 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.fbp +++ b/pcbnew/dialogs/dialog_pad_properties_base.fbp @@ -1,11 +1,12 @@ - + C++ 1 source_name + 0 0 res UTF-8 @@ -19,6 +20,7 @@ . 1 + 1 1 1 0 @@ -27,8 +29,11 @@ 1 1 1 + 0 + + @@ -51,7 +56,6 @@ 0 0 wxID_DIALOG_EDIT_PAD - 0 @@ -65,9 +69,7 @@ 1 - Resizable - 1 857,618 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER @@ -132,7 +134,10 @@ 1 1 1 + + + @@ -153,7 +158,6 @@ 0 0 wxID_ANY - 0 @@ -168,9 +172,7 @@ protected 1 - Resizable - 1 @@ -218,7 +220,10 @@ 1 1 1 + + + @@ -238,7 +243,6 @@ 0 0 wxID_ANY - 0 @@ -253,9 +257,7 @@ protected 1 - Resizable - 1 @@ -300,7 +302,7 @@ 5 wxALL|wxEXPAND 0 - + m_LeftBoxSizer wxVERTICAL @@ -330,7 +332,10 @@ 1 1 1 + + + @@ -351,7 +356,6 @@ 0 wxID_ANY Pad number: - 0 @@ -366,9 +370,7 @@ protected 1 - Resizable - 1 @@ -417,7 +419,10 @@ 1 1 1 + + + @@ -437,7 +442,6 @@ 0 0 wxID_PADNUMCTRL - 0 @@ -453,9 +457,7 @@ protected 1 - Resizable - 1 @@ -508,7 +510,10 @@ 1 1 1 + + + @@ -529,7 +534,6 @@ 0 wxID_ANY Net name: - 0 @@ -544,9 +548,7 @@ protected 1 - Resizable - 1 @@ -595,7 +597,10 @@ 1 1 1 + + + @@ -615,7 +620,6 @@ 0 0 wxID_PADNETNAMECTRL - 0 @@ -631,9 +635,7 @@ protected 1 - Resizable - 1 @@ -686,7 +688,10 @@ 1 1 1 + + + @@ -707,7 +712,6 @@ 0 wxID_ANY Pad type: - 0 @@ -722,9 +726,7 @@ protected 1 - Resizable - 1 @@ -773,7 +775,10 @@ 1 1 1 + + + @@ -794,7 +799,6 @@ 0 0 wxID_ANY - 0 @@ -809,12 +813,11 @@ protected 1 - Resizable - 0 1 + 0 @@ -853,11 +856,11 @@ - + 5 wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND 0 - + 3 wxBOTH @@ -871,14 +874,17 @@ 0 5 - wxALL|wxALIGN_CENTER_VERTICAL + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT 0 1 1 1 1 + + + @@ -898,8 +904,7 @@ 0 0 wxID_ANY - Shape: - + Position X: 0 @@ -907,16 +912,457 @@ 0 1 - m_staticText45 + m_staticText4 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PadPosition_X_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadPosX_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position Y: + + 0 + + + 0 + + 1 + m_staticText41 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PadPosition_Y_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadPosY_Unit 1 protected 1 - Resizable - 1 @@ -960,12 +1406,102 @@ 5 wxALL|wxALIGN_CENTER_VERTICAL 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape: + + 0 + + + 0 + + 1 + m_staticText45 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 0 1 1 1 1 + + + @@ -986,7 +1522,6 @@ 0 0 wxID_ANY - 0 @@ -1001,12 +1536,11 @@ protected 1 - Resizable - 0 1 + 0 @@ -1043,621 +1577,14 @@ - + 5 - wxALL + wxEXPAND 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - - 0 - - - 0 - - 1 - m_staticText46 - 1 - - + + 0 protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position X: - - - 0 - - - 0 - - 1 - m_staticText4 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadPosition_X_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadPosX_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position Y: - - - 0 - - - 0 - - 1 - m_staticText41 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PadPosition_Y_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - - 0 - - - 0 - - 1 - m_PadPosY_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - + 0 @@ -1669,7 +1596,10 @@ 1 1 1 + + + @@ -1690,7 +1620,6 @@ 0 wxID_ANY Size X: - 0 @@ -1705,9 +1634,7 @@ protected 1 - Resizable - 1 @@ -1756,7 +1683,10 @@ 1 1 1 + + + @@ -1776,7 +1706,6 @@ 0 0 wxID_ANY - 0 @@ -1792,9 +1721,7 @@ protected 1 - Resizable - 1 @@ -1847,7 +1774,10 @@ 1 1 1 + + + @@ -1868,7 +1798,6 @@ 0 wxID_ANY Inch - 0 @@ -1883,9 +1812,7 @@ protected 1 - Resizable - 1 @@ -1934,7 +1861,10 @@ 1 1 1 + + + @@ -1955,7 +1885,6 @@ 0 wxID_ANY Size Y: - 0 @@ -1970,9 +1899,7 @@ protected 1 - Resizable - 1 @@ -2021,7 +1948,10 @@ 1 1 1 + + + @@ -2041,7 +1971,6 @@ 0 0 wxID_ANY - 0 @@ -2057,9 +1986,7 @@ protected 1 - Resizable - 1 @@ -2112,7 +2039,10 @@ 1 1 1 + + + @@ -2133,7 +2063,6 @@ 0 wxID_ANY Inch - 0 @@ -2148,9 +2077,7 @@ protected 1 - Resizable - 1 @@ -2199,7 +2126,10 @@ 1 1 1 + + + @@ -2220,7 +2150,6 @@ 0 wxID_ANY Orientation: - 0 @@ -2235,9 +2164,7 @@ protected 1 - Resizable - 1 @@ -2286,7 +2213,10 @@ 1 1 1 + + + @@ -2307,7 +2237,6 @@ 0 0 wxID_ANY - 0 @@ -2322,12 +2251,11 @@ protected 1 - Resizable - 0 1 + 0 @@ -2373,7 +2301,10 @@ 1 1 1 + + + @@ -2394,7 +2325,6 @@ 0 wxID_ANY deg - 0 @@ -2409,9 +2339,7 @@ protected 1 - Resizable - 1 @@ -2460,7 +2388,10 @@ 1 1 1 + + + @@ -2481,7 +2412,6 @@ 0 wxID_ANY - 0 @@ -2496,9 +2426,7 @@ protected 1 - Resizable - 1 @@ -2547,7 +2475,10 @@ 1 1 1 + + + @@ -2567,7 +2498,6 @@ 0 0 wxID_ANY - 0 @@ -2583,9 +2513,7 @@ protected 1 - Resizable - 1 @@ -2638,7 +2566,10 @@ 1 1 1 + + + @@ -2659,7 +2590,6 @@ 0 wxID_ANY 0.1 deg - 0 @@ -2674,9 +2604,7 @@ protected 1 - Resizable - 1 @@ -2725,7 +2653,10 @@ 1 1 1 + + + @@ -2746,7 +2677,6 @@ 0 wxID_ANY Shape offset X: - 0 @@ -2761,9 +2691,7 @@ protected 1 - Resizable - 1 @@ -2812,7 +2740,10 @@ 1 1 1 + + + @@ -2832,7 +2763,6 @@ 0 0 wxID_ANY - 0 @@ -2848,9 +2778,7 @@ protected 1 - Resizable - 1 @@ -2903,7 +2831,10 @@ 1 1 1 + + + @@ -2924,7 +2855,6 @@ 0 wxID_ANY Inch - 0 @@ -2939,9 +2869,7 @@ protected 1 - Resizable - 1 @@ -2990,7 +2918,10 @@ 1 1 1 + + + @@ -3011,7 +2942,6 @@ 0 wxID_ANY Shape offset Y: - 0 @@ -3026,9 +2956,7 @@ protected 1 - Resizable - 1 @@ -3077,7 +3005,10 @@ 1 1 1 + + + @@ -3097,7 +3028,6 @@ 0 0 wxID_ANY - 0 @@ -3113,9 +3043,7 @@ protected 1 - Resizable - 1 @@ -3168,7 +3096,10 @@ 1 1 1 + + + @@ -3189,7 +3120,6 @@ 0 wxID_ANY Inch - 0 @@ -3204,9 +3134,7 @@ protected 1 - Resizable - 1 @@ -3255,7 +3183,10 @@ 1 1 1 + + + @@ -3276,7 +3207,6 @@ 0 wxID_ANY Die length: - 0 @@ -3291,9 +3221,7 @@ protected 1 - Resizable - 1 @@ -3342,7 +3270,10 @@ 1 1 1 + + + @@ -3362,7 +3293,6 @@ 0 0 wxID_ANY - 0 @@ -3378,9 +3308,7 @@ protected 1 - Resizable - 1 @@ -3433,7 +3361,10 @@ 1 1 1 + + + @@ -3454,7 +3385,6 @@ 0 wxID_ANY Inch - 0 @@ -3469,9 +3399,7 @@ protected 1 - Resizable - 1 @@ -3520,7 +3448,10 @@ 1 1 1 + + + @@ -3541,7 +3472,6 @@ 0 wxID_ANY Trap. delta dim: - 0 @@ -3556,9 +3486,7 @@ protected 1 - Resizable - 1 @@ -3607,7 +3535,10 @@ 1 1 1 + + + @@ -3627,7 +3558,6 @@ 0 0 wxID_ANY - 0 @@ -3643,9 +3573,7 @@ protected 1 - Resizable - 1 @@ -3698,7 +3626,10 @@ 1 1 1 + + + @@ -3719,7 +3650,6 @@ 0 wxID_ANY Inch - 0 @@ -3734,9 +3664,7 @@ protected 1 - Resizable - 1 @@ -3785,7 +3713,10 @@ 1 1 1 + + + @@ -3806,7 +3737,6 @@ 0 wxID_ANY Trap. direction: - 0 @@ -3821,9 +3751,7 @@ protected 1 - Resizable - 1 @@ -3872,7 +3800,10 @@ 1 1 1 + + + @@ -3893,7 +3824,6 @@ 0 0 wxID_ANY - 0 @@ -3908,12 +3838,11 @@ protected 1 - Resizable - 0 1 + 0 @@ -4022,7 +3951,10 @@ 1 1 1 + + + @@ -4043,7 +3975,6 @@ 0 wxID_ANY Rotation: - 0 @@ -4058,9 +3989,7 @@ protected 1 - Resizable - 1 @@ -4109,7 +4038,10 @@ 1 1 1 + + + @@ -4130,7 +4062,6 @@ 0 wxID_ANY 0 - 0 @@ -4145,9 +4076,7 @@ protected 1 - Resizable - 1 @@ -4196,7 +4125,10 @@ 1 1 1 + + + @@ -4217,7 +4149,6 @@ 0 wxID_ANY Board side: - 0 @@ -4232,9 +4163,7 @@ protected 1 - Resizable - 1 @@ -4283,7 +4212,10 @@ 1 1 1 + + + @@ -4304,7 +4236,6 @@ 0 wxID_ANY Front side - 0 @@ -4319,9 +4250,7 @@ protected 1 - Resizable - 1 @@ -4372,7 +4301,10 @@ 1 1 1 + + + @@ -4393,7 +4325,6 @@ 0 wxID_ANY Warning: This pad is flipped on board. Back and front layers will be swapped. - 0 @@ -4408,9 +4339,7 @@ protected 1 - Resizable - 1 @@ -4458,7 +4387,7 @@ 5 wxALL|wxEXPAND 0 - + bSizer10 wxVERTICAL @@ -4500,7 +4429,10 @@ 1 1 1 + + + @@ -4521,7 +4453,6 @@ 0 wxID_ANY Shape: - 0 @@ -4536,9 +4467,7 @@ protected 1 - Resizable - 1 @@ -4587,7 +4516,10 @@ 1 1 1 + + + @@ -4608,7 +4540,6 @@ 0 0 wxID_ANY - 0 @@ -4623,12 +4554,11 @@ protected 1 - Resizable - 0 1 + 0 @@ -4674,7 +4604,10 @@ 1 1 1 + + + @@ -4695,7 +4628,6 @@ 0 wxID_ANY - 0 @@ -4710,9 +4642,7 @@ protected 1 - Resizable - 1 @@ -4761,7 +4691,10 @@ 1 1 1 + + + @@ -4782,7 +4715,6 @@ 0 wxID_ANY Size X: - 0 @@ -4797,9 +4729,7 @@ protected 1 - Resizable - 1 @@ -4848,7 +4778,10 @@ 1 1 1 + + + @@ -4868,7 +4801,6 @@ 0 0 wxID_ANY - 0 @@ -4884,9 +4816,7 @@ protected 1 - Resizable - 1 @@ -4939,7 +4869,10 @@ 1 1 1 + + + @@ -4960,7 +4893,6 @@ 0 wxID_ANY Inch - 0 @@ -4975,9 +4907,7 @@ protected 1 - Resizable - 1 @@ -5026,7 +4956,10 @@ 1 1 1 + + + @@ -5047,7 +4980,6 @@ 0 wxID_ANY Size Y: - 0 @@ -5062,9 +4994,7 @@ protected 1 - Resizable - 1 @@ -5113,7 +5043,10 @@ 1 1 1 + + + @@ -5133,7 +5066,6 @@ 0 0 wxID_ANY - 0 @@ -5149,9 +5081,7 @@ protected 1 - Resizable - 1 @@ -5204,7 +5134,10 @@ 1 1 1 + + + @@ -5225,7 +5158,6 @@ 0 wxID_ANY Inch - 0 @@ -5240,9 +5172,7 @@ protected 1 - Resizable - 1 @@ -5316,7 +5246,10 @@ 1 1 1 + + + @@ -5337,7 +5270,6 @@ 0 wxID_ANY Copper: - 0 @@ -5352,9 +5284,7 @@ protected 1 - Resizable - 1 @@ -5403,7 +5333,10 @@ 1 1 1 + + + @@ -5424,7 +5357,6 @@ 0 0 wxID_ANY - 0 @@ -5439,12 +5371,11 @@ protected 1 - Resizable - 0 1 + 0 @@ -5504,7 +5435,10 @@ 1 1 1 + + + @@ -5526,7 +5460,6 @@ 0 wxID_ANY Adhesive Cmp - 0 @@ -5541,9 +5474,7 @@ protected 1 - Resizable - 1 @@ -5592,7 +5523,10 @@ 1 1 1 + + + @@ -5614,7 +5548,6 @@ 0 wxID_ANY Adhesive Copper - 0 @@ -5629,9 +5562,7 @@ protected 1 - Resizable - 1 @@ -5680,7 +5611,10 @@ 1 1 1 + + + @@ -5702,7 +5636,6 @@ 0 wxID_ANY Solder paste Cmp - 0 @@ -5717,9 +5650,7 @@ protected 1 - Resizable - 1 @@ -5768,7 +5699,10 @@ 1 1 1 + + + @@ -5790,7 +5724,6 @@ 0 wxID_ANY Solder paste Copper - 0 @@ -5805,9 +5738,7 @@ protected 1 - Resizable - 1 @@ -5856,7 +5787,10 @@ 1 1 1 + + + @@ -5878,7 +5812,6 @@ 0 wxID_ANY Silkscreen Cmp - 0 @@ -5893,9 +5826,7 @@ protected 1 - Resizable - 1 @@ -5944,7 +5875,10 @@ 1 1 1 + + + @@ -5966,7 +5900,6 @@ 0 wxID_ANY Silkscreen Copper - 0 @@ -5981,9 +5914,7 @@ protected 1 - Resizable - 1 @@ -6032,7 +5963,10 @@ 1 1 1 + + + @@ -6054,7 +5988,6 @@ 0 wxID_ANY Solder mask Cmp - 0 @@ -6069,9 +6002,7 @@ protected 1 - Resizable - 1 @@ -6120,7 +6051,10 @@ 1 1 1 + + + @@ -6142,7 +6076,6 @@ 0 wxID_ANY Solder mask Copper - 0 @@ -6157,9 +6090,7 @@ protected 1 - Resizable - 1 @@ -6208,7 +6139,10 @@ 1 1 1 + + + @@ -6230,7 +6164,6 @@ 0 wxID_ANY Draft layer - 0 @@ -6245,9 +6178,7 @@ protected 1 - Resizable - 1 @@ -6296,7 +6227,10 @@ 1 1 1 + + + @@ -6318,7 +6252,6 @@ 0 wxID_ANY E.C.O.1 layer - 0 @@ -6333,9 +6266,7 @@ protected 1 - Resizable - 1 @@ -6384,7 +6315,10 @@ 1 1 1 + + + @@ -6406,7 +6340,6 @@ 0 wxID_ANY E.C.O.2 layer - 0 @@ -6421,9 +6354,7 @@ protected 1 - Resizable - 1 @@ -6487,7 +6418,10 @@ 1 1 1 + + + 0,0,0 @@ -6507,7 +6441,6 @@ 0 0 wxID_ANY - 0 @@ -6522,9 +6455,7 @@ protected 1 - Resizable - 1 200,200 @@ -6576,7 +6507,10 @@ 1 1 1 + + + @@ -6596,7 +6530,6 @@ 0 0 wxID_ANY - 0 @@ -6611,9 +6544,7 @@ protected 1 - Resizable - 1 @@ -6710,7 +6641,10 @@ 1 1 1 + + + @@ -6731,7 +6665,6 @@ 0 wxID_ANY Net pad clearance: - 0 @@ -6746,9 +6679,7 @@ protected 1 - Resizable - 1 @@ -6797,7 +6728,10 @@ 1 1 1 + + + @@ -6817,7 +6751,6 @@ 0 0 wxID_ANY - 0 @@ -6833,9 +6766,7 @@ protected 1 - Resizable - 1 @@ -6888,7 +6819,10 @@ 1 1 1 + + + @@ -6909,7 +6843,6 @@ 0 wxID_ANY Inch - 0 @@ -6924,9 +6857,7 @@ protected 1 - Resizable - 1 @@ -6975,7 +6906,10 @@ 1 1 1 + + + @@ -6996,7 +6930,6 @@ 0 wxID_ANY Solder mask clearance: - 0 @@ -7011,9 +6944,7 @@ protected 1 - Resizable - 1 @@ -7062,7 +6993,10 @@ 1 1 1 + + + @@ -7082,7 +7016,6 @@ 0 0 wxID_ANY - 0 @@ -7098,9 +7031,7 @@ protected 1 - Resizable - 1 @@ -7153,7 +7084,10 @@ 1 1 1 + + + @@ -7174,7 +7108,6 @@ 0 wxID_ANY Inch - 0 @@ -7189,9 +7122,7 @@ protected 1 - Resizable - 1 @@ -7240,7 +7171,10 @@ 1 1 1 + + + @@ -7261,7 +7195,6 @@ 0 wxID_ANY Solder paste clearance: - 0 @@ -7276,9 +7209,7 @@ protected 1 - Resizable - 1 @@ -7327,7 +7258,10 @@ 1 1 1 + + + @@ -7347,7 +7281,6 @@ 0 0 wxID_ANY - 0 @@ -7363,9 +7296,7 @@ protected 1 - Resizable - 1 @@ -7418,7 +7349,10 @@ 1 1 1 + + + @@ -7439,7 +7373,6 @@ 0 wxID_ANY Inch - 0 @@ -7454,9 +7387,7 @@ protected 1 - Resizable - 1 @@ -7505,7 +7436,10 @@ 1 1 1 + + + @@ -7526,7 +7460,6 @@ 0 wxID_ANY Solder mask ratio clearance: - 0 @@ -7541,9 +7474,7 @@ protected 1 - Resizable - 1 @@ -7592,7 +7523,10 @@ 1 1 1 + + + @@ -7612,7 +7546,6 @@ 0 0 wxID_ANY - 0 @@ -7628,9 +7561,7 @@ protected 1 - Resizable - 1 @@ -7683,7 +7614,10 @@ 1 1 1 + + + @@ -7704,7 +7638,6 @@ 0 wxID_ANY % - 0 @@ -7719,9 +7652,7 @@ protected 1 - Resizable - 1 @@ -7802,7 +7733,10 @@ 1 1 1 + + + @@ -7823,7 +7757,6 @@ 0 wxID_ANY Pad connection: - 0 @@ -7838,9 +7771,7 @@ protected 1 - Resizable - 1 @@ -7889,7 +7820,10 @@ 1 1 1 + + + @@ -7910,7 +7844,6 @@ 0 0 wxID_ANY - 0 @@ -7925,12 +7858,11 @@ protected 1 - Resizable - 0 1 + 0 @@ -7976,7 +7908,10 @@ 1 1 1 + + + @@ -7997,7 +7932,6 @@ 0 wxID_ANY - 0 @@ -8012,9 +7946,7 @@ protected 1 - Resizable - 1 @@ -8063,7 +7995,10 @@ 1 1 1 + + + @@ -8084,7 +8019,6 @@ 0 wxID_ANY Thermal relief width: - 0 @@ -8099,9 +8033,7 @@ protected 1 - Resizable - 1 @@ -8150,7 +8082,10 @@ 1 1 1 + + + @@ -8170,7 +8105,6 @@ 0 0 wxID_ANY - 0 @@ -8186,9 +8120,7 @@ protected 1 - Resizable - 1 @@ -8241,7 +8173,10 @@ 1 1 1 + + + @@ -8262,7 +8197,6 @@ 0 wxID_ANY Inch - 0 @@ -8277,9 +8211,7 @@ protected 1 - Resizable - 1 @@ -8328,7 +8260,10 @@ 1 1 1 + + + @@ -8349,7 +8284,6 @@ 0 wxID_ANY Thermal relief gap: - 0 @@ -8364,9 +8298,7 @@ protected 1 - Resizable - 1 @@ -8415,7 +8347,10 @@ 1 1 1 + + + @@ -8435,7 +8370,6 @@ 0 0 wxID_ANY - 0 @@ -8451,9 +8385,7 @@ protected 1 - Resizable - 1 @@ -8506,7 +8438,10 @@ 1 1 1 + + + @@ -8527,7 +8462,6 @@ 0 wxID_ANY Inch - 0 @@ -8542,9 +8476,7 @@ protected 1 - Resizable - 1 @@ -8597,7 +8529,10 @@ 1 1 1 + + + @@ -8618,7 +8553,6 @@ 0 wxID_ANY Set fields to 0 to use parent or global values - 0 @@ -8633,9 +8567,7 @@ protected 1 - Resizable - 1 diff --git a/pcbnew/dialogs/dialog_pad_properties_base.h b/pcbnew/dialogs/dialog_pad_properties_base.h index bcfaa069fc..60993c6e97 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.h +++ b/pcbnew/dialogs/dialog_pad_properties_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) +// C++ code generated with wxFormBuilder (version Feb 9 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -44,7 +44,7 @@ class DIALOG_PAD_PROPERTIES_BASE : public wxDialog { wxID_DIALOG_EDIT_PAD = 1000, wxID_PADNUMCTRL, - wxID_PADNETNAMECTRL, + wxID_PADNETNAMECTRL }; wxNotebook* m_notebook1; @@ -55,15 +55,14 @@ class DIALOG_PAD_PROPERTIES_BASE : public wxDialog wxTextCtrl* m_PadNetNameCtrl; wxStaticText* m_staticText44; wxChoice* m_PadType; - wxStaticText* m_staticText45; - wxChoice* m_PadShape; - wxStaticText* m_staticText46; wxStaticText* m_staticText4; wxTextCtrl* m_PadPosition_X_Ctrl; wxStaticText* m_PadPosX_Unit; wxStaticText* m_staticText41; wxTextCtrl* m_PadPosition_Y_Ctrl; wxStaticText* m_PadPosY_Unit; + wxStaticText* m_staticText45; + wxChoice* m_PadShape; wxStaticText* m_staticText12; wxTextCtrl* m_ShapeSize_X_Ctrl; wxStaticText* m_PadShapeSizeX_Unit; From 5a2d655c4ac6befc4bac7617d067418afecc89f2 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Sun, 11 Mar 2012 19:40:48 -0500 Subject: [PATCH 14/68] * Add PCB_EDIT_FRAME::syncLayerVisibilities(), PCB_LAYER_MANAGER::SyncLayerVisibilities(). * Save all visibilities, layer and render, in BOARD and restore on load. --- CHANGELOG.txt | 7 +++++ common/common.cpp | 14 +++++----- common/dialog_about/AboutDialog_main.cpp | 1 + include/common.h | 10 +++---- include/param_config.h | 10 +++++-- include/wxPcbStruct.h | 12 +++++++-- pcbnew/class_board.cpp | 15 +++++------ pcbnew/class_pcb_layer_widget.cpp | 28 ++++++++++++++++--- pcbnew/class_pcb_layer_widget.h | 8 ++++++ pcbnew/files.cpp | 9 ++++++- pcbnew/ioascii.cpp | 28 ++++++++++++++++++- pcbnew/kicad_plugin.cpp | 34 +++++++++++++++--------- pcbnew/layer_widget.cpp | 5 +++- pcbnew/layer_widget.h | 7 +++-- pcbnew/pcbframe.cpp | 6 +++++ 15 files changed, 145 insertions(+), 49 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 5432d16da1..2ba941fb52 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,6 +4,13 @@ KiCad ChangeLog 2012 Please add newer entries at the top, list the date and your name with email address. +2012-Mar-11 UPDATE Dick Hollenbeck +================================================================================ +++pcbnew + * Add PCB_EDIT_FRAME::syncLayerVisibilities, PCB_LAYER_MANAGER::SyncLayerVisibilities(). + * Save all visibilities, layer and render, in BOARD and restore on load. + + 2012-Feb-19 UPDATE Dick Hollenbeck ================================================================================ ++pcbnew diff --git a/common/common.cpp b/common/common.cpp index 1aaff80ff8..573e2ecf86 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -265,7 +265,7 @@ wxString ReturnStringFromValue( EDA_UNITS_T aUnit, int aValue, int aInternal_Uni value_to_print = To_User_Unit( aUnit, aValue, aInternal_Unit ); - /* Yet another 'if Pcbnew' :( */ + // Yet another 'if Pcbnew' :( StringValue.Printf( ( aInternal_Unit > 1000 ) ? wxT( "%.4f" ) : wxT( "%.3f" ), value_to_print ); @@ -293,12 +293,12 @@ int ReturnValueFromString( EDA_UNITS_T aUnit, const wxString& TextValue, int Int int Value; double dtmp = 0; - /* Acquire the 'right' decimal point separator */ + // Acquire the 'right' decimal point separator const struct lconv* lc = localeconv(); wxChar decimal_point = lc->decimal_point[0]; wxString buf( TextValue.Strip( wxString::both ) ); - /* Convert the period in decimal point */ + // Convert the period in decimal point buf.Replace( wxT( "." ), wxString( decimal_point, 1 ) ); // An ugly fix needed by WxWidgets 2.9.1 that sometimes @@ -306,7 +306,7 @@ int ReturnValueFromString( EDA_UNITS_T aUnit, const wxString& TextValue, int Int // TODO: remove this line if WxWidgets 2.9.2 fixes this issue buf.Replace( wxT( "," ), wxString( decimal_point, 1 ) ); - /* Find the end of the numeric part */ + // Find the end of the numeric part unsigned brk_point = 0; while( brk_point < buf.Len() ) @@ -321,10 +321,10 @@ int ReturnValueFromString( EDA_UNITS_T aUnit, const wxString& TextValue, int Int ++brk_point; } - /* Extract the numeric part */ + // Extract the numeric part buf.Left( brk_point ).ToDouble( &dtmp ); - /* Check the optional unit designator (2 ch significant) */ + // Check the optional unit designator (2 ch significant) wxString unit( buf.Mid( brk_point ).Strip( wxString::leading ).Left( 2 ).Lower() ); if( unit == wxT( "in" ) || unit == wxT( "\"" ) ) @@ -335,7 +335,7 @@ int ReturnValueFromString( EDA_UNITS_T aUnit, const wxString& TextValue, int Int { aUnit = MILLIMETRES; } - else if( unit == wxT( "mi" ) || unit == wxT( "th" ) ) /* Mils or thous */ + else if( unit == wxT( "mi" ) || unit == wxT( "th" ) ) // Mils or thous { aUnit = INCHES; dtmp /= 1000; diff --git a/common/dialog_about/AboutDialog_main.cpp b/common/dialog_about/AboutDialog_main.cpp index 1e69432959..6137148358 100644 --- a/common/dialog_about/AboutDialog_main.cpp +++ b/common/dialog_about/AboutDialog_main.cpp @@ -207,6 +207,7 @@ static void InitKiCadAboutNew( AboutAppInfo& info ) info.AddDeveloper( new Contributor( wxT( "Jean-Pierre Charras" ), wxT( "jean-pierre.charras@gipsa-lab.inpg.fr" ) ) ); info.AddDeveloper( new Contributor( wxT( "Dick Hollenbeck" ), wxT( "dick@softplc.com" ) ) ); + info.AddDeveloper( new Contributor( wxT( "Frank Bennett" ), wxT( "bennett78@lpbroadband.net" ) ) ); info.AddDeveloper( new Contributor( wxT( "Hauptmech" ), wxT( "hauptmech@gmail.com" ) ) ); info.AddDeveloper( new Contributor( wxT( "Jerry Jacobs" ), wxT( "xor.gate.engineering@gmail.com" ) ) ); diff --git a/include/common.h b/include/common.h index d50c5dbc43..c2eb72ca0a 100644 --- a/include/common.h +++ b/include/common.h @@ -155,7 +155,7 @@ public: /** * Function IsCustom - * returns true if the type is "User" + * returns true if the type is Custom */ bool IsCustom() const; @@ -196,8 +196,6 @@ public: const wxSize GetSizeIU() const { return wxSize( GetWidthIU(), GetHeightIU() ); } #endif -// wxPoint GetOffsetMils() const { return m_Offset; } - int GetLeftMarginMils() const { return m_left_margin; } int GetRightMarginMils() const { return m_right_margin; } int GetTopMarginMils() const { return m_top_margin; } @@ -268,12 +266,12 @@ private: }; -extern wxString g_ProductName; +extern wxString g_ProductName; /// Default user lib path can be left void, if the standard lib path is used -extern wxString g_UserLibDirBuffer; +extern wxString g_UserLibDirBuffer; -extern bool g_ShowPageLimits; ///< true to display the page limits +extern bool g_ShowPageLimits; ///< true to display the page limits /// Name of default configuration file. (kicad.pro) extern wxString g_Prj_Default_Config_FullFilename; diff --git a/include/param_config.h b/include/param_config.h index f526e6adfb..a1d83c5309 100644 --- a/include/param_config.h +++ b/include/param_config.h @@ -11,6 +11,8 @@ #include + + /** Type of parameter in the configuration file */ enum paramcfg_id { PARAM_INT, @@ -31,11 +33,15 @@ enum paramcfg_id { #define INT_MAXVAL 0x7FFFFFFF + /** * Class PARAM_CFG_BASE - * is a base class which establishes the virtual functions ReadParam and SaveParam, - * which are re-implemented by a number of base classes, and these function's + * is a base class which establishes the interface functions ReadParam and SaveParam, + * which are implemented by a number of derived classes, and these function's * doxygen comments are inherited also. + *

+ * See kicad.odt or kicad.pdf, chapter 2 : + * "Installation and configuration/Initialization of the default config". */ class PARAM_CFG_BASE { diff --git a/include/wxPcbStruct.h b/include/wxPcbStruct.h index 6d116236cf..4a173be08f 100644 --- a/include/wxPcbStruct.h +++ b/include/wxPcbStruct.h @@ -133,8 +133,8 @@ protected: /** * Function syncLayerWidgetLayer - * updates the currently "selected" layer within the PCB_LAYER_WIDGET. - * The currently active layer is defined by the return value of getActiveLayer(). + * updates the currently layer "selection" within the PCB_LAYER_WIDGET. + * The currently selected layer is defined by the return value of getActiveLayer(). *

* This function cannot be inline without including layer_widget.h in * here and we do not want to do that. @@ -150,6 +150,14 @@ protected: */ void syncRenderStates(); + /** + * Function syncLayerVisibilities + * updates each "Layer" checkbox in the layer widget according + * to each layer's current visibility determined by IsLayerVisible(), and is + * helpful immediately after loading a BOARD which may have state information in it. + */ + void syncLayerVisibilities(); + virtual void unitsChangeRefresh(); /** diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 2a00d8c0c8..1026464c9a 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -516,18 +516,15 @@ void BOARD::SetVisibleLayers( int aLayerMask ) } -// these are not tidy, since there are PCB_VISIBLEs that are not stored in the bitmap. - void BOARD::SetVisibleElements( int aMask ) { - /* Call SetElementVisibility for each item, - * to ensure specific calculations that can be needed by some items - * just change the visibility flags could be not sufficient - */ + // Call SetElementVisibility for each item + // to ensure specific calculations that can be needed by some items, + // just changing the visibility flags could be not sufficient. for( int ii = 0; ii < PCB_VISIBLE( END_PCB_VISIBLE_LIST ); ii++ ) { int item_mask = 1 << ii; - SetElementVisibility( ii, aMask & item_mask ); + SetElementVisibility( ii, bool( aMask & item_mask ) ); } } @@ -563,8 +560,8 @@ void BOARD::SetElementVisibility( int aPCB_VISIBLE, bool isEnabled ) { case RATSNEST_VISIBLE: - // we must clear or set the CH_VISIBLE flags to hide/show ratsnet - // because we have a tool to show hide ratsnest relative to a pad or a module + // we must clear or set the CH_VISIBLE flags to hide/show ratsnest + // because we have a tool to show/hide ratsnest relative to a pad or a module // so the hide/show option is a per item selection if( IsElementVisible( RATSNEST_VISIBLE ) ) { diff --git a/pcbnew/class_pcb_layer_widget.cpp b/pcbnew/class_pcb_layer_widget.cpp index e0268d1516..3cd7ec006b 100644 --- a/pcbnew/class_pcb_layer_widget.cpp +++ b/pcbnew/class_pcb_layer_widget.cpp @@ -46,7 +46,7 @@ #include -// this is a read only template that is copied and modified before adding to LAYER_WIDGET +/// This is a read only template that is copied and modified before adding to LAYER_WIDGET const LAYER_WIDGET::ROW PCB_LAYER_WIDGET::s_render_rows[] = { #define RR LAYER_WIDGET::ROW // Render Row abreviation to reduce source width @@ -221,8 +221,30 @@ void PCB_LAYER_WIDGET::SyncRenderStates() for( unsigned row=0; rowIsElementVisible( s_render_rows[row].id ) ); + int rowId = s_render_rows[row].id; + + // this does not fire a UI event + SetRenderState( rowId, board->IsElementVisible( rowId ) ); + } +} + + +void PCB_LAYER_WIDGET::SyncLayerVisibilities() +{ + BOARD* board = myframe->GetBoard(); + int count = GetLayerRowCount(); + + for( int row=0; rowGetId() ); + + // this does not fire a UI event + SetLayerVisible( layerId, board->IsLayerVisible( layerId ) ); } } diff --git a/pcbnew/class_pcb_layer_widget.h b/pcbnew/class_pcb_layer_widget.h index 10e10fbd80..13f3a85007 100644 --- a/pcbnew/class_pcb_layer_widget.h +++ b/pcbnew/class_pcb_layer_widget.h @@ -66,6 +66,14 @@ public: */ void SyncRenderStates(); + /** + * Function SyncLayerVisibilities + * updates each "Layer" checkbox in this layer widget according + * to each layer's current visibility determined by IsLayerVisible(), and is + * helpful immediately after loading a BOARD which may have state information in it. + */ + void SyncLayerVisibilities(); + /** * Function SetLayersManagerTabsText * Update the layer manager tabs labels diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index ea1bd2724c..bec5346e58 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -370,10 +370,17 @@ this file again." ) ); ReFillLayerWidget(); ReCreateLayerBox( NULL ); - syncLayerWidgetLayer(); + // upate the layer widget to match board visibility states, both layers and render columns. + syncLayerVisibilities(); + syncLayerWidgetLayer(); syncRenderStates(); + // Update the RATSNEST items, which were not loaded at the time + // BOARD::SetVisibleElements() was called from within any PLUGIN. + // See case RATSNEST_VISIBLE: in BOARD::SetElementVisibility() + GetBoard()->SetVisibleElements( GetBoard()->GetVisibleElements() ); + updateTraceWidthSelectBox(); updateViaSizeSelectBox(); diff --git a/pcbnew/ioascii.cpp b/pcbnew/ioascii.cpp index 1904d5ebc4..3203bf11ab 100644 --- a/pcbnew/ioascii.cpp +++ b/pcbnew/ioascii.cpp @@ -217,12 +217,25 @@ int PCB_BASE_FRAME::ReadGeneralDescrPcb( LINE_READER* aReader ) data = strtok( NULL, delims ); sscanf( data, "%X", &enabledLayers ); - // Setup layer visibility + // layer usage GetBoard()->SetEnabledLayers( enabledLayers ); + + // layer visibility equals layer usage, unless overridden later via "VisibleLayers" GetBoard()->SetVisibleLayers( enabledLayers ); continue; } + if( stricmp( data, "VisibleLayers" ) == 0 ) + { + int visibleLayers = -1; + + data = strtok( NULL, delims ); + sscanf( data, "%X", &visibleLayers ); + + GetBoard()->SetVisibleLayers( visibleLayers ); + continue; + } + if( strncmp( data, "Ly", 2 ) == 0 ) // Old format for Layer count { int Masque_Layer = 1, ii; @@ -634,7 +647,13 @@ int PCB_BASE_FRAME::ReadSetup( LINE_READER* aReader ) GetScreen()->m_GridOrigin.x = Ox; GetScreen()->m_GridOrigin.y = Oy; + continue; + } + if( stricmp( line, "VisibleElements" ) == 0 ) + { + int visibleElements = strtoul( data, 0, 16 ); + bds.SetVisibleElements( visibleElements ); continue; } #endif @@ -778,6 +797,8 @@ static int WriteSetup( FILE* aFile, PCB_EDIT_FRAME* aFrame, BOARD* aBoard ) aFrame->GetOriginAxisPosition().x, aFrame->GetOriginAxisPosition().y ); + fprintf( aFile, "VisibleElements %X\n", bds.GetVisibleElements() ); + STRING_FORMATTER sf; g_PcbPlotOptions.Format( &sf, 0 ); @@ -810,7 +831,12 @@ bool PCB_EDIT_FRAME::WriteGeneralDescrPcb( FILE* File ) fprintf( File, "Ly %8X\n", g_TabAllCopperLayerMask[NbLayers - 1] | ALL_NO_CU_LAYERS ); + fprintf( File, "EnabledLayers %08X\n", GetBoard()->GetEnabledLayers() ); + + if( GetBoard()->GetEnabledLayers() != GetBoard()->GetVisibleLayers() ) + fprintf( File, "VisibleLayers %08X\n", GetBoard()->GetVisibleLayers() ); + fprintf( File, "Links %d\n", GetBoard()->GetRatsnestsCount() ); fprintf( File, "NoConn %d\n", GetBoard()->m_NbNoconnect ); diff --git a/pcbnew/kicad_plugin.cpp b/pcbnew/kicad_plugin.cpp index 85dd0096a2..dc795eb99f 100644 --- a/pcbnew/kicad_plugin.cpp +++ b/pcbnew/kicad_plugin.cpp @@ -356,11 +356,19 @@ void KICAD_PLUGIN::loadGENERAL() { int enabledLayers = hexParse( line + SZ( "EnabledLayers" ) ); - // Setup layer visibility + // layer usage m_board->SetEnabledLayers( enabledLayers ); + + // layer visibility equals layer usage, unless overridden later via "VisibleLayers" m_board->SetVisibleLayers( enabledLayers ); } + else if( TESTLINE( "VisibleLayers" ) ) + { + int visibleLayers = hexParse( line + SZ( "VisibleLayers" ) ); + m_board->SetVisibleLayers( visibleLayers ); + } + else if( TESTLINE( "Ly" ) ) // Old format for Layer count { int layer_mask = hexParse( line + SZ( "Ly" ) ); @@ -607,18 +615,6 @@ void KICAD_PLUGIN::loadSETUP() } } - /* no more used - else if( TESTLINE( "TrackWidth" ) ) - { - } - else if( TESTLINE( "ViaSize" ) ) - { - } - else if( TESTLINE( "MicroViaSize" ) ) - { - } - */ - else if( TESTLINE( "TrackWidthList" ) ) { BIU tmp = biuParse( line + SZ( "TrackWidthList" ) ); @@ -794,6 +790,12 @@ void KICAD_PLUGIN::loadSETUP() */ } + else if( TESTLINE( "VisibleElements" ) ) + { + int visibleElements = hexParse( line + SZ( "VisibleElements" ) ); + bds.SetVisibleElements( visibleElements ); + } + else if( TESTLINE( "$EndSETUP" ) ) { m_board->SetDesignSettings( bds ); @@ -2765,6 +2767,10 @@ void KICAD_PLUGIN::saveGENERAL() const */ fprintf( m_fp, "EnabledLayers %08X\n", m_board->GetEnabledLayers() ); + + if( m_board->GetEnabledLayers() != m_board->GetVisibleLayers() ) + fprintf( m_fp, "VisibleLayers %08X\n", m_board->GetVisibleLayers() ); + fprintf( m_fp, "Links %d\n", m_board->GetRatsnestsCount() ); fprintf( m_fp, "NoConn %d\n", m_board->m_NbNoconnect ); @@ -2918,6 +2924,8 @@ void KICAD_PLUGIN::saveSETUP() const } */ + fprintf( m_fp, "VisibleElements %X\n", bds.GetVisibleElements() ); + fprintf( m_fp, "$EndSETUP\n\n" ); } diff --git a/pcbnew/layer_widget.cpp b/pcbnew/layer_widget.cpp index a3f3a21664..3f3a7a7440 100644 --- a/pcbnew/layer_widget.cpp +++ b/pcbnew/layer_widget.cpp @@ -200,6 +200,7 @@ wxBitmap LAYER_WIDGET::makeBitmap( int aColor ) return bitmap; } + wxBitmapButton* LAYER_WIDGET::makeColorButton( wxWindow* aParent, int aColor, int aID ) { // dynamically make a wxBitMap and brush it with the appropriate color, @@ -218,6 +219,7 @@ wxBitmapButton* LAYER_WIDGET::makeColorButton( wxWindow* aParent, int aColor, in return ret; } + void LAYER_WIDGET::OnLeftDownLayers( wxMouseEvent& event ) { int row; @@ -325,6 +327,7 @@ void LAYER_WIDGET::OnMiddleDownRenderColor( wxMouseEvent& event ) passOnFocus(); } + void LAYER_WIDGET::OnRenderCheckBox( wxCommandEvent& event ) { wxCheckBox* eventSource = (wxCheckBox*) event.GetEventObject(); @@ -457,7 +460,7 @@ void LAYER_WIDGET::insertRenderRow( int aRow, const ROW& aSpec ) else // == -1, no color selection wanted { // need a place holder within the sizer to keep grid full. - wxPanel* invisible = new wxPanel( m_RenderScrolledWindow ); + wxPanel* invisible = new wxPanel( m_RenderScrolledWindow, encodeId( col, aSpec.id ) ); m_RenderFlexGridSizer->wxSizer::Insert( index+col, invisible, 0, flags ); } diff --git a/pcbnew/layer_widget.h b/pcbnew/layer_widget.h index 82b885bb7b..a80f58e382 100644 --- a/pcbnew/layer_widget.h +++ b/pcbnew/layer_widget.h @@ -166,11 +166,12 @@ protected: /** * Function getLayerComp - * returns the component within the m_LayersFlexGridSizer at aRow and aCol - * or NULL if \a these parameters are out of range. + * returns the component within the m_LayersFlexGridSizer at @a aRow and @a aCol + * or NULL if these parameters are out of range. * * @param aRow is the row index * @param aColumn is the column + * @return wxWindow - the component installed within the sizer at given grid coordinate. */ wxWindow* getLayerComp( int aRow, int aColumn ); wxWindow* getRenderComp( int aRow, int aColumn ); @@ -278,7 +279,6 @@ public: AppendRenderRow( aRowsArray[row] ); } - /** * Function ClearRenderRows * empties out the render rows. @@ -419,5 +419,4 @@ public: //----------------------------------------------- }; - #endif // LAYERWIDGET_H_ diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index aef0669b73..790d5de0ed 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -653,6 +653,12 @@ void PCB_EDIT_FRAME::syncRenderStates() } +void PCB_EDIT_FRAME::syncLayerVisibilities() +{ + m_Layers->SyncLayerVisibilities(); +} + + void PCB_EDIT_FRAME::unitsChangeRefresh() { PCB_BASE_FRAME::unitsChangeRefresh(); // Update the grid size select box. From 689324ad24de51b57fb5ffa238cb15aea82a9b1d Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Mon, 12 Mar 2012 11:04:40 +0100 Subject: [PATCH 15/68] Eeschema: minor fixes: * make 2 bitmaps more visible. * fix incorrect screen redraw when rotating a component. * netlist : the pcbnew advanced format can be now stored (persistant option) in project config. --- bitmaps_png/cpp_26/export.cpp | 125 +++---- bitmaps_png/cpp_26/hierarchy_nav.cpp | 78 ++-- bitmaps_png/sources/export.svg | 286 ++++++++------- bitmaps_png/sources/hierarchy_nav.svg | 341 +++++++++++++++--- eeschema/eeschema_config.cpp | 7 +- eeschema/getpart.cpp | 8 +- eeschema/netlist_control.cpp | 71 ++-- eeschema/netlist_control.h | 23 +- eeschema/sch_component.cpp | 12 +- eeschema/schframe.cpp | 3 - include/wxEeschemaStruct.h | 8 +- pcbnew/dialogs/dialog_pad_properties_base.cpp | 107 +++--- pcbnew/dialogs/dialog_pad_properties_base.fbp | 8 +- 13 files changed, 667 insertions(+), 410 deletions(-) diff --git a/bitmaps_png/cpp_26/export.cpp b/bitmaps_png/cpp_26/export.cpp index a27e01b9bc..d8eaea8198 100644 --- a/bitmaps_png/cpp_26/export.cpp +++ b/bitmaps_png/cpp_26/export.cpp @@ -8,72 +8,65 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x04, 0x0f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x96, 0x5d, 0x48, 0x1c, - 0x57, 0x14, 0xc7, 0xb7, 0x49, 0x4b, 0x9a, 0x86, 0x94, 0xa4, 0x49, 0x68, 0x48, 0x42, 0xa0, 0x69, - 0x0a, 0x09, 0x69, 0x9b, 0x10, 0x2c, 0x94, 0x42, 0x10, 0x51, 0xf1, 0xe3, 0xc1, 0x17, 0xf1, 0x45, - 0x88, 0x50, 0x7c, 0x48, 0x62, 0x08, 0x65, 0x83, 0x09, 0xdd, 0x80, 0x8f, 0x62, 0x7d, 0xb0, 0x88, - 0xa0, 0x58, 0x1f, 0x84, 0x68, 0x02, 0x46, 0x90, 0xee, 0x4b, 0x35, 0x89, 0x4b, 0x9a, 0x34, 0x71, - 0xb7, 0xae, 0x71, 0x77, 0xd5, 0xb8, 0x8a, 0xbb, 0x31, 0xda, 0x5d, 0xbf, 0x3f, 0xd6, 0x75, 0xc7, - 0x75, 0xfc, 0x3c, 0xfd, 0x9f, 0xdb, 0x99, 0x61, 0x9c, 0xcc, 0x9a, 0x06, 0x92, 0x0b, 0x3f, 0x58, - 0x98, 0x3b, 0xf7, 0x77, 0xcf, 0xb9, 0xe7, 0x9e, 0x59, 0x8b, 0xc5, 0x62, 0xd9, 0x09, 0xbe, 0x00, - 0x5f, 0xbe, 0x23, 0x0e, 0x13, 0x91, 0xc5, 0x08, 0x8f, 0xd3, 0x03, 0x03, 0x03, 0xe1, 0xa9, 0xa9, - 0x29, 0xc9, 0xc8, 0xa4, 0xca, 0xe4, 0xa4, 0x34, 0xc1, 0x4c, 0x4c, 0x08, 0xc6, 0x99, 0xf1, 0x71, - 0x69, 0x8c, 0x19, 0x1b, 0x93, 0xc2, 0x20, 0x14, 0x0e, 0x4b, 0xff, 0x84, 0xc2, 0x52, 0x6d, 0x6d, - 0xed, 0xef, 0x58, 0xf3, 0x63, 0x33, 0xd1, 0xd7, 0x91, 0x48, 0x44, 0x5e, 0x5c, 0x5c, 0x24, 0x3d, - 0x51, 0x95, 0x68, 0x94, 0x16, 0x98, 0x85, 0x05, 0x8a, 0x80, 0xf9, 0x48, 0x84, 0xe6, 0xe6, 0xe7, - 0x05, 0xb3, 0x73, 0x73, 0x34, 0x33, 0x3b, 0x4b, 0xd3, 0x33, 0x33, 0x04, 0x39, 0x61, 0x33, 0xd4, - 0xda, 0xd6, 0xe6, 0xc4, 0x9a, 0xbb, 0x4d, 0x45, 0x58, 0x48, 0x96, 0x24, 0x89, 0x98, 0x98, 0x9e, - 0x58, 0x8c, 0x16, 0x19, 0x83, 0x54, 0x2f, 0x64, 0xd1, 0x6f, 0x75, 0x75, 0x64, 0xbb, 0x75, 0x8b, - 0x3c, 0x5e, 0x2f, 0xb5, 0x6d, 0x27, 0xc2, 0x02, 0xf2, 0x52, 0x3c, 0x4e, 0x1a, 0x4b, 0x4b, 0x02, - 0x89, 0x31, 0x48, 0x59, 0xa8, 0x46, 0x38, 0x0f, 0xd1, 0xed, 0x86, 0x06, 0x72, 0xbb, 0xdd, 0xb4, - 0xbc, 0xbc, 0x4c, 0x25, 0x25, 0x25, 0x74, 0xe7, 0xee, 0x5d, 0x4f, 0x42, 0x11, 0x76, 0x2c, 0xf3, - 0x44, 0x3d, 0x71, 0x06, 0xd2, 0xb8, 0x22, 0xd6, 0xa4, 0x3a, 0x21, 0xce, 0x88, 0x9a, 0x9a, 0x9a, - 0x68, 0x73, 0x73, 0x93, 0x78, 0xf0, 0xf3, 0xc2, 0xc2, 0xc2, 0x68, 0x52, 0x52, 0xd2, 0x09, 0x53, - 0x11, 0x26, 0xc8, 0x2b, 0x2b, 0x2b, 0xa4, 0x22, 0x33, 0xb2, 0x2c, 0xd0, 0xc4, 0x3a, 0x21, 0x47, - 0xc8, 0x32, 0x4e, 0x5f, 0x55, 0x55, 0x95, 0x88, 0x4c, 0x1d, 0x28, 0x8e, 0x58, 0x46, 0x46, 0x86, - 0x33, 0x35, 0x35, 0xf5, 0x80, 0xa9, 0x68, 0x75, 0x75, 0x95, 0x8c, 0x68, 0x62, 0x16, 0x2a, 0x52, - 0x4d, 0xa8, 0x44, 0x17, 0x0e, 0x87, 0xe9, 0x97, 0xf2, 0x72, 0x31, 0x5f, 0x1d, 0xa1, 0x50, 0xc8, - 0x99, 0x96, 0x96, 0xf6, 0x34, 0x27, 0x27, 0x67, 0xef, 0x16, 0x11, 0x5e, 0x94, 0xd7, 0xd6, 0xd6, - 0xc8, 0x88, 0x51, 0x2a, 0x27, 0x90, 0xf5, 0xf6, 0xf6, 0x52, 0x4d, 0x4d, 0x8d, 0x96, 0x42, 0x1e, - 0xb8, 0x32, 0x8f, 0x11, 0xd9, 0xa3, 0xac, 0xac, 0xac, 0x5d, 0x5b, 0x44, 0xeb, 0xeb, 0xeb, 0xa4, - 0x62, 0x26, 0x65, 0x89, 0xdd, 0x6e, 0xa7, 0xc6, 0xc6, 0x46, 0xaa, 0xaf, 0xaf, 0xa7, 0x3a, 0x54, - 0x5a, 0x75, 0x75, 0xb5, 0x48, 0x5d, 0x45, 0x45, 0x05, 0x95, 0x96, 0x96, 0x52, 0x57, 0x57, 0x17, - 0xe9, 0x07, 0x8a, 0xe4, 0x4f, 0xc8, 0xec, 0x79, 0x79, 0x79, 0x3b, 0x85, 0x08, 0x3b, 0xdc, 0x22, - 0x32, 0x93, 0x72, 0x44, 0x7a, 0xb1, 0xfa, 0x7c, 0x63, 0x63, 0x83, 0xb6, 0x1b, 0xad, 0xad, 0xad, - 0x8f, 0x33, 0x33, 0x33, 0x7f, 0xd5, 0x44, 0xfc, 0x82, 0x11, 0xbd, 0x90, 0x45, 0xc6, 0x4d, 0x88, - 0x79, 0xba, 0x74, 0x99, 0x0d, 0xa4, 0xd6, 0x97, 0x9d, 0x9d, 0x6d, 0x17, 0x22, 0xe4, 0x5d, 0xe6, - 0xfc, 0xaa, 0x98, 0x09, 0x59, 0xd4, 0xd7, 0xd7, 0x47, 0x3e, 0x9f, 0x4f, 0xd0, 0xd3, 0xd3, 0x23, - 0xce, 0xa6, 0xbf, 0xbf, 0x9f, 0xcf, 0x83, 0xfc, 0x7e, 0xbf, 0x28, 0x0c, 0xfd, 0x40, 0xba, 0x07, - 0x73, 0x73, 0x73, 0x87, 0x90, 0xbe, 0x93, 0xa6, 0x22, 0x33, 0x29, 0xa7, 0x2b, 0x10, 0x08, 0x88, - 0x05, 0x59, 0xe0, 0xf1, 0x78, 0xc4, 0x99, 0xb8, 0x5c, 0x2e, 0x72, 0x38, 0x1c, 0x64, 0xb5, 0x5a, - 0x45, 0x91, 0xa8, 0x03, 0x05, 0x34, 0x92, 0x9f, 0x9f, 0x1f, 0x4c, 0x4f, 0x4f, 0x3f, 0xa7, 0x15, - 0x03, 0x8b, 0xcc, 0xc2, 0x36, 0xca, 0x8c, 0xe7, 0xc6, 0xd5, 0xc8, 0x45, 0x82, 0x46, 0x4a, 0x68, - 0xb6, 0xda, 0x7b, 0x98, 0x3b, 0x51, 0x50, 0x50, 0xf0, 0x02, 0x91, 0x5c, 0xd8, 0x52, 0xde, 0x31, - 0xdd, 0x3d, 0x52, 0x0f, 0x5a, 0x2d, 0xd5, 0x37, 0xc9, 0xda, 0xdb, 0xdb, 0xa9, 0xb3, 0xb3, 0x53, - 0x1f, 0xc9, 0x5a, 0x51, 0x51, 0xd1, 0xf3, 0x94, 0x94, 0x94, 0xec, 0xd7, 0x3e, 0x13, 0xa1, 0xb1, - 0xf1, 0xf8, 0xf4, 0xf4, 0x34, 0xe1, 0xd3, 0x40, 0x73, 0xe8, 0xc8, 0xdc, 0x3c, 0x79, 0xa7, 0xbc, - 0xe0, 0x76, 0x32, 0x9e, 0xc7, 0xe5, 0xae, 0xbf, 0x3f, 0x65, 0x65, 0x65, 0xd1, 0xe4, 0xe4, 0xe4, - 0x8b, 0x66, 0x2d, 0xe8, 0x93, 0x62, 0xdb, 0xcf, 0x0d, 0x2f, 0xfc, 0x03, 0x9b, 0x4f, 0x9e, 0xfc, - 0x85, 0x9c, 0xff, 0x2d, 0x0e, 0x77, 0x06, 0xad, 0x9f, 0x2f, 0xa5, 0x99, 0x4c, 0x15, 0xf1, 0x99, - 0x54, 0x56, 0x56, 0x8a, 0x79, 0x3c, 0x9a, 0xee, 0xdd, 0xe3, 0xfb, 0x14, 0x34, 0x6d, 0xaa, 0x8a, - 0xed, 0x80, 0xf5, 0xe6, 0xcd, 0x47, 0xf8, 0xc0, 0xd1, 0xcb, 0x97, 0xc3, 0xd4, 0xd1, 0xe1, 0x24, - 0xa7, 0xd3, 0x25, 0x22, 0xe4, 0x4e, 0xa0, 0xde, 0x15, 0x63, 0x54, 0x9c, 0x3a, 0x3e, 0x9b, 0x72, - 0xb4, 0xa0, 0x96, 0x96, 0x16, 0x6a, 0x6e, 0x6e, 0xa6, 0x76, 0x87, 0xc3, 0x99, 0x50, 0xa4, 0xc8, - 0x8e, 0x5e, 0x2b, 0x2e, 0x76, 0x73, 0xea, 0x78, 0xa1, 0x87, 0x0f, 0x1d, 0xd4, 0x8b, 0x72, 0xc6, - 0x47, 0x51, 0x2c, 0x98, 0x28, 0x2a, 0x7e, 0xc6, 0x1b, 0xea, 0xee, 0xee, 0x16, 0x9b, 0x72, 0xbc, - 0x49, 0xa4, 0xc8, 0xbe, 0xfa, 0xe9, 0xc6, 0x8d, 0x1e, 0x96, 0x79, 0xbd, 0x3e, 0xe2, 0x54, 0xf2, - 0x8e, 0xf9, 0xbc, 0x8c, 0x25, 0xaf, 0x17, 0xa9, 0xbd, 0x90, 0x1b, 0xef, 0xff, 0x12, 0x29, 0xb2, - 0x13, 0x57, 0xac, 0xd6, 0x8e, 0x57, 0x23, 0xa3, 0xd4, 0x76, 0xff, 0x01, 0x0d, 0x0f, 0xbf, 0x12, - 0x67, 0xa1, 0xaf, 0xc2, 0x44, 0x22, 0xf9, 0x6d, 0x44, 0x8a, 0xec, 0xf0, 0xd5, 0xeb, 0xd7, 0xff, - 0x70, 0x7b, 0xbc, 0x1b, 0xef, 0x55, 0xa4, 0xc8, 0xf6, 0xfd, 0x78, 0xe9, 0x72, 0xe5, 0x33, 0x57, - 0xe7, 0x48, 0xbf, 0xdf, 0x3f, 0x1a, 0x08, 0x04, 0x47, 0x83, 0xc1, 0xff, 0x40, 0x87, 0xd0, 0x18, - 0x1a, 0x1a, 0xd2, 0x18, 0x1c, 0x1c, 0x1c, 0xb5, 0xd9, 0x6c, 0x65, 0x78, 0xf7, 0xc3, 0xed, 0x8a, - 0x61, 0x07, 0xff, 0x4d, 0x02, 0x9f, 0x82, 0x83, 0xe0, 0x08, 0xe0, 0x1e, 0xf5, 0x1d, 0xf8, 0x01, - 0x24, 0x83, 0x54, 0x90, 0xa6, 0xc0, 0xbf, 0x53, 0xc0, 0x05, 0xf0, 0x3d, 0x38, 0x0f, 0xbe, 0x01, - 0xc7, 0xc1, 0x7e, 0xb0, 0x07, 0x7c, 0xc4, 0x0b, 0x1b, 0x45, 0x1f, 0x28, 0x0f, 0x78, 0xc2, 0x3e, - 0x70, 0x48, 0x91, 0x1d, 0x57, 0xfe, 0x18, 0x9e, 0x02, 0x67, 0xc0, 0xb7, 0xe0, 0x2c, 0x77, 0x14, - 0xbe, 0xec, 0x5c, 0x40, 0xca, 0x1f, 0xd0, 0x63, 0xe0, 0x73, 0xf0, 0x19, 0xd8, 0xab, 0x6c, 0x7a, - 0x87, 0xba, 0xfe, 0xbf, 0xf5, 0x3f, 0xf0, 0x2e, 0x64, 0x60, 0x78, 0x06, 0x00, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x03, 0x9f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0xd5, 0x7b, 0x4c, 0x53, + 0x57, 0x1c, 0x07, 0xf0, 0x3b, 0xe9, 0x7d, 0x34, 0xc6, 0xc5, 0x19, 0x75, 0x86, 0x18, 0x8c, 0x13, + 0xa7, 0x38, 0xa8, 0xd2, 0x56, 0xb9, 0x97, 0xd4, 0xf6, 0xb6, 0x10, 0x47, 0x70, 0x62, 0xf7, 0x72, + 0x9a, 0x0d, 0x0d, 0x2e, 0x95, 0x5b, 0x68, 0x79, 0x14, 0x79, 0x88, 0x2e, 0x2c, 0x12, 0x56, 0x11, + 0x19, 0x2e, 0x99, 0x61, 0xd2, 0x1a, 0x93, 0x86, 0x7f, 0x36, 0xfe, 0x51, 0x16, 0x08, 0x69, 0x78, + 0x88, 0xf2, 0xe8, 0x58, 0xed, 0x2d, 0xf8, 0x98, 0x6c, 0x4b, 0xb6, 0x2c, 0x8c, 0xa1, 0x49, 0xfd, + 0xc7, 0x2c, 0xcb, 0x96, 0xb0, 0xef, 0x4e, 0x6b, 0x87, 0xd3, 0xa8, 0x83, 0xa6, 0x34, 0xf9, 0x26, + 0xe7, 0x8f, 0x7b, 0xcf, 0xe7, 0x9e, 0x73, 0x7e, 0xe7, 0x57, 0x8a, 0xa2, 0xa8, 0x04, 0x92, 0xf5, + 0x24, 0x1b, 0xe2, 0x94, 0x35, 0x00, 0xa8, 0x27, 0x13, 0xfe, 0x6d, 0x69, 0x6f, 0x6f, 0xbf, 0xdd, + 0xdd, 0xdd, 0x3d, 0x1d, 0x6b, 0xba, 0xba, 0xba, 0xa6, 0x3b, 0x3a, 0x3a, 0x66, 0xc2, 0xe3, 0x92, + 0x92, 0x92, 0x76, 0x32, 0x27, 0xf7, 0x34, 0x28, 0xb5, 0xbf, 0xbf, 0x3f, 0x34, 0x3e, 0x3e, 0x8e, + 0x58, 0x22, 0xcb, 0x32, 0x1a, 0x1b, 0x1b, 0x51, 0x58, 0x21, 0x81, 0x7c, 0x30, 0xea, 0xeb, 0xeb, + 0xbf, 0x26, 0x73, 0x2a, 0xe3, 0x0e, 0xb5, 0xb4, 0xb4, 0xa0, 0xe0, 0x62, 0x21, 0x32, 0xbf, 0x30, + 0x41, 0xaa, 0xb6, 0xc2, 0x6e, 0xb7, 0xfb, 0xe2, 0x0e, 0x05, 0x83, 0x41, 0x94, 0x3a, 0x1d, 0x50, + 0x79, 0x32, 0xb1, 0xf5, 0x1c, 0x0f, 0x43, 0xf3, 0x2e, 0xec, 0xd9, 0x97, 0x77, 0x5f, 0xa7, 0xd3, + 0x65, 0xc7, 0x7d, 0x45, 0xad, 0xad, 0xad, 0x38, 0x7c, 0xd1, 0x1a, 0x81, 0xb6, 0x39, 0x79, 0x64, + 0xd6, 0x1a, 0x7e, 0x37, 0xe5, 0x98, 0x64, 0xa3, 0xd1, 0xa8, 0x89, 0x2b, 0x14, 0x08, 0x04, 0x50, + 0xf7, 0x71, 0x1d, 0xde, 0x76, 0x1f, 0x88, 0x40, 0xea, 0x5a, 0x1e, 0xda, 0x22, 0x7e, 0x52, 0xcc, + 0x32, 0xde, 0xd0, 0xeb, 0xf5, 0x29, 0x31, 0x41, 0x63, 0x63, 0x63, 0xf0, 0xf9, 0x7c, 0x18, 0x1d, + 0x1d, 0xc5, 0xc8, 0xc8, 0x08, 0x86, 0x87, 0x87, 0x31, 0x34, 0x34, 0x84, 0x9e, 0x9e, 0x1e, 0x58, + 0xcb, 0x8a, 0x90, 0xf5, 0x69, 0x6e, 0x04, 0xd2, 0xd8, 0x78, 0xec, 0xc8, 0xe7, 0x83, 0x7a, 0x51, + 0x3f, 0x99, 0x9e, 0x9e, 0xbe, 0x6e, 0x41, 0xd0, 0xd5, 0xc9, 0x21, 0x34, 0x5c, 0x69, 0x42, 0xed, + 0xa5, 0x3a, 0x54, 0x7f, 0x79, 0x02, 0x95, 0x9e, 0x63, 0x70, 0xb8, 0xaa, 0x50, 0x7a, 0xae, 0x02, + 0xb6, 0xe6, 0x52, 0x58, 0x3f, 0xb1, 0xe1, 0xc3, 0xa6, 0xc2, 0x39, 0x68, 0xfb, 0x21, 0x1e, 0xbc, + 0x59, 0xf8, 0x46, 0xa3, 0xd1, 0xdc, 0x54, 0xa9, 0x54, 0xab, 0xe7, 0x0d, 0x7d, 0x36, 0x75, 0x1e, + 0xc9, 0x0f, 0x04, 0xbc, 0x3a, 0x2d, 0x60, 0xd3, 0x1d, 0x01, 0x29, 0xdf, 0x0a, 0xd8, 0xd2, 0x27, + 0x20, 0xf5, 0x92, 0x80, 0x34, 0x8f, 0x30, 0x77, 0x46, 0xff, 0x85, 0x76, 0xbc, 0x49, 0x30, 0x13, + 0x7f, 0x4d, 0xad, 0x56, 0x77, 0x2f, 0x3a, 0x94, 0x91, 0x95, 0xe1, 0x23, 0xab, 0xf2, 0xce, 0x1b, + 0xea, 0xff, 0xfe, 0x0a, 0xea, 0x46, 0x9d, 0xa8, 0xea, 0xf9, 0x08, 0x15, 0x97, 0x6b, 0xe1, 0xf8, + 0xaa, 0x06, 0xa5, 0x9e, 0x4a, 0xd8, 0x5d, 0x0e, 0xd8, 0x3e, 0x2f, 0x83, 0xd4, 0x54, 0x8c, 0xc3, + 0xcd, 0x47, 0x1e, 0x83, 0x32, 0xcc, 0xbc, 0x4c, 0x90, 0x3b, 0x24, 0x49, 0xf3, 0x86, 0x26, 0x26, + 0x26, 0x22, 0x05, 0x30, 0x38, 0x38, 0x88, 0x81, 0x81, 0x01, 0x90, 0x77, 0xd0, 0xd7, 0xd7, 0x87, + 0xde, 0xde, 0x5e, 0x74, 0x76, 0x76, 0x42, 0xb2, 0x5b, 0xf1, 0xfa, 0xd9, 0xbc, 0x47, 0xc5, 0x70, + 0x90, 0xbf, 0x4d, 0x8a, 0xe1, 0x07, 0x82, 0x6c, 0x8e, 0x5b, 0x0b, 0x6a, 0x68, 0x68, 0xc0, 0x7b, + 0xee, 0xfc, 0x47, 0x5b, 0x57, 0xcc, 0xff, 0x24, 0x66, 0x8b, 0xb7, 0x44, 0x51, 0xd4, 0xc6, 0xed, + 0x1e, 0xb9, 0xdd, 0x6e, 0x58, 0xdc, 0xc5, 0x73, 0x67, 0x24, 0x1c, 0xd7, 0xff, 0x21, 0xe6, 0x18, + 0x03, 0x04, 0x11, 0xe3, 0xdc, 0x82, 0xca, 0xe7, 0x5a, 0x90, 0xee, 0x4c, 0x36, 0xde, 0x38, 0x90, + 0x17, 0x22, 0x17, 0xf5, 0xad, 0xa7, 0xb5, 0xa0, 0x14, 0xaf, 0xd7, 0x7b, 0x37, 0xd6, 0x15, 0x39, + 0x4f, 0x39, 0x91, 0xef, 0xb1, 0x20, 0xa3, 0xd5, 0x80, 0xc2, 0x63, 0x12, 0x24, 0x49, 0x0a, 0x3c, + 0xab, 0xa9, 0x2e, 0xb5, 0x48, 0x05, 0x17, 0x26, 0xbe, 0xbb, 0xfe, 0x57, 0x40, 0xf6, 0x47, 0xf6, + 0x7c, 0x21, 0x90, 0xdf, 0xef, 0xc7, 0xc9, 0xfa, 0x93, 0x90, 0x6a, 0x8a, 0xe0, 0x72, 0xb9, 0x9e, + 0xfd, 0x37, 0x11, 0xd5, 0x56, 0x96, 0x57, 0xda, 0xbc, 0x77, 0xef, 0xcd, 0xe0, 0xb7, 0x7b, 0x53, + 0xb8, 0x71, 0xf3, 0x61, 0xbb, 0x59, 0x48, 0x41, 0x84, 0x2b, 0x30, 0x3c, 0x7e, 0x2e, 0x14, 0xc5, + 0xd6, 0x1e, 0xad, 0x29, 0x1b, 0x09, 0x85, 0x42, 0x98, 0x9d, 0x9d, 0x45, 0x78, 0x75, 0xb1, 0x6c, + 0xe5, 0xff, 0x42, 0x51, 0x6c, 0x63, 0xf5, 0x71, 0x87, 0x1c, 0xc6, 0x7e, 0x9e, 0xfa, 0x31, 0x72, + 0xd8, 0x8b, 0x02, 0x45, 0xb1, 0x57, 0xca, 0xab, 0xec, 0x57, 0x7f, 0x9d, 0xf9, 0xe5, 0x6f, 0x59, + 0x0e, 0x2c, 0x1e, 0x14, 0xc5, 0xd6, 0xd8, 0x1c, 0xd6, 0xcb, 0xc1, 0x5b, 0xfe, 0x3f, 0x17, 0x15, + 0x8a, 0x62, 0xcb, 0xf7, 0xbf, 0xbf, 0xef, 0x74, 0x5b, 0x5b, 0x9b, 0x9f, 0x5c, 0xca, 0xeb, 0xf3, + 0x8d, 0xd9, 0x6c, 0x3e, 0x41, 0xde, 0x55, 0x3c, 0xaf, 0x18, 0x96, 0x50, 0x54, 0x22, 0x47, 0x51, + 0xdb, 0x5e, 0xa4, 0x69, 0xc3, 0x4a, 0x8e, 0xdb, 0x9d, 0x48, 0xd3, 0x7b, 0x93, 0x19, 0x26, 0x77, + 0x3b, 0xcb, 0xbe, 0x9b, 0xc9, 0x30, 0x07, 0x0d, 0x2c, 0x6b, 0xc9, 0x62, 0xd9, 0xa2, 0x6c, 0x96, + 0xb5, 0x92, 0x1c, 0x21, 0xe3, 0x02, 0x23, 0xc3, 0xec, 0xdf, 0x49, 0xd3, 0x79, 0xbc, 0x42, 0x61, + 0x52, 0x2b, 0x14, 0xda, 0xb4, 0x84, 0x04, 0x6d, 0x12, 0xc3, 0x68, 0x5f, 0xa2, 0xa8, 0xe4, 0xa5, + 0x14, 0xb5, 0x8a, 0x0e, 0x4f, 0xfc, 0x24, 0xf4, 0x02, 0xa9, 0x72, 0x3a, 0xfc, 0x00, 0xc3, 0xa8, + 0x97, 0xd3, 0xb4, 0x69, 0x15, 0xc7, 0xed, 0x4d, 0x64, 0x98, 0x0f, 0x92, 0x38, 0xce, 0xb2, 0x81, + 0x65, 0x4b, 0x36, 0x2b, 0x95, 0x47, 0x5f, 0xe3, 0xb8, 0x2a, 0x15, 0xc7, 0xd5, 0x6c, 0x55, 0x2a, + 0xab, 0x53, 0x59, 0xb6, 0x3c, 0x85, 0xe3, 0xa4, 0x8d, 0x0c, 0x73, 0x68, 0x3d, 0xcb, 0xbe, 0xb3, + 0x56, 0xa1, 0xc8, 0x79, 0x99, 0xa6, 0x75, 0x2b, 0x28, 0x2a, 0x6d, 0xd9, 0xc3, 0x8f, 0xa6, 0x96, + 0xfc, 0x3b, 0xff, 0x3f, 0xa9, 0xa3, 0xc3, 0x80, 0xb9, 0x3a, 0x7a, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; diff --git a/bitmaps_png/cpp_26/hierarchy_nav.cpp b/bitmaps_png/cpp_26/hierarchy_nav.cpp index 41436bb34a..899cc878bd 100644 --- a/bitmaps_png/cpp_26/hierarchy_nav.cpp +++ b/bitmaps_png/cpp_26/hierarchy_nav.cpp @@ -8,53 +8,37 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x02, 0xd2, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xe5, 0x96, 0xdd, 0x72, 0xd2, - 0x40, 0x14, 0x80, 0x3b, 0xe3, 0x8d, 0x4f, 0xe3, 0x43, 0x78, 0xa1, 0x3e, 0x86, 0x97, 0x3e, 0x80, - 0x17, 0x5e, 0x32, 0x63, 0x91, 0xb6, 0xbc, 0x84, 0x57, 0xda, 0x06, 0x68, 0xbd, 0x72, 0x74, 0x1c, - 0x9d, 0x29, 0x55, 0x28, 0x5a, 0xa0, 0x69, 0xa1, 0x26, 0x10, 0xda, 0xd2, 0x56, 0x7e, 0x16, 0x08, - 0x6c, 0x48, 0x08, 0xff, 0xc7, 0x3d, 0x27, 0x24, 0x4a, 0xc1, 0xd6, 0x5a, 0xa7, 0x17, 0x9a, 0x99, - 0x6f, 0x92, 0xdd, 0x3d, 0x7b, 0xbe, 0xdd, 0x65, 0xb3, 0x61, 0x01, 0x00, 0x16, 0x6e, 0x82, 0x85, - 0x1b, 0x15, 0x49, 0x92, 0x74, 0x2b, 0xb0, 0xe2, 0x7f, 0x18, 0x58, 0x5e, 0x7c, 0xf4, 0x4b, 0x44, - 0x3b, 0xc6, 0x5d, 0x4b, 0x14, 0x58, 0x09, 0xdc, 0x8b, 0x6e, 0x6d, 0x9a, 0xe5, 0x0b, 0xae, 0xf8, - 0x76, 0xac, 0x13, 0x08, 0x3e, 0xbd, 0x7b, 0x5d, 0xd1, 0x83, 0x42, 0x41, 0x63, 0x70, 0xc1, 0x55, - 0xab, 0xb1, 0x96, 0x14, 0x5e, 0xb5, 0x43, 0x91, 0x35, 0x13, 0x09, 0x47, 0x24, 0x87, 0x0d, 0xc9, - 0x8c, 0x6c, 0x84, 0x5c, 0x2c, 0x64, 0x7d, 0x23, 0x6c, 0xad, 0xbf, 0x0a, 0xd3, 0xf3, 0xd2, 0xca, - 0xb3, 0xc7, 0x57, 0x12, 0xfd, 0xc9, 0x35, 0x1e, 0x8f, 0x07, 0x81, 0xe0, 0xe2, 0xf3, 0xff, 0x50, - 0x64, 0xdb, 0x36, 0x34, 0x9b, 0x4d, 0x68, 0xb5, 0x5a, 0x1e, 0xba, 0xae, 0x4f, 0x95, 0xe7, 0xd5, - 0x61, 0xf9, 0x4a, 0xa2, 0x6c, 0x36, 0x0b, 0x99, 0x4c, 0x06, 0x72, 0x39, 0x15, 0x54, 0x55, 0x01, - 0x45, 0xf9, 0x0a, 0xb1, 0x58, 0x8c, 0xea, 0x14, 0x45, 0x11, 0x75, 0x2a, 0xd5, 0xc5, 0xe3, 0x71, - 0xd0, 0xb4, 0x3c, 0x88, 0x1c, 0x70, 0x78, 0x58, 0xa0, 0x98, 0x4b, 0x45, 0x46, 0xdb, 0xf0, 0x44, - 0x9a, 0xa6, 0xe1, 0x6e, 0x03, 0xd3, 0x6c, 0x83, 0x61, 0x70, 0x31, 0x5a, 0x1d, 0x76, 0x77, 0xd3, - 0xc0, 0x58, 0x15, 0x38, 0x6f, 0x41, 0x5b, 0xc4, 0xe2, 0x5d, 0x96, 0x65, 0xe8, 0xf5, 0xba, 0x30, - 0x18, 0xf4, 0x61, 0x38, 0x1c, 0x8a, 0x98, 0xdd, 0xcb, 0x45, 0x91, 0xf5, 0xd0, 0x3f, 0x2c, 0x2a, - 0x95, 0x4a, 0x90, 0x4a, 0xa5, 0x20, 0x9d, 0x4e, 0x7b, 0x6c, 0x46, 0xb7, 0xe0, 0xe3, 0x76, 0x12, - 0x3e, 0x25, 0xd2, 0x0e, 0xdb, 0x29, 0x88, 0x46, 0xa3, 0xd4, 0x86, 0x02, 0x04, 0xcb, 0xbf, 0x21, - 0x92, 0x30, 0x80, 0x18, 0x8d, 0x46, 0xe7, 0x18, 0x42, 0x4a, 0x3e, 0x00, 0xf9, 0xb8, 0x0b, 0xfb, - 0x67, 0x63, 0x42, 0x2e, 0xf6, 0x21, 0x2d, 0x67, 0xa8, 0x7d, 0x3c, 0x1e, 0x51, 0x3f, 0x67, 0x46, - 0xe3, 0xf9, 0x22, 0xad, 0x90, 0x67, 0x18, 0xbc, 0x2a, 0xbd, 0x80, 0xb0, 0x90, 0x89, 0xe3, 0xc5, - 0x43, 0x9c, 0x83, 0x62, 0x59, 0x06, 0x44, 0x4a, 0xce, 0x42, 0xf6, 0xd4, 0x06, 0xa5, 0x3c, 0x22, - 0x0e, 0xce, 0x7a, 0x42, 0xb4, 0x2f, 0x96, 0x6c, 0x40, 0xcb, 0x86, 0xe0, 0xec, 0x26, 0x03, 0x9b, - 0x15, 0xe5, 0xb5, 0x1c, 0xc3, 0x20, 0x4c, 0xec, 0x24, 0xed, 0x43, 0xbf, 0xef, 0xd2, 0xf3, 0x48, - 0xa6, 0xf7, 0x40, 0x56, 0x4f, 0x61, 0x3f, 0x5f, 0x21, 0xf6, 0xd4, 0x6f, 0x90, 0xf8, 0xfc, 0x85, - 0x96, 0xb9, 0x5c, 0x46, 0xca, 0x90, 0x48, 0x24, 0x48, 0x2c, 0xf2, 0xcc, 0x8a, 0x72, 0x79, 0x95, - 0x61, 0x72, 0x71, 0x60, 0x52, 0xc2, 0x5e, 0xaf, 0x47, 0x3f, 0x30, 0xd2, 0xed, 0x22, 0x36, 0xc1, - 0x18, 0x83, 0x62, 0xf1, 0xd8, 0xe3, 0xe8, 0xe8, 0x88, 0x12, 0x9f, 0x9c, 0x14, 0x05, 0x27, 0x04, - 0xbe, 0x57, 0x93, 0x81, 0xce, 0x11, 0xe5, 0x54, 0x86, 0x82, 0x50, 0x78, 0x6d, 0x92, 0xdc, 0x49, - 0x6c, 0xdb, 0x9d, 0x29, 0x3a, 0x1d, 0xcb, 0x03, 0xcb, 0xb8, 0xf3, 0x70, 0xd7, 0xe1, 0x29, 0xe2, - 0xf4, 0xe9, 0xd2, 0x06, 0x9a, 0x0c, 0x74, 0x56, 0xa4, 0xe6, 0x14, 0x86, 0x82, 0x37, 0x6f, 0x5f, - 0x83, 0xf8, 0x1c, 0x38, 0x84, 0x5c, 0x5e, 0xce, 0xf0, 0xfe, 0xc3, 0x3b, 0xb0, 0x2c, 0xd3, 0xdb, - 0xde, 0xae, 0x18, 0x41, 0xd1, 0x64, 0x15, 0x66, 0x45, 0x8a, 0xaa, 0x30, 0x77, 0x06, 0xee, 0x88, - 0x31, 0x91, 0x65, 0xb5, 0xe9, 0x3d, 0x32, 0x4d, 0x83, 0x46, 0xff, 0x33, 0x58, 0x87, 0xef, 0x17, - 0x2e, 0x5d, 0x32, 0x99, 0xf4, 0x88, 0xc7, 0x63, 0xae, 0x74, 0x9e, 0xe8, 0x2b, 0x73, 0x25, 0x8e, - 0xc0, 0x24, 0x81, 0x93, 0x94, 0x53, 0x42, 0xc3, 0x68, 0x9d, 0x83, 0x53, 0x9b, 0x2b, 0xc5, 0x78, - 0xec, 0xe7, 0xce, 0x4e, 0xdc, 0xe7, 0x88, 0x94, 0x03, 0xe6, 0xcc, 0x64, 0x5a, 0xe2, 0x0a, 0x38, - 0x6f, 0x12, 0x78, 0x3a, 0x38, 0x38, 0xe5, 0x1f, 0xc2, 0x59, 0xd9, 0x8c, 0x68, 0x69, 0xc9, 0x7f, - 0x7f, 0x67, 0x27, 0xd1, 0xd6, 0xf5, 0x06, 0x6f, 0xe8, 0x75, 0xde, 0x68, 0xd4, 0x88, 0x7a, 0x9d, - 0xf1, 0x5a, 0xad, 0xca, 0x19, 0xab, 0xf0, 0x6a, 0x15, 0x29, 0xf3, 0x4a, 0xa5, 0xe4, 0x81, 0x65, - 0x6c, 0xa3, 0x18, 0x81, 0x38, 0xae, 0x44, 0x1f, 0xec, 0x5b, 0xe7, 0x98, 0x4b, 0x1c, 0x55, 0xd6, - 0x94, 0xc8, 0xe7, 0xf3, 0xdd, 0x16, 0xdf, 0xf6, 0x27, 0x81, 0x65, 0xbf, 0xef, 0x6f, 0x13, 0x0c, - 0xfa, 0xef, 0xdc, 0xe8, 0xff, 0xba, 0xef, 0x49, 0x7f, 0xe3, 0x35, 0xe9, 0xea, 0x10, 0xae, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x01, 0xd3, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xd5, 0xd6, 0xcf, 0x2b, 0xc3, + 0x71, 0x1c, 0xc7, 0x71, 0x27, 0x87, 0xd5, 0x8a, 0x91, 0x52, 0xe3, 0xb0, 0x70, 0x76, 0xf0, 0xa3, + 0x4c, 0x7c, 0x37, 0x63, 0x58, 0x2b, 0xe3, 0xc2, 0xd5, 0x41, 0x2d, 0xea, 0xcb, 0x7c, 0xcb, 0x0e, + 0xbe, 0x93, 0xc6, 0xac, 0xa9, 0x15, 0x89, 0x62, 0x73, 0xd9, 0xc6, 0x9a, 0x1f, 0x7d, 0x37, 0x3b, + 0x88, 0x51, 0x84, 0xc6, 0xfc, 0x3e, 0xb8, 0x50, 0xfb, 0x03, 0x94, 0xf2, 0xe3, 0xfe, 0xb2, 0x2f, + 0x25, 0xb4, 0x3e, 0xfb, 0xf6, 0xfd, 0xa2, 0x1c, 0x1e, 0xdf, 0xfa, 0x7e, 0x0f, 0x9f, 0x67, 0x7d, + 0xbe, 0x9f, 0x6f, 0xef, 0x6f, 0x56, 0x8e, 0x31, 0x1b, 0x7f, 0x21, 0x8b, 0xbf, 0x1c, 0x9d, 0x1d, + 0xe2, 0xfa, 0xe6, 0xea, 0x57, 0xf0, 0x6b, 0x7f, 0x84, 0xf8, 0x07, 0xc9, 0x64, 0xf2, 0x57, 0xf0, + 0x6b, 0xbf, 0x85, 0x06, 0xad, 0x32, 0x8c, 0x8d, 0x29, 0x31, 0x3e, 0x5e, 0x9c, 0x41, 0x11, 0x22, + 0x11, 0x9b, 0xf8, 0xd0, 0xf0, 0xb0, 0x0c, 0xee, 0xe9, 0x06, 0x78, 0x03, 0x03, 0x44, 0x2c, 0x2b, + 0xc7, 0xda, 0x1a, 0x23, 0x2d, 0x14, 0xe0, 0x5c, 0x38, 0xb9, 0x7d, 0x21, 0xb2, 0x8d, 0xe4, 0x48, + 0x0f, 0x2d, 0x71, 0x4e, 0x9c, 0xdd, 0x3d, 0x12, 0xfd, 0x48, 0xc8, 0x3d, 0x55, 0x8b, 0x45, 0x5f, + 0x0f, 0x91, 0xe4, 0xad, 0xa3, 0x87, 0x64, 0x70, 0x4c, 0xa8, 0xe0, 0x74, 0x96, 0xbc, 0x61, 0xd9, + 0x42, 0x58, 0xad, 0xf9, 0x1f, 0xf7, 0x9f, 0x45, 0xa3, 0xa3, 0xe2, 0x43, 0xdf, 0x8f, 0x37, 0xc3, + 0x30, 0xd0, 0xe9, 0x74, 0x3f, 0x7f, 0xbc, 0x85, 0x86, 0x82, 0x2b, 0x17, 0x98, 0x9d, 0x4f, 0x08, + 0xb2, 0x1c, 0xba, 0x14, 0x1f, 0xd2, 0x34, 0x47, 0x20, 0x2f, 0xf0, 0x0b, 0x52, 0xa3, 0xe1, 0xa4, + 0x85, 0x6a, 0x9a, 0x36, 0x11, 0xde, 0xbf, 0x27, 0xa2, 0x0c, 0x5b, 0xa9, 0x50, 0x38, 0x73, 0xc8, + 0x6c, 0x36, 0xa3, 0xaa, 0xba, 0x12, 0xed, 0x1d, 0xa6, 0x2f, 0x2a, 0xd4, 0x01, 0x68, 0x8d, 0x5b, + 0x48, 0xdc, 0x3e, 0x13, 0x35, 0x77, 0xc4, 0x84, 0x85, 0x68, 0x9a, 0x46, 0x5d, 0x7d, 0x1d, 0x7c, + 0x7e, 0xdf, 0x17, 0xea, 0x86, 0x55, 0x68, 0x0c, 0x9b, 0x88, 0xdf, 0x3c, 0x10, 0xe9, 0x4d, 0xdb, + 0xd2, 0xb7, 0x4e, 0xe8, 0x3b, 0x52, 0x6b, 0xc3, 0xe2, 0x43, 0xf3, 0xde, 0x53, 0xd8, 0x27, 0x0e, + 0x05, 0x99, 0x5b, 0x48, 0xfc, 0x83, 0xef, 0xe8, 0xbb, 0x23, 0x87, 0x17, 0x51, 0x3d, 0x9d, 0x11, + 0xd7, 0xd8, 0x0b, 0x46, 0x55, 0x2e, 0x3e, 0x14, 0xeb, 0xb6, 0x63, 0x29, 0xaf, 0x15, 0xab, 0xf5, + 0xfd, 0x44, 0xc1, 0x92, 0x4e, 0x78, 0x15, 0xda, 0xf4, 0x21, 0x8a, 0xa2, 0x60, 0xb3, 0xb1, 0x44, + 0xa1, 0xb6, 0x01, 0x04, 0x4b, 0x3b, 0x71, 0x9c, 0x1a, 0x21, 0x24, 0x1b, 0x7d, 0x33, 0xe9, 0x43, + 0x1c, 0xc7, 0xc1, 0x35, 0xe9, 0x4a, 0x4d, 0x5d, 0x3b, 0xd1, 0x8a, 0xc9, 0x82, 0x50, 0x59, 0x57, + 0x6a, 0x84, 0x3c, 0x11, 0x45, 0x7b, 0xa7, 0xd3, 0x87, 0x84, 0xe2, 0xb7, 0x6e, 0x59, 0xd9, 0x86, + 0x5d, 0x67, 0x88, 0x68, 0xbd, 0xd1, 0x02, 0x4f, 0xae, 0x46, 0x5a, 0xc8, 0x2f, 0xd7, 0x09, 0xe2, + 0x51, 0x50, 0xe2, 0x7f, 0xb7, 0xae, 0xce, 0x4f, 0x71, 0x71, 0x12, 0xcf, 0xe8, 0x60, 0x6f, 0x07, + 0x85, 0x2d, 0xb2, 0xf7, 0xd0, 0x5f, 0x78, 0x05, 0xf9, 0x52, 0x9b, 0x76, 0x43, 0xd6, 0x57, 0xf2, + 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE hierarchy_nav_xpm[1] = {{ png, sizeof( png ), "hierarchy_nav_xpm" }}; diff --git a/bitmaps_png/sources/export.svg b/bitmaps_png/sources/export.svg index 9aaa672a91..6ca07ed9fa 100644 --- a/bitmaps_png/sources/export.svg +++ b/bitmaps_png/sources/export.svg @@ -13,7 +13,7 @@ version="1.1" viewBox="0 0 48 48" id="svg2" - inkscape:version="0.47 r22583" + inkscape:version="0.48.1 " sodipodi:docname="export.svg"> @@ -23,7 +23,7 @@ image/svg+xml - + @@ -37,14 +37,14 @@ inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" - inkscape:window-height="949" + inkscape:window-height="968" id="namedview131" showgrid="false" - inkscape:zoom="4.9166667" - inkscape:cx="52.043263" - inkscape:cy="23.59322" - inkscape:window-x="0" - inkscape:window-y="25" + inkscape:zoom="15.902799" + inkscape:cx="14.345661" + inkscape:cy="26.023752" + inkscape:window-x="-4" + inkscape:window-y="-4" inkscape:window-maximized="1" inkscape:current-layer="svg2" /> + id="stop12-2" + style="stop-color:#c1b7df;stop-opacity:1;" /> + id="stop53-1" + style="stop-color:#e8f71e;stop-opacity:1;" /> + id="stop58-0" + style="stop-color:#23ff39;stop-opacity:1;" /> + id="stop7-2" + style="stop-color:#1212f7;stop-opacity:1;" /> + style="stop-color:#272727;stop-opacity:1;" /> + id="stop82-1" + style="stop-color:#60d7b7;stop-opacity:1;" /> + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + d="m 37.753181,0.7945687 c 0.817941,0 1.48312,0.6617169 1.48312,1.4754 V 42.843469 c 0,1.220524 -0.997769,2.2131 -2.22468,2.2131 H 15.071827 c -0.481643,0 -0.943635,-0.17963 -1.35001,-0.499423 -0.04746,-0.01955 -0.09529,-0.03947 -0.09529,-0.03947 C 13.59019,44.490753 9.1274819,40.797458 7.0418444,38.722676 5.0492727,36.741583 1.6247486,32.664315 1.2406205,32.206204 0.9032107,31.880878 0.6770349,31.306578 0.6770349,30.734861 V 2.2699687 c 0,-0.8136831 0.6651793,-1.4754 1.48312,-1.4754 H 37.755035 z" + id="path103-7" + style="opacity:0.1" + inkscape:connector-curvature="0" /> + + + + + + + + - - - - + + diff --git a/bitmaps_png/sources/hierarchy_nav.svg b/bitmaps_png/sources/hierarchy_nav.svg index b5786b041b..bfb0c31a8f 100644 --- a/bitmaps_png/sources/hierarchy_nav.svg +++ b/bitmaps_png/sources/hierarchy_nav.svg @@ -1,51 +1,292 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eeschema/eeschema_config.cpp b/eeschema/eeschema_config.cpp index 1b2e59e53c..1ce4b12561 100644 --- a/eeschema/eeschema_config.cpp +++ b/eeschema/eeschema_config.cpp @@ -285,11 +285,8 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetProjectFileParameters() m_projectFileParams.push_back( new PARAM_CFG_LIBNAME_LIST( wxT( "LibName" ), &m_componentLibFiles, GROUPLIB ) ); - m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "NetFmt" ), - &m_netListFormat, - NET_TYPE_PCBNEW, - NET_TYPE_PCBNEW, - NET_TYPE_CUSTOM_MAX ) ); + m_projectFileParams.push_back( new PARAM_CFG_WXSTRING( wxT( "NetFmtName" ), + &m_netListFormat) ); // NOTE: Left as global until supporting code can be fixed. m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "HPGLSpd" ), diff --git a/eeschema/getpart.cpp b/eeschema/getpart.cpp index 1f16b3d621..d599f785d7 100644 --- a/eeschema/getpart.cpp +++ b/eeschema/getpart.cpp @@ -299,15 +299,19 @@ void SCH_EDIT_FRAME::OrientComponent( COMPONENT_ORIENTATION_T aOrientation ) m_canvas->CrossHairOff( &dc ); if( component->GetFlags() ) - component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); else + { + component->SetFlags( IS_MOVED ); // do not redraw the component m_canvas->RefreshDrawingRect( component->GetBoundingBox() ); + component->ClearFlags( IS_MOVED ); + } component->SetOrientation( aOrientation ); /* Redraw the component in the new position. */ if( component->GetFlags() ) - component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode, g_GhostColor ); + component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); else component->Draw( m_canvas, &dc, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE ); diff --git a/eeschema/netlist_control.cpp b/eeschema/netlist_control.cpp index c95244c35d..8a89a3d88e 100644 --- a/eeschema/netlist_control.cpp +++ b/eeschema/netlist_control.cpp @@ -117,17 +117,34 @@ NETLIST_PAGE_DIALOG::NETLIST_PAGE_DIALOG( wxNotebook* parent, const wxString& title, int id_NetType, int idCheckBox, - int idCreateFile, - bool selected ) : + int idCreateFile ) : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL | wxBORDER_SUNKEN ) { m_IdNetType = id_NetType; + m_pageNetFmtName = title; m_CommandStringCtrl = NULL; m_TitleStringCtrl = NULL; m_IsCurrentFormat = NULL; m_AddSubPrefix = NULL; m_ButtonCancel = NULL; m_NetOption = NULL; + wxString netfmtName = ((NETLIST_DIALOG*)parent->GetParent())->m_NetFmtName; + int fmtOption = 0; + + bool selected = m_pageNetFmtName == netfmtName; + + // PCBNEW Format is a special type: + if( id_NetType == NET_TYPE_PCBNEW ) + { + if( netfmtName.IsEmpty() ) + selected = true; + if( netfmtName == wxT("PcbnewAdvanced" ) ) + { + selected = true; + fmtOption = 1; + } + } + parent->AddPage( this, title, selected ); @@ -162,6 +179,7 @@ NETLIST_PAGE_DIALOG::NETLIST_PAGE_DIALOG( wxNotebook* parent, wxDefaultPosition, wxDefaultSize, 2, netlist_opt, 1, wxRA_SPECIFY_COLS ); + m_NetOption->SetSelection( fmtOption ); m_LeftBoxSizer->Add( m_NetOption, 0, wxGROW | wxALL, 5 ); } @@ -199,6 +217,19 @@ NETLIST_PAGE_DIALOG::NETLIST_PAGE_DIALOG( wxNotebook* parent, } } +const wxString NETLIST_PAGE_DIALOG::GetPageNetFmtName() +{ + // PCBNEW Format is a special type: + if( m_IdNetType == NET_TYPE_PCBNEW ) + { + if( m_NetOption->GetSelection() ) + return wxT( "PcbnewAdvanced" ); + else + return wxT( "Pcbnew" ); + } + return m_pageNetFmtName; +} + NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) : wxDialog( parent, -1, _( "Netlist" ), wxDefaultPosition, @@ -207,6 +238,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) : int ii; m_Parent = parent; + m_NetFmtName = m_Parent->GetNetListFormatName(); for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ ) { @@ -230,8 +262,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) : wxT( "Pcbnew" ), NET_TYPE_PCBNEW, ID_CURRENT_FORMAT_IS_DEFAULT, - ID_CREATE_NETLIST, - m_Parent->GetNetListFormat() == NET_TYPE_PCBNEW ); + ID_CREATE_NETLIST ); // Add Panel FORMAT ORCADPCB2 m_PanelNetType[PANELORCADPCB2] = @@ -239,8 +270,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) : wxT( "OrcadPCB2" ), NET_TYPE_ORCADPCB2, ID_CURRENT_FORMAT_IS_DEFAULT, - ID_CREATE_NETLIST, - m_Parent->GetNetListFormat() == NET_TYPE_ORCADPCB2 ); + ID_CREATE_NETLIST ); // Add Panel FORMAT CADSTAR m_PanelNetType[PANELCADSTAR] = @@ -248,8 +278,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) : wxT( "CadStar" ), NET_TYPE_CADSTAR, ID_CURRENT_FORMAT_IS_DEFAULT, - ID_CREATE_NETLIST, - m_Parent->GetNetListFormat() == NET_TYPE_CADSTAR ); + ID_CREATE_NETLIST ); // Add Panel spice InstallPageSpice(); @@ -268,17 +297,17 @@ void NETLIST_DIALOG::InstallPageSpice() { wxButton* Button; NETLIST_PAGE_DIALOG* page; + wxString title = wxT( "Spice" ); page = m_PanelNetType[PANELSPICE] = new NETLIST_PAGE_DIALOG( m_NoteBook, - wxT( "Spice" ), + title, NET_TYPE_SPICE, - 0, 0, - m_Parent->GetNetListFormat() == NET_TYPE_SPICE ); + 0, 0 ); page->m_IsCurrentFormat = new wxCheckBox( page, ID_CURRENT_FORMAT_IS_DEFAULT, _( "Default format" ) ); - page->m_IsCurrentFormat->SetValue( m_Parent->GetNetListFormat() == NET_TYPE_SPICE ); + page->m_IsCurrentFormat->SetValue( m_NetFmtName == title ); page->m_LeftBoxSizer->Add( page->m_IsCurrentFormat, 1, wxGROW | wxALL, 5 ); page->m_AddSubPrefix = new wxCheckBox( page, ID_ADD_SUBCIRCUIT_PREFIX, @@ -327,7 +356,6 @@ void NETLIST_DIALOG::InstallPageSpice() */ void NETLIST_DIALOG::InstallCustomPages() { - bool selected; int ii, CustomCount; wxString title, previoustitle, msg; NETLIST_PAGE_DIALOG* CurrPage; @@ -342,8 +370,6 @@ void NETLIST_DIALOG::InstallCustomPages() if( title.IsEmpty() && previoustitle.IsEmpty() ) break; // No more panel to install - selected = m_Parent->GetNetListFormat() == ( NET_TYPE_CUSTOM1 + ii ); - /* Install the panel "Add Plugin" after * the last initialized panel */ @@ -356,8 +382,7 @@ void NETLIST_DIALOG::InstallCustomPages() _( "Add Plugin" ), NET_TYPE_CUSTOM1 + ii, ID_CURRENT_FORMAT_IS_DEFAULT, - ID_SETUP_PLUGIN, - selected ); + ID_SETUP_PLUGIN ); else /* Install a plugin panel */ CurrPage = m_PanelNetType[PANELCUSTOMBASE + ii] = @@ -365,8 +390,7 @@ void NETLIST_DIALOG::InstallCustomPages() title, NET_TYPE_CUSTOM1 + ii, ID_CURRENT_FORMAT_IS_DEFAULT, - ID_CREATE_NETLIST, - selected ); + ID_CREATE_NETLIST ); msg = CUSTOM_NETLIST_COMMAND; msg << ii + 1; @@ -462,14 +486,14 @@ void NETLIST_DIALOG::SelectNetlistType( wxCommandEvent& event ) for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ ) if( m_PanelNetType[ii] ) - m_PanelNetType[ii]->m_IsCurrentFormat->SetValue( false ); + m_PanelNetType[ii]->m_IsCurrentFormat->SetValue( false ); CurrPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage(); if( CurrPage == NULL ) return; - m_Parent->SetNetListFormat( CurrPage->m_IdNetType ); + m_Parent->SetNetListFormatName( CurrPage->GetPageNetFmtName() ); CurrPage->m_IsCurrentFormat->SetValue( true ); } @@ -496,7 +520,7 @@ void NETLIST_DIALOG::NetlistUpdateOpt() int ii; m_Parent->SetSimulatorCommand( m_PanelNetType[PANELSPICE]->m_CommandStringCtrl->GetValue() ); - m_Parent->SetNetListFormat( NET_TYPE_PCBNEW ); + m_Parent->SetNetListFormatName( wxEmptyString ); for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ ) { @@ -504,7 +528,7 @@ void NETLIST_DIALOG::NetlistUpdateOpt() break; if( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == true ) - m_Parent->SetNetListFormat( m_PanelNetType[ii]->m_IdNetType ); + m_Parent->SetNetListFormatName( m_PanelNetType[ii]->GetPageNetFmtName() ); } g_OptNetListUseNames = true; // Used for pspice, gnucap @@ -712,6 +736,7 @@ void NETLIST_DIALOG::WriteCurrentNetlistSetup( void ) if( CurrPage->m_TitleStringCtrl ) { wxString title = CurrPage->m_TitleStringCtrl->GetValue(); + CurrPage->SetPageNetFmtName( title ); if( msg != title ) // Title has changed, Update config { diff --git a/eeschema/netlist_control.h b/eeschema/netlist_control.h index 2c5c2627f5..b5373e1d5c 100644 --- a/eeschema/netlist_control.h +++ b/eeschema/netlist_control.h @@ -54,9 +54,11 @@ public: wxBoxSizer* m_RightOptionsBoxSizer; wxBoxSizer* m_LowBoxSizer; wxRadioBox* m_NetOption; +private: + wxString m_pageNetFmtName; public: - /** Contructor to create a setup page for one netlist format. + /** Constructor to create a setup page for one netlist format. * Used in Netlist format Dialog box creation * @param parent = wxNotebook * parent * @param title = title (name) of the notebook page @@ -67,9 +69,19 @@ public: * Only one page can be created with selected = true. */ NETLIST_PAGE_DIALOG( wxNotebook* parent, const wxString& title, - int id_NetType, int idCheckBox, int idCreateFile, - bool selected ); + int id_NetType, int idCheckBox, int idCreateFile ); ~NETLIST_PAGE_DIALOG() { }; + + /** + * function GetPageNetFmtName + * @return the name of the netlist format for this page + * This is usually the page label. + * For the pcbnew netlist, this is the page label when the "old" format is selected + * and "PcbnewAdvanced" when the advanced format is selected + */ + const wxString GetPageNetFmtName(); + + void SetPageNetFmtName( const wxString &aName ) { m_pageNetFmtName =aName; } }; @@ -92,8 +104,8 @@ enum TypeNetForm { // Options for Spice netlist generation (OR'ed bits enum netlistOptions { - NET_USE_NETNAMES = 1, // for Spice netlist : use netnames instead of numbers - NET_USE_X_PREFIX = 2, // for Spice netlist : change "U" and "IC" refernce prefix to "X" + NET_USE_NETNAMES = 1, // for Spice netlist : use netnames instead of numbers + NET_USE_X_PREFIX = 2, // for Spice netlist : change "U" and "IC" reference prefix to "X" NET_PCBNEW_USE_NEW_FORMAT = 1, // For Pcbnew use the new format (S expression and SWEET) }; @@ -102,6 +114,7 @@ class NETLIST_DIALOG : public wxDialog { public: SCH_EDIT_FRAME* m_Parent; + wxString m_NetFmtName; wxNotebook* m_NoteBook; NETLIST_PAGE_DIALOG* m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX]; diff --git a/eeschema/sch_component.cpp b/eeschema/sch_component.cpp index 46f186b60b..a8d7ff0d12 100644 --- a/eeschema/sch_component.cpp +++ b/eeschema/sch_component.cpp @@ -1453,7 +1453,13 @@ EDA_RECT SCH_COMPONENT::GetBodyBoundingBox() const EDA_RECT SCH_COMPONENT::GetBoundingBox() const { - return GetBodyBoundingBox(); + EDA_RECT bbox = GetBodyBoundingBox(); + for( size_t i = 0; i < m_Fields.size(); i++ ) + { + bbox.Merge( m_Fields[i].GetBoundingBox() ); + } + + return bbox; } @@ -1850,9 +1856,9 @@ bool SCH_COMPONENT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccu rect.Inflate( aAccuracy ); if( aContained ) - return rect.Contains( GetBoundingBox() ); + return rect.Contains( GetBodyBoundingBox() ); - return rect.Intersects( GetBoundingBox() ); + return rect.Intersects( GetBodyBoundingBox() ); } diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index 6a660b7dc0..445c8b9ff7 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -623,9 +623,6 @@ void SCH_EDIT_FRAME::OnCreateNetlist( wxCommandEvent& event ) { int i; - if( m_netListFormat < NET_TYPE_PCBNEW ) - m_netListFormat = NET_TYPE_PCBNEW; - do { NETLIST_DIALOG* dlg = new NETLIST_DIALOG( this ); diff --git a/include/wxEeschemaStruct.h b/include/wxEeschemaStruct.h index 5a18e53dd1..4413fb3709 100644 --- a/include/wxEeschemaStruct.h +++ b/include/wxEeschemaStruct.h @@ -148,8 +148,8 @@ private: /// Flag to indicate show hidden pins. bool m_showAllPins; - /// The format to use when generating a net list. - int m_netListFormat; + /// The name of the format to use when generating a net list. + wxString m_netListFormat; /// Add X prefix to componen referencess when generating spice net lists. bool m_addReferencPrefix; @@ -206,9 +206,9 @@ public: void SetShowAllPins( bool aEnable ) { m_showAllPins = aEnable; } - int GetNetListFormat() const { return m_netListFormat; } + const wxString GetNetListFormatName() const { return m_netListFormat; } - void SetNetListFormat( int aFormat ) { m_netListFormat = aFormat; } + void SetNetListFormatName( const wxString& aFormat ) { m_netListFormat = aFormat; } bool GetAddReferencePrefix() const { return m_addReferencPrefix; } diff --git a/pcbnew/dialogs/dialog_pad_properties_base.cpp b/pcbnew/dialogs/dialog_pad_properties_base.cpp index 02f196d276..bb09e94654 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.cpp +++ b/pcbnew/dialogs/dialog_pad_properties_base.cpp @@ -24,184 +24,185 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind wxBoxSizer* m_LeftBoxSizer; m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); - wxFlexGridSizer* fgSizer5; - fgSizer5 = new wxFlexGridSizer( 0, 2, 0, 0 ); - fgSizer5->AddGrowableCol( 1 ); - fgSizer5->SetFlexibleDirection( wxBOTH ); - fgSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxFlexGridSizer* fgSizerPadType; + fgSizerPadType = new wxFlexGridSizer( 0, 2, 0, 0 ); + fgSizerPadType->AddGrowableCol( 1 ); + fgSizerPadType->SetFlexibleDirection( wxBOTH ); + fgSizerPadType->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_PadNumText = new wxStaticText( m_panel2, wxID_ANY, _("Pad number:"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadNumText->Wrap( -1 ); - fgSizer5->Add( m_PadNumText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + fgSizerPadType->Add( m_PadNumText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_PadNumCtrl = new wxTextCtrl( m_panel2, wxID_PADNUMCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer5->Add( m_PadNumCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + fgSizerPadType->Add( m_PadNumCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); m_PadNameText = new wxStaticText( m_panel2, wxID_ANY, _("Net name:"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadNameText->Wrap( -1 ); - fgSizer5->Add( m_PadNameText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + fgSizerPadType->Add( m_PadNameText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_PadNetNameCtrl = new wxTextCtrl( m_panel2, wxID_PADNETNAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer5->Add( m_PadNetNameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + fgSizerPadType->Add( m_PadNetNameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_staticText44 = new wxStaticText( m_panel2, wxID_ANY, _("Pad type:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText44->Wrap( -1 ); - fgSizer5->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + fgSizerPadType->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxString m_PadTypeChoices[] = { _("Through-hole"), _("SMD"), _("Connector"), _("NPTH, Mechanical") }; int m_PadTypeNChoices = sizeof( m_PadTypeChoices ) / sizeof( wxString ); m_PadType = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadTypeNChoices, m_PadTypeChoices, 0 ); m_PadType->SetSelection( 0 ); - fgSizer5->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + fgSizerPadType->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - m_LeftBoxSizer->Add( fgSizer5, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + m_LeftBoxSizer->Add( fgSizerPadType, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - wxFlexGridSizer* fgSizer6; - fgSizer6 = new wxFlexGridSizer( 0, 3, 0, 0 ); - fgSizer6->SetFlexibleDirection( wxBOTH ); - fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxFlexGridSizer* fgSizerShapeType; + fgSizerShapeType = new wxFlexGridSizer( 0, 3, 0, 0 ); + fgSizerShapeType->AddGrowableCol( 1 ); + fgSizerShapeType->SetFlexibleDirection( wxBOTH ); + fgSizerShapeType->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText4->Wrap( -1 ); - fgSizer6->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); m_PadPosition_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_PadPosition_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_PadPosition_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_PadPosX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadPosX_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadPosX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_PadPosX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText41->Wrap( -1 ); - fgSizer6->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_PadPosition_Y_Ctrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + fgSizerShapeType->Add( m_PadPosition_Y_Ctrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadPosY_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText45->Wrap( -1 ); - fgSizer6->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") }; int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 ); m_PadShape->SetSelection( 0 ); - fgSizer6->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + fgSizerShapeType->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); - fgSizer6->Add( 0, 0, 0, wxEXPAND, 5 ); + fgSizerShapeType->Add( 0, 0, 0, wxEXPAND, 5 ); m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText12->Wrap( -1 ); - fgSizer6->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); m_ShapeSize_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeSize_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_ShapeSize_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_PadShapeSizeX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeSizeX_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeSizeX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_PadShapeSizeX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_staticText15 = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText15->Wrap( -1 ); - fgSizer6->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); m_ShapeSize_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeSize_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_ShapeSize_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_PadShapeSizeY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeSizeY_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeSizeY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_PadShapeSizeY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_staticText48 = new wxStaticText( m_panel2, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText48->Wrap( -1 ); - fgSizer6->Add( m_staticText48, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText48, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); wxString m_PadOrientChoices[] = { _("0"), _("90"), _("-90"), _("180"), _("Custom") }; int m_PadOrientNChoices = sizeof( m_PadOrientChoices ) / sizeof( wxString ); m_PadOrient = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadOrientNChoices, m_PadOrientChoices, 0 ); m_PadOrient->SetSelection( 0 ); - fgSizer6->Add( m_PadOrient, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + fgSizerShapeType->Add( m_PadOrient, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); m_staticText491 = new wxStaticText( m_panel2, wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText491->Wrap( -1 ); - fgSizer6->Add( m_staticText491, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_staticText491, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_PadOrientText = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_PadOrientText->Wrap( -1 ); - fgSizer6->Add( m_PadOrientText, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_PadOrientText, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_PadOrientCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_PadOrientCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_PadOrientCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_customOrientUnits = new wxStaticText( m_panel2, wxID_ANY, _("0.1 deg"), wxDefaultPosition, wxDefaultSize, 0 ); m_customOrientUnits->Wrap( -1 ); - fgSizer6->Add( m_customOrientUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_customOrientUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_staticText17 = new wxStaticText( m_panel2, wxID_ANY, _("Shape offset X:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText17->Wrap( -1 ); - fgSizer6->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); m_ShapeOffset_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeOffset_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_ShapeOffset_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_PadShapeOffsetX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeOffsetX_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeOffsetX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_PadShapeOffsetX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_staticText19 = new wxStaticText( m_panel2, wxID_ANY, _("Shape offset Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText19->Wrap( -1 ); - fgSizer6->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); m_ShapeOffset_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeOffset_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_ShapeOffset_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_PadShapeOffsetY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeOffsetY_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeOffsetY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_PadShapeOffsetY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_staticText38 = new wxStaticText( m_panel2, wxID_ANY, _("Die length:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText38->Wrap( -1 ); m_staticText38->SetToolTip( _("Wire length from pad to die on chip ( used to calculate actual track length)") ); - fgSizer6->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); m_LengthDieCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_LengthDieCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + fgSizerShapeType->Add( m_LengthDieCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); m_PadLengthDie_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadLengthDie_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadLengthDie_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_PadLengthDie_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_staticText21 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. delta dim:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText21->Wrap( -1 ); - fgSizer6->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); m_ShapeDelta_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer6->Add( m_ShapeDelta_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + fgSizerShapeType->Add( m_ShapeDelta_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_PadShapeDelta_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); m_PadShapeDelta_Unit->Wrap( -1 ); - fgSizer6->Add( m_PadShapeDelta_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + fgSizerShapeType->Add( m_PadShapeDelta_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_staticText23 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. direction:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText23->Wrap( -1 ); - fgSizer6->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); + fgSizerShapeType->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); wxString m_trapDeltaDirChoiceChoices[] = { _("Horiz."), _("Vert.") }; int m_trapDeltaDirChoiceNChoices = sizeof( m_trapDeltaDirChoiceChoices ) / sizeof( wxString ); m_trapDeltaDirChoice = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_trapDeltaDirChoiceNChoices, m_trapDeltaDirChoiceChoices, 0 ); m_trapDeltaDirChoice->SetSelection( 0 ); - fgSizer6->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 ); + fgSizerShapeType->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 ); - m_LeftBoxSizer->Add( fgSizer6, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + m_LeftBoxSizer->Add( fgSizerShapeType, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); wxBoxSizer* bMiddleUpperSizer; bMiddleUpperSizer = new wxBoxSizer( wxHORIZONTAL ); @@ -333,7 +334,7 @@ DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWind m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 ); wxStaticBoxSizer* sbSizerTechlayers; - sbSizerTechlayers = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Technical") ), wxVERTICAL ); + sbSizerTechlayers = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Technical Layers") ), wxVERTICAL ); m_PadLayerAdhCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); sbSizerTechlayers->Add( m_PadLayerAdhCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); diff --git a/pcbnew/dialogs/dialog_pad_properties_base.fbp b/pcbnew/dialogs/dialog_pad_properties_base.fbp index df88164010..5de2b17330 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.fbp +++ b/pcbnew/dialogs/dialog_pad_properties_base.fbp @@ -318,7 +318,7 @@ 0 - fgSizer5 + fgSizerPadType wxFLEX_GROWMODE_SPECIFIED none 0 @@ -863,11 +863,11 @@ 3 wxBOTH - + 1 0 - fgSizer6 + fgSizerShapeType wxFLEX_GROWMODE_SPECIFIED none 0 @@ -5420,7 +5420,7 @@ 0 wxID_ANY - Technical + Technical Layers sbSizerTechlayers wxVERTICAL From 60d245e96897f910f3c3655b2aa963b73746bef8 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Mon, 12 Mar 2012 10:18:32 -0500 Subject: [PATCH 16/68] todo --- TODO.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TODO.txt b/TODO.txt index e748ea11a7..fd79e2825c 100644 --- a/TODO.txt +++ b/TODO.txt @@ -54,6 +54,10 @@ PCBNew Dick's Peronal TODO Items (Last Update: 20-Feb-2012) ----------------------------------------------------- +0) Check that the new load visibility BOARD settings is properly setting the toolbar + buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so + toolbar crap is not known to a BOARD. + 1) Finish removing global access requirements from KICAD_PLUGIN, so that: *) a BOARD is a fully self contained document description. *) plugin developers do not have to access globals, which assumes there were ever From b7dba5f72b2f67d07b4fe21268b4b13c50f8e7ff Mon Sep 17 00:00:00 2001 From: Andrey Fedorushkov Date: Tue, 13 Mar 2012 13:33:39 +0400 Subject: [PATCH 17/68] all: add display distance to local coordinates in status bar --- common/drawframe.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/common/drawframe.cpp b/common/drawframe.cpp index 47e6bf21dc..a8064e90f7 100644 --- a/common/drawframe.cpp +++ b/common/drawframe.cpp @@ -127,7 +127,7 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( wxWindow* father, int idtype, const wxString& ti // system font specific sizing in the future. #define ZOOM_DISPLAY_SIZE 60 #define COORD_DISPLAY_SIZE 165 - #define DELTA_DISPLAY_SIZE 190 + #define DELTA_DISPLAY_SIZE 245 #define UNITS_DISPLAY_SIZE 65 #define FUNCTION_DISPLAY_SIZE 110 static const int dims[6] = { -1, ZOOM_DISPLAY_SIZE, @@ -777,12 +777,12 @@ void EDA_DRAW_FRAME::UpdateStatusBar() if( m_internalUnits == EESCHEMA_INTERNAL_UNIT ) { absformatter = wxT( "X %.3f Y %.3f" ); - locformatter = wxT( "dx %.3f dy %.3f" ); + locformatter = wxT( "dx %.3f dy %.3f d %.3f" ); } else { absformatter = wxT( "X %.4f Y %.4f" ); - locformatter = wxT( "dx %.4f dy %.4f" ); + locformatter = wxT( "dx %.4f dy %.4f d %.4f" ); } break; @@ -790,18 +790,18 @@ void EDA_DRAW_FRAME::UpdateStatusBar() if( m_internalUnits == EESCHEMA_INTERNAL_UNIT ) { absformatter = wxT( "X %.2f Y %.2f" ); - locformatter = wxT( "dx %.2f dy %.2f" ); + locformatter = wxT( "dx %.2f dy %.2f d %.2f" ); } else { absformatter = wxT( "X %.3f Y %.3f" ); - locformatter = wxT( "dx %.3f dy %.3f" ); + locformatter = wxT( "dx %.3f dy %.3f d %.3f" ); } break; case UNSCALED_UNITS: absformatter = wxT( "X %f Y %f" ); - locformatter = wxT( "dx %f dy %f" ); + locformatter = wxT( "dx %f dy %f d %f" ); break; } @@ -821,7 +821,7 @@ void EDA_DRAW_FRAME::UpdateStatusBar() } // We already decided the formatter above - Line.Printf( locformatter, dXpos, dYpos ); + Line.Printf( locformatter, dXpos, dYpos, sqrt( dXpos * dXpos + dYpos * dYpos ) ); SetStatusText( Line, 3 ); // refresh units display From 24a9663db491f7990e49261a1a907772d3292b08 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Thu, 15 Mar 2012 09:56:55 +0100 Subject: [PATCH 18/68] Update compiling.txt doc. --- Documentation/compiling/COMPILING.txt | 90 ++--- Documentation/compiling/linux-ubuntu.txt | 288 -------------- bitmaps_png/cpp_26/hierarchy_cursor.cpp | 115 +++--- bitmaps_png/sources/hierarchy_cursor.svg | 468 +++++++++-------------- 4 files changed, 283 insertions(+), 678 deletions(-) delete mode 100644 Documentation/compiling/linux-ubuntu.txt diff --git a/Documentation/compiling/COMPILING.txt b/Documentation/compiling/COMPILING.txt index 1e1c43ec5c..161aa18d3d 100644 --- a/Documentation/compiling/COMPILING.txt +++ b/Documentation/compiling/COMPILING.txt @@ -1,7 +1,7 @@ Compiling KiCad from Source =========================== KiCad Documentation Team -Last revised on 31-Jan-2010 by Jerry Jacobs +Last revised on 12-mars-2012 by jp Charras Introduction ------------ @@ -25,7 +25,21 @@ On linux: Install "mesa". Use your package manager to install the development libaries. -Tools in PATH +After a fresh install you need the following packages to compile and run +KiCad from source. + +CMake - Cross-platform make +GLUT - The OpenGL Utility Library +wxGTK or wxWidgets - The wxWidgets GUI toolkit with GTK+ bindings + +Boost - Collection of portable C++ source libraries +Because boost is in the repository of kicad you don't need to install them. + +Useful, but not required: +Doxygen - Documentation system for several programming languages + + +Compiler and basic development tools ------------- Make sure g++, make and other tools are in your path. If windows, then try running g++ and make from within your msys bash shell. @@ -37,48 +51,27 @@ Install or Build wxWidgets WARNING: see wxWidgets_patch_notes.txt for patches and issues in wxWidgets. -If on windows, download +If on Windows, download http://sourceforge.net/projects/wxwindows/files/wxAll/2.9.3/wxWidgets-2.9.3.zip/download or a newer version. -Do NOT use previous versions which all have issues for KiCad. -Start msys so you have a bash shell. Decide where your wxWidgets build directory -will be. It must be where you can access it from within the msys environment, -such as home/. Edit your msys/1.0/etc/fstab file if needed to provide -access to this build directory from msys. (Note that if you want you can build -a "debug" version of the wxWidgets library at this point, instead of the release -version, or in addition to the the release version.) -Unzip the wmMWS zip file into the build directory. Change directories into +Do NOT use previous versions which all have annoying issues for KiCad. +Start msys so you have a bash shell. +Note also since 2.9 versions no need to build a "debug" version of the wxWidgets library, +the release abd the debug version are same. + +Unzip the wxWidgets zip file into the build directory. Change directories into there, and then: - mkdir build-release - mkdir build-debug - -.Release ----- - cd build-release - ../configure --enable-unicode --enable-monolithic --disable-shared --with-msw --with-opengl + mkdir Release + cd Release + ../configure --enable-unicode --enable-monolithic=no --disable-shared --with-opengl make - make install ----- -.Debug ----- - cd build-debug - ../configure --enable-unicode --enable-monolithic --enable-debug --enable-debug_gdb --disable-shared --with-msw --with-opengl - make - make install ----- + and under Linux, but not under Windows: + sudo make install that install wxWidgets libs and headers in /usr/local/ -The default install path is /usr/local. Generally speaking MinGW likes header -files in /mingw/include and library link files in /mingw/lib. You can install -path by setting --prefix=/mingw to configure above to change where "make install" -puts everything. We will refer to the --prefix setting as below. -Verify that wx-config is in your path. Modify your PATH environment variable -if need be so you can run wx-config from a command prompt. You may have to -restart your msys shell, depending on how you modify your PATH. - -If on linux, use your package manager to install shared object libraries and the +If on linux, you can use your package manager to install the development versions of the wxWidgets packages which include the C++ headers. An alternative is to build static libaries from source. Verify that wx-config is in your path by running it from a command prompt. Linux users then go to next step. @@ -100,11 +93,24 @@ command prompt. Obtain Sources -------------- You can use the Launchpad repository or a tar file for this. See the wiki. +To download files from Launchpad repository, you should install bazaar (bzr) that is a +version control system like subversion, mercurial, git... -Launchpad repository handle 2 branches: +Launchpad repository handle 2 branches for KiCda sources: - a testing branch (used by developers) - a stable branch (a copy of the testing branch, when this testing branch is near a stable state)) +Testing branch: +bzr branch lp:kicad kicad_testing + +Stable branch: +bzr branch lp:kicad/stable kicad_stable + +Components and Footprints libraries +bzr branch lp:~kicad-lib-committers/kicad/library kicad_libraries + +Documentation and translations: +bzr branch lp:~kicad-developers/kicad/doc kicad_doc Create Makefiles with CMake --------------------------- @@ -112,14 +118,14 @@ If windows, go into your msys shell. Linux and windows users both then make two "out of source" build directories: cd mkdir -p build/release - mkdir build/debug + mkdir build/debug (if you want a debug version of KiCad) cd build/release On either cmake command line shown below, you can optionally include -DCMAKE_INSTALL_PREFIX= If windows, run the following command: - cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DwxWidgets_ROOT_DIR= ../../ + cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DKICAD_TESTING_VERSION=ON -DwxWidgets_ROOT_DIR= ../../ If linux, run instead the following command: cmake -DCMAKE_BUILD_TYPE=Release ../../ @@ -152,7 +158,8 @@ Although normally you do not install the Debug binaries, you can debug them where they were built. If windows, run the following command: - cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -DwxWidgets_USE_DEBUG=ON -DwxWidgets_ROOT_DIR= ../../ + cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -DKICAD_TESTING_VERSION=ON -DwxWidgets_ROOT_DIR= ../../ +where is /Release If linux, run instead the following command: cmake -DCMAKE_BUILD_TYPE=Debug -DwxWidgets_USE_DEBUG=ON ../../ @@ -178,9 +185,6 @@ One of these 2 option *must* be set to ON: CMAKE_BUILD_TYPE Release/Debug (REQUIRED) Choose build type: Release/Debug. - wxWidgets_USE_DEBUG ON/OFF (REQUIRED) - Should be set to ON only when CMAKE_BUILD_TYPE=Debug. - wxWidgets_USE_STATIC ON/OFF (OPTIONAL) CMAKE_VERBOSE_MAKEFILE ON/OFF (OPTIONAL) diff --git a/Documentation/compiling/linux-ubuntu.txt b/Documentation/compiling/linux-ubuntu.txt deleted file mode 100644 index bb9310781c..0000000000 --- a/Documentation/compiling/linux-ubuntu.txt +++ /dev/null @@ -1,288 +0,0 @@ -Compiling KiCad on Debian & Ubuntu -================================== - -First written: 10-Mar-2009 - -Updated: 31-Oct-2009 - -Lasted edited by: Jerry Jacobs - -This file is AsciiDoc formatted to you can convert it to pdf/xhtml/xml - -Ubuntu 9.10 (Karmic Koala) --------------------------- -After a fresh install you need the following packages to compile and run -KiCad from source. - -Boost - Collection of portable C++ source libraries -CMake - Cross-platform make -Doxygen - Documentation system for several programming languages -GLUT - The OpenGL Utility Library -wxGTK - The wxWidgets GUI toolkit with GTK+ bindings -zlib - General purpose data compression library - -Because boost is in the repository of kicad you don't need to install them. - -Install these with aptitude: ----- -sudo aptitude install build-essential cmake doxygen subversion libglut3 libglut3-dev libwxgtk libwxgtk-dev zlib1g zlib1g-dev ----- - -Checkout the source ----- -svn checkout https://kicad.svn.sourceforge.net/svnroot/kicad/trunk/kicad kicad ----- - -Generate makefiles ----- -cd /home// -cmake . ----- - -Compile ----- -make ----- -*Note* on multicore systems you can do parallel make jobs to speed -up compiling by giving the option -j {JOBS} to make. - -Ubuntu 9.04 ------------ -Special thanks to David J S Briscoe - -The first thing I did was follow this page up to the running kicad section - -http://basicubuntu.blogspot.com/2009/02/installing-kicad-on-ubuntu.html - -This resulted in the error message detailed in this post - -http://tech.groups.yahoo.com/group/kicad-devel/message/3180 - -SNIPPET - -The build fails with the following message - -----------------------------------------------------------: - -david@ubuntu:~/Desktop/KICAD_SVN$ fakeroot debian/rules binary -test -d debian/patched || install -d debian/patched -dpatch apply-all -dpatch cat-all >>patch-stampT -mv -f patch-stampT patch-stamp -mkdir -p /home/david/Desktop/KICAD_SVN/build/kicad -mkdir -p /home/david/Desktop/KICAD_SVN/build/bitmaps -cd /home/david/Desktop/KICAD_SVN/build/kicad && cmake \ - --DKICAD_DEMOS=/home/david/Desktop/KICAD_SVN/debian/kicad-common/usr/share/doc/ki\ -cad/demos ../../kicad \ --DXPM_CPP_PATH=/home/david/Desktop/KICAD_SVN/build/bitmaps --- The C compiler identification is GNU --- The CXX compiler identification is GNU --- Check for working C compiler: /usr/bin/gcc --- Check for working C compiler: /usr/bin/gcc -- works --- Detecting C compiler ABI info --- Detecting C compiler ABI info - done --- Check for working CXX compiler: /usr/bin/c++ --- Check for working CXX compiler: /usr/bin/c++ -- works --- Detecting CXX compiler ABI info --- Detecting CXX compiler ABI info - done --- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so --- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found --- Looking for gethostbyname --- Looking for gethostbyname - found --- Looking for connect --- Looking for connect - found --- Looking for remove --- Looking for remove - found --- Looking for shmat --- Looking for shmat - found --- Looking for IceConnectionNumber in ICE --- Looking for IceConnectionNumber in ICE - found --- Found X11: /usr/lib/libX11.so --- Check for installed OpenGL -- found --- Check for installed Boost -- not found -CMake Error at CMakeModules/CheckFindPackageResult.cmake:6 (message): -Boost was not found - it is required to build Kicad -Call Stack (most recent call first): -CMakeLists.txt:111 (check_find_package_result) - - --- Configuring incomplete, errors occurred! -make: *** [configure-stamp] Error 1 -david@ubuntu:~/Desktop/KICAD_SVN$ - ------------------------------------------------------------------: - - -SNIPPET - -The next step was to remove any libboost 1.34 libraries using the apt-get -remove command (can't remember the exact commands I used) as the Ubuntu 9.04 -(Jaunty) repositories only had the 1.34 version available. - -After this I installed the boost 1.37 libraries -using this command - ---------------------------------------- -sudo apt-get install libboost1.37-dev ---------------------------------------- - -This pulled down all the required files and dependencies (as far as I -know-how do I check this?) - -I then entered the following command - ---------------------------------------- -fakeroot debian/rules binary ---------------------------------------- - -and everything was built properly (I saw a few warnings flash past-will -these be logged anywhere?) - -I was left with a bunch of debian packaged files. I installed the main one, -the common one and an English language documentation one (I can supply more -details if needed later as I am not using Ubuntu at the moment). - -The first link above describes moving the libraries and other files into the -same place as the compiled executables. I didn't do this, so I have a -duplicate installation. -The above method needs some fine tuning and improvements. If you can let me -know of a tidier way of compiling Kicad please let me know. -Maybe there is a way of automating things with scripts, my Linux knowledge -doesn't go that far, yet. - - -Ubuntu (8.04) -------------- -Original from: -http://basicubuntu.blogspot.com/2009/02/installing-kicad-on-ubuntu.html - -Required software and dependencies -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -We need to install the following packages: debhelper, dpatch, libx11-dev, -libglu1-mesa-dev, libgl1-mesa-dev, mesa-common-dev, libwxbase2.8-dev, -libwxgtk2.8-dev, libboost-dev, subversion, cmake (>= 2.6.0). - ---------------------------------------- -sudo apt-get install debhelper dpatch libx11-dev libglu1-mesa-dev -libgl1-mesa-dev mesa-common-dev libwxbase2.8-dev libwxgtk2.8-dev -libboost-dev fakeroot subversion libboost-serialization-dev ---------------------------------------- - -And finally, we need cmake, but we need atleast version 2.6, the one -from the repository is not the updated one (atleast for ubuntu 8.04). -You can download version 2.6 from newer ubuntu releases. -Just search for cmake on http://packages.ubuntu.com then get a newer -cmake .deb file and install the downloaded package on the console -with: - ---------------------------------------- -sudo dpkg -i ---------------------------------------- - -But if what the repository gives you is atleast version 2.6, then -simply - ---------------------------------------- -sudo apt-get install cmake ---------------------------------------- - -Get KiCad Sourcecode -~~~~~~~~~~~~~~~~~~~~ -We will be getting the source codes through subversion. Create a directory -where you'll be downloading the source codes, and go to that -directory. type the following: - ---------------------------------------- -svn checkout https://kicad.svn.sourceforge.net/svnroot/kicad/trunk/kicad kicad -svn checkout https://kicad.svn.sourceforge.net/svnroot/kicad/trunk/kicad-doc kicad-doc -svn checkout https://kicad.svn.sourceforge.net/svnroot/kicad/trunk/kicad-library kicad-library ---------------------------------------- - -Also we need the following to get the debian specific stuff - ---------------------------------------- -svn checkout http://svn.flexserv.de/kicad/trunk/debian ---------------------------------------- - -Compiling -~~~~~~~~~ -To compile simply do the following on your terminal (make sure you're still in -the same directory where you did the svn) - ---------------------------------------- -fakeroot debian/rules binary ---------------------------------------- -hopefully, there will be no errors. -You'll find the compiled version of KiCad in the following directory: - ---------------------------------------- -debian/kicad/usr/bin/ ---------------------------------------- -to complete things up, you'll need to copy the following folders - ---------------------------------------- -debian/kicad-common/usr/share/kicad/library -debian/kicad-common/usr/share/kicad/modules -debian/kicad-common/usr/share/kicad/template ---------------------------------------- -in here - ---------------------------------------- -debian/kicad/usr/share ---------------------------------------- -again, to run KiCad go to - ---------------------------------------- -cd debian/kicad/usr/bin/ ---------------------------------------- -and double click KiCad - - -Debian squeeze (testing) ------------------------- - -Special Note -~~~~~~~~~~~~ -After SVN trunk revision 1753 boost library 1.36 or higher is needed -to compile KiCad. - -Installing Packages -~~~~~~~~~~~~~~~~~~~ -The following packages should be installed with -synaptic, apt-get or aptitude: -- build-essential -- cmake -- libboost-dev -- libwxgtk2.8-dev -- libglut3-dev - -The following packages will also be installed then -- cmake dependencies -- boost development dependencies -- wxwidgets development dependencies -- opengl3 (glut) development dependencies - -Get KiCad sourcecode -~~~~~~~~~~~~~~~~~~~~ -Checkout sourcecode using subversion or download latest release. - -.*Subversion* ---------------------------------------- -svn checkout https://kicad.svn.sourceforge.net/svnroot/kicad/trunk/kicad kicad ---------------------------------------- - -.*Release* ---------------------------------------- -wget http://iut-tice.ujf-grenoble.fr/cao/kicad-sources-2009-02-16.tar.gz -tar -xvf kicad-sources-2009-02-16.tar.gz ---------------------------------------- - -Compiling -~~~~~~~~~ -Run 'cmake .' in the root of the source directory then build the -binaries with 'make'. - -Installing -~~~~~~~~~~ -For installing you could use 'make install' or build a debian package. diff --git a/bitmaps_png/cpp_26/hierarchy_cursor.cpp b/bitmaps_png/cpp_26/hierarchy_cursor.cpp index 4d205612cc..b5dd4f8f85 100644 --- a/bitmaps_png/cpp_26/hierarchy_cursor.cpp +++ b/bitmaps_png/cpp_26/hierarchy_cursor.cpp @@ -8,71 +8,56 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x03, 0xf4, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xe5, 0x96, 0x49, 0x73, 0x1a, - 0x47, 0x14, 0x80, 0xfd, 0x0b, 0x72, 0xce, 0x39, 0x7f, 0x25, 0x55, 0x8e, 0xb3, 0x5c, 0x75, 0xf2, - 0xc1, 0x07, 0xc5, 0x3e, 0x25, 0x95, 0x54, 0xb9, 0x52, 0x4e, 0xaa, 0x9c, 0xca, 0x62, 0x24, 0x79, - 0x84, 0x85, 0x54, 0x89, 0xcb, 0x89, 0xb1, 0xd0, 0x62, 0x97, 0x6d, 0xb0, 0x85, 0x10, 0x52, 0x16, - 0x89, 0xc8, 0x36, 0x60, 0x08, 0x42, 0x68, 0xc0, 0x8a, 0xc2, 0x3a, 0xe8, 0x89, 0xdd, 0x62, 0x31, - 0x30, 0xec, 0xeb, 0xb4, 0x5f, 0xf7, 0x58, 0x94, 0x28, 0x22, 0x47, 0x4e, 0x52, 0x39, 0x24, 0x87, - 0x8f, 0xee, 0x19, 0x86, 0xf7, 0xbd, 0xee, 0x7e, 0xdd, 0xc3, 0x09, 0x42, 0xc8, 0x89, 0x7f, 0x03, - 0xf6, 0x71, 0x59, 0xa9, 0x18, 0xd6, 0xcc, 0x5c, 0xe7, 0x5f, 0xc6, 0xd5, 0x6b, 0xdf, 0x9a, 0x26, - 0x27, 0xbf, 0x7c, 0xed, 0x6f, 0x89, 0xb8, 0xf1, 0xd1, 0x6f, 0xb0, 0x85, 0x97, 0xb1, 0xc5, 0xbb, - 0x84, 0x31, 0x4e, 0x71, 0x9a, 0xe3, 0x46, 0x4f, 0x8e, 0x29, 0x15, 0x6f, 0x61, 0xcb, 0x18, 0x1b, - 0x57, 0x9c, 0xa2, 0x60, 0xff, 0x6d, 0x6c, 0xdf, 0xa1, 0x5c, 0x56, 0x8e, 0xbc, 0x4b, 0xc1, 0xfe, - 0x7b, 0x1c, 0x77, 0xe9, 0x8d, 0x57, 0x12, 0x95, 0x4a, 0xe2, 0x76, 0x20, 0xe8, 0x77, 0x07, 0x7b, - 0x04, 0x64, 0x42, 0x01, 0xb7, 0x20, 0x84, 0xf8, 0x3e, 0xc2, 0x02, 0x1f, 0x46, 0xb0, 0xff, 0xdb, - 0xb5, 0xef, 0xae, 0x9a, 0x5e, 0x49, 0xf4, 0x57, 0xd1, 0xcc, 0xdd, 0xb0, 0xfc, 0x0f, 0x45, 0xc5, - 0x62, 0x11, 0xf2, 0xf9, 0x7c, 0x1f, 0x99, 0x4c, 0x66, 0xe0, 0x5e, 0x36, 0x9b, 0xed, 0xbb, 0xce, - 0xe5, 0x72, 0xd0, 0xe9, 0x74, 0x8e, 0x2f, 0x72, 0x38, 0x1c, 0x10, 0x08, 0x04, 0x10, 0x3f, 0xf8, - 0xfd, 0x3e, 0xf0, 0xf9, 0xbc, 0x60, 0xb5, 0x5a, 0x59, 0x4b, 0xaf, 0xfd, 0x7e, 0x3f, 0xfb, 0xce, - 0x66, 0xb3, 0x41, 0x28, 0x14, 0x02, 0x41, 0x10, 0x20, 0x1c, 0x0e, 0xc3, 0xe6, 0xe6, 0x26, 0x88, - 0xa2, 0x78, 0x7c, 0x11, 0xcf, 0xf3, 0x50, 0xad, 0x56, 0xa0, 0x52, 0x29, 0x61, 0xd5, 0x15, 0x71, - 0x84, 0x79, 0x70, 0x3a, 0x9d, 0xac, 0x15, 0xc5, 0x22, 0x94, 0xcb, 0x25, 0x86, 0xdb, 0xcd, 0x43, - 0xb3, 0xd9, 0x80, 0x56, 0xab, 0xc5, 0x46, 0x12, 0x0c, 0x06, 0xf1, 0x37, 0x95, 0xa3, 0x45, 0x8d, - 0x46, 0x1d, 0x8c, 0xcb, 0x86, 0xff, 0xb0, 0x68, 0x7b, 0x7b, 0x1b, 0x83, 0xb8, 0x5f, 0xc0, 0x33, - 0xf1, 0x23, 0xb3, 0x19, 0x9c, 0x2e, 0x37, 0x98, 0xd6, 0x1f, 0xc6, 0xce, 0x7f, 0x72, 0xbe, 0xfd, - 0xf3, 0xea, 0x2f, 0x71, 0x8b, 0xc5, 0x02, 0x1e, 0x8f, 0x87, 0xf1, 0xe4, 0x89, 0x07, 0xec, 0x76, - 0x3b, 0x14, 0x0a, 0x85, 0xe3, 0x88, 0x24, 0x90, 0x24, 0x09, 0xba, 0xdd, 0x2e, 0xcb, 0xb0, 0xd3, - 0x69, 0x43, 0xbb, 0x2d, 0xf3, 0xab, 0xd3, 0x0d, 0x9e, 0x58, 0x07, 0xd6, 0xb7, 0xa2, 0xf1, 0x1d, - 0xaf, 0x57, 0xb2, 0xd8, 0x6c, 0xdd, 0x3b, 0x5a, 0x6d, 0x46, 0x7e, 0x4e, 0x86, 0x16, 0xd0, 0x91, - 0x23, 0xa2, 0x81, 0xeb, 0xf5, 0x1a, 0xe8, 0x17, 0xef, 0x43, 0x3c, 0x1e, 0xeb, 0x23, 0x9f, 0x7f, - 0xd6, 0x0b, 0xe2, 0xd8, 0xe4, 0xc1, 0x97, 0x92, 0xc0, 0xcc, 0x47, 0xe3, 0x58, 0x69, 0x12, 0x26, - 0x43, 0x22, 0xd1, 0x88, 0xa4, 0xd5, 0xdd, 0x29, 0xd1, 0x84, 0x68, 0x72, 0x54, 0x54, 0x2e, 0x97, - 0x59, 0xb2, 0x03, 0x22, 0xfa, 0x40, 0xad, 0x56, 0x81, 0xbb, 0xda, 0xdb, 0x60, 0x7d, 0x6c, 0x66, - 0x58, 0xac, 0x32, 0x21, 0x21, 0x88, 0xa3, 0x69, 0xb1, 0x35, 0xd8, 0x40, 0x91, 0x90, 0xee, 0x82, - 0xd5, 0x0d, 0x71, 0x41, 0x08, 0x4b, 0x98, 0x39, 0xa9, 0x56, 0xab, 0x04, 0xcb, 0x99, 0x4c, 0xcf, - 0xa8, 0x1b, 0xc5, 0x62, 0x21, 0x42, 0x45, 0xb4, 0xbc, 0x69, 0xcc, 0x01, 0x11, 0xcd, 0xb6, 0x52, - 0x29, 0xc3, 0x92, 0x71, 0xb1, 0x17, 0xb4, 0xd5, 0x6a, 0x32, 0x9a, 0xcd, 0x26, 0x5b, 0x6c, 0x8a, - 0x6b, 0x8b, 0x67, 0xb2, 0xa5, 0x95, 0x1f, 0x12, 0x78, 0x70, 0x4a, 0xb8, 0x41, 0x49, 0x3a, 0x9d, - 0x26, 0xb8, 0x69, 0x49, 0xad, 0x56, 0x23, 0x37, 0x6f, 0xcd, 0xb7, 0xf5, 0xfa, 0x85, 0xa4, 0xbc, - 0x69, 0xdb, 0x83, 0x22, 0x1a, 0x9c, 0x56, 0x90, 0x61, 0x49, 0xdf, 0x17, 0x98, 0xae, 0xdb, 0x61, - 0xea, 0x75, 0x19, 0xaf, 0xef, 0xf7, 0xc4, 0xee, 0xee, 0xae, 0xb4, 0xbf, 0xbf, 0x4f, 0xe2, 0xf1, - 0x38, 0x89, 0x46, 0xa3, 0x0c, 0x9c, 0x32, 0x62, 0xb1, 0x98, 0xbb, 0xcb, 0x2b, 0xc6, 0x1c, 0x8d, - 0x39, 0x3d, 0xab, 0xee, 0x17, 0xd1, 0xcc, 0xf1, 0x55, 0x00, 0x0b, 0xfa, 0x7b, 0x90, 0x7a, 0x9a, - 0x64, 0x24, 0x53, 0x89, 0x1e, 0x89, 0x64, 0x3f, 0x1b, 0x4e, 0x47, 0x72, 0x17, 0x76, 0xa5, 0x58, - 0x2c, 0x46, 0x50, 0x48, 0xf0, 0x54, 0x20, 0x58, 0xd6, 0x04, 0x4f, 0x0b, 0x36, 0x42, 0xc0, 0xef, - 0x34, 0x33, 0xd3, 0x15, 0xb5, 0xe6, 0x7b, 0x6b, 0x9f, 0x88, 0x66, 0x4f, 0xa7, 0x6e, 0xfd, 0x81, - 0x09, 0xd6, 0x4c, 0x3f, 0x31, 0x56, 0xd7, 0x28, 0x3f, 0xfe, 0x21, 0xfa, 0xc5, 0x7b, 0x49, 0x00, - 0x90, 0xf0, 0xc8, 0x61, 0xc1, 0xbd, 0x5e, 0x2f, 0x93, 0x45, 0x22, 0x11, 0x42, 0xe5, 0xa5, 0x52, - 0x89, 0xad, 0xdb, 0x18, 0x37, 0x5a, 0x19, 0x1a, 0x1a, 0x7a, 0xbd, 0x27, 0x92, 0xa7, 0xa5, 0xc6, - 0xa8, 0xd5, 0xaa, 0x6c, 0xa3, 0xca, 0x9b, 0xb5, 0xfc, 0x82, 0x52, 0x6f, 0x83, 0x52, 0x5c, 0x2e, - 0x67, 0x0a, 0xf6, 0x80, 0x09, 0x70, 0xf1, 0x59, 0x41, 0xec, 0xed, 0xed, 0x91, 0x42, 0x21, 0x4f, - 0x74, 0xba, 0xbb, 0x6d, 0xac, 0xde, 0xa6, 0x56, 0x7b, 0xbb, 0xf1, 0xb5, 0xe2, 0x2b, 0xf1, 0xec, - 0xd9, 0xe1, 0x0b, 0x3d, 0x91, 0x3c, 0xf7, 0x87, 0x25, 0xb2, 0x40, 0x0e, 0x2c, 0xb2, 0x69, 0xa5, - 0xa7, 0xc3, 0x01, 0x1b, 0x1b, 0x76, 0x26, 0xa2, 0xd3, 0x96, 0xcd, 0x65, 0xc9, 0x9a, 0x69, 0xb5, - 0x4b, 0xd7, 0x2b, 0x9b, 0xcd, 0x90, 0xb9, 0xf9, 0xb9, 0x06, 0x8d, 0x43, 0xe3, 0x0d, 0xac, 0xd1, - 0x51, 0x92, 0x03, 0x81, 0x28, 0x16, 0x18, 0x58, 0xbe, 0x0c, 0xbb, 0xfd, 0x71, 0x8a, 0x8e, 0x00, - 0x0b, 0x41, 0x9a, 0x9b, 0x9f, 0x2d, 0x19, 0x8d, 0x86, 0x5c, 0x32, 0x99, 0x24, 0x3b, 0x3b, 0x3b, - 0x24, 0x91, 0x48, 0x48, 0x58, 0x10, 0xe9, 0x3f, 0x15, 0xf5, 0x8f, 0xa4, 0x78, 0x48, 0x90, 0xc7, - 0xa3, 0xe5, 0x19, 0xc3, 0x62, 0x7d, 0xf4, 0x54, 0x33, 0xab, 0x91, 0xee, 0x2f, 0xe8, 0xf2, 0xf2, - 0x33, 0x45, 0x50, 0xab, 0xaf, 0xb7, 0x68, 0x99, 0xe3, 0xda, 0x91, 0x45, 0x83, 0xbe, 0x4d, 0x63, - 0xf5, 0x89, 0xf0, 0xef, 0xd6, 0x9b, 0xaa, 0x49, 0xe5, 0x8d, 0x03, 0x26, 0xa6, 0xc6, 0xa7, 0x29, - 0xd8, 0xd7, 0xc8, 0x70, 0x9a, 0x89, 0x29, 0x6e, 0x46, 0xa9, 0x92, 0xb9, 0x82, 0x5c, 0x1a, 0xf9, - 0x42, 0x77, 0xf1, 0xf3, 0x0b, 0x0f, 0x54, 0x53, 0xdc, 0xac, 0x6a, 0x6a, 0x9c, 0xf1, 0xd9, 0xc5, - 0x4f, 0x1f, 0xe2, 0xbb, 0xa8, 0x83, 0x2f, 0x4c, 0xb2, 0xb2, 0xb2, 0xdc, 0x9c, 0x50, 0x71, 0x37, - 0xb9, 0x2b, 0x23, 0xef, 0xf7, 0x44, 0xff, 0x24, 0xe7, 0xce, 0x0d, 0x7f, 0xf0, 0xd1, 0xc7, 0x1f, - 0x1a, 0xce, 0x9c, 0x39, 0x7d, 0xf2, 0xf0, 0xfd, 0xe7, 0x5a, 0xa9, 0xc0, 0xd6, 0x1c, 0xa6, 0x8b, - 0xf0, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x03, 0x00, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0xd6, 0x5b, 0x48, 0x53, + 0x71, 0x00, 0xc7, 0x71, 0x1f, 0xa2, 0xc2, 0x12, 0xcc, 0xa2, 0x30, 0xad, 0x40, 0x2c, 0x82, 0x5e, + 0x44, 0x2c, 0x41, 0xcb, 0xeb, 0xd4, 0x34, 0x2c, 0x2d, 0x42, 0x85, 0xe8, 0x21, 0xc2, 0x5a, 0x06, + 0xdb, 0x74, 0xae, 0x09, 0x4e, 0x9d, 0xbb, 0x9d, 0x9d, 0xb3, 0xed, 0xe8, 0xd0, 0x4d, 0x77, 0xc9, + 0xd4, 0xcd, 0x74, 0x6a, 0x1c, 0x4d, 0xf0, 0x52, 0x06, 0x45, 0x8a, 0x79, 0xc9, 0x96, 0xe4, 0x8b, + 0xa1, 0x4f, 0x3d, 0x05, 0x41, 0x97, 0xf7, 0x5f, 0x6e, 0xc2, 0xe8, 0xb4, 0xed, 0x38, 0x27, 0xf8, + 0xf0, 0x19, 0xfc, 0x0f, 0x87, 0xff, 0x17, 0xfe, 0xe7, 0xbf, 0xf3, 0x3f, 0x11, 0xd1, 0xc5, 0xfb, + 0xb1, 0x17, 0x22, 0x3c, 0x3f, 0xb3, 0x4b, 0x33, 0xf8, 0xbc, 0xea, 0xde, 0x31, 0xd7, 0xf0, 0x00, + 0x5a, 0x8c, 0x34, 0xdc, 0x5f, 0x3e, 0x05, 0xbd, 0xc7, 0x33, 0xb7, 0x2f, 0xe4, 0xb9, 0xb0, 0xb1, + 0xb1, 0xb1, 0x63, 0x66, 0xb3, 0x09, 0xa6, 0x8e, 0x76, 0xd4, 0xd5, 0x49, 0xb1, 0xb2, 0xb2, 0x12, + 0xf0, 0x1e, 0xcf, 0xdc, 0xde, 0x50, 0x8d, 0x34, 0x12, 0x4a, 0x65, 0x3c, 0x54, 0xaa, 0xd3, 0xdb, + 0x38, 0x85, 0xd1, 0xd1, 0x06, 0xd6, 0x24, 0x6d, 0xed, 0x6d, 0x68, 0xed, 0x36, 0x42, 0xff, 0x4c, + 0x0f, 0x89, 0xb4, 0x16, 0x93, 0x93, 0x93, 0xc1, 0x43, 0xf5, 0xf5, 0x91, 0x30, 0x18, 0x73, 0x61, + 0x77, 0x8a, 0x38, 0xc9, 0x64, 0x51, 0x18, 0x1e, 0x16, 0xb3, 0x26, 0x31, 0x1a, 0x5b, 0x61, 0xe8, + 0xa1, 0x71, 0x90, 0x3c, 0x0c, 0x89, 0x5d, 0x0a, 0x35, 0xad, 0xf2, 0x5e, 0x5b, 0x5f, 0x5f, 0x0f, + 0x1c, 0x72, 0x32, 0x24, 0xe6, 0xd7, 0xfe, 0x70, 0x6a, 0x68, 0x8c, 0xf6, 0x0b, 0x19, 0x68, 0x03, + 0xf4, 0xdd, 0x7a, 0x44, 0x68, 0xf7, 0x79, 0x15, 0xb4, 0x15, 0xc1, 0x60, 0xa3, 0x21, 0x91, 0xd4, + 0xc2, 0xed, 0x76, 0xfb, 0x87, 0xfa, 0x18, 0x02, 0x4b, 0x5f, 0x7f, 0x72, 0x0a, 0x14, 0xa2, 0x74, + 0x14, 0xc8, 0x2e, 0xca, 0x17, 0xf2, 0x88, 0xd3, 0x9d, 0x01, 0x61, 0xd7, 0xa2, 0x46, 0x52, 0x83, + 0xf1, 0xf1, 0xf1, 0xff, 0x96, 0xae, 0xf5, 0x32, 0x9e, 0xf6, 0x56, 0x72, 0x0a, 0xb4, 0x74, 0x84, + 0x96, 0x00, 0xd1, 0xa5, 0x65, 0x85, 0x3c, 0x0e, 0x90, 0x87, 0x20, 0xe8, 0x14, 0x42, 0x4e, 0xc9, + 0x41, 0x90, 0x9a, 0xad, 0x90, 0xe0, 0x49, 0x24, 0xd4, 0x9a, 0x04, 0x10, 0x44, 0xa2, 0x97, 0x4c, + 0x16, 0x0b, 0xa9, 0xf4, 0x98, 0x6f, 0xfc, 0xaf, 0xb1, 0x31, 0x39, 0x2b, 0xa4, 0x52, 0xab, 0xa0, + 0xe9, 0x52, 0xfb, 0x26, 0x3f, 0x6f, 0xb8, 0x00, 0xca, 0xaa, 0x83, 0xd6, 0x46, 0x42, 0x63, 0x51, + 0x43, 0xdf, 0x69, 0x40, 0x63, 0x53, 0x23, 0xae, 0x14, 0xa6, 0xf9, 0x6f, 0x6f, 0xb1, 0x58, 0x0c, + 0x1e, 0x8f, 0x17, 0xd2, 0xf6, 0x6e, 0x56, 0xc8, 0xa1, 0xb4, 0xab, 0x70, 0x42, 0x17, 0x07, 0xb5, + 0x55, 0x03, 0xc2, 0xa6, 0x45, 0x99, 0xa9, 0x02, 0xc2, 0x5a, 0x21, 0xac, 0x56, 0x2b, 0x5c, 0x2e, + 0x17, 0xfa, 0x06, 0x9c, 0x38, 0x59, 0x18, 0x13, 0x7a, 0xa8, 0x7f, 0x70, 0x19, 0x26, 0xcb, 0x02, + 0xcb, 0x03, 0xbe, 0x14, 0xb4, 0xad, 0x05, 0x54, 0x07, 0x85, 0xfb, 0x95, 0x22, 0x48, 0xea, 0xeb, + 0x70, 0xbb, 0xbd, 0x0c, 0x4a, 0x8b, 0x12, 0x72, 0x79, 0x13, 0x7b, 0x33, 0x84, 0x1a, 0xca, 0xbe, + 0x3a, 0x8a, 0xa8, 0xe3, 0x0e, 0x96, 0xf4, 0x0c, 0x3e, 0xe4, 0x4a, 0x35, 0x92, 0x53, 0x6b, 0xbc, + 0xe3, 0xa4, 0x14, 0x11, 0xc8, 0x0e, 0x1d, 0x92, 0xe9, 0x14, 0x34, 0xd3, 0x0a, 0x4c, 0x4d, 0x4d, + 0x85, 0x17, 0x4a, 0xcb, 0x9f, 0xc0, 0xc8, 0xbb, 0xef, 0x3e, 0x0a, 0x5d, 0x0f, 0x28, 0x33, 0xe3, + 0x1b, 0x0f, 0x4f, 0x7f, 0xc3, 0x9d, 0xbb, 0x8f, 0x40, 0x58, 0x08, 0xd0, 0x16, 0xda, 0xbb, 0x2b, + 0x83, 0x86, 0xf8, 0x7c, 0x3e, 0x2e, 0xa5, 0x5e, 0xc4, 0xcd, 0x5b, 0xa5, 0x2c, 0x29, 0xe9, 0x4e, + 0xe4, 0x14, 0x4f, 0x61, 0x61, 0xed, 0x37, 0xa7, 0xfc, 0x1b, 0x0e, 0x5c, 0x2f, 0x79, 0xb8, 0xb9, + 0xa9, 0xea, 0xbd, 0xff, 0xa5, 0xa0, 0x21, 0x81, 0x40, 0x80, 0x8c, 0xcc, 0x0c, 0xf4, 0x3a, 0x7a, + 0x59, 0xd2, 0x73, 0x87, 0x90, 0x7d, 0x6d, 0x02, 0x73, 0xab, 0x3f, 0x38, 0x15, 0x94, 0xbe, 0x42, + 0x5a, 0x36, 0xe3, 0xff, 0x66, 0xd8, 0xcd, 0x33, 0x0a, 0x26, 0x3d, 0x67, 0x24, 0xfc, 0x90, 0xc5, + 0xbe, 0x08, 0x85, 0x66, 0x26, 0x24, 0x66, 0xeb, 0x42, 0xf8, 0xa1, 0x70, 0xed, 0x3a, 0x34, 0xab, + 0xb6, 0x63, 0xac, 0x40, 0xb0, 0x2d, 0x26, 0xaf, 0x0a, 0xe2, 0x84, 0xa4, 0xf0, 0x43, 0xaf, 0xef, + 0x29, 0xd0, 0x77, 0xb4, 0x08, 0x43, 0x99, 0x42, 0x4e, 0xfd, 0x89, 0xe5, 0xb0, 0xc7, 0xe4, 0x04, + 0x0e, 0x65, 0x65, 0x65, 0xa1, 0xa1, 0x41, 0xc6, 0xc9, 0x55, 0x22, 0x42, 0xff, 0xd9, 0x72, 0x7c, + 0xd8, 0x3c, 0x42, 0xb8, 0xbc, 0x7c, 0xdc, 0x16, 0x38, 0xc4, 0x30, 0x0c, 0x48, 0x8a, 0xdc, 0x3c, + 0x75, 0x15, 0x9c, 0x06, 0x4b, 0xab, 0xe1, 0x3a, 0x57, 0xb1, 0x79, 0x84, 0xfc, 0xe2, 0x34, 0x56, + 0x65, 0x0c, 0x1c, 0x0a, 0x95, 0x67, 0xe9, 0x9e, 0xc7, 0x97, 0xe0, 0x0d, 0xe1, 0xe2, 0xf4, 0x22, + 0xaf, 0x1a, 0xb6, 0x23, 0xd9, 0xbb, 0x0b, 0x39, 0xa2, 0x78, 0x21, 0xb1, 0xc5, 0x64, 0x85, 0xff, + 0xb9, 0xe5, 0xfe, 0xb8, 0x88, 0xe5, 0xf9, 0xb9, 0x6d, 0xbd, 0x7f, 0x3b, 0x8d, 0xd8, 0xc2, 0xc8, + 0xad, 0xd0, 0x5e, 0xf8, 0x0b, 0x55, 0xb5, 0x47, 0x12, 0x29, 0xf3, 0xf1, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE hierarchy_cursor_xpm[1] = {{ png, sizeof( png ), "hierarchy_cursor_xpm" }}; diff --git a/bitmaps_png/sources/hierarchy_cursor.svg b/bitmaps_png/sources/hierarchy_cursor.svg index 99574364da..614b31cba1 100644 --- a/bitmaps_png/sources/hierarchy_cursor.svg +++ b/bitmaps_png/sources/hierarchy_cursor.svg @@ -12,10 +12,10 @@ width="48" version="1.0" id="svg2" - inkscape:version="0.47 r22583" + inkscape:version="0.48.1 " sodipodi:docname="hierarchy_cursor.svg"> + id="metadata91"> @@ -36,24 +36,24 @@ inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" - inkscape:window-height="949" - id="namedview100" + inkscape:window-height="968" + id="namedview89" showgrid="false" - inkscape:zoom="0.61458333" - inkscape:cx="-63.296329" - inkscape:cy="-178.90751" - inkscape:window-x="0" - inkscape:window-y="25" + inkscape:zoom="15.088678" + inkscape:cx="22.775066" + inkscape:cy="27.739621" + inkscape:window-x="-4" + inkscape:window-y="-4" inkscape:window-maximized="1" inkscape:current-layer="svg2" /> - + gradientTransform="matrix(0.76218778,0,0,0.43012929,-26.635041,-21.323625)" + x1="49.333" + y1="55.785" + x2="49.333" + y2="106.25" /> + + + + id="stop7-4" /> - - + + + id="linearGradient3877" + xlink:href="#d-7" + inkscape:collect="always" /> + + + id="stop7-4-8" /> - + id="stop9-0-2" /> + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + id="rect61" /> + id="rect63" /> + id="rect67" /> + id="rect83" /> - - - - - - - - - - - - - - - + id="rect85" /> + + + + + From fce606ed94754ab88fe9b4009cbede06f8ab5a87 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Thu, 15 Mar 2012 10:31:16 -0400 Subject: [PATCH 19/68] Hit test method rationalization and other minor improvements. * All objects derived from EDA_ITEM now have consistent hit test method definitions. * Remove double function calls from all classes derived from SCH_ITEM. * Lots of Doxygen comment fixes. --- common/sch_item_struct.cpp | 4 +- cvpcb/CMakeLists.txt | 1 + eeschema/block.cpp | 8 +- eeschema/edit_bitmap.cpp | 4 +- eeschema/lib_arc.h | 2 + eeschema/lib_circle.h | 2 + eeschema/lib_field.h | 2 + eeschema/lib_pin.h | 2 + eeschema/lib_polyline.h | 2 + eeschema/lib_rectangle.h | 2 + eeschema/lib_text.h | 2 + eeschema/operations_on_items_lists.cpp | 8 +- eeschema/sch_bitmap.cpp | 22 ++---- eeschema/sch_bitmap.h | 44 ++++++----- eeschema/sch_bus_entry.cpp | 16 ++-- eeschema/sch_bus_entry.h | 43 ++++++----- eeschema/sch_component.cpp | 19 +++-- eeschema/sch_component.h | 50 ++++++------ eeschema/sch_field.cpp | 16 ++-- eeschema/sch_field.h | 59 +++++++++------ eeschema/sch_junction.cpp | 19 +++-- eeschema/sch_junction.h | 47 +++++++----- eeschema/sch_line.cpp | 23 +++--- eeschema/sch_line.h | 45 ++++++----- eeschema/sch_marker.cpp | 47 +++++++++--- eeschema/sch_marker.h | 34 +++++---- eeschema/sch_no_connect.cpp | 16 ++-- eeschema/sch_no_connect.h | 44 ++++++----- eeschema/sch_polyline.cpp | 16 ++-- eeschema/sch_polyline.h | 39 +++++----- eeschema/sch_sheet.cpp | 24 +++--- eeschema/sch_sheet.h | 74 +++++++++--------- eeschema/sch_sheet_pin.cpp | 10 +-- eeschema/sch_text.cpp | 50 ++++++------ eeschema/sch_text.h | 98 +++++++++++++++--------- eeschema/schematic_undo_redo.cpp | 4 +- gerbview/CMakeLists.txt | 3 +- include/base_struct.h | 26 ++++--- include/class_drc_item.h | 42 +++++----- include/sch_item_struct.h | 101 +++++++++++++------------ pcbnew/class_dimension.cpp | 36 ++++----- pcbnew/class_dimension.h | 19 +---- pcbnew/class_drawsegment.cpp | 18 +++-- pcbnew/class_drawsegment.h | 19 +---- pcbnew/class_marker_pcb.h | 10 +-- pcbnew/class_mire.cpp | 16 ++-- pcbnew/class_mire.h | 19 +---- pcbnew/class_module.cpp | 14 ++-- pcbnew/class_module.h | 18 +---- pcbnew/class_pad.cpp | 8 +- pcbnew/class_pad.h | 12 +-- pcbnew/class_pcb_text.h | 22 ++---- pcbnew/class_text_mod.cpp | 10 +-- pcbnew/class_text_mod.h | 9 +-- pcbnew/class_track.cpp | 12 +-- pcbnew/class_track.h | 19 +---- pcbnew/class_zone.cpp | 19 +++-- pcbnew/class_zone.h | 21 ++--- 58 files changed, 715 insertions(+), 656 deletions(-) diff --git a/common/sch_item_struct.cpp b/common/sch_item_struct.cpp index baccf7d7cf..a9c2bec4c0 100644 --- a/common/sch_item_struct.cpp +++ b/common/sch_item_struct.cpp @@ -101,7 +101,7 @@ bool SCH_ITEM::operator < ( const SCH_ITEM& aItem ) const } -void SCH_ITEM::doPlot( PLOTTER* aPlotter ) +void SCH_ITEM::Plot( PLOTTER* aPlotter ) { - wxFAIL_MSG( wxT( "doPlot() method not implemented for class " ) + GetClass() ); + wxFAIL_MSG( wxT( "Plot() method not implemented for class " ) + GetClass() ); } diff --git a/cvpcb/CMakeLists.txt b/cvpcb/CMakeLists.txt index 6fff56f0ed..3256bb8935 100644 --- a/cvpcb/CMakeLists.txt +++ b/cvpcb/CMakeLists.txt @@ -29,6 +29,7 @@ set(CVPCB_SRCS ../pcbnew/netlist_reader_common.cpp ../pcbnew/netlist_reader_kicad.cpp ../pcbnew/netlist_reader_firstformat.cpp + ../pcbnew/class_drc_item.cpp autosel.cpp cfg.cpp class_components_listbox.cpp diff --git a/eeschema/block.cpp b/eeschema/block.cpp index 110fc7bdb6..9ae9a815d3 100644 --- a/eeschema/block.cpp +++ b/eeschema/block.cpp @@ -54,8 +54,8 @@ extern void SetSchItemParent( SCH_ITEM* Struct, SCH_SCREEN* Screen ); extern void MoveItemsInList( PICKED_ITEMS_LIST& aItemsList, const wxPoint aMoveVector ); extern void RotateListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center ); -extern void Mirror_X_ListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ); -extern void MirrorListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center ); +extern void MirrorX( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ); +extern void MirrorY( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center ); extern void DuplicateItemsInList( SCH_SCREEN* screen, PICKED_ITEMS_LIST& aItemsList, const wxPoint aMoveVector ); @@ -434,7 +434,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) mirrorPoint = GetScreen()->GetNearestGridPosition( mirrorPoint ); GetScreen()->SetCrossHairPosition( mirrorPoint ); SaveCopyInUndoList( block->m_ItemsSelection, UR_MIRRORED_X, mirrorPoint ); - Mirror_X_ListOfItems( block->m_ItemsSelection, mirrorPoint ); + MirrorX( block->m_ItemsSelection, mirrorPoint ); OnModify(); } GetScreen()->TestDanglingEnds( m_canvas, DC ); @@ -452,7 +452,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) mirrorPoint = GetScreen()->GetNearestGridPosition( mirrorPoint ); GetScreen()->SetCrossHairPosition( mirrorPoint ); SaveCopyInUndoList( block->m_ItemsSelection, UR_MIRRORED_Y, mirrorPoint ); - MirrorListOfItems( block->m_ItemsSelection, mirrorPoint ); + MirrorY( block->m_ItemsSelection, mirrorPoint ); OnModify(); } diff --git a/eeschema/edit_bitmap.cpp b/eeschema/edit_bitmap.cpp index 3e832a3215..fb3db8427a 100644 --- a/eeschema/edit_bitmap.cpp +++ b/eeschema/edit_bitmap.cpp @@ -179,9 +179,9 @@ void SCH_EDIT_FRAME::MirrorImage( SCH_BITMAP* aItem, bool Is_X_axis ) SaveCopyInUndoList( aItem, UR_CHANGED ); if( Is_X_axis ) - aItem->Mirror_X( aItem->GetPosition().y ); + aItem->MirrorX( aItem->GetPosition().y ); else - aItem->Mirror_Y( aItem->GetPosition().x ); + aItem->MirrorY( aItem->GetPosition().x ); OnModify(); m_canvas->Refresh(); diff --git a/eeschema/lib_arc.h b/eeschema/lib_arc.h index d0fafb655f..ecef241c86 100644 --- a/eeschema/lib_arc.h +++ b/eeschema/lib_arc.h @@ -198,8 +198,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_arc_xpm; } private: diff --git a/eeschema/lib_circle.h b/eeschema/lib_circle.h index 096eb8a59c..2385acb845 100644 --- a/eeschema/lib_circle.h +++ b/eeschema/lib_circle.h @@ -168,8 +168,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_circle_xpm; } private: diff --git a/eeschema/lib_field.h b/eeschema/lib_field.h index 9fdbc88491..adfe8034db 100644 --- a/eeschema/lib_field.h +++ b/eeschema/lib_field.h @@ -319,8 +319,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Thickness = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return move_field_xpm; } private: diff --git a/eeschema/lib_pin.h b/eeschema/lib_pin.h index 872a7e6e6c..be0e8f5abd 100644 --- a/eeschema/lib_pin.h +++ b/eeschema/lib_pin.h @@ -569,8 +569,10 @@ public: */ virtual void SetWidth( int aWidth ); + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; private: diff --git a/eeschema/lib_polyline.h b/eeschema/lib_polyline.h index 00a89910bd..874172254e 100644 --- a/eeschema/lib_polyline.h +++ b/eeschema/lib_polyline.h @@ -184,8 +184,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_polygon_xpm; } private: diff --git a/eeschema/lib_rectangle.h b/eeschema/lib_rectangle.h index 2be36de5f2..97b9191f25 100644 --- a/eeschema/lib_rectangle.h +++ b/eeschema/lib_rectangle.h @@ -172,8 +172,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_rectangle_xpm; } private: diff --git a/eeschema/lib_text.h b/eeschema/lib_text.h index 0f62baf34d..bf3e9a613d 100644 --- a/eeschema/lib_text.h +++ b/eeschema/lib_text.h @@ -204,8 +204,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Thickness = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } private: diff --git a/eeschema/operations_on_items_lists.cpp b/eeschema/operations_on_items_lists.cpp index 6703b03032..461e22ed73 100644 --- a/eeschema/operations_on_items_lists.cpp +++ b/eeschema/operations_on_items_lists.cpp @@ -65,23 +65,23 @@ void DuplicateItemsInList( SCH_SCREEN* screen, PICKED_ITEMS_LIST& aItemsList, const wxPoint aMoveVector ); -void MirrorListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ) +void MirrorY( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ) { for( unsigned ii = 0; ii < aItemsList.GetCount(); ii++ ) { SCH_ITEM* item = (SCH_ITEM*) aItemsList.GetPickedItem( ii ); - item->Mirror_Y( aMirrorPoint.x ); // Place it in its new position. + item->MirrorY( aMirrorPoint.x ); // Place it in its new position. item->ClearFlags(); } } -void Mirror_X_ListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ) +void MirrorX( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ) { for( unsigned ii = 0; ii < aItemsList.GetCount(); ii++ ) { SCH_ITEM* item = (SCH_ITEM*) aItemsList.GetPickedItem( ii ); - item->Mirror_X( aMirrorPoint.y ); // Place it in its new position. + item->MirrorX( aMirrorPoint.y ); // Place it in its new position. item->ClearFlags(); } } diff --git a/eeschema/sch_bitmap.cpp b/eeschema/sch_bitmap.cpp index 38d18b1c2c..ea725d2785 100644 --- a/eeschema/sch_bitmap.cpp +++ b/eeschema/sch_bitmap.cpp @@ -229,7 +229,7 @@ wxSize SCH_BITMAP::GetSize() const /* * Mirror image relative to a horizontal X axis ) */ -void SCH_BITMAP::Mirror_X( int aXaxis_position ) +void SCH_BITMAP::MirrorX( int aXaxis_position ) { m_Pos.y -= aXaxis_position; NEGATE( m_Pos.y ); @@ -242,7 +242,7 @@ void SCH_BITMAP::Mirror_X( int aXaxis_position ) /* * Mirror image relative to a vertical Y axis */ -void SCH_BITMAP::Mirror_Y( int aYaxis_position ) +void SCH_BITMAP::MirrorY( int aYaxis_position ) { m_Pos.x -= aYaxis_position; NEGATE( m_Pos.x ); @@ -251,9 +251,9 @@ void SCH_BITMAP::Mirror_Y( int aYaxis_position ) } -void SCH_BITMAP::Rotate( wxPoint rotationPoint ) +void SCH_BITMAP::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); m_Image->Rotate( false ); } @@ -284,17 +284,17 @@ void SCH_BITMAP::Show( int nestLevel, std::ostream& os ) const #endif -bool SCH_BITMAP::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_BITMAP::HitTest( const wxPoint& aPosition, int aAccuracy ) const { EDA_RECT rect = GetBoundingBox(); rect.Inflate( aAccuracy ); - return rect.Contains( aPoint ); + return rect.Contains( aPosition ); } -bool SCH_BITMAP::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_BITMAP::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -307,13 +307,7 @@ bool SCH_BITMAP::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccurac } -bool SCH_BITMAP::doIsConnected( const wxPoint& aPosition ) const -{ - return m_Pos == aPosition; -} - - -void SCH_BITMAP::doPlot( PLOTTER* aPlotter ) +void SCH_BITMAP::Plot( PLOTTER* aPlotter ) { m_Image->PlotImage( aPlotter, m_Pos, ReturnLayerColor( GetLayer() ), GetPenSize() ); } diff --git a/eeschema/sch_bitmap.h b/eeschema/sch_bitmap.h index 5837d160ed..743938a4a6 100644 --- a/eeschema/sch_bitmap.h +++ b/eeschema/sch_bitmap.h @@ -133,46 +133,52 @@ public: */ virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function Move - * moves then item to a new position by \a aMoveVector. - * @param aMoveVector The displacement vector. - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxis_position. - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual bool IsSelectStateChanged( const wxRect& aRect ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const { return wxString( _( "Image" ) ); } + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return image_xpm; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; - virtual bool doIsConnected( const wxPoint& aPosition ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_Pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } }; diff --git a/eeschema/sch_bus_entry.cpp b/eeschema/sch_bus_entry.cpp index 83ee22ac3a..980043f86e 100644 --- a/eeschema/sch_bus_entry.cpp +++ b/eeschema/sch_bus_entry.cpp @@ -194,7 +194,7 @@ void SCH_BUS_ENTRY::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOff } -void SCH_BUS_ENTRY::Mirror_X( int aXaxis_position ) +void SCH_BUS_ENTRY::MirrorX( int aXaxis_position ) { m_pos.y -= aXaxis_position; NEGATE( m_pos.y ); @@ -203,7 +203,7 @@ void SCH_BUS_ENTRY::Mirror_X( int aXaxis_position ) } -void SCH_BUS_ENTRY::Mirror_Y( int aYaxis_position ) +void SCH_BUS_ENTRY::MirrorY( int aYaxis_position ) { m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); @@ -212,9 +212,9 @@ void SCH_BUS_ENTRY::Mirror_Y( int aYaxis_position ) } -void SCH_BUS_ENTRY::Rotate( wxPoint rotationPoint ) +void SCH_BUS_ENTRY::Rotate( wxPoint aPosition ) { - RotatePoint( &m_pos, rotationPoint, 900 ); + RotatePoint( &m_pos, aPosition, 900 ); RotatePoint( &m_size.x, &m_size.y, 900 ); } @@ -260,13 +260,13 @@ wxString SCH_BUS_ENTRY::GetSelectMenuText() const } -bool SCH_BUS_ENTRY::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_BUS_ENTRY::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TestSegmentHit( aPoint, m_pos, m_End(), aAccuracy ); + return TestSegmentHit( aPosition, m_pos, m_End(), aAccuracy ); } -bool SCH_BUS_ENTRY::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_BUS_ENTRY::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -279,7 +279,7 @@ bool SCH_BUS_ENTRY::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccu } -void SCH_BUS_ENTRY::doPlot( PLOTTER* aPlotter ) +void SCH_BUS_ENTRY::Plot( PLOTTER* aPlotter ) { aPlotter->set_current_line_width( GetPenSize() ); aPlotter->set_color( ReturnLayerColor( GetLayer() ) ); diff --git a/eeschema/sch_bus_entry.h b/eeschema/sch_bus_entry.h index f2e7417a4a..f8c8d036c7 100644 --- a/eeschema/sch_bus_entry.h +++ b/eeschema/sch_bus_entry.h @@ -123,26 +123,20 @@ public: */ virtual int GetPenSize() const; - /** - * Function Move - * moves and item to a new position by \a aMoveVector. - * @param aMoveVector The displacement vector. - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxis_position. - * @param aYaxis_position The Y axis coordinate to mirror around. - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual void GetEndPoints( std::vector & aItemList ); @@ -155,21 +149,34 @@ public: virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_entry_xpm; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } }; diff --git a/eeschema/sch_component.cpp b/eeschema/sch_component.cpp index a8d7ff0d12..70f44399d7 100644 --- a/eeschema/sch_component.cpp +++ b/eeschema/sch_component.cpp @@ -1502,7 +1502,7 @@ void SCH_COMPONENT::DisplayInfo( EDA_DRAW_FRAME* frame ) } -void SCH_COMPONENT::Mirror_Y( int aYaxis_position ) +void SCH_COMPONENT::MirrorY( int aYaxis_position ) { int dx = m_Pos.x; @@ -1521,7 +1521,7 @@ void SCH_COMPONENT::Mirror_Y( int aYaxis_position ) } -void SCH_COMPONENT::Mirror_X( int aXaxis_position ) +void SCH_COMPONENT::MirrorX( int aXaxis_position ) { int dy = m_Pos.y; @@ -1540,11 +1540,11 @@ void SCH_COMPONENT::Mirror_X( int aXaxis_position ) } -void SCH_COMPONENT::Rotate( wxPoint rotationPoint ) +void SCH_COMPONENT::Rotate( wxPoint aPosition ) { wxPoint prev = m_Pos; - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); //SetOrientation( CMP_ROTATE_COUNTERCLOCKWISE ); SetOrientation( CMP_ROTATE_CLOCKWISE ); @@ -1837,20 +1837,23 @@ SCH_ITEM& SCH_COMPONENT::operator=( const SCH_ITEM& aItem ) } -bool SCH_COMPONENT::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_COMPONENT::HitTest( const wxPoint& aPosition, int aAccuracy ) const { EDA_RECT bBox = GetBodyBoundingBox(); bBox.Inflate( aAccuracy ); - if( bBox.Contains( aPoint ) ) + if( bBox.Contains( aPosition ) ) return true; return false; } -bool SCH_COMPONENT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_COMPONENT::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { + if( m_Flags & STRUCT_DELETED || m_Flags & SKIP_STRUCT ) + return false; + EDA_RECT rect = aRect; rect.Inflate( aAccuracy ); @@ -1878,7 +1881,7 @@ bool SCH_COMPONENT::doIsConnected( const wxPoint& aPosition ) const } -void SCH_COMPONENT::doPlot( PLOTTER* aPlotter ) +void SCH_COMPONENT::Plot( PLOTTER* aPlotter ) { LIB_COMPONENT* Entry; TRANSFORM temp = TRANSFORM(); diff --git a/eeschema/sch_component.h b/eeschema/sch_component.h index 4035f57d8b..fece3e917c 100644 --- a/eeschema/sch_component.h +++ b/eeschema/sch_component.h @@ -329,11 +329,7 @@ public: // Geometric transforms (used in block operations): - /** - * Function Move - * moves item to a new position by \a aMoveVector. - * @param aMoveVector The displacement to move the component - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { if( aMoveVector == wxPoint( 0, 0 ) ) @@ -347,21 +343,14 @@ public: SetModified(); } - /** - * Function Mirror_Y - * mirrors the component relative to an Y axis about the \a aYaxis_position. - * @param aYaxis_position The y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - /** - * Function Mirror_X (virtual) - * mirrors item relative to an X axis about the \a aXaxis_position. - * @param aXaxis_position The x axis position - */ - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * @copydoc EDA_ITEM::Matches() @@ -391,8 +380,10 @@ public: */ LIB_ITEM* GetDrawItem( const wxPoint& aPosition, KICAD_T aType = TYPE_NOT_INIT ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_component_xpm; } virtual void GetNetListItem( vector& aNetListItems, @@ -410,18 +401,31 @@ public: */ virtual bool IsReplaceable() const { return true; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { Move( aPosition - m_Pos ); } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; + virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_Pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { Move( aPosition - m_Pos ); } }; diff --git a/eeschema/sch_field.cpp b/eeschema/sch_field.cpp index 7ea9cbc608..1123a07fcc 100644 --- a/eeschema/sch_field.cpp +++ b/eeschema/sch_field.cpp @@ -458,9 +458,9 @@ bool SCH_FIELD::Replace( wxFindReplaceData& aSearchData, void* aAuxData ) } -void SCH_FIELD::Rotate( wxPoint rotationPoint ) +void SCH_FIELD::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); } @@ -499,7 +499,7 @@ BITMAP_DEF SCH_FIELD::GetMenuImage() const } -bool SCH_FIELD::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_FIELD::HitTest( const wxPoint& aPosition, int aAccuracy ) const { // Do not hit test hidden or empty fields. if( !IsVisible() || IsVoid() ) @@ -509,11 +509,11 @@ bool SCH_FIELD::doHitTest( const wxPoint& aPoint, int aAccuracy ) const rect.Inflate( aAccuracy ); - return rect.Contains( aPoint ); + return rect.Contains( aPosition ); } -bool SCH_FIELD::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_FIELD::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { // Do not hit test hidden fields. if( !IsVisible() || IsVoid() ) @@ -530,7 +530,7 @@ bool SCH_FIELD::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy } -void SCH_FIELD::doPlot( PLOTTER* aPlotter ) +void SCH_FIELD::Plot( PLOTTER* aPlotter ) { SCH_COMPONENT* parent = ( SCH_COMPONENT* ) GetParent(); @@ -593,7 +593,7 @@ void SCH_FIELD::doPlot( PLOTTER* aPlotter ) } -void SCH_FIELD::doSetPosition( const wxPoint& aPosition ) +void SCH_FIELD::SetPosition( const wxPoint& aPosition ) { SCH_COMPONENT* component = (SCH_COMPONENT*) GetParent(); @@ -608,7 +608,7 @@ void SCH_FIELD::doSetPosition( const wxPoint& aPosition ) } -wxPoint SCH_FIELD::doGetPosition() const +wxPoint SCH_FIELD::GetPosition() const { SCH_COMPONENT* component = (SCH_COMPONENT*) GetParent(); diff --git a/eeschema/sch_field.h b/eeschema/sch_field.h index df8bf3f7d8..68bd96b538 100644 --- a/eeschema/sch_field.h +++ b/eeschema/sch_field.h @@ -163,36 +163,36 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); - virtual void Mirror_X( int aXaxis_position ) + /** + * @copydoc SCH_ITEM::MirrorX() + * + * This overload does nothing. Fields are never mirrored alone. They are moved + * when the parent component is mirrored. This function is only needed by the + * virtual pure function of the master class. + */ + virtual void MirrorX( int aXaxis_position ) { - /* Do Nothing: fields are never mirrored alone. - * they are moved when the parent component is mirrored - * this function is only needed by the virtual pure function of the - * master class */ } - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position + /** + * @copydoc SCH_ITEM::MirrorY() + * + * This overload does nothing. Fields are never mirrored alone. They are moved + * when the parent component is mirrored. This function is only needed by the + * virtual pure function of the master class. */ - virtual void Mirror_Y( int aYaxis_position ) + virtual void MirrorY( int aYaxis_position ) { - /* Do Nothing: fields are never mirrored alone. - * they are moved when the parent component is mirrored - * this function is only needed by the virtual pure function of the - * master class */ } /** @@ -206,8 +206,10 @@ public: */ virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const; /** @@ -215,17 +217,28 @@ public: */ virtual bool IsReplaceable() const { return true; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const; + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ); + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const; - virtual void doSetPosition( const wxPoint& aPosition ); }; diff --git a/eeschema/sch_junction.cpp b/eeschema/sch_junction.cpp index fe9d7c547d..8374c5f9c2 100644 --- a/eeschema/sch_junction.cpp +++ b/eeschema/sch_junction.cpp @@ -130,7 +130,7 @@ void SCH_JUNCTION::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffs } -void SCH_JUNCTION::Mirror_X( int aXaxis_position ) +void SCH_JUNCTION::MirrorX( int aXaxis_position ) { m_pos.y -= aXaxis_position; NEGATE( m_pos.y ); @@ -138,7 +138,7 @@ void SCH_JUNCTION::Mirror_X( int aXaxis_position ) } -void SCH_JUNCTION::Mirror_Y( int aYaxis_position ) +void SCH_JUNCTION::MirrorY( int aYaxis_position ) { m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); @@ -146,9 +146,9 @@ void SCH_JUNCTION::Mirror_Y( int aYaxis_position ) } -void SCH_JUNCTION::Rotate( wxPoint rotationPoint ) +void SCH_JUNCTION::Rotate( wxPoint aPosition ) { - RotatePoint( &m_pos, rotationPoint, 900 ); + RotatePoint( &m_pos, aPosition, 900 ); } @@ -204,18 +204,21 @@ void SCH_JUNCTION::Show( int nestLevel, std::ostream& os ) const #endif -bool SCH_JUNCTION::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_JUNCTION::HitTest( const wxPoint& aPosition, int aAccuracy ) const { EDA_RECT rect = GetBoundingBox(); rect.Inflate( aAccuracy ); - return rect.Contains( aPoint ); + return rect.Contains( aPosition ); } -bool SCH_JUNCTION::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_JUNCTION::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { + if( m_Flags & STRUCT_DELETED || m_Flags & SKIP_STRUCT ) + return false; + EDA_RECT rect = aRect; rect.Inflate( aAccuracy ); @@ -233,7 +236,7 @@ bool SCH_JUNCTION::doIsConnected( const wxPoint& aPosition ) const } -void SCH_JUNCTION::doPlot( PLOTTER* aPlotter ) +void SCH_JUNCTION::Plot( PLOTTER* aPlotter ) { aPlotter->set_color( ReturnLayerColor( GetLayer() ) ); aPlotter->circle( m_pos, m_size.x, FILLED_SHAPE ); diff --git a/eeschema/sch_junction.h b/eeschema/sch_junction.h index 92ca5c977a..1a37387581 100644 --- a/eeschema/sch_junction.h +++ b/eeschema/sch_junction.h @@ -84,26 +84,20 @@ public: */ virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function Move - * moves then item to a new position by \a aMoveVector. - * @param aMoveVector The displacement vector. - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxis_position. - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual void GetEndPoints( std::vector & aItemList ); @@ -113,25 +107,40 @@ public: virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const { return wxString( _( "Junction" ) ); } + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_junction_xpm; } virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; - virtual bool doIsConnected( const wxPoint& aPosition ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::doIsConnected() */ + virtual bool doIsConnected( const wxPoint& aPosition ) const; }; diff --git a/eeschema/sch_line.cpp b/eeschema/sch_line.cpp index 6169f53d69..37c2f0981f 100644 --- a/eeschema/sch_line.cpp +++ b/eeschema/sch_line.cpp @@ -256,7 +256,7 @@ void SCH_LINE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset, } -void SCH_LINE::Mirror_X( int aXaxis_position ) +void SCH_LINE::MirrorX( int aXaxis_position ) { m_start.y -= aXaxis_position; NEGATE( m_start.y ); @@ -267,7 +267,7 @@ void SCH_LINE::Mirror_X( int aXaxis_position ) } -void SCH_LINE::Mirror_Y( int aYaxis_position ) +void SCH_LINE::MirrorY( int aYaxis_position ) { m_start.x -= aYaxis_position; NEGATE( m_start.x ); @@ -278,10 +278,10 @@ void SCH_LINE::Mirror_Y( int aYaxis_position ) } -void SCH_LINE::Rotate( wxPoint rotationPoint ) +void SCH_LINE::Rotate( wxPoint aPosition ) { - RotatePoint( &m_start, rotationPoint, 900 ); - RotatePoint( &m_end, rotationPoint, 900 ); + RotatePoint( &m_start, aPosition, 900 ); + RotatePoint( &m_end, aPosition, 900 ); } @@ -540,14 +540,17 @@ bool SCH_LINE::operator <( const SCH_ITEM& aItem ) const } -bool SCH_LINE::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_LINE::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TestSegmentHit( aPoint, m_start, m_end, aAccuracy ); + return TestSegmentHit( aPosition, m_start, m_end, aAccuracy ); } -bool SCH_LINE::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_LINE::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { + if( m_Flags & STRUCT_DELETED || m_Flags & SKIP_STRUCT ) + return false; + EDA_RECT rect = aRect; rect.Inflate( aAccuracy ); @@ -568,7 +571,7 @@ bool SCH_LINE::doIsConnected( const wxPoint& aPosition ) const } -void SCH_LINE::doPlot( PLOTTER* aPlotter ) +void SCH_LINE::Plot( PLOTTER* aPlotter ) { aPlotter->set_color( ReturnLayerColor( GetLayer() ) ); aPlotter->set_current_line_width( GetPenSize() ); @@ -584,7 +587,7 @@ void SCH_LINE::doPlot( PLOTTER* aPlotter ) } -void SCH_LINE::doSetPosition( const wxPoint& aPosition ) +void SCH_LINE::SetPosition( const wxPoint& aPosition ) { m_end = m_end - ( m_start - aPosition ); m_start = aPosition; diff --git a/eeschema/sch_line.h b/eeschema/sch_line.h index dfa0b92032..a9e04cbef1 100644 --- a/eeschema/sch_line.h +++ b/eeschema/sch_line.h @@ -118,23 +118,17 @@ public: */ virtual int GetPenSize() const; - /** - * Function Move - * moves the item by \a aMoveVector. - * @param aMoveVector The displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxis_position. - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * Check line against \a aLine to see if it overlaps and merge if it does. @@ -164,8 +158,10 @@ public: virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const; virtual void GetNetListItem( vector& aNetListItems, @@ -173,18 +169,31 @@ public: virtual bool operator <( const SCH_ITEM& aItem ) const; + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_start; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ); + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; + virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_start; } - virtual void doSetPosition( const wxPoint& aPosition ); }; diff --git a/eeschema/sch_marker.cpp b/eeschema/sch_marker.cpp index 1ab556aec2..094e4b3d53 100644 --- a/eeschema/sch_marker.cpp +++ b/eeschema/sch_marker.cpp @@ -1,6 +1,31 @@ -/*******************************************/ -/* Schematic marker object implementation. */ -/*******************************************/ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @file sch_marker.cpp + * @brief Class SCH_MARKER implementation + */ #include #include @@ -27,9 +52,9 @@ const wxChar* NameMarqueurType[] = }; -/**************************/ +/********************/ /* class SCH_MARKER */ -/**************************/ +/********************/ SCH_MARKER::SCH_MARKER() : SCH_ITEM( NULL, SCH_MARKER_T ), MARKER_BASE() { @@ -145,13 +170,13 @@ void SCH_MARKER::DisplayInfo( EDA_DRAW_FRAME* aFrame ) } -void SCH_MARKER::Rotate( wxPoint rotationPoint ) +void SCH_MARKER::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); } -void SCH_MARKER::Mirror_X( int aXaxis_position ) +void SCH_MARKER::MirrorX( int aXaxis_position ) { m_Pos.y -= aXaxis_position; m_Pos.y = -m_Pos.y; @@ -159,7 +184,7 @@ void SCH_MARKER::Mirror_X( int aXaxis_position ) } -void SCH_MARKER::Mirror_Y( int aYaxis_position ) +void SCH_MARKER::MirrorY( int aYaxis_position ) { m_Pos.x -= aYaxis_position; m_Pos.x = -m_Pos.x; @@ -180,8 +205,8 @@ bool SCH_MARKER::IsSelectStateChanged( const wxRect& aRect ) } -bool SCH_MARKER::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_MARKER::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return HitTestMarker( aPoint ); + return HitTestMarker( aPosition ); } diff --git a/eeschema/sch_marker.h b/eeschema/sch_marker.h index 0696c3a711..877496b36c 100644 --- a/eeschema/sch_marker.h +++ b/eeschema/sch_marker.h @@ -89,23 +89,21 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); + + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); + + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * Compare DRC marker main and auxiliary text against search string. @@ -125,18 +123,26 @@ public: virtual bool IsSelectStateChanged( const wxRect& aRect ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const { return wxString( _( "ERC Marker" ) ); } + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return erc_xpm; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual wxPoint doGetPosition() const { return m_Pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } }; #endif // TYPE_SCH_MARKER_H_ diff --git a/eeschema/sch_no_connect.cpp b/eeschema/sch_no_connect.cpp index 7a7226385b..d7214b0964 100644 --- a/eeschema/sch_no_connect.cpp +++ b/eeschema/sch_no_connect.cpp @@ -146,7 +146,7 @@ void SCH_NO_CONNECT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf } -void SCH_NO_CONNECT::Mirror_X( int aXaxis_position ) +void SCH_NO_CONNECT::MirrorX( int aXaxis_position ) { m_pos.y -= aXaxis_position; NEGATE( m_pos.y ); @@ -154,7 +154,7 @@ void SCH_NO_CONNECT::Mirror_X( int aXaxis_position ) } -void SCH_NO_CONNECT::Mirror_Y( int aYaxis_position ) +void SCH_NO_CONNECT::MirrorY( int aYaxis_position ) { m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); @@ -162,9 +162,9 @@ void SCH_NO_CONNECT::Mirror_Y( int aYaxis_position ) } -void SCH_NO_CONNECT::Rotate( wxPoint rotationPoint ) +void SCH_NO_CONNECT::Rotate( wxPoint aPosition ) { - RotatePoint( &m_pos, rotationPoint, 900 ); + RotatePoint( &m_pos, aPosition, 900 ); } @@ -207,11 +207,11 @@ bool SCH_NO_CONNECT::doIsConnected( const wxPoint& aPosition ) const return m_pos == aPosition; } -bool SCH_NO_CONNECT::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_NO_CONNECT::HitTest( const wxPoint& aPosition, int aAccuracy ) const { int delta = ( ( m_size.x + g_DrawDefaultLineThickness ) / 2 ) + aAccuracy; - wxPoint dist = aPoint - m_pos; + wxPoint dist = aPosition - m_pos; if( ( ABS( dist.x ) <= delta ) && ( ABS( dist.y ) <= delta ) ) return true; @@ -220,7 +220,7 @@ bool SCH_NO_CONNECT::doHitTest( const wxPoint& aPoint, int aAccuracy ) const } -bool SCH_NO_CONNECT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_NO_CONNECT::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -233,7 +233,7 @@ bool SCH_NO_CONNECT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAcc } -void SCH_NO_CONNECT::doPlot( PLOTTER* aPlotter ) +void SCH_NO_CONNECT::Plot( PLOTTER* aPlotter ) { int delta = m_size.x / 2; int pX, pY; diff --git a/eeschema/sch_no_connect.h b/eeschema/sch_no_connect.h index 544782934c..68ceccd01a 100644 --- a/eeschema/sch_no_connect.h +++ b/eeschema/sch_no_connect.h @@ -92,25 +92,20 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors item relative to \a aYaxis_position. - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual bool IsSelectStateChanged( const wxRect& aRect ); @@ -118,25 +113,40 @@ public: virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const { return wxString( _( "No Connect" ) ); } + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return noconn_xpm; } virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; + virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } }; diff --git a/eeschema/sch_polyline.cpp b/eeschema/sch_polyline.cpp index e314733a36..c1bd84d2ec 100644 --- a/eeschema/sch_polyline.cpp +++ b/eeschema/sch_polyline.cpp @@ -190,7 +190,7 @@ void SCH_POLYLINE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffs } -void SCH_POLYLINE::Mirror_X( int aXaxis_position ) +void SCH_POLYLINE::MirrorX( int aXaxis_position ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) { @@ -201,7 +201,7 @@ void SCH_POLYLINE::Mirror_X( int aXaxis_position ) } -void SCH_POLYLINE::Mirror_Y( int aYaxis_position ) +void SCH_POLYLINE::MirrorY( int aYaxis_position ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) { @@ -212,11 +212,11 @@ void SCH_POLYLINE::Mirror_Y( int aYaxis_position ) } -void SCH_POLYLINE::Rotate( wxPoint rotationPoint ) +void SCH_POLYLINE::Rotate( wxPoint aPosition ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) { - RotatePoint( &m_points[ii], rotationPoint, 900 ); + RotatePoint( &m_points[ii], aPosition, 900 ); } } @@ -260,11 +260,11 @@ BITMAP_DEF SCH_POLYLINE::GetMenuImage() const } -bool SCH_POLYLINE::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_POLYLINE::HitTest( const wxPoint& aPosition, int aAccuracy ) const { for( size_t i = 0; i < m_points.size() - 1; i++ ) { - if( TestSegmentHit( aPoint, m_points[i], m_points[i + 1], aAccuracy ) ) + if( TestSegmentHit( aPosition, m_points[i], m_points[i + 1], aAccuracy ) ) return true; } @@ -272,7 +272,7 @@ bool SCH_POLYLINE::doHitTest( const wxPoint& aPoint, int aAccuracy ) const } -bool SCH_POLYLINE::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_POLYLINE::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -285,7 +285,7 @@ bool SCH_POLYLINE::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccur } -void SCH_POLYLINE::doSetPosition( const wxPoint& aPosition ) +void SCH_POLYLINE::SetPosition( const wxPoint& aPosition ) { wxPoint offset = m_points[0] - aPosition; diff --git a/eeschema/sch_polyline.h b/eeschema/sch_polyline.h index 30dba3d850..9328ca0d9a 100644 --- a/eeschema/sch_polyline.h +++ b/eeschema/sch_polyline.h @@ -112,30 +112,26 @@ public: */ virtual int GetPenSize() const; - /** - * Function Move - * moves an item to a new position by \a aMoveVector. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) m_points[ii] += aMoveVector; } - /** - * Function Mirror_Y - * mirrors an item relative to \a aYaxis_position. - * @param aYaxis_position The y axis position to mirror around. - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const; /** @@ -153,16 +149,25 @@ public: return m_points[ aIndex ]; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_points[0]; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ); + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual wxPoint doGetPosition() const { return m_points[0]; } - virtual void doSetPosition( const wxPoint& aPosition ); }; diff --git a/eeschema/sch_sheet.cpp b/eeschema/sch_sheet.cpp index 2dcaa4ea70..e6dec56b58 100644 --- a/eeschema/sch_sheet.cpp +++ b/eeschema/sch_sheet.cpp @@ -514,7 +514,7 @@ SCH_SHEET_PIN* SCH_SHEET::GetPin( const wxPoint& aPosition ) { BOOST_FOREACH( SCH_SHEET_PIN& pin, m_pins ) { - if( pin.HitTest( aPosition ) ) + if( pin.HitTest( aPosition, 0 ) ) return &pin; } @@ -837,9 +837,9 @@ void SCH_SHEET::DisplayInfo( EDA_DRAW_FRAME* frame ) } -void SCH_SHEET::Rotate(wxPoint rotationPoint) +void SCH_SHEET::Rotate(wxPoint aPosition) { - RotatePoint( &m_pos, rotationPoint, 900 ); + RotatePoint( &m_pos, aPosition, 900 ); RotatePoint( &m_size.x, &m_size.y, 900 ); if( m_size.x < 0 ) @@ -856,12 +856,12 @@ void SCH_SHEET::Rotate(wxPoint rotationPoint) BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins ) { - sheetPin.Rotate( rotationPoint ); + sheetPin.Rotate( aPosition ); } } -void SCH_SHEET::Mirror_X( int aXaxis_position ) +void SCH_SHEET::MirrorX( int aXaxis_position ) { m_pos.y -= aXaxis_position; NEGATE( m_pos.y ); @@ -870,12 +870,12 @@ void SCH_SHEET::Mirror_X( int aXaxis_position ) BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins ) { - sheetPin.Mirror_X( aXaxis_position ); + sheetPin.MirrorX( aXaxis_position ); } } -void SCH_SHEET::Mirror_Y( int aYaxis_position ) +void SCH_SHEET::MirrorY( int aYaxis_position ) { m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); @@ -884,7 +884,7 @@ void SCH_SHEET::Mirror_Y( int aYaxis_position ) BOOST_FOREACH( SCH_SHEET_PIN& label, m_pins ) { - label.Mirror_Y( aYaxis_position ); + label.MirrorY( aYaxis_position ); } } @@ -1048,17 +1048,17 @@ wxString SCH_SHEET::GetSelectMenuText() const } -bool SCH_SHEET::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_SHEET::HitTest( const wxPoint& aPosition, int aAccuracy ) const { EDA_RECT rect = GetBoundingBox(); rect.Inflate( aAccuracy ); - return rect.Contains( aPoint ); + return rect.Contains( aPosition ); } -bool SCH_SHEET::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_SHEET::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -1102,7 +1102,7 @@ void SCH_SHEET::GetNetListItem( vector& aNetListItems, } -void SCH_SHEET::doPlot( PLOTTER* aPlotter ) +void SCH_SHEET::Plot( PLOTTER* aPlotter ) { EDA_Colors txtcolor = UNSPECIFIED_COLOR; wxSize size; diff --git a/eeschema/sch_sheet.h b/eeschema/sch_sheet.h index 7159641347..425a856159 100644 --- a/eeschema/sch_sheet.h +++ b/eeschema/sch_sheet.h @@ -80,8 +80,6 @@ private: virtual EDA_ITEM* doClone() const; - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - public: SCH_SHEET_PIN( SCH_SHEET* parent, const wxPoint& pos = wxPoint( 0, 0 ), @@ -178,24 +176,20 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); /** * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) @@ -219,15 +213,16 @@ public: virtual bool IsConnectable() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_hierar_pin_xpm; } -private: - virtual void doSetPosition( const wxPoint& aPosition ) - { - ConstrainOnEdge( aPosition ); - } + virtual void SetPosition( const wxPoint& aPosition ) { ConstrainOnEdge( aPosition ); } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; }; @@ -551,10 +546,7 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; @@ -565,13 +557,14 @@ public: } } - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); + + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); + + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) @@ -622,8 +615,10 @@ public: virtual SEARCH_RESULT Visit( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_hierarchical_subsheet_xpm; } virtual void GetNetListItem( vector& aNetListItems, @@ -631,6 +626,22 @@ public: SCH_ITEM& operator=( const SCH_ITEM& aSheet ); + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif @@ -647,12 +658,7 @@ protected: void renumberPins(); private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } }; diff --git a/eeschema/sch_sheet_pin.cpp b/eeschema/sch_sheet_pin.cpp index 470516b6dc..7a54ce5de4 100644 --- a/eeschema/sch_sheet_pin.cpp +++ b/eeschema/sch_sheet_pin.cpp @@ -378,7 +378,7 @@ bool SCH_SHEET_PIN::Matches( wxFindReplaceData& aSearchData, } -void SCH_SHEET_PIN::Mirror_X( int aXaxis_position ) +void SCH_SHEET_PIN::MirrorX( int aXaxis_position ) { int p = m_Pos.y - aXaxis_position; @@ -397,7 +397,7 @@ void SCH_SHEET_PIN::Mirror_X( int aXaxis_position ) } -void SCH_SHEET_PIN::Mirror_Y( int aYaxis_position ) +void SCH_SHEET_PIN::MirrorY( int aYaxis_position ) { int p = m_Pos.x - aYaxis_position; @@ -416,9 +416,9 @@ void SCH_SHEET_PIN::Mirror_Y( int aYaxis_position ) } -void SCH_SHEET_PIN::Rotate( wxPoint rotationPoint ) +void SCH_SHEET_PIN::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); switch( m_edge ) { @@ -484,7 +484,7 @@ wxString SCH_SHEET_PIN::GetSelectMenuText() const } -bool SCH_SHEET_PIN::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_SHEET_PIN::HitTest( const wxPoint& aPoint, int aAccuracy ) const { EDA_RECT rect = GetBoundingBox(); diff --git a/eeschema/sch_text.cpp b/eeschema/sch_text.cpp index 9a886d74fa..b3c487ffe0 100644 --- a/eeschema/sch_text.cpp +++ b/eeschema/sch_text.cpp @@ -182,7 +182,7 @@ bool SCH_TEXT::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint } -void SCH_TEXT::Mirror_Y( int aYaxis_position ) +void SCH_TEXT::MirrorY( int aYaxis_position ) { // Text is NOT really mirrored; it is moved to a suitable position // which is the closest position for a true mirrored text @@ -223,7 +223,7 @@ void SCH_TEXT::Mirror_Y( int aYaxis_position ) } -void SCH_TEXT::Mirror_X( int aXaxis_position ) +void SCH_TEXT::MirrorX( int aXaxis_position ) { // Text is NOT really mirrored; it is moved to a suitable position // which is the closest position for a true mirrored text @@ -264,11 +264,11 @@ void SCH_TEXT::Mirror_X( int aXaxis_position ) } -void SCH_TEXT::Rotate( wxPoint rotationPoint ) +void SCH_TEXT::Rotate( wxPoint aPosition ) { int dy; - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); SetOrientation( (GetOrientation() + 1) % 4 ); switch( GetOrientation() ) @@ -671,19 +671,19 @@ void SCH_TEXT::GetNetListItem( vector& aNetListItems, } -bool SCH_TEXT::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_TEXT::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TextHitTest( aPoint, aAccuracy ); + return TextHitTest( aPosition, aAccuracy ); } -bool SCH_TEXT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_TEXT::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { return TextHitTest( aRect, aContained, aAccuracy ); } -void SCH_TEXT::doPlot( PLOTTER* aPlotter ) +void SCH_TEXT::Plot( PLOTTER* aPlotter ) { static std::vector Poly; @@ -776,7 +776,7 @@ void SCH_LABEL::SetOrientation( int aOrientation ) } -void SCH_LABEL::Mirror_X( int aXaxis_position ) +void SCH_LABEL::MirrorX( int aXaxis_position ) { // Text is NOT really mirrored; it is moved to a suitable position // which is the closest position for a true mirrored text @@ -791,9 +791,9 @@ void SCH_LABEL::Mirror_X( int aXaxis_position ) } -void SCH_LABEL::Rotate( wxPoint rotationPoint ) +void SCH_LABEL::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); SetOrientation( (GetOrientation() + 1) % 4 ); } @@ -944,9 +944,9 @@ wxString SCH_LABEL::GetSelectMenuText() const } -bool SCH_LABEL::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_LABEL::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TextHitTest( aPoint, aAccuracy ); + return TextHitTest( aPosition, aAccuracy ); } @@ -1055,7 +1055,7 @@ bool SCH_GLOBALLABEL::Load( LINE_READER& aLine, wxString& aErrorMsg ) } -void SCH_GLOBALLABEL::Mirror_Y( int aYaxis_position ) +void SCH_GLOBALLABEL::MirrorY( int aYaxis_position ) { /* The global label is NOT really mirrored. * for an horizontal label, the schematic orientation is changed. @@ -1079,7 +1079,7 @@ void SCH_GLOBALLABEL::Mirror_Y( int aYaxis_position ) } -void SCH_GLOBALLABEL::Mirror_X( int aXaxis_position ) +void SCH_GLOBALLABEL::MirrorX( int aXaxis_position ) { switch( GetOrientation() ) { @@ -1098,9 +1098,9 @@ void SCH_GLOBALLABEL::Mirror_X( int aXaxis_position ) } -void SCH_GLOBALLABEL::Rotate( wxPoint rotationPoint ) +void SCH_GLOBALLABEL::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); SetOrientation( (GetOrientation() + 3) % 4 ); } @@ -1373,9 +1373,9 @@ wxString SCH_GLOBALLABEL::GetSelectMenuText() const } -bool SCH_GLOBALLABEL::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_GLOBALLABEL::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TextHitTest( aPoint, aAccuracy ); + return TextHitTest( aPosition, aAccuracy ); } @@ -1663,7 +1663,7 @@ wxPoint SCH_HIERLABEL::GetSchematicTextOffset() const } -void SCH_HIERLABEL::Mirror_Y( int aYaxis_position ) +void SCH_HIERLABEL::MirrorY( int aYaxis_position ) { /* The hierarchical label is NOT really mirrored for an horizontal label, the schematic * orientation is changed. For a vertical label, the schematic orientation is not changed @@ -1687,7 +1687,7 @@ void SCH_HIERLABEL::Mirror_Y( int aYaxis_position ) } -void SCH_HIERLABEL::Mirror_X( int aXaxis_position ) +void SCH_HIERLABEL::MirrorX( int aXaxis_position ) { switch( GetOrientation() ) { @@ -1706,9 +1706,9 @@ void SCH_HIERLABEL::Mirror_X( int aXaxis_position ) } -void SCH_HIERLABEL::Rotate( wxPoint rotationPoint ) +void SCH_HIERLABEL::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); SetOrientation( (GetOrientation() + 3) % 4 ); } @@ -1723,7 +1723,7 @@ wxString SCH_HIERLABEL::GetSelectMenuText() const } -bool SCH_HIERLABEL::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_HIERLABEL::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TextHitTest( aPoint, aAccuracy ); + return TextHitTest( aPosition, aAccuracy ); } diff --git a/eeschema/sch_text.h b/eeschema/sch_text.h index 7bce16f1e7..260d9634e6 100644 --- a/eeschema/sch_text.h +++ b/eeschema/sch_text.h @@ -187,25 +187,20 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxisPosition. - * @param aYaxis_position The y axis coordinate to mirror around. - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) @@ -237,24 +232,37 @@ public: virtual bool CanIncrementLabel() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_Pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } }; @@ -303,9 +311,11 @@ public: */ virtual wxPoint GetSchematicTextOffset() const; - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * Function GetBoundingBox @@ -337,8 +347,10 @@ public: virtual bool IsConnectable() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_line_label_xpm; } /** @@ -346,9 +358,13 @@ public: */ virtual bool IsReplaceable() const { return true; } + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + virtual EDA_ITEM* doClone() const; }; @@ -434,25 +450,30 @@ public: */ virtual void CreateGraphicShape( std::vector & aPoints, const wxPoint& aPos ); - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual bool IsConnectable() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_glabel_xpm; } + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + virtual EDA_ITEM* doClone() const; }; @@ -540,25 +561,30 @@ public: */ EDA_RECT GetBoundingBox() const; - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual bool IsConnectable() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_hierarchical_label_xpm; } + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/schematic_undo_redo.cpp b/eeschema/schematic_undo_redo.cpp index 28936e3376..89c2c59e40 100644 --- a/eeschema/schematic_undo_redo.cpp +++ b/eeschema/schematic_undo_redo.cpp @@ -304,11 +304,11 @@ void SCH_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRed break; case UR_MIRRORED_Y: - item->Mirror_Y( aList->m_TransformPoint.x ); + item->MirrorY( aList->m_TransformPoint.x ); break; case UR_MIRRORED_X: - item->Mirror_X( aList->m_TransformPoint.y ); + item->MirrorX( aList->m_TransformPoint.y ); break; case UR_ROTATED: diff --git a/gerbview/CMakeLists.txt b/gerbview/CMakeLists.txt index ad39be8b99..f44c34125d 100644 --- a/gerbview/CMakeLists.txt +++ b/gerbview/CMakeLists.txt @@ -68,6 +68,7 @@ set(GERBVIEW_SRCS set(GERBVIEW_EXTRA_SRCS ../pcbnew/layer_widget.cpp ../pcbnew/printout_controler.cpp + ../pcbnew/class_drc_item.cpp ) ### @@ -114,7 +115,7 @@ endif(APPLE) ### # Link executable target gerbview with correct libraries ### -target_link_libraries(gerbview common pcbcommon 3d-viewer polygon bitmaps kbool +target_link_libraries(gerbview pcbcommon common 3d-viewer polygon bitmaps kbool ${OPENGL_LIBRARIES} ${wxWidgets_LIBRARIES} ${GDI_PLUS_LIBRARIES}) diff --git a/include/base_struct.h b/include/base_struct.h index 368da50827..993f3b8e6a 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -490,23 +490,29 @@ public: /** * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false + * tests if \a aPosition is contained within or on the bounding area of an item. + * + * @note This function cannot be const because some of the derive objects perform + * intermediate calculations which change object members. Make sure derived + * objects do not declare this as const. + * + * @param aPosition A reference to a wxPoint object containing the coordinates to test. + * @return True if \a aPosition is within or on the item bounding area. */ - virtual bool HitTest( const wxPoint& refPos ) + virtual bool HitTest( const wxPoint& aPosition ) { return false; // derived classes should override this function } /** - * Function HitTest (overlaid) - * tests if the given EDA_RECT intersect this object. - * For now, an ending point must be inside this rect. - * @param refArea : the given EDA_RECT - * @return bool - true if a hit, else false + * Function HitTest + * tests if the \a aRect intersects this object. + * For now, an ending point must be inside \a aRect. + * + * @param aRect A reference to an EDA_RECT object containg the area to test. + * @return True if \a aRect intersects the object, otherwise false. */ - virtual bool HitTest( EDA_RECT& refArea ) + virtual bool HitTest( const EDA_RECT& aRect ) const { return false; // derived classes should override this function } diff --git a/include/class_drc_item.h b/include/class_drc_item.h index 78a7a29c4b..978178d185 100644 --- a/include/class_drc_item.h +++ b/include/class_drc_item.h @@ -31,8 +31,8 @@ /** * Class DRC_ITEM * is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. - * It is generated when two objects are too close (DRC) - * or two connected objects (pins) have incompatibleelectrical type (ERC). + * It is generated when two objects are too close (DRC) + * or two connected objects (pins) have incompatible electrical types (ERC). * There are holders for information on two items. The * information held is the board coordinate and the MenuText for each item. * Also held is the type of error by number and the location of the MARKER. @@ -151,26 +151,26 @@ public: { // omit the coordinate, a NETCLASS has no location ret.Printf( _( "ErrType(%d): %s

  • %s
" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( m_MainText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( m_MainText ) ); } else if( m_hasSecondItem ) { // an html fragment for the entire message in the listbox. feel free // to add color if you want: ret.Printf( _( "ErrType(%d): %s
  • %s: %s
  • %s: %s
" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( ShowCoord( m_MainPosition )), GetChars( m_MainText ), - GetChars( ShowCoord( m_AuxiliaryPosition )), GetChars( m_AuxiliaryText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( ShowCoord( m_MainPosition )), GetChars( m_MainText ), + GetChars( ShowCoord( m_AuxiliaryPosition )), GetChars( m_AuxiliaryText ) ); } else { ret.Printf( _( "ErrType(%d): %s
  • %s: %s
" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ) ); } return ret; @@ -190,17 +190,17 @@ public: if( m_hasSecondItem ) { ret.Printf( wxT( "ErrType(%d): %s\n %s: %s\n %s: %s\n" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ), - GetChars( ShowCoord( m_AuxiliaryPosition ) ), GetChars( m_AuxiliaryText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ), + GetChars( ShowCoord( m_AuxiliaryPosition ) ), GetChars( m_AuxiliaryText ) ); } else { ret.Printf( wxT( "ErrType(%d): %s\n %s: %s\n" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ) ); } return ret; @@ -219,8 +219,8 @@ public: /** * Function GetErrorText * returns the string form of a drc error code. - */ - wxString GetErrorText() const; + */ + wxString GetErrorText() const; const wxString& GetTextA() const { diff --git a/include/sch_item_struct.h b/include/sch_item_struct.h index e412f0c39a..c016749c4d 100644 --- a/include/sch_item_struct.h +++ b/include/sch_item_struct.h @@ -83,13 +83,13 @@ enum DANGLING_END_T { /** - * Class DANLIGN_END_ITEM + * Class DANGLING_END_ITEM * is a helper class used to store the state of schematic items that can be connected to * other schematic items. */ class DANGLING_END_ITEM { - /// A pointer to the connectable ojbect. + /// A pointer to the connectable object. const void* m_item; /// The position of the connection point. @@ -186,15 +186,26 @@ public: virtual void Move( const wxPoint& aMoveVector ) = 0; /** - * Function Mirror_Y - * mirrors item relative to an Y axis about \a aYaxis_position. + * Function MirrorY + * mirrors item relative to the Y axis about \a aYaxis_position. * @param aYaxis_position The Y axis position to mirror around. */ - virtual void Mirror_Y( int aYaxis_position ) = 0; + virtual void MirrorY( int aYaxis_position ) = 0; - virtual void Mirror_X( int aXaxis_position ) = 0; + /** + * Function MirrorX + * mirrors item relative to the X axis about \a aXaxis_position. + * @param aXaxis_position The X axis position to mirror around. + */ + virtual void MirrorX( int aXaxis_position ) = 0; - virtual void Rotate( wxPoint rotationPoint ) = 0; + /** + * Function Rotate + * rotates the item around \a aPosition 90 degrees in the clockwise direction. + * @param aPosition A reference to a wxPoint object containing the coordinates to + * rotate around. + */ + virtual void Rotate( wxPoint aPosition ) = 0; /** * Function Save @@ -285,7 +296,7 @@ public: * Function IsConnected * tests the item to see if it is connected to \a aPoint. * - * @param aPoint - Position to test for connection. + * @param aPoint A reference to a wxPoint object containing the coordinates to test. * @return True if connection to \a aPoint exists. */ bool IsConnected( const wxPoint& aPoint ) const; @@ -294,34 +305,37 @@ public: /** * Function HitTest - * tests if \a aPoint is contained within or on the bounding box of an item. + * tests if \a aPosition is contained within or on the bounding box of an item. * - * @param aPoint - Point to test. - * @param aAccuracy - Increase the item bounding box by this amount. - * @return True if \a aPoint is within the item bounding box. + * @param aPosition A reference to a wxPoint object containing the coordinates to test. + * @param aAccuracy Increase the item bounding box by this amount. + * @return True if \a aPosition is within the item bounding box. */ - bool HitTest( const wxPoint& aPoint, int aAccuracy = 0 ) const - { - return doHitTest( aPoint, aAccuracy ); - } + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const { return false; } /** * Function HitTest * tests if \a aRect intersects or is contained within the bounding box of an item. * - * @param aRect - Rectangle to test. - * @param aContained - Set to true to test for containment instead of an intersection. - * @param aAccuracy - Increase aRect by this amount. + * @param aRect A reference to a EDA_RECT object containing the rectangle to test. + * @param aContained Set to true to test for containment instead of an intersection. + * @param aAccuracy Increase \a aRect by this amount. * @return True if \a aRect contains or intersects the item bounding box. */ - bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const { - return doHitTest( aRect, aContained, aAccuracy ); + return false; } virtual bool CanIncrementLabel() const { return false; } - void Plot( PLOTTER* aPlotter ) { doPlot( aPlotter ); } + /** + * Function Plot + * plots the schematic item to \a aPlotter. + * + * @param aPlotter A pointer to a #PLOTTER object. + */ + virtual void Plot( PLOTTER* aPlotter ); /** * Function GetNetListItem @@ -331,15 +345,16 @@ public: * Not all schematic objects have net list items associated with them. This * method only needs to be overridden for those schematic objects that have * net list objects associated with them. + *

*/ virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ) { } /** * Function GetPosition - * @return the schematic item position. + * @return A wxPoint object containing the schematic item position. */ - wxPoint GetPosition() const { return doGetPosition(); } + virtual wxPoint GetPosition() const = 0; /** * Function SetPosition @@ -347,34 +362,26 @@ public: * * @param aPosition A reference to a wxPoint object containing the new position. */ - void SetPosition( const wxPoint& aPosition ) { doSetPosition( aPosition ); } + virtual void SetPosition( const wxPoint& aPosition ) = 0; virtual bool operator <( const SCH_ITEM& aItem ) const; - /** - * @note - The DoXXX() functions below are used to enforce the interface while retaining - * the ability of change the implementation behavior of derived classes. See - * Herb Sutters explanation of virtuality as to why you might want to do this at: - * http://www.gotw.ca/publications/mill18.htm. - */ private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const - { - return false; - } - - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const - { - return false; - } - + /** + * Function doIsConnected + * provides the object specific test to see if it is connected to \a aPosition. + * + * @note Override this function if the derived object can be connect to another + * object such as a wire, bus, or junction. Do not override this function + * for objects that cannot have connections. The default will always return + * false. This functions is call through the public function IsConnected() + * which performs tests common to all schematic items before calling the + * item specific connection testing. + * + * @param aPosition A reference to a wxPoint object containing the test position. + * @return True if connection to \a aPosition exists. + */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return false; } - - virtual void doPlot( PLOTTER* aPlotter ); - - virtual wxPoint doGetPosition() const = 0; - - virtual void doSetPosition( const wxPoint& aPosition ) = 0; }; diff --git a/pcbnew/class_dimension.cpp b/pcbnew/class_dimension.cpp index ecd342cb11..6af02f73e7 100644 --- a/pcbnew/class_dimension.cpp +++ b/pcbnew/class_dimension.cpp @@ -445,12 +445,12 @@ void DIMENSION::DisplayInfo( EDA_DRAW_FRAME* frame ) } -bool DIMENSION::HitTest( const wxPoint& aPoint ) +bool DIMENSION::HitTest( const wxPoint& aPosition ) { int ux0, uy0; int dx, dy, spot_cX, spot_cY; - if( m_Text.TextHitTest( aPoint ) ) + if( m_Text.TextHitTest( aPosition ) ) return true; // Locate SEGMENTS? @@ -461,8 +461,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_crossBarFx - ux0; dy = m_crossBarFy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -473,8 +473,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_featureLineGFx - ux0; dy = m_featureLineGFy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -485,8 +485,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_featureLineDFx - ux0; dy = m_featureLineDFy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -497,8 +497,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_arrowD1Fx - ux0; dy = m_arrowD1Fy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -509,8 +509,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_arrowD2Fx - ux0; dy = m_arrowD2Fy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -521,8 +521,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_arrowG1Fx - ux0; dy = m_arrowG1Fy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -533,8 +533,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_arrowG2Fx - ux0; dy = m_arrowG2Fy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -543,9 +543,9 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) } -bool DIMENSION::HitTest( EDA_RECT& refArea ) +bool DIMENSION::HitTest( const EDA_RECT& aRect ) const { - if( refArea.Contains( m_Pos ) ) + if( aRect.Contains( m_Pos ) ) return true; return false; diff --git a/pcbnew/class_dimension.h b/pcbnew/class_dimension.h index c5c7cb39bc..2e7c8aed7c 100644 --- a/pcbnew/class_dimension.h +++ b/pcbnew/class_dimension.h @@ -151,22 +151,11 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param ref_pos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& ref_pos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlaid) - * tests if the given EDA_RECT intersect this object. - * For now, the anchor must be inside this rect. - * @param refArea : the given EDA_RECT - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetClass diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 5dc0e7447b..c3f4c2b512 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -439,10 +439,10 @@ EDA_RECT DRAWSEGMENT::GetBoundingBox() const } -bool DRAWSEGMENT::HitTest( const wxPoint& aRefPos ) +bool DRAWSEGMENT::HitTest( const wxPoint& aPosition ) { /* Calculate coordinates to test relative to segment origin. */ - wxPoint relPos = aRefPos - m_Start; + wxPoint relPos = aPosition - m_Start; switch( m_Shape ) { @@ -476,13 +476,13 @@ bool DRAWSEGMENT::HitTest( const wxPoint& aRefPos ) case S_CURVE: for( unsigned int i= 1; i < m_BezierPoints.size(); i++) { - if( TestSegmentHit( aRefPos,m_BezierPoints[i-1], m_BezierPoints[i-1], m_Width / 2 ) ) + if( TestSegmentHit( aPosition, m_BezierPoints[i-1], m_BezierPoints[i-1], m_Width / 2 ) ) return true; } break; case S_SEGMENT: - if( TestSegmentHit( aRefPos, m_Start, m_End, m_Width / 2 ) ) + if( TestSegmentHit( aPosition, m_Start, m_End, m_Width / 2 ) ) return true; break; @@ -494,15 +494,16 @@ bool DRAWSEGMENT::HitTest( const wxPoint& aRefPos ) } -bool DRAWSEGMENT::HitTest( EDA_RECT& refArea ) +bool DRAWSEGMENT::HitTest( const EDA_RECT& aRect ) const { switch( m_Shape ) { case S_CIRCLE: { int radius = GetRadius(); + // Text if area intersects the circle: - EDA_RECT area = refArea; + EDA_RECT area = aRect; area.Inflate( radius ); if( area.Contains( m_Start ) ) @@ -512,9 +513,10 @@ bool DRAWSEGMENT::HitTest( EDA_RECT& refArea ) case S_ARC: case S_SEGMENT: - if( refArea.Contains( GetStart() ) ) + if( aRect.Contains( GetStart() ) ) return true; - if( refArea.Contains( GetEnd() ) ) + + if( aRect.Contains( GetEnd() ) ) return true; break; } diff --git a/pcbnew/class_drawsegment.h b/pcbnew/class_drawsegment.h index 0eb613be6f..a554a4e1e3 100644 --- a/pcbnew/class_drawsegment.h +++ b/pcbnew/class_drawsegment.h @@ -186,22 +186,11 @@ public: */ virtual EDA_RECT GetBoundingBox() const; - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& aRefPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlayed) - * tests if the given EDA_RECT intersect this object. - * For now, an ending point must be inside this rect. - * @param refArea the given EDA_RECT to test - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetClass diff --git a/pcbnew/class_marker_pcb.h b/pcbnew/class_marker_pcb.h index 364c712ce1..3e9fcc5237 100644 --- a/pcbnew/class_marker_pcb.h +++ b/pcbnew/class_marker_pcb.h @@ -80,14 +80,10 @@ public: const wxPoint& GetPosition() const { return m_Pos; } void SetPosition( const wxPoint& aPos ) { m_Pos = aPos; } - /** - * Function HitTest - * @return true if the point aPosRef is within item area - * @param aPosRef = a wxPoint to test - */ - bool HitTest( const wxPoint& aPosRef ) + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ) { - return HitTestMarker( aPosRef ); + return HitTestMarker( aPosition ); } /** diff --git a/pcbnew/class_mire.cpp b/pcbnew/class_mire.cpp index 3a2765c7eb..31693a5d35 100644 --- a/pcbnew/class_mire.cpp +++ b/pcbnew/class_mire.cpp @@ -162,24 +162,18 @@ void PCB_TARGET::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int mode_color, const wx } -/** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ -bool PCB_TARGET::HitTest( const wxPoint& refPos ) +bool PCB_TARGET::HitTest( const wxPoint& aPosition ) { - int dX = refPos.x - m_Pos.x; - int dY = refPos.y - m_Pos.y; + int dX = aPosition.x - m_Pos.x; + int dY = aPosition.y - m_Pos.y; int radius = m_Size / 2; return abs( dX ) <= radius && abs( dY ) <= radius; } -bool PCB_TARGET::HitTest( EDA_RECT& refArea ) +bool PCB_TARGET::HitTest( const EDA_RECT& aRect ) const { - if( refArea.Contains( m_Pos ) ) + if( aRect.Contains( m_Pos ) ) return true; return false; diff --git a/pcbnew/class_mire.h b/pcbnew/class_mire.h index 4a3189ca7a..0717b73ef7 100644 --- a/pcbnew/class_mire.h +++ b/pcbnew/class_mire.h @@ -118,22 +118,11 @@ public: void Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int aDrawMode, const wxPoint& offset = ZeroOffset ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlaid) - * tests if the given EDA_RECT intersect this object. - * For now, the anchor must be inside this rect. - * @param refArea : the given EDA_RECT - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; EDA_RECT GetBoundingBox() const; diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index 7a44399225..e8363f1e61 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -508,27 +508,27 @@ void MODULE::DisplayInfo( EDA_DRAW_FRAME* frame ) } -bool MODULE::HitTest( const wxPoint& aRefPos ) +bool MODULE::HitTest( const wxPoint& aPosition ) { - if( m_BoundaryBox.Contains( aRefPos ) ) + if( m_BoundaryBox.Contains( aPosition ) ) return true; return false; } -bool MODULE::HitTest( EDA_RECT& aRefArea ) +bool MODULE::HitTest( const EDA_RECT& aRect ) const { - if( m_BoundaryBox.GetX() < aRefArea.GetX() ) + if( m_BoundaryBox.GetX() < aRect.GetX() ) return false; - if( m_BoundaryBox.GetY() < aRefArea.GetY() ) + if( m_BoundaryBox.GetY() < aRect.GetY() ) return false; - if( m_BoundaryBox.GetRight() > aRefArea.GetRight() ) + if( m_BoundaryBox.GetRight() > aRect.GetRight() ) return false; - if( m_BoundaryBox.GetBottom() > aRefArea.GetBottom() ) + if( m_BoundaryBox.GetBottom() > aRect.GetBottom() ) return false; return true; diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index c32d0fe6e2..cc7f9dc355 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -321,21 +321,11 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos is a wxPoint to test. - * @return bool - true if a hit, else false. - */ - bool HitTest( const wxPoint& aRefPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlaid) - * tests if the given EDA_RECT intersect the bounds of this object. - * @param aRefArea is the given EDA_RECT. - * @return bool - true if a hit, else false. - */ - bool HitTest( EDA_RECT& aRefArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetReference diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index 38a9e314e2..93abf1be18 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -100,7 +100,7 @@ int D_PAD::boundingRadius() const case PAD_RECT: radius = 1 + (int) ( sqrt( (double) m_Size.y * m_Size.y - + (double) m_Size.x * m_Size.x ) / 2 ); + + (double) m_Size.x * m_Size.x ) / 2 ); break; case PAD_TRAPEZOID: @@ -175,7 +175,7 @@ void D_PAD::AppendConfigs( PARAM_CFG_ARRAY* aResult ) // Returns the position of the pad. -const wxPoint D_PAD::ReturnShapePos() +const wxPoint D_PAD::ReturnShapePos() const { if( m_Offset.x == 0 && m_Offset.y == 0 ) return m_Pos; @@ -664,14 +664,14 @@ bool D_PAD::IsOnLayer( int aLayer ) const } -bool D_PAD::HitTest( const wxPoint& refPos ) +bool D_PAD::HitTest( const wxPoint& aPosition ) { int dx, dy; double dist; wxPoint shape_pos = ReturnShapePos(); - wxPoint delta = refPos - shape_pos; + wxPoint delta = aPosition - shape_pos; // first test: a test point must be inside a minimum sized bounding circle. int radius = GetBoundingRadius(); diff --git a/pcbnew/class_pad.h b/pcbnew/class_pad.h index 0cadcb2eed..a5ec232dbe 100644 --- a/pcbnew/class_pad.h +++ b/pcbnew/class_pad.h @@ -353,10 +353,11 @@ public: { m_boundingRadius = boundingRadius(); } + return m_boundingRadius; } - const wxPoint ReturnShapePos(); + const wxPoint ReturnShapePos() const; /** * Function GetSubRatsnest @@ -385,13 +386,8 @@ public: */ bool IsOnLayer( int aLayer ) const; - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); /** * Function GetClass diff --git a/pcbnew/class_pcb_text.h b/pcbnew/class_pcb_text.h index 10329dff8a..8084a7b2d9 100644 --- a/pcbnew/class_pcb_text.h +++ b/pcbnew/class_pcb_text.h @@ -108,26 +108,16 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ) + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ) { - return TextHitTest( refPos ); + return TextHitTest( aPosition ); } - /** - * Function HitTest (overloaded) - * tests if the given EDA_RECT intersect this object. - * @param refArea the given EDA_RECT to test - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ) + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) { - return TextHitTest( refArea ); + return TextHitTest( aRect ); } /** diff --git a/pcbnew/class_text_mod.cpp b/pcbnew/class_text_mod.cpp index 0bbb52f615..1950aebe9b 100644 --- a/pcbnew/class_text_mod.cpp +++ b/pcbnew/class_text_mod.cpp @@ -184,13 +184,7 @@ EDA_RECT TEXTE_MODULE::GetTextRect( void ) const } -/** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos A wxPoint to test - * @return true if a hit, else false - */ -bool TEXTE_MODULE::HitTest( const wxPoint& aRefPos ) +bool TEXTE_MODULE::HitTest( const wxPoint& aPosition ) { wxPoint rel_pos; EDA_RECT area = GetTextRect(); @@ -199,7 +193,7 @@ bool TEXTE_MODULE::HitTest( const wxPoint& aRefPos ) * to test if refPos is within area (which is relative to an horizontal * text) */ - rel_pos = aRefPos; + rel_pos = aPosition; RotatePoint( &rel_pos, m_Pos, -GetDrawRotation() ); if( area.Contains( rel_pos ) ) diff --git a/pcbnew/class_text_mod.h b/pcbnew/class_text_mod.h index 93d30c8a68..a4bf817363 100644 --- a/pcbnew/class_text_mod.h +++ b/pcbnew/class_text_mod.h @@ -167,13 +167,8 @@ public: void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& aRefPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); /** * Function IsOnLayer diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 626ee88cec..090af5ce46 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -1179,7 +1179,7 @@ void TRACK::DisplayInfoBase( EDA_DRAW_FRAME* frame ) } -bool TRACK::HitTest( const wxPoint& refPos ) +bool TRACK::HitTest( const wxPoint& aPosition ) { int radius = m_Width >> 1; @@ -1188,8 +1188,8 @@ bool TRACK::HitTest( const wxPoint& refPos ) int dy = m_End.y - m_Start.y; // (spot_cX, spot_cY) is a vector from m_Start to ref_pos (an origin of m_Start) - int spot_cX = refPos.x - m_Start.x; - int spot_cY = refPos.y - m_Start.y; + int spot_cX = aPosition.x - m_Start.x; + int spot_cY = aPosition.y - m_Start.y; if( Type() == PCB_VIA_T ) { @@ -1205,12 +1205,12 @@ bool TRACK::HitTest( const wxPoint& refPos ) } -bool TRACK::HitTest( EDA_RECT& refArea ) +bool TRACK::HitTest( const EDA_RECT& aRect ) const { - if( refArea.Contains( m_Start ) ) + if( aRect.Contains( m_Start ) ) return true; - if( refArea.Contains( m_End ) ) + if( aRect.Contains( m_End ) ) return true; return false; diff --git a/pcbnew/class_track.h b/pcbnew/class_track.h index ecdc9bb08e..d3beeed79c 100644 --- a/pcbnew/class_track.h +++ b/pcbnew/class_track.h @@ -303,22 +303,11 @@ public: const KICAD_T scanTypes[] ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlaid) - * tests if the given wxRect intersect this object. - * For now, an ending point must be inside this rect. - * @param refArea an EDA_RECT to test - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetVia diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 7ce8eeba1f..6adb5b75d8 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2006 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -468,12 +467,12 @@ int ZONE_CONTAINER::GetThermalReliefCopperBridge( D_PAD* aPad ) const } -bool ZONE_CONTAINER::HitTest( const wxPoint& refPos ) +bool ZONE_CONTAINER::HitTest( const wxPoint& aPosition ) { - if( HitTestForCorner( refPos ) ) + if( HitTestForCorner( aPosition ) ) return true; - if( HitTestForEdge( refPos ) ) + if( HitTestForEdge( aPosition ) ) return true; return false; @@ -584,22 +583,22 @@ bool ZONE_CONTAINER::HitTestForEdge( const wxPoint& refPos ) } -bool ZONE_CONTAINER::HitTest( EDA_RECT& refArea ) +bool ZONE_CONTAINER::HitTest( const EDA_RECT& aRect ) const { bool is_out_of_box = false; CRect rect = m_Poly->GetCornerBounds(); - if( rect.left < refArea.GetX() ) + if( rect.left < aRect.GetX() ) is_out_of_box = true; - if( rect.top < refArea.GetY() ) + if( rect.top < aRect.GetY() ) is_out_of_box = true; - if( rect.right > refArea.GetRight() ) + if( rect.right > aRect.GetRight() ) is_out_of_box = true; - if( rect.bottom > refArea.GetBottom() ) + if( rect.bottom > aRect.GetBottom() ) is_out_of_box = true; return is_out_of_box ? false : true; @@ -633,7 +632,7 @@ int ZONE_CONTAINER::GetClearance( BOARD_CONNECTED_ITEM* aItem ) const } -bool ZONE_CONTAINER::HitTestFilledArea( const wxPoint& aRefPos ) +bool ZONE_CONTAINER::HitTestFilledArea( const wxPoint& aRefPos ) const { unsigned indexstart = 0, indexend; bool inside = false; diff --git a/pcbnew/class_zone.h b/pcbnew/class_zone.h index 990ced3ee0..d3cb379ab9 100644 --- a/pcbnew/class_zone.h +++ b/pcbnew/class_zone.h @@ -297,14 +297,8 @@ public: int GetMinThickness() const { return m_ZoneMinThickness; } void SetMinThickness( int aMinThickness ) { m_ZoneMinThickness = aMinThickness; } - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * For zones, this means near an outline segment - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); /** * Function HitTestFilledArea @@ -312,7 +306,7 @@ public: * @param aRefPos A wxPoint to test * @return bool - true if a hit, else false */ - bool HitTestFilledArea( const wxPoint& aRefPos ); + bool HitTestFilledArea( const wxPoint& aRefPos ) const; /** * Function BuildFilledPolysListData @@ -377,13 +371,8 @@ public: */ bool HitTestForEdge( const wxPoint& refPos ); - /** - * Function HitTest (overloaded) - * tests if the given EDA_RECT contains the bounds of this object. - * @param refArea : the given EDA_RECT - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& refArea ) const; /** * Function Fill_Zone From 83c75f9291a773316032109353d7d9d0db52c504 Mon Sep 17 00:00:00 2001 From: Joe Ferner Date: Thu, 15 Mar 2012 14:20:22 -0400 Subject: [PATCH 20/68] Added a toolbar button to cvpcb to filter by pin/pad count. --- bitmaps_png/CMakeLists.txt | 1 + .../cpp_26/module_pin_filtered_list.cpp | 97 +++++++++++++++++++ .../sources/module_pin_filtered_list.svg | 31 ++++++ common/footprint_info.cpp | 3 + cvpcb/class_footprints_listbox.cpp | 30 ++++++ cvpcb/cvframe.cpp | 36 ++++++- cvpcb/cvpcb_id.h | 1 + cvpcb/cvstruct.h | 2 + cvpcb/tool_cvpcb.cpp | 12 ++- include/bitmaps.h | 1 + include/footprint_info.h | 2 + pcbnew/netlist_reader.h | 7 +- pcbnew/netlist_reader_firstformat.cpp | 12 ++- 13 files changed, 223 insertions(+), 12 deletions(-) create mode 100644 bitmaps_png/cpp_26/module_pin_filtered_list.cpp create mode 100644 bitmaps_png/sources/module_pin_filtered_list.svg diff --git a/bitmaps_png/CMakeLists.txt b/bitmaps_png/CMakeLists.txt index 8285dd7f00..0ad6cb0b61 100644 --- a/bitmaps_png/CMakeLists.txt +++ b/bitmaps_png/CMakeLists.txt @@ -332,6 +332,7 @@ set( BMAPS_MID module_filtered_list module_full_list module_options + module_pin_filtered_list module_ratsnest module modview_icon diff --git a/bitmaps_png/cpp_26/module_pin_filtered_list.cpp b/bitmaps_png/cpp_26/module_pin_filtered_list.cpp new file mode 100644 index 0000000000..dcafbab9b2 --- /dev/null +++ b/bitmaps_png/cpp_26/module_pin_filtered_list.cpp @@ -0,0 +1,97 @@ + +/* Do not modify this file, it was automatically generated by the + * PNG2cpp CMake script, using a *.png file as input. + */ + +#include + +static const unsigned char png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, + 0xce, 0x00, 0x00, 0x00, 0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64, + 0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x07, 0x7f, 0x00, 0x00, 0x07, + 0x7f, 0x01, 0x78, 0x5e, 0xe4, 0x82, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63, + 0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x04, 0xb2, 0x49, + 0x44, 0x41, 0x54, 0x48, 0x89, 0xcd, 0x94, 0x7f, 0x4c, 0xd4, 0x65, 0x1c, 0xc7, 0x5f, 0xcf, 0xdd, + 0xf7, 0x7b, 0x77, 0xf1, 0x63, 0xa0, 0x70, 0xa8, 0x0c, 0x54, 0x14, 0x0f, 0x06, 0x83, 0xe2, 0xb4, + 0xdc, 0x95, 0x73, 0x3a, 0xb5, 0xb5, 0x65, 0x1b, 0x6b, 0xcb, 0xa9, 0xad, 0x04, 0x4d, 0x8c, 0xc2, + 0x8d, 0xfe, 0xcb, 0x96, 0xeb, 0x8f, 0x36, 0x37, 0xff, 0x68, 0x68, 0xad, 0x52, 0x37, 0x37, 0x56, + 0xce, 0x35, 0xa5, 0x55, 0x5b, 0x5a, 0x6d, 0xb4, 0xc0, 0x10, 0x31, 0xbb, 0x8b, 0x38, 0x9d, 0x1e, + 0x72, 0x62, 0x8a, 0xc0, 0x09, 0x8a, 0x28, 0xdc, 0x71, 0xf0, 0xc5, 0x4f, 0x7f, 0x70, 0x87, 0x87, + 0x82, 0xc2, 0xd6, 0x1f, 0xbd, 0xff, 0x7a, 0xde, 0xef, 0xe7, 0xf3, 0x79, 0xde, 0xcf, 0xf3, 0x7e, + 0xbe, 0xdf, 0x47, 0x89, 0x08, 0xb1, 0x50, 0x4a, 0xcd, 0xd6, 0x75, 0xdd, 0x11, 0xe5, 0x23, 0x23, + 0x23, 0xfd, 0x22, 0x72, 0x51, 0x29, 0x95, 0xa8, 0xeb, 0x7a, 0x7e, 0x4c, 0x5d, 0x30, 0x1c, 0x0e, + 0xb7, 0x28, 0xa5, 0x2c, 0xba, 0xae, 0x3b, 0x63, 0x96, 0x30, 0x86, 0x87, 0x87, 0xff, 0xe4, 0x21, + 0x68, 0x0f, 0x0b, 0x2f, 0x64, 0x9a, 0x76, 0x7f, 0xb2, 0xda, 0xa8, 0x8c, 0xf2, 0x2f, 0xfe, 0x32, + 0x79, 0x81, 0xc2, 0xa5, 0xe9, 0xa6, 0x92, 0x8f, 0x57, 0x18, 0x9f, 0xce, 0xb6, 0x8d, 0xe9, 0xd5, + 0xe7, 0xd5, 0x15, 0x60, 0xb1, 0xae, 0xeb, 0xce, 0x03, 0x2f, 0x1a, 0x67, 0xf2, 0x53, 0xc6, 0xf4, + 0x1a, 0x9f, 0xba, 0xa5, 0x94, 0xca, 0x16, 0x91, 0x3b, 0x8f, 0x35, 0x02, 0x58, 0x9e, 0xfe, 0xe0, + 0x94, 0xc7, 0x2f, 0x31, 0x14, 0x1d, 0x17, 0xcd, 0x11, 0xe6, 0xc6, 0x8f, 0x8d, 0x6b, 0xff, 0x79, + 0xa0, 0xe7, 0xa7, 0x3c, 0xe8, 0xf1, 0xdc, 0x64, 0x64, 0xb2, 0x35, 0xb5, 0x48, 0x0c, 0x0a, 0xb0, + 0x02, 0xb8, 0x32, 0x4c, 0xda, 0xd9, 0x5b, 0x09, 0xd4, 0x69, 0xab, 0x49, 0xbc, 0x7b, 0x19, 0xc1, + 0xa7, 0x94, 0x52, 0xb6, 0xa2, 0x79, 0x26, 0xfd, 0xda, 0x80, 0xc6, 0xa1, 0x81, 0xd5, 0x30, 0x10, + 0xc0, 0x84, 0x57, 0x29, 0xa5, 0x6c, 0x9a, 0xa6, 0x59, 0x06, 0x46, 0xe0, 0xc3, 0xab, 0xcf, 0x63, + 0x66, 0x94, 0x94, 0xd1, 0x3f, 0x14, 0x60, 0x55, 0x4a, 0x45, 0xce, 0xce, 0xb0, 0x88, 0xdc, 0xd7, + 0x00, 0x1c, 0x0e, 0xc7, 0xae, 0xa2, 0xa2, 0xa2, 0x77, 0x93, 0x92, 0x92, 0x46, 0x3b, 0x2f, 0x9c, + 0x4e, 0xbe, 0x34, 0xd0, 0x87, 0x6b, 0xe3, 0x46, 0x7e, 0x3d, 0x7e, 0x10, 0x79, 0xaa, 0xb7, 0xb0, + 0xac, 0xec, 0xd5, 0xd6, 0x80, 0xdf, 0x9b, 0x78, 0x35, 0x78, 0x81, 0xa7, 0x5f, 0x7a, 0x85, 0x33, + 0xbf, 0xfd, 0x84, 0xa6, 0x5d, 0xcb, 0x2e, 0x2b, 0xdb, 0xd0, 0xda, 0xdd, 0xdd, 0x6d, 0xb9, 0x3d, + 0x74, 0x12, 0x7b, 0xc1, 0x73, 0x0c, 0x85, 0x06, 0xe8, 0xbf, 0xd9, 0x62, 0xdf, 0xb2, 0x65, 0x83, + 0xdb, 0x6a, 0xb5, 0xde, 0x37, 0x0c, 0x83, 0xc6, 0xc6, 0xc6, 0x93, 0xc0, 0xdb, 0x88, 0x08, 0x79, + 0x79, 0x79, 0x7b, 0xda, 0xdb, 0xdb, 0x45, 0x44, 0x64, 0xdf, 0x47, 0xef, 0xc9, 0xfd, 0xf7, 0x91, + 0xc6, 0x12, 0x5d, 0x6e, 0x57, 0x22, 0xfb, 0x4a, 0x97, 0x8b, 0x88, 0xc8, 0x37, 0x87, 0x3f, 0x93, + 0xae, 0x9d, 0x88, 0x7b, 0x9b, 0x2e, 0x37, 0x2a, 0x90, 0x03, 0x5b, 0xf2, 0x45, 0x44, 0xa4, 0xa9, + 0xa9, 0x49, 0x9a, 0xde, 0x54, 0x72, 0x71, 0x87, 0x26, 0x6d, 0xe5, 0x26, 0xa9, 0xde, 0x34, 0x4f, + 0xfa, 0xfa, 0xfa, 0x44, 0x44, 0x24, 0x14, 0x0a, 0x49, 0x61, 0x61, 0xe1, 0x51, 0x11, 0x99, 0xfc, + 0x8e, 0x14, 0xe0, 0x9a, 0x1b, 0x89, 0xba, 0x7f, 0xe2, 0x9c, 0xd3, 0x1e, 0xd1, 0xef, 0x4d, 0xd4, + 0x73, 0x67, 0x19, 0x00, 0x34, 0xdc, 0x61, 0x52, 0x3c, 0x62, 0xb4, 0x6c, 0xc5, 0x1a, 0xf6, 0xff, + 0x12, 0x18, 0xe7, 0xd6, 0xc5, 0xe9, 0x00, 0xe4, 0x3d, 0xf3, 0x2c, 0x47, 0xcf, 0x6f, 0xc2, 0x6c, + 0x28, 0x00, 0x46, 0xd3, 0x13, 0x01, 0xc8, 0xc8, 0xc8, 0xe0, 0x48, 0xd2, 0x6b, 0x34, 0x19, 0x63, + 0x4b, 0x0d, 0xa6, 0x99, 0x88, 0x8b, 0x8b, 0x7b, 0x74, 0xf3, 0x22, 0x82, 0xc3, 0xe1, 0xa8, 0x2a, + 0x2f, 0x2f, 0xaf, 0xdc, 0xbe, 0x7d, 0x3b, 0x09, 0x09, 0x09, 0x93, 0x6f, 0x09, 0x18, 0x1c, 0x1c, + 0xa4, 0xba, 0xba, 0x9a, 0xde, 0xde, 0xde, 0x29, 0x6b, 0x62, 0xa1, 0xeb, 0x3a, 0x35, 0x35, 0x35, + 0x27, 0x3d, 0x1e, 0xcf, 0xcb, 0x5a, 0x44, 0x08, 0x2d, 0x58, 0xb0, 0x80, 0x8a, 0x8a, 0x0a, 0xaa, + 0xab, 0xab, 0xa7, 0x6c, 0xac, 0xab, 0xab, 0xe3, 0xd8, 0xb1, 0x63, 0xd3, 0x32, 0x89, 0xc2, 0x66, + 0xb3, 0xe5, 0x01, 0x98, 0xa2, 0x82, 0xd3, 0xe9, 0x24, 0x3f, 0x3f, 0x1f, 0x9f, 0xcf, 0x37, 0x65, + 0x53, 0x30, 0x18, 0x9c, 0x91, 0x09, 0x80, 0x52, 0x4a, 0x9b, 0x60, 0xe4, 0xf3, 0xf9, 0x68, 0x6e, + 0x6e, 0x26, 0x27, 0x27, 0x67, 0xc6, 0x8b, 0x4d, 0x07, 0x26, 0x00, 0xc3, 0x30, 0xac, 0x8d, 0x8d, + 0x8d, 0x54, 0x55, 0x55, 0xcd, 0xa8, 0x79, 0xfe, 0xfc, 0xf9, 0x6c, 0xde, 0xfc, 0xfa, 0x38, 0xdf, + 0xba, 0x75, 0x1b, 0x76, 0xbb, 0x7d, 0xd2, 0x5a, 0x0d, 0x40, 0xd3, 0xb4, 0x70, 0x69, 0x69, 0x29, + 0x69, 0x69, 0x69, 0x88, 0x08, 0xe1, 0x70, 0x78, 0xbc, 0xc0, 0x6c, 0x36, 0xa3, 0xeb, 0x3a, 0x22, + 0x82, 0x61, 0x18, 0x13, 0x9a, 0xed, 0x76, 0x3b, 0x56, 0xab, 0x75, 0x9c, 0x3b, 0x1c, 0x0e, 0x42, + 0xa1, 0xd0, 0xd4, 0x46, 0xb1, 0xf8, 0x72, 0xef, 0x6e, 0xcc, 0xcd, 0x5f, 0x8d, 0xf3, 0xf3, 0x43, + 0xf3, 0xf8, 0xec, 0xfb, 0xb3, 0x7c, 0x77, 0xf4, 0x30, 0xbf, 0x1f, 0xa9, 0x02, 0x52, 0x49, 0x4e, + 0x4e, 0x26, 0x33, 0x73, 0x3e, 0x05, 0x05, 0x85, 0xd8, 0x6c, 0x36, 0x0a, 0x0a, 0x0a, 0x01, 0x48, + 0x4d, 0x4d, 0x25, 0x2b, 0x6b, 0x11, 0xc1, 0x60, 0x10, 0xbf, 0xbf, 0xed, 0xf1, 0x46, 0x23, 0x43, + 0x41, 0xde, 0xc9, 0xba, 0x3e, 0xce, 0xf7, 0x07, 0xc6, 0xfe, 0xa3, 0x91, 0xf0, 0x10, 0xcb, 0x92, + 0xfb, 0xb9, 0x10, 0x4c, 0x25, 0x25, 0x25, 0x05, 0x97, 0xcb, 0xc5, 0x92, 0x25, 0x4b, 0x08, 0x06, + 0x43, 0xb8, 0x5c, 0x2e, 0x00, 0xe2, 0xe2, 0xe2, 0x71, 0xb9, 0x5c, 0x04, 0x02, 0x81, 0x27, 0x1b, + 0x01, 0x5c, 0xb9, 0x67, 0xe1, 0xf8, 0xdd, 0x22, 0xb2, 0xcd, 0x37, 0xc6, 0x9e, 0x89, 0x08, 0x42, + 0x91, 0xe4, 0xfc, 0x7e, 0x3f, 0x7e, 0xbf, 0x9f, 0xb2, 0xb2, 0x1d, 0x34, 0x35, 0x9d, 0xa1, 0xa5, + 0xa5, 0x05, 0x8b, 0xc5, 0x42, 0x6e, 0x6e, 0x2e, 0x87, 0x0e, 0x1d, 0x9c, 0x3a, 0xba, 0x70, 0x38, + 0x7c, 0xaa, 0xb8, 0xb8, 0x78, 0xb9, 0xc9, 0x64, 0x12, 0xfd, 0xde, 0x35, 0x87, 0xc5, 0x39, 0x27, + 0xf3, 0xad, 0x3d, 0x07, 0x39, 0xb0, 0x77, 0x17, 0x1d, 0x7f, 0xd7, 0xdf, 0x75, 0x3a, 0x9d, 0xe7, + 0xd4, 0x60, 0x77, 0xc6, 0x9a, 0xec, 0xf8, 0x1c, 0x80, 0x85, 0x0b, 0xb3, 0x58, 0xb5, 0x6a, 0x15, + 0x45, 0x45, 0x4e, 0x6c, 0x36, 0x1b, 0x4e, 0xe7, 0x52, 0xe2, 0xe3, 0xe3, 0x49, 0x48, 0x48, 0xa4, + 0xa4, 0xa4, 0x94, 0x9e, 0x9e, 0x1e, 0x4e, 0x9c, 0xf8, 0x31, 0xea, 0x71, 0x13, 0x22, 0x5f, 0x5d, + 0x5b, 0x5b, 0xdb, 0xcf, 0xcd, 0xcd, 0xcd, 0x6b, 0x3c, 0x1e, 0xcf, 0x5a, 0x3d, 0xdc, 0xf7, 0xed, + 0x1b, 0x19, 0xd7, 0xa9, 0xf9, 0x60, 0x3d, 0xeb, 0x4d, 0x75, 0xc4, 0x13, 0xf2, 0x79, 0x3c, 0x9e, + 0xb5, 0x6a, 0x20, 0xf0, 0xb9, 0x23, 0x71, 0xec, 0xa2, 0xfb, 0xfb, 0xef, 0xe0, 0xf5, 0xb6, 0x30, + 0x3a, 0x3a, 0x8a, 0xc7, 0xe3, 0xc6, 0xeb, 0x6d, 0xa1, 0xa3, 0xa3, 0x83, 0xce, 0xce, 0x4e, 0xbc, + 0xde, 0x96, 0x09, 0xb1, 0x69, 0x9a, 0x76, 0x7d, 0xca, 0xe8, 0x12, 0x2c, 0xb0, 0x63, 0x51, 0x07, + 0x00, 0x5f, 0xc7, 0x64, 0x67, 0x8a, 0x0c, 0xfb, 0xfa, 0xfa, 0x70, 0xbb, 0xdd, 0x94, 0x96, 0x6e, + 0xa5, 0xa1, 0xa1, 0x01, 0x00, 0x5d, 0xb7, 0x70, 0xf9, 0x72, 0x2b, 0x6e, 0xb7, 0x7b, 0xea, 0xe8, + 0x62, 0x61, 0x88, 0xba, 0xb8, 0xb3, 0x56, 0x9d, 0x8a, 0xf2, 0xd6, 0xdb, 0xf4, 0x00, 0x18, 0xa3, + 0xaa, 0xfd, 0x44, 0xbb, 0xde, 0x8e, 0x95, 0xac, 0xe8, 0x5c, 0x4f, 0x4f, 0x4f, 0xec, 0xce, 0xe9, + 0xea, 0xea, 0x9a, 0xd4, 0x04, 0x22, 0x8f, 0xea, 0x74, 0xb1, 0x72, 0xe5, 0xca, 0x4a, 0xa5, 0xd4, + 0xcc, 0xfe, 0x6a, 0xf8, 0xa1, 0xbe, 0xbe, 0xbe, 0xd8, 0xf4, 0xe4, 0xba, 0xff, 0x06, 0xff, 0x5b, + 0xa3, 0x73, 0xc0, 0xf0, 0x4c, 0x1a, 0x44, 0xe4, 0x34, 0xcc, 0xf0, 0x8e, 0x00, 0xd6, 0xad, 0x5b, + 0x97, 0x64, 0x18, 0xc6, 0xac, 0xe9, 0xd4, 0x9a, 0xcd, 0xe6, 0x50, 0x6d, 0x6d, 0x6d, 0x00, 0xe0, + 0x5f, 0x6d, 0xdb, 0xe2, 0x7f, 0x13, 0xa4, 0x85, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, + 0x44, 0xae, 0x42, 0x60, 0x82, +}; + +const BITMAP_OPAQUE module_pin_filtered_list_xpm[1] = {{ png, sizeof( png ), "module_pin_filtered_list_xpm" }}; + +//EOF diff --git a/bitmaps_png/sources/module_pin_filtered_list.svg b/bitmaps_png/sources/module_pin_filtered_list.svg new file mode 100644 index 0000000000..6363f781fa --- /dev/null +++ b/bitmaps_png/sources/module_pin_filtered_list.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/footprint_info.cpp b/common/footprint_info.cpp index 0907ca81a1..7e4797fa73 100644 --- a/common/footprint_info.cpp +++ b/common/footprint_info.cpp @@ -117,6 +117,9 @@ bool FOOTPRINT_LIST::ReadFootprintFiles( wxArrayString & aFootprintsLibNames ) if( strnicmp( line, "$EndMODULE", 10 ) == 0 ) break; + if( strnicmp( line, "$PAD", 4 ) == 0 ) + ItemLib->m_padCount++; + int id = ((line[0] & 0xFF) << 8) + (line[1] & 0xFF); switch( id ) { diff --git a/cvpcb/class_footprints_listbox.cpp b/cvpcb/class_footprints_listbox.cpp index e0dcab09bb..35b6e60fa8 100644 --- a/cvpcb/class_footprints_listbox.cpp +++ b/cvpcb/class_footprints_listbox.cpp @@ -173,6 +173,36 @@ void FOOTPRINTS_LISTBOX::SetFootprintFilteredList( COMPONENT_INFO* Component, Refresh(); } +void FOOTPRINTS_LISTBOX::SetFootprintFilteredByPinCount( COMPONENT_INFO* Component, + FOOTPRINT_LIST& list ) { + wxString msg; + int OldSelection = GetSelection(); + bool HasItem = false; + + m_FilteredFootprintList.Clear(); + + for( unsigned ii = 0; ii < list.GetCount(); ii++ ) + { + FOOTPRINT_INFO& footprint = list.GetItem(ii); + + if( Component->m_pinCount == footprint.m_padCount ) { + msg.Printf( wxT( "%3d %s" ), m_FilteredFootprintList.GetCount() + 1, + footprint.m_Module.GetData() ); + m_FilteredFootprintList.Add( msg ); + HasItem = true; + } + } + + if( HasItem ) + SetActiveFootprintList( false ); + else + SetActiveFootprintList( true ); + + if( ( GetCount() == 0 ) || ( OldSelection >= GetCount() ) ) + SetSelection( 0, true ); + + Refresh(); +} /** Set the footprint list. We can have 2 footprint list: * The full footprint list diff --git a/cvpcb/cvframe.cpp b/cvpcb/cvframe.cpp index 84172ef68e..7c79e642bf 100644 --- a/cvpcb/cvframe.cpp +++ b/cvpcb/cvframe.cpp @@ -84,6 +84,8 @@ BEGIN_EVENT_TABLE( CVPCB_MAINFRAME, EDA_BASE_FRAME ) EVT_TOOL( ID_PCB_DISPLAY_FOOTPRINT_DOC, CVPCB_MAINFRAME::DisplayDocFile ) EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, CVPCB_MAINFRAME::OnSelectFilteringFootprint ) + EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST, + CVPCB_MAINFRAME::OnSelectFilteringFootprint ) EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, CVPCB_MAINFRAME::OnSelectFilteringFootprint ) @@ -189,7 +191,15 @@ CVPCB_MAINFRAME::~CVPCB_MAINFRAME() if( config ) { - int state = m_mainToolBar->GetToolToggled( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST ); + int state = 0; + if( m_mainToolBar->GetToolToggled( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST ) ) + { + state = 1; + } + else if( m_mainToolBar->GetToolToggled( ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST ) ) + { + state = 2; + } config->Write( wxT( FILTERFOOTPRINTKEY ), state ); } @@ -506,7 +516,8 @@ void CVPCB_MAINFRAME::OnSelectComponent( wxListEvent& event ) #define SELECT_FULL_LIST true int selection = -1; - if( !m_mainToolBar->GetToolToggled( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST ) ) + if( !m_mainToolBar->GetToolToggled( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST ) + && !m_mainToolBar->GetToolToggled( ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST )) m_FootprintList->SetActiveFootprintList( SELECT_FULL_LIST, REDRAW_LIST ); else @@ -521,8 +532,18 @@ void CVPCB_MAINFRAME::OnSelectComponent( wxListEvent& event ) if( &m_components[ selection ] == NULL ) m_FootprintList->SetActiveFootprintList( SELECT_FULL_LIST, REDRAW_LIST ); else - m_FootprintList->SetFootprintFilteredList( &m_components[ selection ], - m_footprints ); + { + if( m_mainToolBar->GetToolToggled( ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST ) ) + { + m_FootprintList->SetFootprintFilteredByPinCount( &m_components[ selection ], + m_footprints ); + } + else + { + m_FootprintList->SetFootprintFilteredList( &m_components[ selection ], + m_footprints ); + } + } } } @@ -572,12 +593,19 @@ void CVPCB_MAINFRAME::OnSelectFilteringFootprint( wxCommandEvent& event ) { switch( event.GetId() ) { + case ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST: + m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, false ); + m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, false ); + break; + case ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST: m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, false ); + m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST, false ); break; case ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST: m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, false ); + m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST, false ); break; default: diff --git a/cvpcb/cvpcb_id.h b/cvpcb/cvpcb_id.h index 48b3f8be7b..c37f6eea29 100644 --- a/cvpcb/cvpcb_id.h +++ b/cvpcb/cvpcb_id.h @@ -30,5 +30,6 @@ enum id_cvpcb_frm ID_CVPCB_SHOW3D_FRAME, ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, + ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST, ID_CVPCB_CONFIG_KEEP_OPEN_ON_SAVE }; diff --git a/cvpcb/cvstruct.h b/cvpcb/cvstruct.h index 4aec946433..c95bfde9fe 100644 --- a/cvpcb/cvstruct.h +++ b/cvpcb/cvstruct.h @@ -54,6 +54,8 @@ public: void SetFootprintFullList( FOOTPRINT_LIST& list ); void SetFootprintFilteredList( COMPONENT_INFO* Component, FOOTPRINT_LIST& list ); + void SetFootprintFilteredByPinCount( COMPONENT_INFO* Component, + FOOTPRINT_LIST& list ); void SetActiveFootprintList( bool FullList, bool Redraw = false ); wxString GetSelectedFootprint(); diff --git a/cvpcb/tool_cvpcb.cpp b/cvpcb/tool_cvpcb.cpp index 3cf0a857b7..78f3ab6178 100644 --- a/cvpcb/tool_cvpcb.cpp +++ b/cvpcb/tool_cvpcb.cpp @@ -103,6 +103,13 @@ used by Eeschema to fill the footprint field of components)" ) ); _( "Display the filtered footprint list for the current component" ), wxEmptyString ); + m_mainToolBar->AddTool( ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST, + KiBitmap( module_pin_filtered_list_xpm ), + wxNullBitmap, + true, NULL, + _( "Display the filtered footprint list by pin count for the current component" ), + wxEmptyString ); + m_mainToolBar->AddTool( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, KiBitmap( module_full_list_xpm ), wxNullBitmap, true, NULL, @@ -113,8 +120,9 @@ used by Eeschema to fill the footprint field of components)" ) ); { wxString key = wxT( FILTERFOOTPRINTKEY ); int opt = config->Read( key, (long) 1 ); - m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, opt ); - m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, !opt ); + m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_PIN_FILTERED_LIST, opt == 2 ); + m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, opt == 1 ); + m_mainToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, opt == 0 ); } // after adding the buttons to the toolbar, must call Realize() to reflect the changes diff --git a/include/bitmaps.h b/include/bitmaps.h index ad07b108a7..ddd10dceed 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -294,6 +294,7 @@ EXTERN_BITMAP( mod_ratsnest_xpm ) EXTERN_BITMAP( module_check_xpm ) EXTERN_BITMAP( module_edit_xpm ) EXTERN_BITMAP( module_filtered_list_xpm ) +EXTERN_BITMAP( module_pin_filtered_list_xpm ) EXTERN_BITMAP( module_full_list_xpm ) EXTERN_BITMAP( module_options_xpm ) EXTERN_BITMAP( module_ratsnest_xpm ) diff --git a/include/footprint_info.h b/include/footprint_info.h index c23aca99e4..1c4cba02a1 100644 --- a/include/footprint_info.h +++ b/include/footprint_info.h @@ -23,10 +23,12 @@ public: int m_Num; /* Order number in the display list. */ wxString m_Doc; /* Footprint description. */ wxString m_KeyWord; /* Footprint key words. */ + int m_padCount; /* Number of pads */ FOOTPRINT_INFO() { m_Num = 0; + m_padCount = 0; } }; diff --git a/pcbnew/netlist_reader.h b/pcbnew/netlist_reader.h index bc958b8128..c75d58f0f4 100644 --- a/pcbnew/netlist_reader.h +++ b/pcbnew/netlist_reader.h @@ -81,6 +81,7 @@ public: wxString m_TimeStamp; // the schematic full time stamp found in netlist wxString m_Libpart; // the schematic libpart found in netlist wxArrayString m_FootprintFilter; // a footprint filters list found in old format netlist + int m_pinCount; // the number of pins found in the netlist public: COMPONENT_INFO( const wxString& libname, const wxString& cmpname, @@ -91,6 +92,7 @@ public: COMPONENT_INFO( const wxString& libname, m_Reference = cmpname; m_Value = value; m_TimeStamp = timestamp; + m_pinCount = 0; } ~COMPONENT_INFO() { }; @@ -409,9 +411,10 @@ private: * If true: component file *.cmp is used * If false: the netlist only is used * This flag is reset to false if the .cmp file is not found - * @return a reference to the corresponding module on board (NULL if not found) + * @return if aBuildList = true, a reference to the COMPONENT_INFO + * if aBuildList = false, a reference to the corresponding MODULE on board (NULL if not found) */ - MODULE* ReadOldFmtNetlistModuleDescr( char* aText, bool aBuildList ); + void* ReadOldFmtNetlistModuleDescr( char* aText, bool aBuildList ); /** * Function loadNewModules diff --git a/pcbnew/netlist_reader_firstformat.cpp b/pcbnew/netlist_reader_firstformat.cpp index 40a8fb0624..bb481a2bbc 100644 --- a/pcbnew/netlist_reader_firstformat.cpp +++ b/pcbnew/netlist_reader_firstformat.cpp @@ -83,6 +83,7 @@ bool NETLIST_READER::ReadOldFmtdNetList( FILE* aFile ) // netlineReader dtor will close aFile FILE_LINE_READER netlineReader( aFile, m_netlistFullName ); + COMPONENT_INFO *curComponent = NULL; while( netlineReader.ReadLine() ) { char* line = StrPurge( netlineReader.Line() ); @@ -116,12 +117,15 @@ bool NETLIST_READER::ReadOldFmtdNetList( FILE* aFile ) if( state == 2 ) { - ReadOldFmtNetlistModuleDescr( line, BUILDLIST ); + curComponent = (COMPONENT_INFO*)ReadOldFmtNetlistModuleDescr( line, BUILDLIST ); continue; } if( state >= 3 ) // First pass: pad descriptions are not read here. { + if( curComponent ) { + curComponent->m_pinCount++; + } state--; } } @@ -191,7 +195,7 @@ bool NETLIST_READER::ReadOldFmtdNetList( FILE* aFile ) if( state == 2 ) { - m_currModule = ReadOldFmtNetlistModuleDescr( line, READMODULE ); + m_currModule = (MODULE*)ReadOldFmtNetlistModuleDescr( line, READMODULE ); continue; } @@ -216,7 +220,7 @@ bool NETLIST_READER::ReadOldFmtdNetList( FILE* aFile ) * (2 MODB_1) * ) */ -MODULE* NETLIST_READER::ReadOldFmtNetlistModuleDescr( char* aText, bool aBuildList ) +void* NETLIST_READER::ReadOldFmtNetlistModuleDescr( char* aText, bool aBuildList ) { char* text; wxString timeStampPath; // the full time stamp read from netlist @@ -264,7 +268,7 @@ MODULE* NETLIST_READER::ReadOldFmtNetlistModuleDescr( char* aText, bool aBuildLi COMPONENT_INFO* cmp_info = new COMPONENT_INFO( footprintName, cmpReference, cmpValue, timeStampPath ); AddModuleInfo( cmp_info ); - return NULL; + return cmp_info; } // search the module loaded on board From 67bb18921b9c05937ee1db00f60cf7c0c26bfb12 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 16 Mar 2012 20:08:57 +0100 Subject: [PATCH 21/68] Eeschema: fix bug Bug #956818 --- eeschema/bus-wire-junction.cpp | 14 ++++++++++++++ include/pcbcommon.h | 4 ---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/eeschema/bus-wire-junction.cpp b/eeschema/bus-wire-junction.cpp index a81042526e..25d5c0f2e4 100644 --- a/eeschema/bus-wire-junction.cpp +++ b/eeschema/bus-wire-junction.cpp @@ -107,7 +107,21 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type ) SCH_LINE* nextSegment; wxPoint cursorpos = GetScreen()->GetCrossHairPosition(); + // We should know id a segment is currently in progress segment = (SCH_LINE*) GetScreen()->GetCurItem(); + if( segment ) // a current item exists, but not necessary a currently edited item + { + if( !segment->GetFlags() || ( segment->Type() != SCH_LINE_T ) ) + { + if( segment->GetFlags() ) + { + wxLogDebug( wxT( "BeginSegment: item->GetFlags()== %X" ), + segment->GetFlags() ); + } + // no wire, bus or graphic line in progress + segment = NULL; + } + } if( !segment ) /* first point : Create first wire or bus */ { diff --git a/include/pcbcommon.h b/include/pcbcommon.h index 1fc354e525..4e7d1f7882 100644 --- a/include/pcbcommon.h +++ b/include/pcbcommon.h @@ -9,14 +9,10 @@ #include #include // LAYER_COUNT and NB_COPPER_LAYERS definitions. -//#include // wxString class. -//#include // wxArrayString class. - #define MIN_DRAW_WIDTH 1 ///< Minimum trace drawing width. -//class PCB_SCREEN; class D_PAD; class TRACK; class BOARD; From e3dbc609d12c315fdf099bb69211c8d82ac358e4 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Fri, 16 Mar 2012 21:11:44 -0500 Subject: [PATCH 22/68] cleanups --- CHANGELOG.txt | 2 +- eeschema/schedit.cpp | 2 +- pcbnew/class_pad.h | 2 +- pcbnew/dialogs/dialog_pad_properties.cpp | 75 ++++++++++++++---------- 4 files changed, 46 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 2ba941fb52..5ec349d655 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -7,7 +7,7 @@ email address. 2012-Mar-11 UPDATE Dick Hollenbeck ================================================================================ ++pcbnew - * Add PCB_EDIT_FRAME::syncLayerVisibilities, PCB_LAYER_MANAGER::SyncLayerVisibilities(). + * Add PCB_EDIT_FRAME::syncLayerVisibilities(), PCB_LAYER_MANAGER::SyncLayerVisibilities(). * Save all visibilities, layer and render, in BOARD and restore on load. diff --git a/eeschema/schedit.cpp b/eeschema/schedit.cpp index fefb19b17f..6c288acc5f 100644 --- a/eeschema/schedit.cpp +++ b/eeschema/schedit.cpp @@ -455,7 +455,7 @@ void SCH_EDIT_FRAME::OnCancelCurrentCommand( wxCommandEvent& aEvent ) void SCH_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) { - int id = aEvent.GetId(); + id_eeschema_frm id = (id_eeschema_frm) aEvent.GetId(); // Stop the current command and deselect the current tool. m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); diff --git a/pcbnew/class_pad.h b/pcbnew/class_pad.h index a5ec232dbe..f3298ee4b1 100644 --- a/pcbnew/class_pad.h +++ b/pcbnew/class_pad.h @@ -496,7 +496,7 @@ private: /** * m_Offset is useful only for oblong pads (it can be used for other * shapes, but without any interest). - * this is the offset between the pad hole and the pad shape (you must + * This is the offset between the pad hole and the pad shape (you must * understand here pad shape = copper area around the hole) * Most of cases, the hole is the center of the shape (m_Offset = 0). * But some board designers use oblong pads with a hole moved to one of the diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index b1031fd3f5..7333af9d12 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -30,14 +30,16 @@ static PAD_SHAPE_T CodeShape[] = { }; -#define NBTYPES 4 -static PAD_ATTR_T CodeType[NBTYPES] = { +static PAD_ATTR_T CodeType[] = { PAD_STANDARD, PAD_SMD, PAD_CONN, PAD_HOLE_NOT_PLATED }; +#define NBTYPES DIM(CodeType) + + // Default mask layers setup for pads according to the pad type -static long Std_Pad_Layers[NBTYPES] = -{ +static long Std_Pad_Layers[] = { + // PAD_STANDARD: PAD_STANDARD_DEFAULT_LAYERS, @@ -81,21 +83,35 @@ private: bool m_canUpdate; - static wxPoint prevPosition; - static wxSize prevSize; + static wxPoint prevPosition; + static wxSize prevSize; void initValues(); - bool PadValuesOK(); // test if all values are acceptable for the pad + + bool PadValuesOK(); ///< test if all values are acceptable for the pad + void OnPadShapeSelection( wxCommandEvent& event ); void OnDrillShapeSelected( wxCommandEvent& event ); void PadOrientEvent( wxCommandEvent& event ); void PadTypeSelected( wxCommandEvent& event ); + + /// Updates the different parameters for the component being edited. void PadPropertiesAccept( wxCommandEvent& event ); + + /** + * Function SetPadLayersList + * updates the CheckBox states in pad layers list, + * @param layer_mask = pad layer mask (ORed layers bit mask) + */ void SetPadLayersList( long layer_mask ); + void OnSetLayers( wxCommandEvent& event ); void OnCancelButtonClick( wxCommandEvent& event ); void OnPaintShowPanel( wxPaintEvent& event ); bool TransfertDataToPad( D_PAD* aPad ); + + /// Called when a dimension has changed. + /// Update the graphical pad shown in the panel. void OnValuesChanged( wxCommandEvent& event ); }; @@ -160,6 +176,7 @@ void DIALOG_PAD_PROPERTIES::OnPaintShowPanel( wxPaintEvent& event ) drawInfo.m_Offset = m_dummyPad->GetPosition(); drawInfo.m_Display_padnum = true; drawInfo.m_Display_netname = true; + if( m_dummyPad->GetAttribute() == PAD_HOLE_NOT_PLATED ) drawInfo.m_ShowNotPlatedHole = true; @@ -195,9 +212,9 @@ void DIALOG_PAD_PROPERTIES::OnPaintShowPanel( wxPaintEvent& event ) } -void PCB_BASE_FRAME::InstallPadOptionsFrame( D_PAD* Pad ) +void PCB_BASE_FRAME::InstallPadOptionsFrame( D_PAD* aPad ) { - DIALOG_PAD_PROPERTIES dlg( this, Pad ); + DIALOG_PAD_PROPERTIES dlg( this, aPad ); dlg.ShowModal(); } @@ -560,7 +577,7 @@ void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) int ii; ii = m_PadType->GetSelection(); - if( (ii < 0) || ( ii >= NBTYPES) ) + if( ii < 0 || ii >= NBTYPES ) ii = 0; layer_mask = Std_Pad_Layers[ii]; @@ -569,6 +586,7 @@ void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) // Enable/disable drill dialog items: event.SetId( m_DrillShapeCtrl->GetSelection() ); OnDrillShapeSelected( event ); + if( ii == 0 || ii == NBTYPES-1 ) m_DrillShapeCtrl->Enable( true ); else @@ -584,11 +602,6 @@ void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) void DIALOG_PAD_PROPERTIES::SetPadLayersList( long layer_mask ) - -/** SetPadLayersList - * Update the CheckBoxes state in pad layers list, - * @param layer_mask = pad layer mask (ORed layers bit mask) - */ { if( ( layer_mask & ALL_CU_LAYERS ) == LAYER_FRONT ) m_rbCopperLayersSel->SetSelection(0); @@ -599,22 +612,22 @@ void DIALOG_PAD_PROPERTIES::SetPadLayersList( long layer_mask ) else m_rbCopperLayersSel->SetSelection(3); - m_PadLayerAdhCmp->SetValue( ( layer_mask & ADHESIVE_LAYER_FRONT ) ); - m_PadLayerAdhCu->SetValue( ( layer_mask & ADHESIVE_LAYER_BACK ) ); + m_PadLayerAdhCmp->SetValue( bool( layer_mask & ADHESIVE_LAYER_FRONT ) ); + m_PadLayerAdhCu->SetValue( bool( layer_mask & ADHESIVE_LAYER_BACK ) ); - m_PadLayerPateCmp->SetValue( ( layer_mask & SOLDERPASTE_LAYER_FRONT ) ); - m_PadLayerPateCu->SetValue( ( layer_mask & SOLDERPASTE_LAYER_BACK ) ); + m_PadLayerPateCmp->SetValue( bool( layer_mask & SOLDERPASTE_LAYER_FRONT ) ); + m_PadLayerPateCu->SetValue( bool( layer_mask & SOLDERPASTE_LAYER_BACK ) ); - m_PadLayerSilkCmp->SetValue( ( layer_mask & SILKSCREEN_LAYER_FRONT ) ); - m_PadLayerSilkCu->SetValue( ( layer_mask & SILKSCREEN_LAYER_BACK ) ); + m_PadLayerSilkCmp->SetValue( bool( layer_mask & SILKSCREEN_LAYER_FRONT ) ); + m_PadLayerSilkCu->SetValue( bool( layer_mask & SILKSCREEN_LAYER_BACK ) ); - m_PadLayerMaskCmp->SetValue( ( layer_mask & SOLDERMASK_LAYER_FRONT ) ); - m_PadLayerMaskCu->SetValue( ( layer_mask & SOLDERMASK_LAYER_BACK ) ); + m_PadLayerMaskCmp->SetValue( bool( layer_mask & SOLDERMASK_LAYER_FRONT ) ); + m_PadLayerMaskCu->SetValue( bool( layer_mask & SOLDERMASK_LAYER_BACK ) ); - m_PadLayerECO1->SetValue( ( layer_mask & ECO1_LAYER ) ); - m_PadLayerECO2->SetValue( ( layer_mask & ECO2_LAYER ) ); + m_PadLayerECO1->SetValue( bool( layer_mask & ECO1_LAYER ) ); + m_PadLayerECO2->SetValue( bool( layer_mask & ECO2_LAYER ) ); - m_PadLayerDraft->SetValue( ( layer_mask & DRAW_LAYER ) ); + m_PadLayerDraft->SetValue( bool( layer_mask & DRAW_LAYER ) ); } @@ -625,6 +638,7 @@ void DIALOG_PAD_PROPERTIES::OnSetLayers( wxCommandEvent& event ) m_panelShowPad->Refresh(); } + // test if all values are acceptable for the pad bool DIALOG_PAD_PROPERTIES::PadValuesOK() { @@ -697,12 +711,10 @@ if you do not want this pad plotted in gerber files"); return error_msgs.GetCount() == 0; } -void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) -/* Updates the different parameters for the component being edited. - */ +void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) { - if( ! PadValuesOK() ) + if( !PadValuesOK() ) return; bool rastnestIsChanged = false; @@ -988,6 +1000,7 @@ bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad ) case PAD_CONN: case PAD_SMD: + // Offset is a translation of border relative to hole. SMD has no hole. aPad->SetOffset( wxPoint( 0, 0 ) ); aPad->SetDrillSize( wxSize( 0, 0 ) ); break; @@ -1054,8 +1067,6 @@ bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad ) } -// Called when a dimension has change. -// Update the pad dimensions shown in the panel. void DIALOG_PAD_PROPERTIES::OnValuesChanged( wxCommandEvent& event ) { if( m_canUpdate ) From 7b6b9a6e227fd328091ae6bd344343b11901cc08 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Sat, 17 Mar 2012 10:39:27 -0400 Subject: [PATCH 23/68] Minor code and Doxygen comment improvements. * Remove double Clone() function calls from all classes derived from EDA_ITEM. * Lots of Doxygen comment warning fixes. --- common/base_struct.cpp | 17 ++++-------- eeschema/bus-wire-junction.cpp | 2 +- eeschema/lib_arc.cpp | 2 +- eeschema/lib_arc.h | 11 +++----- eeschema/lib_bezier.cpp | 2 +- eeschema/lib_bezier.h | 13 ++++----- eeschema/lib_circle.cpp | 2 +- eeschema/lib_circle.h | 13 ++++----- eeschema/lib_draw_item.h | 9 +------ eeschema/lib_field.cpp | 2 +- eeschema/lib_field.h | 13 ++++----- eeschema/lib_pin.cpp | 2 +- eeschema/lib_pin.h | 17 ++++-------- eeschema/lib_polyline.cpp | 2 +- eeschema/lib_polyline.h | 11 +++----- eeschema/lib_rectangle.cpp | 2 +- eeschema/lib_rectangle.h | 11 +++----- eeschema/lib_text.cpp | 2 +- eeschema/lib_text.h | 11 +++----- eeschema/netlist_control.h | 2 -- eeschema/operations_on_items_lists.cpp | 2 +- eeschema/sch_bitmap.cpp | 2 +- eeschema/sch_bitmap.h | 10 +++---- eeschema/sch_bus_entry.cpp | 2 +- eeschema/sch_bus_entry.h | 10 +++---- eeschema/sch_component.cpp | 2 +- eeschema/sch_component.h | 9 ++++--- eeschema/sch_field.cpp | 2 +- eeschema/sch_field.h | 10 +++---- eeschema/sch_junction.cpp | 2 +- eeschema/sch_junction.h | 9 ++++--- eeschema/sch_line.cpp | 2 +- eeschema/sch_line.h | 9 ++++--- eeschema/sch_marker.cpp | 2 +- eeschema/sch_marker.h | 7 ++--- eeschema/sch_no_connect.cpp | 2 +- eeschema/sch_no_connect.h | 9 ++++--- eeschema/sch_polyline.cpp | 2 +- eeschema/sch_polyline.h | 10 +++---- eeschema/sch_screen.cpp | 2 +- eeschema/sch_sheet.cpp | 2 +- eeschema/sch_sheet.h | 17 ++++++------ eeschema/sch_sheet_pin.cpp | 2 +- eeschema/sch_text.cpp | 8 +++--- eeschema/sch_text.h | 31 ++++++++++++---------- eeschema/schframe.cpp | 2 +- include/base_struct.h | 28 ++++++------------- include/common.h | 2 +- include/sch_item_struct.h | 3 +-- include/wxPcbStruct.h | 3 +-- pcbnew/board_undo_redo.cpp | 7 +++-- pcbnew/class_dimension.cpp | 2 +- pcbnew/class_dimension.h | 15 +++++------ pcbnew/class_drawsegment.cpp | 2 +- pcbnew/class_drawsegment.h | 15 +++++------ pcbnew/class_edge_mod.cpp | 2 +- pcbnew/class_edge_mod.h | 6 ++--- pcbnew/class_marker_pcb.h | 4 +-- pcbnew/class_mire.cpp | 2 +- pcbnew/class_mire.h | 15 +++++------ pcbnew/class_module.cpp | 2 +- pcbnew/class_module.h | 22 +++++++-------- pcbnew/class_pad.cpp | 2 +- pcbnew/class_pad.h | 9 ++++--- pcbnew/class_pcb_text.cpp | 2 +- pcbnew/class_pcb_text.h | 14 +++++----- pcbnew/class_text_mod.cpp | 2 +- pcbnew/class_text_mod.h | 10 +++---- pcbnew/class_track.cpp | 6 ++--- pcbnew/class_track.h | 22 +++++++-------- pcbnew/class_zone.cpp | 2 +- pcbnew/class_zone.h | 14 +++++----- pcbnew/ioascii.cpp | 30 +++++++++++---------- pcbnew/zones.h | 11 ++++---- pcbnew/zones_non_copper_type_functions.cpp | 8 +++--- 75 files changed, 262 insertions(+), 313 deletions(-) diff --git a/common/base_struct.cpp b/common/base_struct.cpp index 97abdc851b..a2119ab66b 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -99,17 +99,10 @@ void EDA_ITEM::SetModified() } -EDA_ITEM* EDA_ITEM::doClone() const -{ - wxCHECK_MSG( false, NULL, wxT( "doClone not implemented in derived class " ) + GetClass() + - wxT( ". Bad programmer." ) ); -} - - EDA_ITEM* EDA_ITEM::Clone() const { - // save about 6 bytes per call by hiding the virtual function in this non-inline function. - return doClone(); + wxCHECK_MSG( false, NULL, wxT( "Clone not implemented in derived class " ) + GetClass() + + wxT( ". Bad programmer!" ) ); } @@ -272,9 +265,9 @@ std::ostream& EDA_ITEM::NestedSpace( int nestLevel, std::ostream& os ) #endif -/**************************************************/ -/* EDA_TEXT (basic class, not directly used */ -/**************************************************/ +/*******************************************/ +/* EDA_TEXT (base class, not directly used */ +/*******************************************/ EDA_TEXT::EDA_TEXT( const wxString& text ) { m_Size.x = m_Size.y = DEFAULT_SIZE_TEXT; // Width and height of font. diff --git a/eeschema/bus-wire-junction.cpp b/eeschema/bus-wire-junction.cpp index 25d5c0f2e4..0440b6efb8 100644 --- a/eeschema/bus-wire-junction.cpp +++ b/eeschema/bus-wire-junction.cpp @@ -476,7 +476,7 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC ) if( m_itemToRepeat == NULL ) return; - m_itemToRepeat = m_itemToRepeat->Clone(); + m_itemToRepeat = (SCH_ITEM*) m_itemToRepeat->Clone(); if( m_itemToRepeat->Type() == SCH_COMPONENT_T ) // If repeat component then put in move mode { diff --git a/eeschema/lib_arc.cpp b/eeschema/lib_arc.cpp index a91c76778d..17007ca0ae 100644 --- a/eeschema/lib_arc.cpp +++ b/eeschema/lib_arc.cpp @@ -221,7 +221,7 @@ bool LIB_ARC::HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTran } -EDA_ITEM* LIB_ARC::doClone() const +EDA_ITEM* LIB_ARC::Clone() const { return new LIB_ARC( *this ); } diff --git a/eeschema/lib_arc.h b/eeschema/lib_arc.h index ecef241c86..a5a1e74986 100644 --- a/eeschema/lib_arc.h +++ b/eeschema/lib_arc.h @@ -106,12 +106,7 @@ public: virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** - * Tests if the given wxPoint is within the bounds of this object. - * - * @param aPosition - Coordinates to test - * @return - True if a hit, else false - */ + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ); /** @@ -204,8 +199,10 @@ public: /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_arc_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: - virtual EDA_ITEM* doClone() const; /** * Function compare diff --git a/eeschema/lib_bezier.cpp b/eeschema/lib_bezier.cpp index 4b5e51cdb8..0587b859bd 100644 --- a/eeschema/lib_bezier.cpp +++ b/eeschema/lib_bezier.cpp @@ -132,7 +132,7 @@ bool LIB_BEZIER::Load( LINE_READER& aLineReader, wxString& aErrorMsg ) } -EDA_ITEM* LIB_BEZIER::doClone() const +EDA_ITEM* LIB_BEZIER::Clone() const { return new LIB_BEZIER( *this ); } diff --git a/eeschema/lib_bezier.h b/eeschema/lib_bezier.h index 083ac5e1c6..084b4918cd 100644 --- a/eeschema/lib_bezier.h +++ b/eeschema/lib_bezier.h @@ -84,13 +84,8 @@ public: */ unsigned GetCornerCount() const { return m_PolyPoints.size(); } - /** - * Test if the given point is within the bounds of this object. - * - * @param aRefPos - A wxPoint to test - * @return true if a hit, else false - */ - virtual bool HitTest( const wxPoint& aRefPos ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); /** * @param aPosRef = a wxPoint to test @@ -160,8 +155,10 @@ public: virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: - virtual EDA_ITEM* doClone() const; /** * Function compare diff --git a/eeschema/lib_circle.cpp b/eeschema/lib_circle.cpp index 2009248f0f..1c945c9a42 100644 --- a/eeschema/lib_circle.cpp +++ b/eeschema/lib_circle.cpp @@ -114,7 +114,7 @@ bool LIB_CIRCLE::HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTra } -EDA_ITEM* LIB_CIRCLE::doClone() const +EDA_ITEM* LIB_CIRCLE::Clone() const { return new LIB_CIRCLE( *this ); } diff --git a/eeschema/lib_circle.h b/eeschema/lib_circle.h index 2385acb845..854aa9e385 100644 --- a/eeschema/lib_circle.h +++ b/eeschema/lib_circle.h @@ -75,13 +75,8 @@ public: virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** - * Test if the given point is within the bounds of this object. - * - * @param aPosRef - A wxPoint to test - * @return bool - true if a hit, else false - */ - virtual bool HitTest( const wxPoint& aPosRef ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); /** * @param aPosRef - a wxPoint to test @@ -174,8 +169,10 @@ public: /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_circle_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: - virtual EDA_ITEM* doClone() const; /** * Function compare diff --git a/eeschema/lib_draw_item.h b/eeschema/lib_draw_item.h index f099189ba5..930547464c 100644 --- a/eeschema/lib_draw_item.h +++ b/eeschema/lib_draw_item.h @@ -227,14 +227,7 @@ public: return (LIB_COMPONENT *)m_Parent; } - /** - * Tests if the given point is within the bounds of this object. - * - * Derived classes should override this function. - * - * @param aPosition - The coordinates to test. - * @return - true if a hit, else false - */ + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ) { return false; diff --git a/eeschema/lib_field.cpp b/eeschema/lib_field.cpp index bca677fcb9..0e6228eb39 100644 --- a/eeschema/lib_field.cpp +++ b/eeschema/lib_field.cpp @@ -369,7 +369,7 @@ bool LIB_FIELD::HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTr } -EDA_ITEM* LIB_FIELD::doClone() const +EDA_ITEM* LIB_FIELD::Clone() const { LIB_FIELD* newfield = new LIB_FIELD( m_id ); diff --git a/eeschema/lib_field.h b/eeschema/lib_field.h index adfe8034db..1bcfa2ddb9 100644 --- a/eeschema/lib_field.h +++ b/eeschema/lib_field.h @@ -187,13 +187,8 @@ public: */ virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); - /** - * Test if the given point is within the bounds of this object. - * - * @param aPosition A point to test in field coordinate system - * @return True if a hit, else false - */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); /** * @param aPosition = a wxPoint to test @@ -325,8 +320,10 @@ public: /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return move_field_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: - virtual EDA_ITEM* doClone() const; /** * Function compare diff --git a/eeschema/lib_pin.cpp b/eeschema/lib_pin.cpp index 4639c7b788..9034ec0e59 100644 --- a/eeschema/lib_pin.cpp +++ b/eeschema/lib_pin.cpp @@ -1670,7 +1670,7 @@ void LIB_PIN::SetPinNumFromString( wxString& buffer ) } -EDA_ITEM* LIB_PIN::doClone() const +EDA_ITEM* LIB_PIN::Clone() const { return new LIB_PIN( *this ); } diff --git a/eeschema/lib_pin.h b/eeschema/lib_pin.h index be0e8f5abd..993ea559fa 100644 --- a/eeschema/lib_pin.h +++ b/eeschema/lib_pin.h @@ -149,17 +149,8 @@ public: virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** - * Function HitTest - * verifies that \a aRefPos within the bounds of this pin attached to \a aComponent. - *

- * The coordinates of the pin are calculated relative to \a aComponent if not NULL. - * Otherwise, the pin coordinates are relative to the library anchor position. - *

- * @param aRefPos A wxPoint to test - * @return True \a aRefPos lies within the pin bounding box else false. - */ - virtual bool HitTest( const wxPoint& aRefPos ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); /** * @param aPosRef - a wxPoint to test @@ -575,8 +566,10 @@ public: /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: - virtual EDA_ITEM* doClone() const; /** * Function compare diff --git a/eeschema/lib_polyline.cpp b/eeschema/lib_polyline.cpp index 36a8e1f95c..3022fbb4c1 100644 --- a/eeschema/lib_polyline.cpp +++ b/eeschema/lib_polyline.cpp @@ -133,7 +133,7 @@ bool LIB_POLYLINE::Load( LINE_READER& aLineReader, wxString& aErrorMsg ) } -EDA_ITEM* LIB_POLYLINE::doClone() const +EDA_ITEM* LIB_POLYLINE::Clone() const { return new LIB_POLYLINE( *this ); } diff --git a/eeschema/lib_polyline.h b/eeschema/lib_polyline.h index 874172254e..d56156af31 100644 --- a/eeschema/lib_polyline.h +++ b/eeschema/lib_polyline.h @@ -88,12 +88,7 @@ public: */ unsigned GetCornerCount() const { return m_PolyPoints.size(); } - /** - * Test if the given point is within the bounds of this object. - * - * @param aPosition - A wxPoint to test - * @return - true if a hit, else false - */ + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ); /** @@ -190,8 +185,10 @@ public: /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_polygon_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: - virtual EDA_ITEM* doClone() const; /** * Function compare diff --git a/eeschema/lib_rectangle.cpp b/eeschema/lib_rectangle.cpp index d70e69ea40..bdab1b5f03 100644 --- a/eeschema/lib_rectangle.cpp +++ b/eeschema/lib_rectangle.cpp @@ -88,7 +88,7 @@ bool LIB_RECTANGLE::Load( LINE_READER& aLineReader, wxString& aErrorMsg ) } -EDA_ITEM* LIB_RECTANGLE::doClone() const +EDA_ITEM* LIB_RECTANGLE::Clone() const { return new LIB_RECTANGLE( *this ); } diff --git a/eeschema/lib_rectangle.h b/eeschema/lib_rectangle.h index 97b9191f25..5f1dd6c090 100644 --- a/eeschema/lib_rectangle.h +++ b/eeschema/lib_rectangle.h @@ -79,12 +79,7 @@ public: virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** - * Test if the given point is within the bounds of this object. - * - * @param aPosition - A wxPoint to test - * @return - true if a hit, else false - */ + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ); /** @@ -178,8 +173,10 @@ public: /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_rectangle_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: - virtual EDA_ITEM* doClone() const; /** * Function compare diff --git a/eeschema/lib_text.cpp b/eeschema/lib_text.cpp index 03ef17ca8a..2d34bfff6e 100644 --- a/eeschema/lib_text.cpp +++ b/eeschema/lib_text.cpp @@ -214,7 +214,7 @@ bool LIB_TEXT::HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTra } -EDA_ITEM* LIB_TEXT::doClone() const +EDA_ITEM* LIB_TEXT::Clone() const { LIB_TEXT* newitem = new LIB_TEXT(NULL); diff --git a/eeschema/lib_text.h b/eeschema/lib_text.h index bf3e9a613d..86eeba4905 100644 --- a/eeschema/lib_text.h +++ b/eeschema/lib_text.h @@ -94,12 +94,7 @@ public: virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** - * Test if the given point is within the bounds of this object. - * - * @param aPosition - A wxPoint to test - * @return - true if a hit, else false - */ + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ); /** @@ -210,8 +205,10 @@ public: /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: - virtual EDA_ITEM* doClone() const; /** * Function compare diff --git a/eeschema/netlist_control.h b/eeschema/netlist_control.h index b5373e1d5c..64dcbf392e 100644 --- a/eeschema/netlist_control.h +++ b/eeschema/netlist_control.h @@ -65,8 +65,6 @@ public: * @param id_NetType = netlist type id * @param idCheckBox = event ID attached to the "format is default" check box * @param idCreateFile = event ID attached to the "create netlist" button - * @param selected = true to have this notebook page selected when the dialog is opened - * Only one page can be created with selected = true. */ NETLIST_PAGE_DIALOG( wxNotebook* parent, const wxString& title, int id_NetType, int idCheckBox, int idCreateFile ); diff --git a/eeschema/operations_on_items_lists.cpp b/eeschema/operations_on_items_lists.cpp index 461e22ed73..c7cad1af69 100644 --- a/eeschema/operations_on_items_lists.cpp +++ b/eeschema/operations_on_items_lists.cpp @@ -237,7 +237,7 @@ SCH_ITEM* DuplicateStruct( SCH_ITEM* aDrawStruct, bool aClone ) wxCHECK_MSG( aDrawStruct != NULL, NULL, wxT( "Cannot duplicate NULL schematic item! Bad programmer." ) ); - SCH_ITEM* NewDrawStruct = aDrawStruct->Clone(); + SCH_ITEM* NewDrawStruct = (SCH_ITEM*) aDrawStruct->Clone(); if( aClone ) NewDrawStruct->SetTimeStamp( aDrawStruct->GetTimeStamp() ); diff --git a/eeschema/sch_bitmap.cpp b/eeschema/sch_bitmap.cpp index ea725d2785..c42476e7f3 100644 --- a/eeschema/sch_bitmap.cpp +++ b/eeschema/sch_bitmap.cpp @@ -122,7 +122,7 @@ bool SCH_BITMAP::Save( FILE* aFile ) const } -EDA_ITEM* SCH_BITMAP::doClone() const +EDA_ITEM* SCH_BITMAP::Clone() const { return new SCH_BITMAP( *this ); } diff --git a/eeschema/sch_bitmap.h b/eeschema/sch_bitmap.h index 743938a4a6..1439b24ec6 100644 --- a/eeschema/sch_bitmap.h +++ b/eeschema/sch_bitmap.h @@ -163,22 +163,22 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/sch_bus_entry.cpp b/eeschema/sch_bus_entry.cpp index 980043f86e..ac9d8bd46a 100644 --- a/eeschema/sch_bus_entry.cpp +++ b/eeschema/sch_bus_entry.cpp @@ -60,7 +60,7 @@ SCH_BUS_ENTRY::SCH_BUS_ENTRY( const wxPoint& pos, int shape, int id ) : } -EDA_ITEM* SCH_BUS_ENTRY::doClone() const +EDA_ITEM* SCH_BUS_ENTRY::Clone() const { return new SCH_BUS_ENTRY( *this ); } diff --git a/eeschema/sch_bus_entry.h b/eeschema/sch_bus_entry.h index f8c8d036c7..036dbf0037 100644 --- a/eeschema/sch_bus_entry.h +++ b/eeschema/sch_bus_entry.h @@ -161,22 +161,22 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/sch_component.cpp b/eeschema/sch_component.cpp index 70f44399d7..212fdd59a2 100644 --- a/eeschema/sch_component.cpp +++ b/eeschema/sch_component.cpp @@ -231,7 +231,7 @@ void SCH_COMPONENT::Init( const wxPoint& pos ) } -EDA_ITEM* SCH_COMPONENT::doClone() const +EDA_ITEM* SCH_COMPONENT::Clone() const { return new SCH_COMPONENT( *this ); } diff --git a/eeschema/sch_component.h b/eeschema/sch_component.h index fece3e917c..f97da88269 100644 --- a/eeschema/sch_component.h +++ b/eeschema/sch_component.h @@ -407,16 +407,19 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { Move( aPosition - m_Pos ); } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif @@ -424,8 +427,6 @@ public: private: /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; - - virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/sch_field.cpp b/eeschema/sch_field.cpp index 1123a07fcc..c32f6e7f29 100644 --- a/eeschema/sch_field.cpp +++ b/eeschema/sch_field.cpp @@ -84,7 +84,7 @@ SCH_FIELD::~SCH_FIELD() } -EDA_ITEM* SCH_FIELD::doClone() const +EDA_ITEM* SCH_FIELD::Clone() const { return new SCH_FIELD( *this ); } diff --git a/eeschema/sch_field.h b/eeschema/sch_field.h index 68bd96b538..eafc76173f 100644 --- a/eeschema/sch_field.h +++ b/eeschema/sch_field.h @@ -223,22 +223,22 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ); - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/sch_junction.cpp b/eeschema/sch_junction.cpp index 8374c5f9c2..ab0bbb252d 100644 --- a/eeschema/sch_junction.cpp +++ b/eeschema/sch_junction.cpp @@ -65,7 +65,7 @@ bool SCH_JUNCTION::Save( FILE* aFile ) const } -EDA_ITEM* SCH_JUNCTION::doClone() const +EDA_ITEM* SCH_JUNCTION::Clone() const { return new SCH_JUNCTION( *this ); } diff --git a/eeschema/sch_junction.h b/eeschema/sch_junction.h index 1a37387581..5725ed3cbd 100644 --- a/eeschema/sch_junction.h +++ b/eeschema/sch_junction.h @@ -122,23 +122,24 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual EDA_ITEM* doClone() const; - /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; }; diff --git a/eeschema/sch_line.cpp b/eeschema/sch_line.cpp index 37c2f0981f..934381f1fb 100644 --- a/eeschema/sch_line.cpp +++ b/eeschema/sch_line.cpp @@ -78,7 +78,7 @@ SCH_LINE::SCH_LINE( const SCH_LINE& aLine ) : } -EDA_ITEM* SCH_LINE::doClone() const +EDA_ITEM* SCH_LINE::Clone() const { return new SCH_LINE( *this ); } diff --git a/eeschema/sch_line.h b/eeschema/sch_line.h index a9e04cbef1..743a51f886 100644 --- a/eeschema/sch_line.h +++ b/eeschema/sch_line.h @@ -175,16 +175,19 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ); - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif @@ -192,8 +195,6 @@ public: private: /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; - - virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/sch_marker.cpp b/eeschema/sch_marker.cpp index 094e4b3d53..7381c18fb7 100644 --- a/eeschema/sch_marker.cpp +++ b/eeschema/sch_marker.cpp @@ -73,7 +73,7 @@ SCH_MARKER::~SCH_MARKER() } -EDA_ITEM* SCH_MARKER::doClone() const +EDA_ITEM* SCH_MARKER::Clone() const { return new SCH_MARKER( *this ); } diff --git a/eeschema/sch_marker.h b/eeschema/sch_marker.h index 877496b36c..4e66bb7b16 100644 --- a/eeschema/sch_marker.h +++ b/eeschema/sch_marker.h @@ -135,14 +135,15 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif - - virtual EDA_ITEM* doClone() const; }; #endif // TYPE_SCH_MARKER_H_ diff --git a/eeschema/sch_no_connect.cpp b/eeschema/sch_no_connect.cpp index d7214b0964..3a397a7f17 100644 --- a/eeschema/sch_no_connect.cpp +++ b/eeschema/sch_no_connect.cpp @@ -54,7 +54,7 @@ SCH_NO_CONNECT::SCH_NO_CONNECT( const wxPoint& pos ) : } -EDA_ITEM* SCH_NO_CONNECT::doClone() const +EDA_ITEM* SCH_NO_CONNECT::Clone() const { return new SCH_NO_CONNECT( *this ); } diff --git a/eeschema/sch_no_connect.h b/eeschema/sch_no_connect.h index 68ceccd01a..8e3813764d 100644 --- a/eeschema/sch_no_connect.h +++ b/eeschema/sch_no_connect.h @@ -128,16 +128,19 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif @@ -145,8 +148,6 @@ public: private: /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; - - virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/sch_polyline.cpp b/eeschema/sch_polyline.cpp index c1bd84d2ec..25e571b83c 100644 --- a/eeschema/sch_polyline.cpp +++ b/eeschema/sch_polyline.cpp @@ -64,7 +64,7 @@ SCH_POLYLINE::~SCH_POLYLINE() } -EDA_ITEM* SCH_POLYLINE::doClone() const +EDA_ITEM* SCH_POLYLINE::Clone() const { return new SCH_POLYLINE( *this ); } diff --git a/eeschema/sch_polyline.h b/eeschema/sch_polyline.h index 9328ca0d9a..ecdf0fde2e 100644 --- a/eeschema/sch_polyline.h +++ b/eeschema/sch_polyline.h @@ -155,19 +155,19 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ); - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/sch_screen.cpp b/eeschema/sch_screen.cpp index abbf723742..e4ae8eb9ab 100644 --- a/eeschema/sch_screen.cpp +++ b/eeschema/sch_screen.cpp @@ -259,7 +259,7 @@ void SCH_SCREEN::ExtractWires( DLIST< SCH_ITEM >& aList, bool aCreateCopy ) aList.Append( item ); if( aCreateCopy ) - m_drawList.Insert( item->Clone(), next_item ); + m_drawList.Insert( (SCH_ITEM*) item->Clone(), next_item ); break; diff --git a/eeschema/sch_sheet.cpp b/eeschema/sch_sheet.cpp index e6dec56b58..cfdd28caa9 100644 --- a/eeschema/sch_sheet.cpp +++ b/eeschema/sch_sheet.cpp @@ -98,7 +98,7 @@ SCH_SHEET::~SCH_SHEET() } -EDA_ITEM* SCH_SHEET::doClone() const +EDA_ITEM* SCH_SHEET::Clone() const { return new SCH_SHEET( *this ); } diff --git a/eeschema/sch_sheet.h b/eeschema/sch_sheet.h index 425a856159..b54328886f 100644 --- a/eeschema/sch_sheet.h +++ b/eeschema/sch_sheet.h @@ -78,8 +78,6 @@ private: */ int m_edge; - virtual EDA_ITEM* doClone() const; - public: SCH_SHEET_PIN( SCH_SHEET* parent, const wxPoint& pos = wxPoint( 0, 0 ), @@ -221,8 +219,11 @@ public: virtual void SetPosition( const wxPoint& aPosition ) { ConstrainOnEdge( aPosition ); } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; }; @@ -632,16 +633,19 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif @@ -656,9 +660,6 @@ protected: * sheet pin is added or removed. */ void renumberPins(); - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/sch_sheet_pin.cpp b/eeschema/sch_sheet_pin.cpp index 7a54ce5de4..096fd7718c 100644 --- a/eeschema/sch_sheet_pin.cpp +++ b/eeschema/sch_sheet_pin.cpp @@ -61,7 +61,7 @@ SCH_SHEET_PIN::SCH_SHEET_PIN( SCH_SHEET* parent, const wxPoint& pos, const wxStr } -EDA_ITEM* SCH_SHEET_PIN::doClone() const +EDA_ITEM* SCH_SHEET_PIN::Clone() const { return new SCH_SHEET_PIN( *this ); } diff --git a/eeschema/sch_text.cpp b/eeschema/sch_text.cpp index b3c487ffe0..5c8dfebbce 100644 --- a/eeschema/sch_text.cpp +++ b/eeschema/sch_text.cpp @@ -122,7 +122,7 @@ SCH_TEXT::SCH_TEXT( const SCH_TEXT& aText ) : } -EDA_ITEM* SCH_TEXT::doClone() const +EDA_ITEM* SCH_TEXT::Clone() const { return new SCH_TEXT( *this ); } @@ -758,7 +758,7 @@ SCH_LABEL::SCH_LABEL( const wxPoint& pos, const wxString& text ) : } -EDA_ITEM* SCH_LABEL::doClone() const +EDA_ITEM* SCH_LABEL::Clone() const { return new SCH_LABEL( *this ); } @@ -960,7 +960,7 @@ SCH_GLOBALLABEL::SCH_GLOBALLABEL( const wxPoint& pos, const wxString& text ) : } -EDA_ITEM* SCH_GLOBALLABEL::doClone() const +EDA_ITEM* SCH_GLOBALLABEL::Clone() const { return new SCH_GLOBALLABEL( *this ); } @@ -1389,7 +1389,7 @@ SCH_HIERLABEL::SCH_HIERLABEL( const wxPoint& pos, const wxString& text, KICAD_T } -EDA_ITEM* SCH_HIERLABEL::doClone() const +EDA_ITEM* SCH_HIERLABEL::Clone() const { return new SCH_HIERLABEL( *this ); } diff --git a/eeschema/sch_text.h b/eeschema/sch_text.h index 260d9634e6..c407579c5b 100644 --- a/eeschema/sch_text.h +++ b/eeschema/sch_text.h @@ -247,22 +247,22 @@ public: /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif - -private: - virtual EDA_ITEM* doClone() const; }; @@ -358,14 +358,15 @@ public: */ virtual bool IsReplaceable() const { return true; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } - - virtual EDA_ITEM* doClone() const; }; @@ -467,14 +468,15 @@ public: /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_glabel_xpm; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } - - virtual EDA_ITEM* doClone() const; }; @@ -578,14 +580,15 @@ public: /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_hierarchical_label_xpm; } - /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + private: /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } - - virtual EDA_ITEM* doClone() const; }; #endif /* CLASS_TEXT_LABEL_H */ diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index 445c8b9ff7..8c75d3dad4 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -391,7 +391,7 @@ void SCH_EDIT_FRAME::SetUndoItem( const SCH_ITEM* aItem ) m_undoItem = NULL; if( aItem ) - m_undoItem = aItem->Clone(); + m_undoItem = (SCH_ITEM*) aItem->Clone(); } diff --git a/include/base_struct.h b/include/base_struct.h index 993f3b8e6a..85c28d991b 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -389,22 +389,8 @@ protected: EDA_ITEM* m_Image; private: - void InitVars(); - /** - * Function doClone - * is used by the derived class to actually implement the cloning. - * - * The default version will return NULL in release builds and likely crash the - * program. In debug builds, an warning message indicating the derived class - * has not implemented cloning. This really should be a pure virtual function. - * Due to the fact that there are so many objects derived from EDA_ITEM, the - * decision was made to return NULL until all the objects derived from EDA_ITEM - * implement cloning. Once that happens, this function should be made pure. - * - * @return A clone of the item. - */ - virtual EDA_ITEM* doClone() const; + void InitVars(); public: @@ -542,14 +528,16 @@ public: * Function Clone * creates a duplicate of this item with linked list members set to NULL. * - * The Clone() function only calls the private virtual doClone() which actually - * does the cloning for the derived object. - * - * @todo: use this instead of Copy() everywhere, then kill Copy(). + * The default version will return NULL in release builds and likely crash the + * program. In debug builds, a warning message indicating the derived class + * has not implemented cloning. This really should be a pure virtual function. + * Due to the fact that there are so many objects derived from EDA_ITEM, the + * decision was made to return NULL until all the objects derived from EDA_ITEM + * implement cloning. Once that happens, this function should be made pure. * * @return A clone of the item. */ - EDA_ITEM* Clone() const; // should not be inline, to save the ~ 6 bytes per call site. + virtual EDA_ITEM* Clone() const; // should not be inline, to save the ~ 6 bytes per call site. /** * Function IterateForward diff --git a/include/common.h b/include/common.h index c2eb72ca0a..cfb9abd940 100644 --- a/include/common.h +++ b/include/common.h @@ -276,7 +276,7 @@ extern bool g_ShowPageLimits; ///< true to display the page limits /// Name of default configuration file. (kicad.pro) extern wxString g_Prj_Default_Config_FullFilename; -/// Name of local configuration file. (.pro) +/// Name of local configuration file. (\.pro) extern wxString g_Prj_Config_LocalFilename; extern EDA_UNITS_T g_UserUnit; ///< display units diff --git a/include/sch_item_struct.h b/include/sch_item_struct.h index c016749c4d..663f918f2e 100644 --- a/include/sch_item_struct.h +++ b/include/sch_item_struct.h @@ -137,8 +137,6 @@ public: return wxT( "SCH_ITEM" ); } - SCH_ITEM* Clone() const { return ( SCH_ITEM* ) EDA_ITEM::Clone(); } - /** * Function SwapData * swap the internal data structures \a aItem with the schematic item. @@ -301,6 +299,7 @@ public: */ bool IsConnected( const wxPoint& aPoint ) const; + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ) { return HitTest( aPosition, 0 ); } /** diff --git a/include/wxPcbStruct.h b/include/wxPcbStruct.h index 4a173be08f..e1665ec246 100644 --- a/include/wxPcbStruct.h +++ b/include/wxPcbStruct.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -731,7 +730,7 @@ public: /** * Function DoGenFootprintsPositionFile * Creates an ascii footprint position file - * @param aFullFilename = the full file name of the file to create + * @param aFullFileName = the full file name of the file to create * @param aUnitsMM = false to use inches, true to use mm in coordinates * @param aForceSmdItems = true to force all footprints with smd pads in list * = false to put only footprints with option "INSERT" in list diff --git a/pcbnew/board_undo_redo.cpp b/pcbnew/board_undo_redo.cpp index f037117693..79303bcac4 100644 --- a/pcbnew/board_undo_redo.cpp +++ b/pcbnew/board_undo_redo.cpp @@ -557,10 +557,9 @@ void PCB_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRed /** * Function GetBoardFromUndoList - * Undo the last edition: - * - Save the current board state in Redo list - * - Get an old version of the board state from Undo list - * @return none + * Undo the last edition: + * - Save the current board state in Redo list + * - Get an old version of the board state from Undo list */ void PCB_EDIT_FRAME::GetBoardFromUndoList( wxCommandEvent& event ) { diff --git a/pcbnew/class_dimension.cpp b/pcbnew/class_dimension.cpp index 6af02f73e7..7e890d0bd5 100644 --- a/pcbnew/class_dimension.cpp +++ b/pcbnew/class_dimension.cpp @@ -602,7 +602,7 @@ wxString DIMENSION::GetSelectMenuText() const } -EDA_ITEM* DIMENSION::doClone() const +EDA_ITEM* DIMENSION::Clone() const { return new DIMENSION( *this ); } diff --git a/pcbnew/class_dimension.h b/pcbnew/class_dimension.h index 2e7c8aed7c..9e311269d2 100644 --- a/pcbnew/class_dimension.h +++ b/pcbnew/class_dimension.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -151,11 +150,11 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ - bool HitTest( const EDA_RECT& aRect ) const; + /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ + virtual bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetClass @@ -173,12 +172,12 @@ public: virtual BITMAP_DEF GetMenuImage() const { return add_dimension_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif - -private: - virtual EDA_ITEM* doClone() const; }; #endif // DIMENSION_H_ diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index c3f4c2b512..8f2535cd06 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -538,7 +538,7 @@ wxString DRAWSEGMENT::GetSelectMenuText() const } -EDA_ITEM* DRAWSEGMENT::doClone() const +EDA_ITEM* DRAWSEGMENT::Clone() const { return new DRAWSEGMENT( *this ); } diff --git a/pcbnew/class_drawsegment.h b/pcbnew/class_drawsegment.h index a554a4e1e3..910394ef06 100644 --- a/pcbnew/class_drawsegment.h +++ b/pcbnew/class_drawsegment.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -186,11 +185,11 @@ public: */ virtual EDA_RECT GetBoundingBox() const; - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ - bool HitTest( const EDA_RECT& aRect ) const; + /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ + virtual bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetClass @@ -261,12 +260,12 @@ public: virtual BITMAP_DEF GetMenuImage() const { return add_dashed_line_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif - -private: - virtual EDA_ITEM* doClone() const; }; #endif // CLASS_DRAWSEGMENT_H_ diff --git a/pcbnew/class_edge_mod.cpp b/pcbnew/class_edge_mod.cpp index 4d168a6fe9..b1ef13eef4 100644 --- a/pcbnew/class_edge_mod.cpp +++ b/pcbnew/class_edge_mod.cpp @@ -273,7 +273,7 @@ wxString EDGE_MODULE::GetSelectMenuText() const } -EDA_ITEM* EDGE_MODULE::doClone() const +EDA_ITEM* EDGE_MODULE::Clone() const { return new EDGE_MODULE( *this ); } diff --git a/pcbnew/class_edge_mod.h b/pcbnew/class_edge_mod.h index dba11ce197..1258b130f5 100644 --- a/pcbnew/class_edge_mod.h +++ b/pcbnew/class_edge_mod.h @@ -107,12 +107,12 @@ public: virtual BITMAP_DEF GetMenuImage() const { return show_mod_edge_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif - -private: - virtual EDA_ITEM* doClone() const; }; #endif // CLASS_EDGE_MOD_H_ diff --git a/pcbnew/class_marker_pcb.h b/pcbnew/class_marker_pcb.h index 3e9fcc5237..01278b0de1 100644 --- a/pcbnew/class_marker_pcb.h +++ b/pcbnew/class_marker_pcb.h @@ -80,8 +80,8 @@ public: const wxPoint& GetPosition() const { return m_Pos; } void SetPosition( const wxPoint& aPos ) { m_Pos = aPos; } - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ) + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ) { return HitTestMarker( aPosition ); } diff --git a/pcbnew/class_mire.cpp b/pcbnew/class_mire.cpp index 31693a5d35..ffa17d2c9f 100644 --- a/pcbnew/class_mire.cpp +++ b/pcbnew/class_mire.cpp @@ -219,7 +219,7 @@ wxString PCB_TARGET::GetSelectMenuText() const } -EDA_ITEM* PCB_TARGET::doClone() const +EDA_ITEM* PCB_TARGET::Clone() const { return new PCB_TARGET( *this ); } diff --git a/pcbnew/class_mire.h b/pcbnew/class_mire.h index 0717b73ef7..186721bf9c 100644 --- a/pcbnew/class_mire.h +++ b/pcbnew/class_mire.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -118,11 +117,11 @@ public: void Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int aDrawMode, const wxPoint& offset = ZeroOffset ); - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ - bool HitTest( const EDA_RECT& aRect ) const; + /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ + virtual bool HitTest( const EDA_RECT& aRect ) const; EDA_RECT GetBoundingBox() const; @@ -130,12 +129,12 @@ public: virtual BITMAP_DEF GetMenuImage() const { return add_mires_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index e8363f1e61..0b047eaa26 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -657,7 +657,7 @@ wxString MODULE::GetSelectMenuText() const } -EDA_ITEM* MODULE::doClone() const +EDA_ITEM* MODULE::Clone() const { return new MODULE( *this ); } diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index cc7f9dc355..954f9924c6 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -321,11 +320,11 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ - bool HitTest( const EDA_RECT& aRect ) const; + /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ + virtual bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetReference @@ -338,9 +337,10 @@ public: /** * Function SetReference - * @param const wxString& - the reference designator text. + * @param aReference A reference to a wxString object containing the reference designator + * text. */ - void SetReference( const wxString& aReference) + void SetReference( const wxString& aReference ) { m_Reference->m_Text = aReference; } @@ -356,7 +356,7 @@ public: /** * Function SetValue - * @param const wxString& - the value text. + * @param aValue A reference to a wxString object containing the value text. */ void SetValue( const wxString& aValue ) { @@ -413,12 +413,12 @@ public: virtual BITMAP_DEF GetMenuImage() const { return module_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index 93abf1be18..d0846da373 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -823,7 +823,7 @@ wxString D_PAD::GetSelectMenuText() const return text; } -EDA_ITEM* D_PAD::doClone() const +EDA_ITEM* D_PAD::Clone() const { return new D_PAD( *this ); } diff --git a/pcbnew/class_pad.h b/pcbnew/class_pad.h index f3298ee4b1..b60bcbd9bf 100644 --- a/pcbnew/class_pad.h +++ b/pcbnew/class_pad.h @@ -386,8 +386,8 @@ public: */ bool IsOnLayer( int aLayer ) const; - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); /** * Function GetClass @@ -448,14 +448,15 @@ public: */ void AppendConfigs( PARAM_CFG_ARRAY* aResult ); + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif private: - virtual EDA_ITEM* doClone() const; - /** * Function boundingRadius * returns a calculated radius of a bounding circle for this pad. diff --git a/pcbnew/class_pcb_text.cpp b/pcbnew/class_pcb_text.cpp index ca5232b422..5cd1d094ce 100644 --- a/pcbnew/class_pcb_text.cpp +++ b/pcbnew/class_pcb_text.cpp @@ -184,7 +184,7 @@ wxString TEXTE_PCB::GetSelectMenuText() const } -EDA_ITEM* TEXTE_PCB::doClone() const +EDA_ITEM* TEXTE_PCB::Clone() const { return new TEXTE_PCB( *this ); } diff --git a/pcbnew/class_pcb_text.h b/pcbnew/class_pcb_text.h index 8084a7b2d9..2cbae04f39 100644 --- a/pcbnew/class_pcb_text.h +++ b/pcbnew/class_pcb_text.h @@ -108,14 +108,14 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ) + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ) { return TextHitTest( aPosition ); } - /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ - bool HitTest( const EDA_RECT& aRect ) + /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ + virtual bool HitTest( const EDA_RECT& aRect ) const { return TextHitTest( aRect ); } @@ -153,12 +153,12 @@ public: virtual EDA_RECT GetBoundingBox() const { return GetTextBox(); }; + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; #endif - -private: - virtual EDA_ITEM* doClone() const; }; #endif // #define CLASS_PCB_TEXT_H diff --git a/pcbnew/class_text_mod.cpp b/pcbnew/class_text_mod.cpp index 1950aebe9b..81b69dad9c 100644 --- a/pcbnew/class_text_mod.cpp +++ b/pcbnew/class_text_mod.cpp @@ -474,7 +474,7 @@ wxString TEXTE_MODULE::GetSelectMenuText() const } -EDA_ITEM* TEXTE_MODULE::doClone() const +EDA_ITEM* TEXTE_MODULE::Clone() const { return new TEXTE_MODULE( *this ); } diff --git a/pcbnew/class_text_mod.h b/pcbnew/class_text_mod.h index a4bf817363..bbbefd3b8a 100644 --- a/pcbnew/class_text_mod.h +++ b/pcbnew/class_text_mod.h @@ -167,8 +167,8 @@ public: void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); /** * Function IsOnLayer @@ -208,12 +208,12 @@ public: virtual BITMAP_DEF GetMenuImage() const { return footprint_text_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif - -private: - virtual EDA_ITEM* doClone() const; }; #endif // TEXT_MODULE_H_ diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 090af5ce46..7a323c3db0 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -130,7 +130,7 @@ TRACK::TRACK( BOARD_ITEM* aParent, KICAD_T idtype ) : } -EDA_ITEM* TRACK::doClone() const +EDA_ITEM* TRACK::Clone() const { return new TRACK( *this ); } @@ -152,7 +152,7 @@ SEGZONE::SEGZONE( BOARD_ITEM* aParent ) : } -EDA_ITEM* SEGZONE::doClone() const +EDA_ITEM* SEGZONE::Clone() const { return new SEGZONE( *this ); } @@ -190,7 +190,7 @@ SEGVIA::SEGVIA( BOARD_ITEM* aParent ) : } -EDA_ITEM* SEGVIA::doClone() const +EDA_ITEM* SEGVIA::Clone() const { return new SEGVIA( *this ); } diff --git a/pcbnew/class_track.h b/pcbnew/class_track.h index d3beeed79c..2fd58553d8 100644 --- a/pcbnew/class_track.h +++ b/pcbnew/class_track.h @@ -303,11 +303,11 @@ public: const KICAD_T scanTypes[] ); - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ - bool HitTest( const EDA_RECT& aRect ) const; + /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ + virtual bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetVia @@ -381,6 +381,8 @@ public: virtual BITMAP_DEF GetMenuImage() const { return showtrack_xpm; } + virtual EDA_ITEM* Clone() const; + #if defined (DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload @@ -393,9 +395,6 @@ public: static wxString ShowState( int stateBits ); #endif - -private: - virtual EDA_ITEM* doClone() const; }; @@ -423,8 +422,7 @@ public: virtual BITMAP_DEF GetMenuImage() const { return add_zone_xpm; } -private: - virtual EDA_ITEM* doClone() const; + virtual EDA_ITEM* Clone() const; }; @@ -485,12 +483,12 @@ public: virtual BITMAP_DEF GetMenuImage() const { return via_sketch_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined (DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 6adb5b75d8..f97ec7339b 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -94,7 +94,7 @@ ZONE_CONTAINER::~ZONE_CONTAINER() } -EDA_ITEM* ZONE_CONTAINER::doClone() const +EDA_ITEM* ZONE_CONTAINER::Clone() const { return new ZONE_CONTAINER( *this ); } diff --git a/pcbnew/class_zone.h b/pcbnew/class_zone.h index d3cb379ab9..96cb09d633 100644 --- a/pcbnew/class_zone.h +++ b/pcbnew/class_zone.h @@ -297,8 +297,8 @@ public: int GetMinThickness() const { return m_ZoneMinThickness; } void SetMinThickness( int aMinThickness ) { m_ZoneMinThickness = aMinThickness; } - /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ - bool HitTest( const wxPoint& aPosition ); + /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ + virtual bool HitTest( const wxPoint& aPosition ); /** * Function HitTestFilledArea @@ -371,8 +371,8 @@ public: */ bool HitTestForEdge( const wxPoint& refPos ); - /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ - bool HitTest( const EDA_RECT& refArea ) const; + /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ + virtual bool HitTest( const EDA_RECT& aRect ) const; /** * Function Fill_Zone @@ -552,12 +552,12 @@ public: virtual BITMAP_DEF GetMenuImage() const { return add_zone_xpm; } + /** @copydoc EDA_ITEM::Clone() */ + virtual EDA_ITEM* Clone() const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif - -private: - virtual EDA_ITEM* doClone() const; }; diff --git a/pcbnew/ioascii.cpp b/pcbnew/ioascii.cpp index 3203bf11ab..2fbe22ff29 100644 --- a/pcbnew/ioascii.cpp +++ b/pcbnew/ioascii.cpp @@ -872,13 +872,15 @@ bool PCB_EDIT_FRAME::WriteGeneralDescrPcb( FILE* File ) /** * Function WriteSheetDescr * Save the page information (size, texts, date ..) - * @param screen BASE_SCREEN to save - * @param File = an open FILE to write info + * @param aPageSettings The page settings to write to \a aFile. + * @param aTitleBlock The title block information to write to \a aFile. + * @param aFile An open FILE to write info. */ -static bool WriteSheetDescr( const PAGE_INFO& aPageSettings, const TITLE_BLOCK& aTitleBlock, FILE* File ) +static bool WriteSheetDescr( const PAGE_INFO& aPageSettings, const TITLE_BLOCK& aTitleBlock, + FILE* aFile ) { - fprintf( File, "$SHEETDESCR\n" ); - fprintf( File, "Sheet %s %d %d%s\n", + fprintf( aFile, "$SHEETDESCR\n" ); + fprintf( aFile, "Sheet %s %d %d%s\n", TO_UTF8( aPageSettings.GetType() ), aPageSettings.GetWidthMils(), aPageSettings.GetHeightMils(), @@ -886,16 +888,16 @@ static bool WriteSheetDescr( const PAGE_INFO& aPageSettings, const TITLE_BLOCK& " portrait" : "" ); - fprintf( File, "Title %s\n", EscapedUTF8( aTitleBlock.GetTitle() ).c_str() ); - fprintf( File, "Date %s\n", EscapedUTF8( aTitleBlock.GetDate() ).c_str() ); - fprintf( File, "Rev %s\n", EscapedUTF8( aTitleBlock.GetRevision() ).c_str() ); - fprintf( File, "Comp %s\n", EscapedUTF8( aTitleBlock.GetCompany() ).c_str() ); - fprintf( File, "Comment1 %s\n", EscapedUTF8( aTitleBlock.GetComment1() ).c_str() ); - fprintf( File, "Comment2 %s\n", EscapedUTF8( aTitleBlock.GetComment2() ).c_str() ); - fprintf( File, "Comment3 %s\n", EscapedUTF8( aTitleBlock.GetComment3() ).c_str() ); - fprintf( File, "Comment4 %s\n", EscapedUTF8( aTitleBlock.GetComment4() ).c_str() ); + fprintf( aFile, "Title %s\n", EscapedUTF8( aTitleBlock.GetTitle() ).c_str() ); + fprintf( aFile, "Date %s\n", EscapedUTF8( aTitleBlock.GetDate() ).c_str() ); + fprintf( aFile, "Rev %s\n", EscapedUTF8( aTitleBlock.GetRevision() ).c_str() ); + fprintf( aFile, "Comp %s\n", EscapedUTF8( aTitleBlock.GetCompany() ).c_str() ); + fprintf( aFile, "Comment1 %s\n", EscapedUTF8( aTitleBlock.GetComment1() ).c_str() ); + fprintf( aFile, "Comment2 %s\n", EscapedUTF8( aTitleBlock.GetComment2() ).c_str() ); + fprintf( aFile, "Comment3 %s\n", EscapedUTF8( aTitleBlock.GetComment3() ).c_str() ); + fprintf( aFile, "Comment4 %s\n", EscapedUTF8( aTitleBlock.GetComment4() ).c_str() ); - fprintf( File, "$EndSHEETDESCR\n\n" ); + fprintf( aFile, "$EndSHEETDESCR\n\n" ); return true; } diff --git a/pcbnew/zones.h b/pcbnew/zones.h index 89a10cadc9..65d7dc7dba 100644 --- a/pcbnew/zones.h +++ b/pcbnew/zones.h @@ -36,21 +36,22 @@ class PCB_BASE_FRAME; * Function InvokeNonCopperZonesEditor * invokes up a modal dialog window for non-copper zone editing. * - * @param aCaller is the PCB_BASE_FRAME calling parent window for the modal dialog, - * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard(). + * @param aParent is the PCB_BASE_FRAME calling parent window for the modal dialog, + * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard(). * @param aZone is the ZONE_CONTAINER to edit. * @param aSettings points to the ZONE_SETTINGS to edit. * @return ZONE_EDIT_T - tells if user aborted, changed only one zone, or all of them. */ -ZONE_EDIT_T InvokeNonCopperZonesEditor( PCB_BASE_FRAME* aCaller, ZONE_CONTAINER* aZone, ZONE_SETTINGS* aSettings ); +ZONE_EDIT_T InvokeNonCopperZonesEditor( PCB_BASE_FRAME* aParent, ZONE_CONTAINER* aZone, + ZONE_SETTINGS* aSettings ); /** * Function InvokeCopperZonesEditor * invokes up a modal dialog window for copper zone editing. * * @param aCaller is the PCB_BASE_FRAME calling parent window for the modal dialog, - * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard(). - * @param aZone is the ZONE_CONTAINER to edit. + * and it gives access to the BOARD through PCB_BASE_FRAME::GetBoard(). + * @param aSettings points to the ZONE_SETTINGS to edit. * @return ZONE_EDIT_T - tells if user aborted, changed only one zone, or all of them. */ ZONE_EDIT_T InvokeCopperZonesEditor( PCB_BASE_FRAME* aCaller, ZONE_SETTINGS* aSettings ); diff --git a/pcbnew/zones_non_copper_type_functions.cpp b/pcbnew/zones_non_copper_type_functions.cpp index 9b6d329e15..fee5d30791 100644 --- a/pcbnew/zones_non_copper_type_functions.cpp +++ b/pcbnew/zones_non_copper_type_functions.cpp @@ -36,12 +36,12 @@ private: public: DIALOG_NON_COPPER_ZONES_EDITOR( PCB_BASE_FRAME* aParent, - ZONE_CONTAINER* aZone, ZONE_SETTINGS* aSettings ); + ZONE_CONTAINER* aZone, ZONE_SETTINGS* aSettings ); }; ZONE_EDIT_T InvokeNonCopperZonesEditor( PCB_BASE_FRAME* aParent, - ZONE_CONTAINER* aZone, ZONE_SETTINGS* aSettings ) + ZONE_CONTAINER* aZone, ZONE_SETTINGS* aSettings ) { DIALOG_NON_COPPER_ZONES_EDITOR dlg( aParent, aZone, aSettings ); @@ -54,8 +54,8 @@ ZONE_EDIT_T InvokeNonCopperZonesEditor( PCB_BASE_FRAME* aParent, DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR( PCB_BASE_FRAME* aParent, - ZONE_CONTAINER* aZone, - ZONE_SETTINGS* aSettings ) : + ZONE_CONTAINER* aZone, + ZONE_SETTINGS* aSettings ) : DialogNonCopperZonesPropertiesBase( aParent ) { m_Parent = aParent; From a2eea79ea877a3d6924d5920d7c05ef0977d0353 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Mon, 19 Mar 2012 08:48:29 +0100 Subject: [PATCH 24/68] Eeschema: fix a bug in bool SCH_LINE::MergeOverlap( SCH_LINE* aLine ): ends point of resulting segment incorrects. remove unused icon files. --- bitmaps_png/CMakeLists.txt | 1 - bitmaps_png/cpp_26/new_module.cpp | 85 ------------ bitmaps_png/sources/new_module.svg | 216 ----------------------------- common/drawframe.cpp | 8 +- eeschema/bus-wire-junction.cpp | 7 +- eeschema/sch_line.cpp | 55 ++++++-- eeschema/schedit.cpp | 2 +- include/bitmaps.h | 1 - 8 files changed, 48 insertions(+), 327 deletions(-) delete mode 100644 bitmaps_png/cpp_26/new_module.cpp delete mode 100644 bitmaps_png/sources/new_module.svg diff --git a/bitmaps_png/CMakeLists.txt b/bitmaps_png/CMakeLists.txt index 0ad6cb0b61..85c98f8722 100644 --- a/bitmaps_png/CMakeLists.txt +++ b/bitmaps_png/CMakeLists.txt @@ -368,7 +368,6 @@ set( BMAPS_MID new_cvpcb new_footprint new_library - new_module new_pcb new_project new_sch diff --git a/bitmaps_png/cpp_26/new_module.cpp b/bitmaps_png/cpp_26/new_module.cpp deleted file mode 100644 index a993bd0e80..0000000000 --- a/bitmaps_png/cpp_26/new_module.cpp +++ /dev/null @@ -1,85 +0,0 @@ - -/* Do not modify this file, it was automatically generated by the - * PNG2cpp CMake script, using a *.png file as input. - */ - -#include - -static const unsigned char png[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, - 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x04, 0x3f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xc5, 0x95, 0x7f, 0x4c, 0xd4, - 0x65, 0x1c, 0xc7, 0x3f, 0x77, 0x07, 0x3a, 0xe1, 0x80, 0x15, 0x79, 0x8c, 0x1f, 0x92, 0xb4, 0x8b, - 0x38, 0xfe, 0x68, 0x12, 0x13, 0x36, 0x06, 0x39, 0x72, 0xc6, 0x8d, 0xb9, 0x60, 0x21, 0x5e, 0x5c, - 0x67, 0x3f, 0x2e, 0xd4, 0x3c, 0xd1, 0x89, 0xa5, 0xc5, 0x70, 0x34, 0xf7, 0xa5, 0x1a, 0xae, 0x3f, - 0xfc, 0xa3, 0xe0, 0x82, 0x22, 0x83, 0xca, 0x35, 0xc6, 0x89, 0xfc, 0x90, 0xe1, 0x89, 0x28, 0x70, - 0x08, 0x73, 0xca, 0x28, 0xd7, 0xc2, 0x18, 0x64, 0x63, 0x4e, 0xe6, 0x8f, 0x03, 0x21, 0xb9, 0x10, - 0x7c, 0xf7, 0x3c, 0xcf, 0xf5, 0xc5, 0x80, 0x43, 0x7e, 0xd8, 0xd6, 0x1f, 0xaf, 0xdd, 0x3d, 0x3f, - 0xbe, 0x9f, 0xd7, 0xf3, 0x7c, 0x3e, 0x9f, 0xef, 0xbe, 0x04, 0x80, 0x1e, 0x87, 0x13, 0x27, 0xa8, - 0x88, 0x91, 0xbd, 0xd0, 0xbe, 0x99, 0x03, 0xa2, 0x67, 0x19, 0xe9, 0x8b, 0x25, 0x3e, 0x9e, 0x76, - 0xd8, 0x6c, 0x34, 0x51, 0x5d, 0x4d, 0x37, 0x98, 0x6c, 0xd5, 0xa2, 0x45, 0x3e, 0x3e, 0x3e, 0x7d, - 0xe1, 0xe1, 0xe1, 0x7f, 0xea, 0x74, 0xba, 0x11, 0x99, 0xb0, 0xb0, 0xb0, 0x7b, 0x69, 0x69, 0x69, - 0x53, 0x15, 0x15, 0x15, 0x93, 0x56, 0xab, 0x75, 0x52, 0xa3, 0xd1, 0x4c, 0x45, 0x45, 0x45, 0x89, - 0x35, 0x49, 0xf2, 0x9b, 0xe8, 0xea, 0x22, 0x9c, 0x3b, 0x47, 0x60, 0xa2, 0xbc, 0x45, 0x8b, 0x7c, - 0x7d, 0x7d, 0x07, 0x8b, 0x8b, 0x8b, 0xd1, 0xd9, 0xd9, 0x39, 0x4d, 0x49, 0x49, 0x09, 0x02, 0x02, - 0x02, 0x50, 0x50, 0x50, 0x80, 0x94, 0x94, 0x14, 0xc4, 0xc4, 0xc4, 0x88, 0xf9, 0xd6, 0xd6, 0x32, - 0xd4, 0xd5, 0x11, 0xae, 0x5f, 0x27, 0x0c, 0x0c, 0x08, 0xd1, 0x30, 0xe3, 0xc9, 0x65, 0x8b, 0x38, - 0xf9, 0xf9, 0xf9, 0x88, 0x8c, 0x8c, 0x84, 0x5e, 0xaf, 0x87, 0xcd, 0x56, 0x8e, 0xb6, 0xb6, 0x72, - 0xd4, 0xd7, 0x47, 0xa3, 0xa7, 0x87, 0x30, 0x3a, 0x4a, 0x70, 0x3a, 0x89, 0xcd, 0x09, 0x59, 0x19, - 0x43, 0xcb, 0xf0, 0x9e, 0x23, 0x4a, 0x0a, 0x57, 0x75, 0x1d, 0x4e, 0x52, 0xfc, 0xce, 0xd9, 0x17, - 0xa7, 0x9c, 0x94, 0xf4, 0x81, 0x28, 0x7a, 0x25, 0x18, 0x3b, 0x13, 0x35, 0x38, 0x7e, 0xfc, 0x3b, - 0xd8, 0xed, 0xdb, 0x70, 0xea, 0xd4, 0x7a, 0x76, 0xfa, 0x35, 0xec, 0xd7, 0x1b, 0xcd, 0xcd, 0x04, - 0x87, 0x83, 0x70, 0xe9, 0x12, 0xe1, 0xe6, 0x4d, 0xc2, 0xd4, 0x14, 0x61, 0x62, 0x82, 0x30, 0x38, - 0x48, 0xec, 0x50, 0xee, 0x34, 0x36, 0x36, 0xd2, 0x64, 0x4d, 0x0d, 0x0d, 0x30, 0xe1, 0x19, 0x46, - 0x29, 0xc3, 0x44, 0xbb, 0x62, 0x15, 0x9d, 0xf8, 0x90, 0x3d, 0x6c, 0xf6, 0x85, 0xb4, 0xdb, 0x80, - 0xa3, 0x06, 0x2d, 0xf8, 0xb8, 0xc5, 0xe4, 0x8d, 0xca, 0xca, 0x4a, 0xb4, 0xb7, 0xff, 0x88, 0xda, - 0xda, 0x60, 0x34, 0x35, 0xb9, 0x83, 0xf1, 0xe0, 0x63, 0x63, 0x04, 0x97, 0x8b, 0x70, 0xff, 0xfe, - 0xc3, 0x43, 0x73, 0xd9, 0xf8, 0x38, 0xe1, 0xee, 0x5d, 0xf7, 0x9e, 0xfe, 0x7e, 0x12, 0xa9, 0x65, - 0x92, 0x6e, 0x46, 0xe8, 0xb4, 0xe8, 0x98, 0x41, 0x83, 0x5f, 0xbb, 0xce, 0x42, 0x32, 0x25, 0xcc, - 0x10, 0xf1, 0xd4, 0x75, 0x74, 0x34, 0xb0, 0x54, 0x45, 0xa2, 0xa1, 0x81, 0x70, 0xed, 0x1a, 0xe1, - 0xce, 0x1d, 0xf7, 0x4d, 0x66, 0x97, 0x82, 0xcb, 0x6e, 0xdf, 0x26, 0xf4, 0xf6, 0x12, 0x4e, 0x9e, - 0x14, 0x92, 0x06, 0x86, 0x5a, 0xa4, 0xce, 0xbc, 0x4e, 0x71, 0xd1, 0x99, 0x4b, 0x18, 0xda, 0x4b, - 0x28, 0xc9, 0x58, 0x8d, 0x9e, 0x6c, 0x15, 0xf8, 0xb8, 0xce, 0xf0, 0x50, 0xc4, 0xb9, 0x70, 0xe1, - 0x2c, 0x4b, 0x5d, 0xbc, 0x38, 0x65, 0x5f, 0x1f, 0x61, 0x78, 0x78, 0xa6, 0xe4, 0xc1, 0x03, 0xc2, - 0xad, 0x5b, 0x24, 0xea, 0xc6, 0xd2, 0xc6, 0x25, 0xc5, 0x0c, 0xd5, 0x74, 0x8d, 0xd6, 0x85, 0xa8, - 0x8c, 0xf1, 0xa1, 0xca, 0x3c, 0x4e, 0x44, 0xe0, 0xca, 0x91, 0x5d, 0xa6, 0x74, 0x48, 0x07, 0x2d, - 0x28, 0xfc, 0x20, 0x07, 0x2d, 0x2d, 0x2d, 0xb3, 0x1a, 0xa3, 0x9d, 0xdd, 0x4c, 0x2b, 0xea, 0xc3, - 0x53, 0xc4, 0x63, 0xf0, 0xf4, 0xc9, 0xb7, 0xe3, 0xb7, 0xb1, 0xdb, 0xdd, 0x92, 0x65, 0x75, 0xdd, - 0xbf, 0xa9, 0xad, 0x7d, 0x0a, 0x57, 0xaf, 0x12, 0x46, 0x46, 0xdc, 0xb7, 0xe2, 0xf5, 0xe0, 0x37, - 0xe1, 0xdd, 0xc7, 0x53, 0xca, 0x1b, 0x85, 0x89, 0x3e, 0x9f, 0x23, 0x4a, 0x5e, 0xab, 0xfc, 0xc1, - 0xf2, 0x82, 0xe2, 0x0c, 0x27, 0x43, 0xe7, 0xe5, 0x3a, 0xb0, 0x39, 0x0a, 0x92, 0x31, 0x0e, 0xfb, - 0xd2, 0x62, 0x58, 0x0a, 0x6a, 0x66, 0x48, 0x3a, 0x3a, 0xea, 0x79, 0x10, 0xf1, 0xee, 0x0c, 0x0d, - 0x11, 0xae, 0x5c, 0x21, 0xd1, 0x24, 0xad, 0xad, 0xee, 0x77, 0x89, 0x4b, 0x79, 0xea, 0xd8, 0x9e, - 0xd6, 0x39, 0x22, 0xb9, 0x19, 0xfe, 0xc8, 0x51, 0x09, 0x41, 0xc3, 0xdb, 0x41, 0x73, 0x9a, 0x41, - 0xe6, 0xfc, 0xf9, 0xcf, 0x58, 0xea, 0x08, 0x97, 0x2f, 0x93, 0x68, 0x8c, 0xda, 0x6a, 0x56, 0xf4, - 0xa3, 0x3e, 0xf8, 0xfe, 0x2b, 0xb5, 0x38, 0x00, 0x6f, 0x6d, 0x9e, 0x56, 0xf6, 0xdf, 0x39, 0xaf, - 0xc8, 0x9a, 0x19, 0x02, 0x67, 0xff, 0x4f, 0x38, 0xf2, 0x4e, 0xf2, 0xbc, 0x22, 0xbb, 0x3d, 0x5b, - 0x04, 0xb4, 0xd9, 0xd4, 0x68, 0xfc, 0x44, 0x89, 0xbf, 0x0e, 0x11, 0x8e, 0x6c, 0xdf, 0x24, 0x9e, - 0xfb, 0xc6, 0xf2, 0x04, 0x1c, 0xc7, 0x84, 0x44, 0x66, 0x8d, 0x47, 0xd1, 0xe0, 0x1e, 0x25, 0xa4, - 0xd7, 0x62, 0xd1, 0x64, 0x5e, 0x3d, 0xaf, 0xe8, 0xf4, 0xe9, 0x4c, 0xf6, 0xc2, 0xbe, 0xc7, 0xe6, - 0xbf, 0x16, 0xeb, 0x7c, 0x5f, 0xa3, 0x39, 0x08, 0x85, 0x59, 0xb1, 0xb8, 0xb1, 0x47, 0x21, 0xc6, - 0x87, 0x33, 0x15, 0x3d, 0x4c, 0x52, 0xc3, 0x48, 0x9d, 0x21, 0x7a, 0x31, 0x5c, 0x69, 0x35, 0xe8, - 0x14, 0x75, 0x9c, 0x97, 0x22, 0xbc, 0xc6, 0x2d, 0xa9, 0xcf, 0x23, 0x2f, 0x2b, 0x09, 0x7b, 0x5f, - 0x4d, 0x60, 0x69, 0xaa, 0xf7, 0xd8, 0x10, 0x7c, 0x9e, 0xaf, 0xf3, 0x7d, 0x3b, 0x5e, 0x8e, 0xc6, - 0xc6, 0x67, 0xbc, 0x46, 0xe5, 0x18, 0xc9, 0x11, 0xca, 0x2f, 0xfe, 0xf9, 0x7c, 0xa8, 0x1e, 0xab, - 0xeb, 0x66, 0x53, 0x54, 0x54, 0x04, 0x3f, 0x3f, 0xbf, 0x5f, 0x16, 0xfc, 0x1e, 0xad, 0x0f, 0x56, - 0xe6, 0x25, 0x84, 0x29, 0x4b, 0x39, 0x3a, 0x8d, 0xf7, 0xd8, 0x1b, 0x9b, 0x13, 0xb1, 0xff, 0xad, - 0x74, 0xe4, 0x32, 0xec, 0x76, 0xbb, 0xc7, 0xe0, 0x7c, 0x9e, 0xaf, 0xf3, 0x7d, 0x59, 0x29, 0xf1, - 0x88, 0x0e, 0x5a, 0xe1, 0x94, 0x63, 0xc4, 0x85, 0x28, 0x0f, 0x7a, 0x14, 0xc9, 0x35, 0xba, 0xf7, - 0x3e, 0xa1, 0x74, 0x6b, 0x30, 0x7e, 0xb3, 0xac, 0x98, 0xb7, 0x46, 0x32, 0x7c, 0x5e, 0xae, 0x51, - 0x2f, 0xdb, 0x5f, 0xc6, 0x9e, 0x73, 0x1d, 0x20, 0x31, 0xce, 0x8d, 0x53, 0x38, 0x1e, 0x29, 0x2a, - 0x37, 0x04, 0xa1, 0xbf, 0xbb, 0x0d, 0x85, 0xdb, 0x12, 0x97, 0x24, 0x2a, 0x7c, 0x73, 0x83, 0x78, - 0xee, 0xdb, 0xad, 0x81, 0x8b, 0x13, 0x5d, 0xcc, 0x5e, 0x85, 0x42, 0xcb, 0x16, 0x7c, 0xf9, 0xba, - 0x76, 0x49, 0x22, 0xab, 0xe9, 0x39, 0x7c, 0xbc, 0x7b, 0x0b, 0xba, 0xb7, 0xaf, 0x7c, 0xb4, 0x68, - 0xc3, 0xd3, 0xaa, 0xe6, 0xbc, 0x04, 0xc5, 0xcf, 0x9c, 0x9d, 0xb1, 0xaa, 0x89, 0x82, 0xd4, 0x50, - 0x7c, 0x9a, 0xa1, 0x45, 0xce, 0xc6, 0xb5, 0xa8, 0xaa, 0xaa, 0xf2, 0x28, 0xe2, 0xf3, 0x7c, 0x9d, - 0xef, 0x3b, 0xa4, 0x0f, 0xc6, 0xbb, 0xb1, 0x2a, 0x97, 0x1c, 0x63, 0x53, 0x84, 0xaa, 0x69, 0xd9, - 0x5f, 0xd8, 0xff, 0xa4, 0xeb, 0xfe, 0x37, 0x91, 0xd9, 0x6c, 0x86, 0x24, 0x49, 0x8b, 0xc6, 0x68, - 0x34, 0x2e, 0x5d, 0xa4, 0x56, 0xab, 0x3f, 0xf2, 0xf7, 0xf7, 0x77, 0x2c, 0x15, 0x76, 0xc0, 0xfd, - 0x0b, 0x89, 0xfe, 0x06, 0x96, 0xd4, 0xa6, 0x96, 0xc0, 0xb7, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; - -const BITMAP_OPAQUE new_module_xpm[1] = {{ png, sizeof( png ), "new_module_xpm" }}; - -//EOF diff --git a/bitmaps_png/sources/new_module.svg b/bitmaps_png/sources/new_module.svg deleted file mode 100644 index ebed0baf31..0000000000 --- a/bitmaps_png/sources/new_module.svg +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/common/drawframe.cpp b/common/drawframe.cpp index a8064e90f7..333e00acf4 100644 --- a/common/drawframe.cpp +++ b/common/drawframe.cpp @@ -1,7 +1,7 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2004 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 2008-2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * @@ -113,12 +113,6 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( wxWindow* father, int idtype, const wxString& ti minsize.x = 470; minsize.y = 350 + m_MsgFrameHeight; - SetSizeHints( minsize.x, minsize.y, -1, -1, -1, -1 ); - - // Make sure window has a sane minimum size. - if( ( size.x < minsize.x ) || ( size.y < minsize.y ) ) - SetSize( 0, 0, minsize.x, minsize.y ); - // Pane sizes for status bar. // @todo these should be sized based on typical text content, like // "dx -10.123 -10.123 dy -10.123 -10.123" using the system font which is diff --git a/eeschema/bus-wire-junction.cpp b/eeschema/bus-wire-junction.cpp index 0440b6efb8..ce1de8d5b4 100644 --- a/eeschema/bus-wire-junction.cpp +++ b/eeschema/bus-wire-junction.cpp @@ -1,7 +1,7 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2004 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -107,7 +107,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type ) SCH_LINE* nextSegment; wxPoint cursorpos = GetScreen()->GetCrossHairPosition(); - // We should know id a segment is currently in progress + // We should know if a segment is currently in progress segment = (SCH_LINE*) GetScreen()->GetCurItem(); if( segment ) // a current item exists, but not necessary a currently edited item { @@ -168,7 +168,7 @@ void SCH_EDIT_FRAME::BeginSegment( wxDC* DC, int type ) { SCH_LINE* prevSegment = (SCH_LINE*) segment->Back(); - wxLogDebug( wxT( "Adding new segment after " ) + segment->GetSelectMenuText() ); + wxLogDebug( wxT( "Adding new segment after " ) + prevSegment->GetSelectMenuText() ); if( !g_HVLines ) { @@ -241,6 +241,7 @@ void SCH_EDIT_FRAME::EndSegment( wxDC* DC ) item = s_wires.begin(); else item = previousSegment; + wxLogDebug( wxT( "Segment count after removal: %d" ), s_wires.GetCount() ); } item = item->Next(); diff --git a/eeschema/sch_line.cpp b/eeschema/sch_line.cpp index 934381f1fb..c9fddb6f6c 100644 --- a/eeschema/sch_line.cpp +++ b/eeschema/sch_line.cpp @@ -285,6 +285,21 @@ void SCH_LINE::Rotate( wxPoint aPosition ) } +/* + * helper sort function, used by MergeOverlap + * sorts ref and test by x values, or (for same x values) by y values + */ +bool sort_by_ends_position(const wxPoint * ref, const wxPoint * tst ) +{ + if( ref->x == tst->x ) + return ref->y < tst->y; + return ref->x < tst->x; +} + +/* + * MergeOverlap try to merge 2 lines that are colinear. + * this function expects these 2 lines have at least a common end + */ bool SCH_LINE::MergeOverlap( SCH_LINE* aLine ) { wxCHECK_MSG( aLine != NULL && aLine->Type() == SCH_LINE_T, false, @@ -293,19 +308,16 @@ bool SCH_LINE::MergeOverlap( SCH_LINE* aLine ) if( this == aLine || GetLayer() != aLine->GetLayer() ) return false; - // Search for a common end, and modify coordinates to ensure RefSegm->m_end - // == TstSegm->m_start + // Search for a common end: if( m_start == aLine->m_start ) { - if( m_end == aLine->m_end ) + if( m_end == aLine->m_end ) // Trivial case return true; - - EXCHG( m_start, m_end ); } else if( m_start == aLine->m_end ) { - EXCHG( m_start, m_end ); - EXCHG( aLine->m_start, aLine->m_end ); + if( m_end == aLine->m_start ) // Trivial case + return true; } else if( m_end == aLine->m_end ) { @@ -317,21 +329,21 @@ bool SCH_LINE::MergeOverlap( SCH_LINE* aLine ) return false; } + bool colinear = false; + /* Test alignment: */ if( m_start.y == m_end.y ) // Horizontal segment { if( aLine->m_start.y == aLine->m_end.y ) { - m_end = aLine->m_end; - return true; + colinear = true; } } else if( m_start.x == m_end.x ) // Vertical segment { if( aLine->m_start.x == aLine->m_end.x ) { - m_end = aLine->m_end; - return true; + colinear = true; } } else @@ -340,11 +352,28 @@ bool SCH_LINE::MergeOverlap( SCH_LINE* aLine ) == atan2( (double) ( aLine->m_start.x - aLine->m_end.x ), (double) ( aLine->m_start.y - aLine->m_end.y ) ) ) { - m_end = aLine->m_end; - return true; + colinear = true; } } + // Make a segment which merge the 2 segments + // we must find the extremums + // i.e. the more to the left and to the right points, or + // for horizontal segments the uppermost and the lowest point + if( colinear ) + { + static std::vector candidates; + candidates.clear(); + candidates.push_back( &m_start ); + candidates.push_back( &m_end ); + candidates.push_back( &aLine->m_start ); + candidates.push_back( &aLine->m_end ); + sort( candidates.begin(), candidates.end(), sort_by_ends_position ); + wxPoint tmp = *candidates[3]; + m_start = *candidates[0]; + m_end = tmp; + return true; + } return false; } diff --git a/eeschema/schedit.cpp b/eeschema/schedit.cpp index 6c288acc5f..fefb19b17f 100644 --- a/eeschema/schedit.cpp +++ b/eeschema/schedit.cpp @@ -455,7 +455,7 @@ void SCH_EDIT_FRAME::OnCancelCurrentCommand( wxCommandEvent& aEvent ) void SCH_EDIT_FRAME::OnSelectTool( wxCommandEvent& aEvent ) { - id_eeschema_frm id = (id_eeschema_frm) aEvent.GetId(); + int id = aEvent.GetId(); // Stop the current command and deselect the current tool. m_canvas->EndMouseCapture( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor() ); diff --git a/include/bitmaps.h b/include/bitmaps.h index ddd10dceed..602a00d2ac 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -334,7 +334,6 @@ EXTERN_BITMAP( new_cvpcb_xpm ) EXTERN_BITMAP( new_footprint_xpm ) EXTERN_BITMAP( new_gerb_xpm ) EXTERN_BITMAP( new_library_xpm ) -EXTERN_BITMAP( new_module_xpm ) EXTERN_BITMAP( new_pcb_xpm ) EXTERN_BITMAP( new_project_xpm ) EXTERN_BITMAP( new_python_xpm ) From b5b6e9997d6380554f88ff62f2e74f598834821e Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Mon, 19 Mar 2012 11:29:24 -0500 Subject: [PATCH 25/68] quiet warnings, add Clamp() --- include/fctsys.h | 25 +++++++++++++++++++++--- kicad/files-io.cpp | 2 +- pcbnew/dialogs/dialog_pad_properties.cpp | 13 ++++++------ 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/include/fctsys.h b/include/fctsys.h index f1cb2b6b58..148340bf45 100644 --- a/include/fctsys.h +++ b/include/fctsys.h @@ -1,8 +1,8 @@ /********************/ /* System includes. */ /********************/ -#ifndef FCTSYS_H -#define FCTSYS_H +#ifndef FCTSYS_H_ +#define FCTSYS_H_ // For compilers that support precompilation, includes "wx.h". #include @@ -46,6 +46,25 @@ #define D(x) // nothing #endif +/** + * Function Clamp + * limits @a value within the range @a lower <= @a value <= @a upper. It will work + * on temporary expressions, since they are evaluated only once, and it should work + * on most if not all numeric types. The arguments are accepted in this order so you + * can remember the expression as a memory aid: + *

+ * result is: lower <= value <= upper + */ +template inline const T& Clamp( const T& lower, const T& value, const T& upper ) +{ + wxASSERT( lower <= upper ); + if( value < lower ) + return lower; + else if( value > upper ) + return upper; + return value; +} + #define UNIX_STRING_DIR_SEP wxT( "/" ) #define WIN_STRING_DIR_SEP wxT( "\\" ) @@ -64,4 +83,4 @@ #include -#endif /* FCTSYS_H */ +#endif // FCTSYS_H__ diff --git a/kicad/files-io.cpp b/kicad/files-io.cpp index 75b61f4a20..9aec929a5d 100644 --- a/kicad/files-io.cpp +++ b/kicad/files-io.cpp @@ -171,7 +171,7 @@ void KICAD_MANAGER_FRAME::OnArchiveFiles( wxCommandEvent& event ) infile->GetStream()->GetSize(), zippedsize ); PrintMsg( msg ); delete infile; - } + } else { PrintMsg( _(" >>Error\n") ); diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index 7333af9d12..b4cfcf6d73 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -438,7 +438,7 @@ void DIALOG_PAD_PROPERTIES::initValues() // Type of pad selection m_PadType->SetSelection( 0 ); - for( int ii = 0; ii < NBTYPES; ii++ ) + for( unsigned ii = 0; ii < NBTYPES; ii++ ) { if( CodeType[ii] == m_dummyPad->GetAttribute() ) { @@ -573,11 +573,10 @@ void DIALOG_PAD_PROPERTIES::PadOrientEvent( wxCommandEvent& event ) void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) { - long layer_mask; - int ii; + long layer_mask; + unsigned ii = m_PadType->GetSelection(); - ii = m_PadType->GetSelection(); - if( ii < 0 || ii >= NBTYPES ) + if( ii >= NBTYPES ) // catches < 0 also ii = 0; layer_mask = Std_Pad_Layers[ii]; @@ -603,11 +602,11 @@ void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) void DIALOG_PAD_PROPERTIES::SetPadLayersList( long layer_mask ) { - if( ( layer_mask & ALL_CU_LAYERS ) == LAYER_FRONT ) + if( ( layer_mask & ALL_CU_LAYERS ) == LAYER_FRONT ) m_rbCopperLayersSel->SetSelection(0); else if( ( layer_mask & ALL_CU_LAYERS ) == LAYER_BACK) m_rbCopperLayersSel->SetSelection(1); - else if( ( layer_mask & ALL_CU_LAYERS ) != 0 ) + else if( ( layer_mask & ALL_CU_LAYERS ) != 0 ) m_rbCopperLayersSel->SetSelection(2); else m_rbCopperLayersSel->SetSelection(3); From 89ce14bfee7af0d6181d7cc4e88654dd33dfe565 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Mon, 19 Mar 2012 15:57:19 -0500 Subject: [PATCH 26/68] start toying with DIALOG_SHIM --- eeschema/dialogs/dialog_edit_label.cpp | 27 ++++++- eeschema/dialogs/dialog_edit_label.h | 41 ----------- eeschema/libeditframe.cpp | 1 + include/dialog_helpers.h | 73 ++++++++++++++++++- include/fctsys.h | 7 +- pcbnew/dialogs/dialog_pcb_text_properties.cpp | 34 ++++++++- pcbnew/dialogs/dialog_pcb_text_properties.h | 32 -------- 7 files changed, 130 insertions(+), 85 deletions(-) delete mode 100644 eeschema/dialogs/dialog_edit_label.h delete mode 100644 pcbnew/dialogs/dialog_pcb_text_properties.h diff --git a/eeschema/dialogs/dialog_edit_label.cpp b/eeschema/dialogs/dialog_edit_label.cpp index ffda22832c..f57897eac8 100644 --- a/eeschema/dialogs/dialog_edit_label.cpp +++ b/eeschema/dialogs/dialog_edit_label.cpp @@ -38,7 +38,30 @@ #include #include -#include +#include +#include + +class SCH_EDIT_FRAME; +class SCH_TEXT; + + +DIALOG_EXTEND_WITH_SHIM( DialogLabelEditor, DialogLabelEditor_Base ) +{ +public: + DialogLabelEditor( SCH_EDIT_FRAME* parent, SCH_TEXT* aTextItem ); + +private: + void InitDialog( ); + virtual void OnEnterKey( wxCommandEvent& aEvent ); + virtual void OnOkClick( wxCommandEvent& aEvent ); + virtual void OnCancelClick( wxCommandEvent& aEvent ); + void TextPropertiesAccept( wxCommandEvent& aEvent ); + + SCH_EDIT_FRAME* m_Parent; + SCH_TEXT* m_CurrentText; + wxTextCtrl* m_textLabel; +}; + /* Edit the properties of the text (Label, Global label, graphic text).. ) @@ -56,7 +79,7 @@ void SCH_EDIT_FRAME::EditSchematicText( SCH_TEXT* aTextItem ) DialogLabelEditor::DialogLabelEditor( SCH_EDIT_FRAME* aParent, SCH_TEXT* aTextItem ) : - DialogLabelEditor_Base( aParent ) + DialogLabelEditor_Base_SHIM( aParent ) { m_Parent = aParent; m_CurrentText = aTextItem; diff --git a/eeschema/dialogs/dialog_edit_label.h b/eeschema/dialogs/dialog_edit_label.h deleted file mode 100644 index 505038875e..0000000000 --- a/eeschema/dialogs/dialog_edit_label.h +++ /dev/null @@ -1,41 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog_edit_label.h -// Author: jean-pierre Charras -// Modified by: -// Licence: GPL -///////////////////////////////////////////////////////////////////////////// - -#ifndef _DIALOG_EDIT_LABEL_H_ -#define _DIALOG_EDIT_LABEL_H_ - -#include - - -class SCH_EDIT_FRAME; -class SCH_TEXT; - - -class DialogLabelEditor : public DialogLabelEditor_Base -{ -private: - SCH_EDIT_FRAME* m_Parent; - SCH_TEXT* m_CurrentText; - wxTextCtrl* m_textLabel; - -public: - DialogLabelEditor( SCH_EDIT_FRAME* parent, SCH_TEXT* aTextItem ); - ~DialogLabelEditor(){}; - - -public: - -private: - void InitDialog( ); - virtual void OnEnterKey( wxCommandEvent& aEvent ); - virtual void OnOkClick( wxCommandEvent& aEvent ); - virtual void OnCancelClick( wxCommandEvent& aEvent ); - void TextPropertiesAccept( wxCommandEvent& aEvent ); -}; - - -#endif // _DIALOG_EDIT_LABEL_H_ diff --git a/eeschema/libeditframe.cpp b/eeschema/libeditframe.cpp index 1a6e875ea8..80de764c44 100644 --- a/eeschema/libeditframe.cpp +++ b/eeschema/libeditframe.cpp @@ -55,6 +55,7 @@ #include + /* Library editor wxConfig entry names. */ const wxString lastLibExportPathEntry( wxT( "LastLibraryExportPath" ) ); const wxString lastLibImportPathEntry( wxT( "LastLibraryImportPath" ) ); diff --git a/include/dialog_helpers.h b/include/dialog_helpers.h index a560c6a146..720fa2b498 100644 --- a/include/dialog_helpers.h +++ b/include/dialog_helpers.h @@ -4,8 +4,8 @@ * @note Due to use of wxFormBuilder to create dialogs many of them should be removed. */ -#ifndef _DIALOG_HELPERS_H_ -#define _DIALOG_HELPERS_H_ +#ifndef DIALOG_HELPERS_H_ +#define DIALOG_HELPERS_H_ #include // EDA_UNITS_T @@ -183,4 +183,71 @@ public: }; -#endif // _DIALOG_HELPERS_H_ +/** + * Template DIALOG_SHIM + * is a way to have a common way of handling KiCad dialog windows: + *

    + *
  • class specific: static s_LastPos and static s_LastSize for retentative + * dialog window positioning, per class. + *
  • invocation of SetFocus() to allow ESC key to work on Linux. + *
  • future others... + *
+ * by wedging in a class (a SHIM) between the wxFormbuilder coded base class and + * our derived dialog classes. Use it via the macro named DIALOG_EXTEND_WITH_SHIM + * and be sure to code your constructor to invoke *_SHIM() base class constructor, + * not the one from wxFormbuilder. + * @author Dick Hollenbeck + */ +template +class DIALOG_SHIM : public T +{ +public: + + DIALOG_SHIM( wxFrame* aParent ) : + T( aParent ) + { + wxDialog::SetFocus(); + } + + // overload wxDialog::Show + bool Show( bool show ) + { + bool ret; + + if( show ) + { + ret = wxDialog::Show( show ); + if( s_LastPos.x != -1 ) + wxDialog::SetSize( s_LastPos.x, s_LastPos.y, s_LastSize.x, s_LastSize.y, 0 ); + } + else + { + // Save the dialog's position before hiding + s_LastPos = wxDialog::GetPosition(); + s_LastSize = wxDialog::GetSize(); + ret = wxDialog::Show( show ); + } + return ret; + } + +private: + static wxPoint s_LastPos; + static wxSize s_LastSize; +}; + +template +wxPoint DIALOG_SHIM::s_LastPos( -1, -1 ); + +template +wxSize DIALOG_SHIM::s_LastSize( 0, 0 ); + +/** + * Macro DIALOG_EXTEND_WITH_SHIM + * instantiates the template DIALOG_SHIM<> and thereby declares a shim class. + * @author Dick Hollenbeck + */ +#define DIALOG_EXTEND_WITH_SHIM( DERRIVED, BASE ) \ + typedef DIALOG_SHIM BASE##_SHIM; \ + class DERRIVED : public BASE##_SHIM + +#endif // DIALOG_HELPERS_H_ diff --git a/include/fctsys.h b/include/fctsys.h index 148340bf45..648baa5926 100644 --- a/include/fctsys.h +++ b/include/fctsys.h @@ -50,8 +50,9 @@ * Function Clamp * limits @a value within the range @a lower <= @a value <= @a upper. It will work * on temporary expressions, since they are evaluated only once, and it should work - * on most if not all numeric types. The arguments are accepted in this order so you - * can remember the expression as a memory aid: + * on most if not all numeric types, string types, or any type for which "operator < ()" + * is present. The arguments are accepted in this order so you can remember the + * expression as a memory aid: *

* result is: lower <= value <= upper */ @@ -60,7 +61,7 @@ template inline const T& Clamp( const T& lower, const T& value, con wxASSERT( lower <= upper ); if( value < lower ) return lower; - else if( value > upper ) + else if( upper < value ) return upper; return value; } diff --git a/pcbnew/dialogs/dialog_pcb_text_properties.cpp b/pcbnew/dialogs/dialog_pcb_text_properties.cpp index ae70e82fae..26e7a9ed68 100644 --- a/pcbnew/dialogs/dialog_pcb_text_properties.cpp +++ b/pcbnew/dialogs/dialog_pcb_text_properties.cpp @@ -38,7 +38,35 @@ #include #include -#include +#include +#include +#include + + +class PCB_EDIT_FRAME; +class TEXTE_PCB; + + +/// Implement DIALOG_PCB_TEXT_PROPERTIES_BASE with interposing +/// DIALOG_PCB_TEXT_PROPERTIES_BASE_SHIM class +DIALOG_EXTEND_WITH_SHIM( DIALOG_PCB_TEXT_PROPERTIES, DIALOG_PCB_TEXT_PROPERTIES_BASE ) +{ +public: + DIALOG_PCB_TEXT_PROPERTIES( PCB_EDIT_FRAME* parent, TEXTE_PCB* passedTextPCB, wxDC* DC ); + +private: + PCB_EDIT_FRAME* m_Parent; + wxDC* m_DC; + TEXTE_PCB* m_SelectedPCBText; + std::vector layerList; + + void MyInit(); + + // Handlers for DIALOG_PCB_TEXT_PROPERTIES_BASE events. + void OnClose( wxCloseEvent& event ); + void OnCancelClick( wxCommandEvent& event ); + void OnOkClick( wxCommandEvent& event ); +}; /** @@ -50,7 +78,7 @@ DIALOG_PCB_TEXT_PROPERTIES::DIALOG_PCB_TEXT_PROPERTIES( PCB_EDIT_FRAME* parent, TEXTE_PCB* passedTextPCB, wxDC* DC ) - : DIALOG_PCB_TEXT_PROPERTIES_BASE( parent ) + : DIALOG_PCB_TEXT_PROPERTIES_BASE_SHIM( parent ) { m_Parent = parent; m_DC = DC; @@ -78,8 +106,6 @@ void PCB_EDIT_FRAME::InstallTextPCBOptionsFrame( TEXTE_PCB* TextPCB, wxDC* DC ) void DIALOG_PCB_TEXT_PROPERTIES::MyInit() { - SetFocus(); - // Put units symbols to text labels where appropriate AddUnitSymbol( *m_SizeXLabel ); AddUnitSymbol( *m_SizeYLabel ); diff --git a/pcbnew/dialogs/dialog_pcb_text_properties.h b/pcbnew/dialogs/dialog_pcb_text_properties.h deleted file mode 100644 index 236454ca92..0000000000 --- a/pcbnew/dialogs/dialog_pcb_text_properties.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef DIALOG_PCB_TEXT_PROPERTIES_H -#define DIALOG_PCB_TEXT_PROPERTIES_H - -#include -#include -#include - -class PCB_EDIT_FRAME; -class TEXTE_PCB; - -/** Implementing DIALOG_PCB_TEXT_PROPERTIES_BASE */ -class DIALOG_PCB_TEXT_PROPERTIES : public DIALOG_PCB_TEXT_PROPERTIES_BASE -{ -private: - PCB_EDIT_FRAME* m_Parent; - wxDC* m_DC; - TEXTE_PCB* m_SelectedPCBText; - std::vector layerList; - - void MyInit(); - -protected: - // Handlers for DIALOG_PCB_TEXT_PROPERTIES_BASE events. - void OnClose( wxCloseEvent& event ); - void OnCancelClick( wxCommandEvent& event ); - void OnOkClick( wxCommandEvent& event ); - -public: - DIALOG_PCB_TEXT_PROPERTIES( PCB_EDIT_FRAME* parent, TEXTE_PCB* passedTextPCB, wxDC* DC ); -}; - -#endif // DIALOG_PCB_TEXT_PROPERTIES_H From d02e5ecdc58881b82d0302e584dce74ec59f4759 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 20 Mar 2012 15:17:58 +0100 Subject: [PATCH 27/68] Update some icons with new icons from Fabrizio Tappero. Remove 2 duplicate icons. Minor cosmetic enhancements and fixes in popup menus. --- bitmaps_png/CMakeLists.txt | 2 - bitmaps_png/cpp_26/cancel.cpp | 136 ++- bitmaps_png/cpp_26/cancel_tool.cpp | 91 -- bitmaps_png/cpp_26/cursor.cpp | 101 ++- bitmaps_png/cpp_26/delete_association.cpp | 148 +-- bitmaps_png/cpp_26/delete_body.cpp | 75 -- bitmaps_png/cpp_26/hierarchy_cursor.cpp | 104 +-- bitmaps_png/cpp_26/hierarchy_nav.cpp | 58 +- bitmaps_png/cpp_26/module_filtered_list.cpp | 99 +- bitmaps_png/cpp_26/module_full_list.cpp | 98 +- .../cpp_26/module_pin_filtered_list.cpp | 131 +-- bitmaps_png/cpp_26/zone_unfill.cpp | 189 ++-- bitmaps_png/sources/cancel.svg | 446 +++------- bitmaps_png/sources/cancel_tool.svg | 335 ------- bitmaps_png/sources/cursor.svg | 88 +- bitmaps_png/sources/delete_association.svg | 269 +++++- bitmaps_png/sources/delete_body.svg | 115 --- bitmaps_png/sources/hierarchy_cursor.svg | 222 ++--- bitmaps_png/sources/hierarchy_nav.svg | 230 ++--- bitmaps_png/sources/module_filtered_list.svg | 220 ++++- bitmaps_png/sources/module_full_list.svg | 222 ++++- .../sources/module_pin_filtered_list.svg | 202 ++++- bitmaps_png/sources/zone_unfill.svg | 463 +++++----- eeschema/dialogs/dialog_edit_label_base.fbp | 842 +++++++++--------- eeschema/libedit_onrightclick.cpp | 2 +- eeschema/menubar.cpp | 2 +- eeschema/menubar_libedit.cpp | 2 +- eeschema/onrightclick.cpp | 7 +- eeschema/tool_lib.cpp | 2 +- eeschema/tool_sch.cpp | 2 +- gerbview/onrightclick.cpp | 16 +- include/bitmaps.h | 2 - pcbnew/menubar_modedit.cpp | 2 +- pcbnew/menubar_pcbframe.cpp | 4 +- pcbnew/modedit_onclick.cpp | 2 +- pcbnew/onrightclick.cpp | 4 +- pcbnew/tool_modedit.cpp | 2 +- pcbnew/tool_pcb.cpp | 2 +- 38 files changed, 2353 insertions(+), 2584 deletions(-) delete mode 100644 bitmaps_png/cpp_26/cancel_tool.cpp delete mode 100644 bitmaps_png/cpp_26/delete_body.cpp delete mode 100644 bitmaps_png/sources/cancel_tool.svg delete mode 100644 bitmaps_png/sources/delete_body.svg diff --git a/bitmaps_png/CMakeLists.txt b/bitmaps_png/CMakeLists.txt index 85c98f8722..6f58b942d4 100644 --- a/bitmaps_png/CMakeLists.txt +++ b/bitmaps_png/CMakeLists.txt @@ -158,7 +158,6 @@ set( BMAPS_MID break_bus break_line browse_files - cancel_tool cancel change_entry_orient create_cmp_file @@ -176,7 +175,6 @@ set( BMAPS_MID cvpcb dashline datasheet - delete_body delete_arc delete_association delete_bus diff --git a/bitmaps_png/cpp_26/cancel.cpp b/bitmaps_png/cpp_26/cancel.cpp index bebc0e935e..a5070bd654 100644 --- a/bitmaps_png/cpp_26/cancel.cpp +++ b/bitmaps_png/cpp_26/cancel.cpp @@ -8,82 +8,66 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x04, 0xa7, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xcd, 0x96, 0x7d, 0x4c, 0x53, - 0x57, 0x18, 0xc6, 0xdf, 0xb5, 0x94, 0x02, 0x85, 0x5a, 0x29, 0xc3, 0xa0, 0x03, 0x19, 0x0e, 0xcd, - 0xb6, 0x2c, 0x71, 0xd9, 0x08, 0x99, 0x1a, 0xdd, 0x26, 0x26, 0x8e, 0x08, 0x7e, 0x54, 0x51, 0x60, - 0x80, 0x02, 0x93, 0xa1, 0x7c, 0xa8, 0x31, 0x0e, 0x47, 0x81, 0x4b, 0x01, 0xc1, 0x62, 0xf9, 0x10, - 0x10, 0x71, 0x82, 0x8a, 0x20, 0xca, 0x40, 0xcd, 0x96, 0xb0, 0x84, 0x3f, 0x46, 0xa6, 0x10, 0x05, - 0x82, 0x43, 0x34, 0x11, 0x94, 0xae, 0x56, 0x14, 0x9c, 0x13, 0xa6, 0x2e, 0x6a, 0xb6, 0x44, 0x9e, - 0xbd, 0x17, 0x90, 0x58, 0x45, 0x21, 0x24, 0xfb, 0xf8, 0xe3, 0x69, 0x6e, 0xef, 0x79, 0xde, 0xe7, - 0x77, 0xda, 0xf3, 0x9e, 0x73, 0x2f, 0x01, 0xa0, 0x7f, 0x43, 0xf4, 0x9f, 0x82, 0x4e, 0x13, 0xb9, - 0x9e, 0xf5, 0xf1, 0x69, 0x38, 0x29, 0x95, 0xae, 0x9b, 0x68, 0xd0, 0x29, 0xa9, 0xf4, 0xf3, 0x73, - 0xcb, 0x97, 0x37, 0x54, 0x11, 0x4d, 0x9f, 0x10, 0xa8, 0x9a, 0xc8, 0xed, 0x24, 0x91, 0xf1, 0x8a, - 0x10, 0x87, 0x53, 0x72, 0xab, 0x27, 0x7c, 0x1d, 0x36, 0x1e, 0xa4, 0x96, 0x28, 0xf2, 0x94, 0x5c, - 0x36, 0xf8, 0x4b, 0x61, 0x1a, 0xd8, 0xdf, 0xc5, 0x19, 0x33, 0x5e, 0x09, 0xe2, 0xd9, 0xb8, 0xb3, - 0xc9, 0xd4, 0x1e, 0xb2, 0x04, 0x7f, 0x56, 0x94, 0x61, 0xa0, 0x2a, 0x1f, 0x35, 0x32, 0xe9, 0x93, - 0x13, 0x44, 0xe1, 0x2f, 0x83, 0x7c, 0x4b, 0x14, 0x55, 0x6b, 0x6d, 0x35, 0xd8, 0x5f, 0xae, 0xc7, - 0x5f, 0x27, 0x4f, 0xa0, 0x7d, 0x83, 0x2f, 0x38, 0xe3, 0x1a, 0x67, 0xb9, 0x8e, 0x09, 0x3a, 0x4e, - 0x34, 0x8b, 0x07, 0xcd, 0x6d, 0x6b, 0x17, 0xe0, 0x41, 0x96, 0x80, 0x87, 0x5a, 0x2d, 0x1e, 0x1b, - 0x0c, 0xe8, 0xaf, 0x34, 0xa0, 0xda, 0x5a, 0x3a, 0x78, 0x8c, 0x03, 0x9f, 0x87, 0x70, 0x4d, 0x74, - 0xb5, 0xdc, 0x6a, 0xf0, 0xee, 0xe1, 0x4c, 0x3c, 0xde, 0x95, 0x31, 0x5c, 0x73, 0xb4, 0x14, 0xed, - 0xe1, 0xcb, 0xc0, 0x59, 0xc6, 0x4a, 0xa2, 0x99, 0x2f, 0x80, 0x8e, 0x12, 0x5d, 0x3c, 0xb3, 0x68, - 0x36, 0xee, 0x26, 0x6f, 0xc3, 0xaf, 0xf1, 0xf1, 0xa3, 0xfa, 0x3d, 0x43, 0x87, 0xdf, 0xca, 0xb3, - 0x70, 0x88, 0x03, 0xf7, 0x13, 0xc5, 0x3f, 0xf5, 0x17, 0x13, 0x6d, 0xad, 0x94, 0xcb, 0x70, 0xa7, - 0x4c, 0x87, 0xfe, 0x64, 0xad, 0x45, 0xcd, 0xa3, 0x9a, 0x63, 0x38, 0xf3, 0xe9, 0x7b, 0xa8, 0x20, - 0x6a, 0x7e, 0x01, 0x74, 0x84, 0x68, 0x7f, 0x8d, 0x8b, 0x12, 0x7d, 0x42, 0x18, 0x4c, 0x5f, 0x44, - 0xc2, 0x18, 0x1e, 0x3e, 0xaa, 0xde, 0x9d, 0x5f, 0xe1, 0xf6, 0xa1, 0x54, 0xe8, 0x38, 0x38, 0x93, - 0x68, 0x67, 0x06, 0x51, 0xe2, 0x2e, 0x1b, 0x19, 0xfa, 0xbe, 0x49, 0xc2, 0xcd, 0xed, 0xdb, 0x2c, - 0xbc, 0x37, 0xb6, 0xc4, 0xe1, 0xc1, 0x77, 0xe5, 0xa8, 0x71, 0xb6, 0x07, 0x67, 0xe6, 0xbd, 0x00, - 0x12, 0x88, 0x24, 0x65, 0x44, 0x87, 0x8f, 0x4f, 0xb3, 0xc7, 0xad, 0x94, 0x20, 0x5c, 0x09, 0x5e, - 0x87, 0xcb, 0x01, 0x01, 0xa3, 0xea, 0x8e, 0xdf, 0x84, 0xeb, 0x25, 0x09, 0x88, 0xb7, 0x95, 0x61, - 0xab, 0x9d, 0x35, 0xcc, 0xc5, 0x3b, 0x70, 0x35, 0x26, 0xca, 0xc2, 0xd3, 0x19, 0x16, 0x82, 0xbb, - 0xbc, 0x56, 0x55, 0x4e, 0x0a, 0x94, 0x12, 0x95, 0x70, 0xfc, 0x6b, 0x63, 0x36, 0x83, 0x08, 0x3b, - 0x40, 0x74, 0xb0, 0xf2, 0x75, 0x05, 0x7a, 0x92, 0x02, 0x70, 0x71, 0x85, 0x1f, 0xda, 0x7c, 0x7d, - 0x47, 0xd5, 0x11, 0x11, 0x82, 0xee, 0x82, 0x38, 0x56, 0x3c, 0x3a, 0xd6, 0x07, 0x5b, 0x8e, 0xad, - 0xf4, 0xc3, 0xed, 0xdc, 0x58, 0x54, 0xa8, 0xed, 0xc0, 0x19, 0x45, 0xcf, 0x42, 0xc6, 0xde, 0x47, - 0x6c, 0xe0, 0xb5, 0x28, 0x39, 0xc2, 0x05, 0x66, 0xed, 0x2a, 0xb4, 0x2d, 0xf9, 0x04, 0xe7, 0x17, - 0x2c, 0x18, 0xd2, 0x39, 0x56, 0xab, 0xc6, 0x0f, 0xad, 0xab, 0xfc, 0x86, 0xae, 0xc5, 0x7b, 0x17, - 0x18, 0x62, 0x4a, 0x4d, 0xc1, 0x9d, 0xf2, 0x74, 0x1c, 0x76, 0xb4, 0x05, 0xaf, 0x5d, 0xfe, 0xc4, - 0x4f, 0x06, 0x86, 0x15, 0xf0, 0xac, 0x4a, 0xb9, 0xf0, 0xba, 0xd6, 0x1f, 0x2d, 0xf3, 0xbc, 0xd0, - 0x34, 0x77, 0xee, 0xb0, 0xbc, 0xbc, 0xd0, 0xae, 0xd1, 0xe0, 0xca, 0xa6, 0xcd, 0xe8, 0x88, 0x8e, - 0x46, 0x4b, 0x68, 0x10, 0xae, 0x69, 0x7d, 0x70, 0x70, 0xaa, 0x2d, 0xf6, 0x12, 0x19, 0x26, 0x75, - 0x04, 0xe5, 0xf1, 0xec, 0x4a, 0x54, 0x36, 0x30, 0xa5, 0xad, 0xc1, 0xb9, 0x45, 0xf3, 0xd1, 0xb4, - 0x70, 0x21, 0x1a, 0x59, 0xf5, 0x33, 0xdd, 0x71, 0x5a, 0x22, 0x41, 0xdd, 0x14, 0x1b, 0x74, 0x27, - 0x2d, 0x45, 0x89, 0xca, 0x16, 0xb9, 0x44, 0xbb, 0x27, 0x7d, 0xd6, 0xe5, 0x70, 0xd7, 0xec, 0xe3, - 0x90, 0xee, 0xc4, 0xcf, 0xf0, 0xa3, 0x83, 0x1c, 0xf5, 0x6c, 0x7f, 0x56, 0x0d, 0xe2, 0x98, 0xe0, - 0x07, 0xd1, 0x63, 0x98, 0x2c, 0x68, 0x37, 0x51, 0x41, 0x81, 0xa3, 0x02, 0xc6, 0x64, 0x7f, 0x34, - 0x4f, 0x55, 0xa0, 0x91, 0xad, 0x67, 0x59, 0x3f, 0x8d, 0xa8, 0x71, 0x44, 0x2d, 0x6a, 0x7b, 0x18, - 0x75, 0x1a, 0x88, 0x5e, 0x3d, 0x51, 0xf6, 0xc4, 0x41, 0xbc, 0x3e, 0xbc, 0x4f, 0x8a, 0xf2, 0x1d, - 0xed, 0x61, 0x12, 0x56, 0xe3, 0x12, 0x43, 0x7e, 0x66, 0x9b, 0xa8, 0x36, 0x51, 0x6a, 0x87, 0x61, - 0x8d, 0xdc, 0x13, 0x75, 0x89, 0xbf, 0x9b, 0xd2, 0x03, 0x91, 0xc7, 0x35, 0xbc, 0xcf, 0x72, 0xc6, - 0x07, 0x31, 0x24, 0x8d, 0x37, 0x6e, 0xae, 0x93, 0x12, 0xe6, 0xb4, 0x40, 0x74, 0xab, 0x14, 0xe8, - 0x62, 0x8b, 0xa8, 0x4e, 0x51, 0x33, 0xd4, 0x68, 0xca, 0x0c, 0x47, 0x53, 0x56, 0x24, 0xba, 0xf8, - 0xba, 0x73, 0x64, 0x4c, 0x54, 0xb7, 0x7a, 0x0a, 0xcc, 0xd9, 0x31, 0xc8, 0x71, 0x52, 0x41, 0x37, - 0x46, 0xe7, 0x0d, 0x7f, 0x30, 0x40, 0x58, 0xf3, 0xae, 0xb5, 0x20, 0x95, 0x94, 0x1a, 0xa6, 0x39, - 0xa2, 0x47, 0x1f, 0x83, 0x5b, 0x2a, 0x07, 0xf4, 0xf0, 0xb0, 0xa8, 0x1b, 0xa2, 0xdc, 0x5c, 0x70, - 0x3e, 0x67, 0x3b, 0xde, 0x71, 0x50, 0x60, 0x0e, 0xab, 0x39, 0x37, 0x01, 0x3d, 0xae, 0x2e, 0x43, - 0x63, 0x4f, 0x7d, 0xb7, 0xd4, 0x53, 0xd1, 0x53, 0x20, 0xc0, 0xe0, 0xac, 0x46, 0xaa, 0x44, 0x52, - 0xc8, 0xd9, 0x96, 0x1b, 0x56, 0x84, 0xa4, 0xa8, 0x95, 0x47, 0x0c, 0x73, 0xdc, 0xd1, 0xbb, 0x37, - 0x19, 0x03, 0x2a, 0x25, 0xfa, 0x79, 0x68, 0x54, 0x1e, 0x6e, 0x68, 0x2d, 0x48, 0x83, 0xb7, 0xbd, - 0x02, 0xa1, 0x44, 0xfa, 0x60, 0xa2, 0x3d, 0x1f, 0x32, 0xac, 0xad, 0x30, 0x03, 0x03, 0x6f, 0xba, - 0x5a, 0x78, 0x07, 0xd4, 0x8e, 0xe8, 0x3d, 0x90, 0x8d, 0xb2, 0x8f, 0xbc, 0x51, 0xea, 0xed, 0x5d, - 0x62, 0x01, 0x5a, 0xbf, 0xfe, 0x63, 0x9b, 0x64, 0x67, 0x95, 0xb1, 0x36, 0x78, 0x05, 0xee, 0xc7, - 0x6e, 0xc0, 0x43, 0xbe, 0x3d, 0xaa, 0xd9, 0x1e, 0x68, 0x2f, 0xca, 0xc4, 0x7c, 0x3b, 0x5b, 0x84, - 0x13, 0xe9, 0x9e, 0x16, 0x32, 0x30, 0x73, 0x1e, 0x83, 0x2f, 0x15, 0xeb, 0xf1, 0x68, 0x96, 0xbb, - 0x45, 0xcd, 0x83, 0x1d, 0xb1, 0xa8, 0x0b, 0x5d, 0x87, 0xbd, 0x1e, 0x1e, 0x1d, 0x96, 0xbf, 0x48, - 0x20, 0x49, 0x92, 0x8b, 0xd3, 0x07, 0x82, 0x8d, 0x75, 0x5f, 0x7d, 0xd8, 0x5a, 0xdc, 0x8b, 0x1e, - 0x81, 0xbd, 0x3d, 0x1b, 0x97, 0x8b, 0xb2, 0xb1, 0x98, 0x21, 0x11, 0x44, 0xc9, 0xcf, 0xff, 0xef, - 0x61, 0x44, 0xe9, 0x8b, 0x15, 0x76, 0xe8, 0x2c, 0x36, 0xe0, 0x91, 0xe7, 0xac, 0xa1, 0x9a, 0x7b, - 0x5b, 0xbe, 0x44, 0x5d, 0xa0, 0x06, 0x3a, 0x89, 0xc4, 0xac, 0x57, 0x2a, 0x3d, 0xc7, 0x6c, 0x06, - 0x6e, 0x04, 0xcf, 0x54, 0xa2, 0x9e, 0x1f, 0x82, 0x56, 0xe3, 0x7e, 0x7a, 0x22, 0x3a, 0x0b, 0xf5, - 0xf0, 0xb7, 0x91, 0x0f, 0x46, 0x12, 0x7d, 0xfd, 0xb2, 0xb6, 0xe5, 0x5f, 0x29, 0xac, 0xe4, 0x89, - 0x5c, 0xdb, 0xb7, 0x07, 0x7f, 0xe4, 0x64, 0xe0, 0xfb, 0xd5, 0xfe, 0xe0, 0x0c, 0x13, 0x9f, 0x9b, - 0xee, 0xaf, 0x6c, 0x6f, 0x36, 0x78, 0x08, 0xb6, 0xf2, 0x9b, 0xfb, 0x57, 0x2d, 0x45, 0x84, 0x83, - 0x62, 0x30, 0x8a, 0x68, 0xfb, 0x78, 0x8f, 0xf2, 0x8d, 0xfc, 0xd8, 0x88, 0x75, 0xb0, 0x47, 0xd3, - 0x86, 0x50, 0x11, 0x62, 0xe4, 0x0c, 0xb7, 0x09, 0x6d, 0xd8, 0x84, 0xb7, 0xa6, 0xbf, 0xaf, 0x9d, - 0xee, 0xd4, 0xb8, 0x43, 0x26, 0xdb, 0x38, 0xd1, 0x97, 0x93, 0x0c, 0xa5, 0x72, 0xf3, 0x05, 0x8d, - 0xe6, 0x2a, 0x43, 0xde, 0xf8, 0xff, 0xbd, 0x6e, 0xfd, 0x13, 0xfa, 0x1b, 0x77, 0xe6, 0x75, 0xa6, - 0x04, 0x24, 0xd2, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x03, 0x9b, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xdd, 0x56, 0x7d, 0x68, 0x96, + 0x55, 0x14, 0xff, 0xdd, 0x67, 0xef, 0x98, 0x31, 0x9d, 0xc3, 0x34, 0x5a, 0x35, 0x44, 0xdb, 0x2c, + 0x82, 0x2c, 0x6b, 0xad, 0x68, 0x90, 0xa1, 0x61, 0x1f, 0x92, 0x85, 0xc5, 0xb2, 0x16, 0x23, 0x89, + 0x58, 0x52, 0x82, 0xc9, 0xc4, 0xc2, 0x60, 0xae, 0x55, 0xb4, 0x9a, 0x85, 0x06, 0x11, 0x7d, 0x81, + 0xc2, 0xb2, 0x2c, 0xa6, 0xa0, 0x2c, 0x58, 0x4a, 0xda, 0x08, 0x19, 0xa9, 0x49, 0x86, 0x66, 0xac, + 0x56, 0x7e, 0x6c, 0x7e, 0xae, 0x35, 0xd7, 0xf6, 0x3e, 0xf7, 0x3d, 0xe7, 0x77, 0xfa, 0xe3, 0xfd, + 0xd8, 0x3b, 0xd9, 0xc7, 0xab, 0x82, 0x7f, 0x74, 0xe1, 0xf0, 0x3c, 0xf7, 0xb9, 0xe7, 0x9e, 0x1f, + 0xbf, 0xdf, 0x39, 0xe7, 0x3e, 0xd7, 0x99, 0x19, 0x2e, 0xc7, 0x08, 0x70, 0x99, 0x46, 0x64, 0xc8, + 0xec, 0xa3, 0xaa, 0xec, 0x81, 0x93, 0xe3, 0x77, 0x00, 0x41, 0x1b, 0x18, 0xac, 0xbd, 0xa2, 0xa6, + 0xfe, 0xd8, 0xc5, 0x06, 0xfe, 0xbb, 0xaa, 0x6a, 0xe2, 0xd9, 0x9c, 0x9c, 0x68, 0xd1, 0xba, 0x75, + 0x21, 0x00, 0xb8, 0x74, 0xe9, 0xfa, 0xeb, 0xaa, 0xeb, 0x1c, 0xf0, 0x6a, 0x62, 0x1a, 0x03, 0xdc, + 0x97, 0xa4, 0x5b, 0x93, 0x5b, 0xf3, 0xf6, 0xfe, 0x8c, 0xa2, 0xd7, 0xd6, 0x06, 0x27, 0xbb, 0xda, + 0x9f, 0x00, 0xb5, 0xca, 0x54, 0xcb, 0x8c, 0xfa, 0x17, 0xc9, 0x65, 0xd7, 0xae, 0x6f, 0xda, 0x96, + 0x02, 0xea, 0x7f, 0x63, 0x79, 0x89, 0x63, 0xb0, 0x3b, 0xc9, 0xd2, 0xc8, 0x94, 0x41, 0xd9, 0x18, + 0xd5, 0x81, 0x25, 0x93, 0xeb, 0x3f, 0x3d, 0x37, 0x2c, 0x40, 0x79, 0x79, 0xd6, 0xa9, 0x09, 0x41, + 0x05, 0xc1, 0x55, 0xa6, 0x9c, 0x61, 0x4a, 0x90, 0x84, 0x29, 0x9b, 0x48, 0x6b, 0x98, 0xba, 0x69, + 0xeb, 0xee, 0x41, 0xe9, 0xcc, 0x5d, 0x65, 0xaa, 0x07, 0x8d, 0x9c, 0x49, 0x4d, 0x80, 0x68, 0x0a, + 0xac, 0xc2, 0xa9, 0xdd, 0x75, 0x66, 0x69, 0xe5, 0xa2, 0xc9, 0xef, 0x6f, 0xd8, 0x93, 0xda, 0xe3, + 0x9c, 0xeb, 0x5c, 0xfc, 0xf8, 0x33, 0x6e, 0x1c, 0x57, 0x31, 0x8c, 0x5d, 0x9f, 0xdc, 0x03, 0xea, + 0x11, 0x11, 0x79, 0x6e, 0xda, 0xe6, 0x96, 0x96, 0x94, 0xeb, 0xf9, 0x55, 0xf7, 0xcf, 0x8a, 0x25, + 0x73, 0x8c, 0xfa, 0x92, 0x51, 0xe7, 0x53, 0xe9, 0xce, 0x03, 0x8c, 0x19, 0xe5, 0x95, 0xab, 0x3f, + 0xfb, 0xfa, 0xdd, 0xa3, 0x8b, 0x16, 0x14, 0x20, 0x70, 0xeb, 0x41, 0xde, 0x17, 0x5f, 0xd7, 0xa4, + 0xdf, 0xc7, 0x1a, 0xcb, 0xae, 0x2e, 0x6a, 0x6e, 0xee, 0x4d, 0x8f, 0xeb, 0x46, 0x2a, 0xef, 0xd3, + 0xcf, 0x57, 0x14, 0x1b, 0xad, 0x81, 0xca, 0x05, 0x46, 0x1d, 0xc2, 0x90, 0xc2, 0x1d, 0x30, 0xbb, + 0xd5, 0x54, 0xae, 0x34, 0x26, 0x64, 0x12, 0x76, 0x1a, 0x74, 0x71, 0x51, 0xf3, 0xae, 0x96, 0xe1, + 0xe2, 0xb9, 0xb1, 0xfa, 0xe8, 0x78, 0xc5, 0xa3, 0x95, 0x54, 0xae, 0x35, 0x32, 0x3f, 0x0e, 0xa6, + 0x83, 0xf9, 0x4b, 0x49, 0xac, 0x87, 0xb3, 0xe0, 0xe6, 0x4d, 0xff, 0xb6, 0xf5, 0xc8, 0x48, 0x71, + 0x5c, 0x26, 0x0d, 0xdb, 0xfe, 0xd8, 0x43, 0xd7, 0x39, 0xf1, 0x9f, 0x40, 0x78, 0xff, 0x50, 0x10, + 0x85, 0x91, 0x7b, 0x23, 0x8c, 0x3d, 0x58, 0xf4, 0xfd, 0xbe, 0xd3, 0x97, 0xdc, 0xb0, 0x45, 0x4d, + 0xdf, 0x1c, 0x67, 0x7f, 0xf8, 0x87, 0x46, 0xa3, 0x90, 0x68, 0x14, 0x32, 0x90, 0x7c, 0x86, 0x90, + 0x81, 0x70, 0xcf, 0x58, 0x20, 0x19, 0x33, 0xfa, 0x75, 0xf6, 0x9d, 0xab, 0x8d, 0xac, 0x49, 0x32, + 0xe1, 0x50, 0x46, 0x30, 0xb5, 0x27, 0x67, 0xfd, 0x72, 0xf8, 0x8b, 0x4b, 0x02, 0x3a, 0x58, 0x36, + 0xeb, 0x11, 0x8a, 0x6d, 0x36, 0xd2, 0xa5, 0xf2, 0xa3, 0xf4, 0x46, 0x06, 0x24, 0x23, 0x34, 0x80, + 0x66, 0xe7, 0x5c, 0xe0, 0x4a, 0x4a, 0x0f, 0xfd, 0xfe, 0xdb, 0x45, 0x01, 0x1d, 0x28, 0x99, 0x79, + 0x23, 0x55, 0xda, 0x8c, 0xcc, 0x4b, 0x55, 0x9c, 0x19, 0x68, 0x56, 0x0e, 0x5a, 0x44, 0x61, 0x8d, + 0xa4, 0x39, 0x9a, 0xc1, 0xcc, 0x0e, 0xd0, 0x22, 0xa5, 0xf7, 0x76, 0x74, 0x44, 0xc7, 0x3e, 0xeb, + 0xd2, 0x46, 0x5b, 0x71, 0x71, 0x5e, 0x76, 0x8e, 0x6d, 0x31, 0xb5, 0x3c, 0x1a, 0x60, 0x71, 0x00, + 0x90, 0xb6, 0xf1, 0xee, 0xf6, 0x3f, 0xbf, 0x02, 0x80, 0x5d, 0xd3, 0x0a, 0x8b, 0x09, 0xab, 0x25, + 0x0d, 0x66, 0x76, 0x33, 0xa1, 0xd5, 0x00, 0x5e, 0xbf, 0xa0, 0x62, 0x08, 0xb2, 0x58, 0x1b, 0x8b, + 0xe9, 0x0d, 0x5e, 0x15, 0x5e, 0x05, 0x5e, 0x04, 0x5e, 0xa4, 0xbb, 0x0f, 0xd1, 0x65, 0x49, 0x9f, + 0xd9, 0x1d, 0x47, 0x5f, 0x0b, 0x45, 0x1a, 0xbd, 0x2a, 0x42, 0x51, 0xf8, 0x98, 0xac, 0x6c, 0x9a, + 0x32, 0xa5, 0x20, 0x63, 0xa0, 0xd6, 0xe2, 0xa9, 0x37, 0x85, 0x22, 0x2f, 0x7a, 0x51, 0x24, 0x2d, + 0x54, 0x85, 0x17, 0x56, 0xcf, 0x6b, 0x3f, 0x71, 0x2a, 0xdd, 0xd7, 0xc6, 0x4d, 0x78, 0xd6, 0x8b, + 0x1c, 0xf2, 0x2a, 0xf0, 0xaa, 0xe3, 0xcd, 0xf8, 0x66, 0xc6, 0x39, 0xda, 0x39, 0xbd, 0x70, 0x3b, + 0x69, 0x73, 0x53, 0x72, 0xc5, 0x73, 0xf0, 0xdd, 0x03, 0xc7, 0x4e, 0xcc, 0x19, 0x2e, 0xc8, 0xa6, + 0x49, 0x93, 0xca, 0xcc, 0xb1, 0x95, 0x66, 0xce, 0xcc, 0x48, 0xd3, 0x3b, 0x9e, 0xee, 0xf9, 0x77, + 0xdf, 0xa8, 0x8c, 0xb6, 0x17, 0x5e, 0xb3, 0xd0, 0xc7, 0x64, 0xae, 0x17, 0x41, 0x28, 0x29, 0xc9, + 0x10, 0x53, 0x59, 0x39, 0x92, 0xcc, 0xe5, 0xdd, 0xdd, 0x3f, 0x78, 0xd1, 0x0f, 0x13, 0xec, 0x03, + 0x2f, 0xf6, 0xde, 0xa8, 0xd2, 0xd5, 0x3a, 0x17, 0x78, 0x6a, 0x43, 0xba, 0x64, 0x09, 0xdb, 0xf9, + 0x70, 0xd7, 0x99, 0x1f, 0x47, 0xed, 0xfc, 0x48, 0xdf, 0xcb, 0x5e, 0xb4, 0x33, 0x8c, 0xfb, 0xdf, + 0xf3, 0x41, 0x4e, 0xce, 0xc2, 0x11, 0x81, 0x6a, 0xcc, 0x18, 0x8a, 0x56, 0x7b, 0xd5, 0x7e, 0xaf, + 0x89, 0xdc, 0x88, 0xc2, 0x53, 0xeb, 0xc7, 0x6a, 0xea, 0x8a, 0xb3, 0xd6, 0x1b, 0x6a, 0xec, 0x85, + 0x41, 0x05, 0x74, 0xc5, 0x98, 0x39, 0xfa, 0x3c, 0x3f, 0xff, 0x76, 0x38, 0x6e, 0xa5, 0x59, 0x01, + 0x69, 0x3f, 0x57, 0xf6, 0xf6, 0xdd, 0x92, 0xe9, 0x2f, 0x7c, 0x8d, 0x73, 0xdb, 0x00, 0xcc, 0x07, + 0x00, 0x07, 0xdc, 0xb6, 0xdc, 0xec, 0xa7, 0x11, 0xab, 0xee, 0xa9, 0x9e, 0x9e, 0xbd, 0xfd, 0xa1, + 0x94, 0x86, 0xa2, 0xfb, 0x3d, 0xf5, 0x9d, 0x0b, 0xb9, 0x2b, 0x18, 0x50, 0x97, 0x78, 0xed, 0x32, + 0x20, 0x77, 0x70, 0x21, 0x5e, 0x51, 0xc3, 0xda, 0x06, 0x20, 0x77, 0x35, 0x10, 0x19, 0xcd, 0x67, + 0x38, 0x6b, 0x00, 0x96, 0xbe, 0x05, 0x4c, 0x4c, 0xff, 0xe6, 0xfe, 0x77, 0xf7, 0xba, 0xff, 0x00, + 0xa8, 0x6c, 0x30, 0x24, 0x92, 0xb0, 0x6e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, + 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE cancel_xpm[1] = {{ png, sizeof( png ), "cancel_xpm" }}; diff --git a/bitmaps_png/cpp_26/cancel_tool.cpp b/bitmaps_png/cpp_26/cancel_tool.cpp deleted file mode 100644 index 9ddf71dc7e..0000000000 --- a/bitmaps_png/cpp_26/cancel_tool.cpp +++ /dev/null @@ -1,91 +0,0 @@ - -/* Do not modify this file, it was automatically generated by the - * PNG2cpp CMake script, using a *.png file as input. - */ - -#include - -static const unsigned char png[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, - 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x04, 0xa7, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xcd, 0x96, 0x7d, 0x4c, 0x53, - 0x57, 0x18, 0xc6, 0xdf, 0xb5, 0x94, 0x02, 0x85, 0x5a, 0x29, 0xc3, 0xa0, 0x03, 0x19, 0x0e, 0xcd, - 0xb6, 0x2c, 0x71, 0xd9, 0x08, 0x99, 0x1a, 0xdd, 0x26, 0x26, 0x8e, 0x08, 0x7e, 0x54, 0x51, 0x60, - 0x80, 0x02, 0x93, 0xa1, 0x7c, 0xa8, 0x31, 0x0e, 0x47, 0x81, 0x4b, 0x01, 0xc1, 0x62, 0xf9, 0x10, - 0x10, 0x71, 0x82, 0x8a, 0x20, 0xca, 0x40, 0xcd, 0x96, 0xb0, 0x84, 0x3f, 0x46, 0xa6, 0x10, 0x05, - 0x82, 0x43, 0x34, 0x11, 0x94, 0xae, 0x56, 0x14, 0x9c, 0x13, 0xa6, 0x2e, 0x6a, 0xb6, 0x44, 0x9e, - 0xbd, 0x17, 0x90, 0x58, 0x45, 0x21, 0x24, 0xfb, 0xf8, 0xe3, 0x69, 0x6e, 0xef, 0x79, 0xde, 0xe7, - 0x77, 0xda, 0xf3, 0x9e, 0x73, 0x2f, 0x01, 0xa0, 0x7f, 0x43, 0xf4, 0x9f, 0x82, 0x4e, 0x13, 0xb9, - 0x9e, 0xf5, 0xf1, 0x69, 0x38, 0x29, 0x95, 0xae, 0x9b, 0x68, 0xd0, 0x29, 0xa9, 0xf4, 0xf3, 0x73, - 0xcb, 0x97, 0x37, 0x54, 0x11, 0x4d, 0x9f, 0x10, 0xa8, 0x9a, 0xc8, 0xed, 0x24, 0x91, 0xf1, 0x8a, - 0x10, 0x87, 0x53, 0x72, 0xab, 0x27, 0x7c, 0x1d, 0x36, 0x1e, 0xa4, 0x96, 0x28, 0xf2, 0x94, 0x5c, - 0x36, 0xf8, 0x4b, 0x61, 0x1a, 0xd8, 0xdf, 0xc5, 0x19, 0x33, 0x5e, 0x09, 0xe2, 0xd9, 0xb8, 0xb3, - 0xc9, 0xd4, 0x1e, 0xb2, 0x04, 0x7f, 0x56, 0x94, 0x61, 0xa0, 0x2a, 0x1f, 0x35, 0x32, 0xe9, 0x93, - 0x13, 0x44, 0xe1, 0x2f, 0x83, 0x7c, 0x4b, 0x14, 0x55, 0x6b, 0x6d, 0x35, 0xd8, 0x5f, 0xae, 0xc7, - 0x5f, 0x27, 0x4f, 0xa0, 0x7d, 0x83, 0x2f, 0x38, 0xe3, 0x1a, 0x67, 0xb9, 0x8e, 0x09, 0x3a, 0x4e, - 0x34, 0x8b, 0x07, 0xcd, 0x6d, 0x6b, 0x17, 0xe0, 0x41, 0x96, 0x80, 0x87, 0x5a, 0x2d, 0x1e, 0x1b, - 0x0c, 0xe8, 0xaf, 0x34, 0xa0, 0xda, 0x5a, 0x3a, 0x78, 0x8c, 0x03, 0x9f, 0x87, 0x70, 0x4d, 0x74, - 0xb5, 0xdc, 0x6a, 0xf0, 0xee, 0xe1, 0x4c, 0x3c, 0xde, 0x95, 0x31, 0x5c, 0x73, 0xb4, 0x14, 0xed, - 0xe1, 0xcb, 0xc0, 0x59, 0xc6, 0x4a, 0xa2, 0x99, 0x2f, 0x80, 0x8e, 0x12, 0x5d, 0x3c, 0xb3, 0x68, - 0x36, 0xee, 0x26, 0x6f, 0xc3, 0xaf, 0xf1, 0xf1, 0xa3, 0xfa, 0x3d, 0x43, 0x87, 0xdf, 0xca, 0xb3, - 0x70, 0x88, 0x03, 0xf7, 0x13, 0xc5, 0x3f, 0xf5, 0x17, 0x13, 0x6d, 0xad, 0x94, 0xcb, 0x70, 0xa7, - 0x4c, 0x87, 0xfe, 0x64, 0xad, 0x45, 0xcd, 0xa3, 0x9a, 0x63, 0x38, 0xf3, 0xe9, 0x7b, 0xa8, 0x20, - 0x6a, 0x7e, 0x01, 0x74, 0x84, 0x68, 0x7f, 0x8d, 0x8b, 0x12, 0x7d, 0x42, 0x18, 0x4c, 0x5f, 0x44, - 0xc2, 0x18, 0x1e, 0x3e, 0xaa, 0xde, 0x9d, 0x5f, 0xe1, 0xf6, 0xa1, 0x54, 0xe8, 0x38, 0x38, 0x93, - 0x68, 0x67, 0x06, 0x51, 0xe2, 0x2e, 0x1b, 0x19, 0xfa, 0xbe, 0x49, 0xc2, 0xcd, 0xed, 0xdb, 0x2c, - 0xbc, 0x37, 0xb6, 0xc4, 0xe1, 0xc1, 0x77, 0xe5, 0xa8, 0x71, 0xb6, 0x07, 0x67, 0xe6, 0xbd, 0x00, - 0x12, 0x88, 0x24, 0x65, 0x44, 0x87, 0x8f, 0x4f, 0xb3, 0xc7, 0xad, 0x94, 0x20, 0x5c, 0x09, 0x5e, - 0x87, 0xcb, 0x01, 0x01, 0xa3, 0xea, 0x8e, 0xdf, 0x84, 0xeb, 0x25, 0x09, 0x88, 0xb7, 0x95, 0x61, - 0xab, 0x9d, 0x35, 0xcc, 0xc5, 0x3b, 0x70, 0x35, 0x26, 0xca, 0xc2, 0xd3, 0x19, 0x16, 0x82, 0xbb, - 0xbc, 0x56, 0x55, 0x4e, 0x0a, 0x94, 0x12, 0x95, 0x70, 0xfc, 0x6b, 0x63, 0x36, 0x83, 0x08, 0x3b, - 0x40, 0x74, 0xb0, 0xf2, 0x75, 0x05, 0x7a, 0x92, 0x02, 0x70, 0x71, 0x85, 0x1f, 0xda, 0x7c, 0x7d, - 0x47, 0xd5, 0x11, 0x11, 0x82, 0xee, 0x82, 0x38, 0x56, 0x3c, 0x3a, 0xd6, 0x07, 0x5b, 0x8e, 0xad, - 0xf4, 0xc3, 0xed, 0xdc, 0x58, 0x54, 0xa8, 0xed, 0xc0, 0x19, 0x45, 0xcf, 0x42, 0xc6, 0xde, 0x47, - 0x6c, 0xe0, 0xb5, 0x28, 0x39, 0xc2, 0x05, 0x66, 0xed, 0x2a, 0xb4, 0x2d, 0xf9, 0x04, 0xe7, 0x17, - 0x2c, 0x18, 0xd2, 0x39, 0x56, 0xab, 0xc6, 0x0f, 0xad, 0xab, 0xfc, 0x86, 0xae, 0xc5, 0x7b, 0x17, - 0x18, 0x62, 0x4a, 0x4d, 0xc1, 0x9d, 0xf2, 0x74, 0x1c, 0x76, 0xb4, 0x05, 0xaf, 0x5d, 0xfe, 0xc4, - 0x4f, 0x06, 0x86, 0x15, 0xf0, 0xac, 0x4a, 0xb9, 0xf0, 0xba, 0xd6, 0x1f, 0x2d, 0xf3, 0xbc, 0xd0, - 0x34, 0x77, 0xee, 0xb0, 0xbc, 0xbc, 0xd0, 0xae, 0xd1, 0xe0, 0xca, 0xa6, 0xcd, 0xe8, 0x88, 0x8e, - 0x46, 0x4b, 0x68, 0x10, 0xae, 0x69, 0x7d, 0x70, 0x70, 0xaa, 0x2d, 0xf6, 0x12, 0x19, 0x26, 0x75, - 0x04, 0xe5, 0xf1, 0xec, 0x4a, 0x54, 0x36, 0x30, 0xa5, 0xad, 0xc1, 0xb9, 0x45, 0xf3, 0xd1, 0xb4, - 0x70, 0x21, 0x1a, 0x59, 0xf5, 0x33, 0xdd, 0x71, 0x5a, 0x22, 0x41, 0xdd, 0x14, 0x1b, 0x74, 0x27, - 0x2d, 0x45, 0x89, 0xca, 0x16, 0xb9, 0x44, 0xbb, 0x27, 0x7d, 0xd6, 0xe5, 0x70, 0xd7, 0xec, 0xe3, - 0x90, 0xee, 0xc4, 0xcf, 0xf0, 0xa3, 0x83, 0x1c, 0xf5, 0x6c, 0x7f, 0x56, 0x0d, 0xe2, 0x98, 0xe0, - 0x07, 0xd1, 0x63, 0x98, 0x2c, 0x68, 0x37, 0x51, 0x41, 0x81, 0xa3, 0x02, 0xc6, 0x64, 0x7f, 0x34, - 0x4f, 0x55, 0xa0, 0x91, 0xad, 0x67, 0x59, 0x3f, 0x8d, 0xa8, 0x71, 0x44, 0x2d, 0x6a, 0x7b, 0x18, - 0x75, 0x1a, 0x88, 0x5e, 0x3d, 0x51, 0xf6, 0xc4, 0x41, 0xbc, 0x3e, 0xbc, 0x4f, 0x8a, 0xf2, 0x1d, - 0xed, 0x61, 0x12, 0x56, 0xe3, 0x12, 0x43, 0x7e, 0x66, 0x9b, 0xa8, 0x36, 0x51, 0x6a, 0x87, 0x61, - 0x8d, 0xdc, 0x13, 0x75, 0x89, 0xbf, 0x9b, 0xd2, 0x03, 0x91, 0xc7, 0x35, 0xbc, 0xcf, 0x72, 0xc6, - 0x07, 0x31, 0x24, 0x8d, 0x37, 0x6e, 0xae, 0x93, 0x12, 0xe6, 0xb4, 0x40, 0x74, 0xab, 0x14, 0xe8, - 0x62, 0x8b, 0xa8, 0x4e, 0x51, 0x33, 0xd4, 0x68, 0xca, 0x0c, 0x47, 0x53, 0x56, 0x24, 0xba, 0xf8, - 0xba, 0x73, 0x64, 0x4c, 0x54, 0xb7, 0x7a, 0x0a, 0xcc, 0xd9, 0x31, 0xc8, 0x71, 0x52, 0x41, 0x37, - 0x46, 0xe7, 0x0d, 0x7f, 0x30, 0x40, 0x58, 0xf3, 0xae, 0xb5, 0x20, 0x95, 0x94, 0x1a, 0xa6, 0x39, - 0xa2, 0x47, 0x1f, 0x83, 0x5b, 0x2a, 0x07, 0xf4, 0xf0, 0xb0, 0xa8, 0x1b, 0xa2, 0xdc, 0x5c, 0x70, - 0x3e, 0x67, 0x3b, 0xde, 0x71, 0x50, 0x60, 0x0e, 0xab, 0x39, 0x37, 0x01, 0x3d, 0xae, 0x2e, 0x43, - 0x63, 0x4f, 0x7d, 0xb7, 0xd4, 0x53, 0xd1, 0x53, 0x20, 0xc0, 0xe0, 0xac, 0x46, 0xaa, 0x44, 0x52, - 0xc8, 0xd9, 0x96, 0x1b, 0x56, 0x84, 0xa4, 0xa8, 0x95, 0x47, 0x0c, 0x73, 0xdc, 0xd1, 0xbb, 0x37, - 0x19, 0x03, 0x2a, 0x25, 0xfa, 0x79, 0x68, 0x54, 0x1e, 0x6e, 0x68, 0x2d, 0x48, 0x83, 0xb7, 0xbd, - 0x02, 0xa1, 0x44, 0xfa, 0x60, 0xa2, 0x3d, 0x1f, 0x32, 0xac, 0xad, 0x30, 0x03, 0x03, 0x6f, 0xba, - 0x5a, 0x78, 0x07, 0xd4, 0x8e, 0xe8, 0x3d, 0x90, 0x8d, 0xb2, 0x8f, 0xbc, 0x51, 0xea, 0xed, 0x5d, - 0x62, 0x01, 0x5a, 0xbf, 0xfe, 0x63, 0x9b, 0x64, 0x67, 0x95, 0xb1, 0x36, 0x78, 0x05, 0xee, 0xc7, - 0x6e, 0xc0, 0x43, 0xbe, 0x3d, 0xaa, 0xd9, 0x1e, 0x68, 0x2f, 0xca, 0xc4, 0x7c, 0x3b, 0x5b, 0x84, - 0x13, 0xe9, 0x9e, 0x16, 0x32, 0x30, 0x73, 0x1e, 0x83, 0x2f, 0x15, 0xeb, 0xf1, 0x68, 0x96, 0xbb, - 0x45, 0xcd, 0x83, 0x1d, 0xb1, 0xa8, 0x0b, 0x5d, 0x87, 0xbd, 0x1e, 0x1e, 0x1d, 0x96, 0xbf, 0x48, - 0x20, 0x49, 0x92, 0x8b, 0xd3, 0x07, 0x82, 0x8d, 0x75, 0x5f, 0x7d, 0xd8, 0x5a, 0xdc, 0x8b, 0x1e, - 0x81, 0xbd, 0x3d, 0x1b, 0x97, 0x8b, 0xb2, 0xb1, 0x98, 0x21, 0x11, 0x44, 0xc9, 0xcf, 0xff, 0xef, - 0x61, 0x44, 0xe9, 0x8b, 0x15, 0x76, 0xe8, 0x2c, 0x36, 0xe0, 0x91, 0xe7, 0xac, 0xa1, 0x9a, 0x7b, - 0x5b, 0xbe, 0x44, 0x5d, 0xa0, 0x06, 0x3a, 0x89, 0xc4, 0xac, 0x57, 0x2a, 0x3d, 0xc7, 0x6c, 0x06, - 0x6e, 0x04, 0xcf, 0x54, 0xa2, 0x9e, 0x1f, 0x82, 0x56, 0xe3, 0x7e, 0x7a, 0x22, 0x3a, 0x0b, 0xf5, - 0xf0, 0xb7, 0x91, 0x0f, 0x46, 0x12, 0x7d, 0xfd, 0xb2, 0xb6, 0xe5, 0x5f, 0x29, 0xac, 0xe4, 0x89, - 0x5c, 0xdb, 0xb7, 0x07, 0x7f, 0xe4, 0x64, 0xe0, 0xfb, 0xd5, 0xfe, 0xe0, 0x0c, 0x13, 0x9f, 0x9b, - 0xee, 0xaf, 0x6c, 0x6f, 0x36, 0x78, 0x08, 0xb6, 0xf2, 0x9b, 0xfb, 0x57, 0x2d, 0x45, 0x84, 0x83, - 0x62, 0x30, 0x8a, 0x68, 0xfb, 0x78, 0x8f, 0xf2, 0x8d, 0xfc, 0xd8, 0x88, 0x75, 0xb0, 0x47, 0xd3, - 0x86, 0x50, 0x11, 0x62, 0xe4, 0x0c, 0xb7, 0x09, 0x6d, 0xd8, 0x84, 0xb7, 0xa6, 0xbf, 0xaf, 0x9d, - 0xee, 0xd4, 0xb8, 0x43, 0x26, 0xdb, 0x38, 0xd1, 0x97, 0x93, 0x0c, 0xa5, 0x72, 0xf3, 0x05, 0x8d, - 0xe6, 0x2a, 0x43, 0xde, 0xf8, 0xff, 0xbd, 0x6e, 0xfd, 0x13, 0xfa, 0x1b, 0x77, 0xe6, 0x75, 0xa6, - 0x04, 0x24, 0xd2, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -}; - -const BITMAP_OPAQUE cancel_tool_xpm[1] = {{ png, sizeof( png ), "cancel_tool_xpm" }}; - -//EOF diff --git a/bitmaps_png/cpp_26/cursor.cpp b/bitmaps_png/cpp_26/cursor.cpp index 4a8e2733c8..1a5265926f 100644 --- a/bitmaps_png/cpp_26/cursor.cpp +++ b/bitmaps_png/cpp_26/cursor.cpp @@ -8,46 +8,67 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x02, 0x67, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x96, 0xcb, 0x6b, 0x13, - 0x51, 0x14, 0x87, 0xe3, 0x0b, 0xc5, 0x95, 0x6e, 0xaa, 0xa6, 0x8a, 0x6e, 0x44, 0xb0, 0x2a, 0x44, - 0x53, 0x11, 0x37, 0xea, 0x46, 0xcc, 0xc6, 0xd2, 0xd8, 0x24, 0x0d, 0xd1, 0x34, 0xc9, 0xbc, 0xd2, - 0xd4, 0xb6, 0xd0, 0x2a, 0x46, 0xac, 0x56, 0x90, 0x68, 0x94, 0x28, 0x2e, 0x7c, 0xa4, 0xba, 0x53, - 0x37, 0x2a, 0x82, 0x45, 0x68, 0xeb, 0x9f, 0x90, 0x2e, 0x5c, 0x24, 0x21, 0x8f, 0x86, 0x3c, 0x48, - 0xd2, 0x3c, 0xc0, 0x24, 0x93, 0x90, 0x77, 0x30, 0xc7, 0x73, 0x87, 0xf8, 0x07, 0x98, 0x87, 0x0b, - 0xe9, 0xc0, 0xc7, 0xc0, 0x85, 0x39, 0xdf, 0x39, 0x33, 0xbf, 0xcb, 0x1d, 0x11, 0x00, 0x88, 0xfe, - 0x05, 0xa2, 0x0d, 0x51, 0x4f, 0x44, 0x5a, 0xad, 0x56, 0x32, 0x35, 0x75, 0xfd, 0x4e, 0xcf, 0x45, - 0x3a, 0x83, 0x4e, 0xb7, 0xb8, 0xf8, 0xb5, 0x36, 0x33, 0x33, 0xfd, 0x4d, 0x26, 0x93, 0x6d, 0xef, - 0x99, 0xc8, 0xc0, 0x18, 0x98, 0x5c, 0x2e, 0x07, 0xe5, 0x72, 0xb9, 0x79, 0xef, 0xfe, 0x5d, 0xb7, - 0x42, 0xa1, 0xe8, 0xef, 0x89, 0x88, 0x62, 0x28, 0x13, 0x11, 0xd5, 0xeb, 0x75, 0x81, 0x57, 0x0b, - 0x2f, 0xd7, 0xf5, 0x7a, 0xfd, 0xb9, 0xae, 0x8b, 0x18, 0x8e, 0x9a, 0x26, 0xa2, 0x42, 0xa1, 0x00, - 0x3c, 0xcf, 0x43, 0xa3, 0xd1, 0x80, 0x95, 0xef, 0xcb, 0xbc, 0xd1, 0xc8, 0xce, 0x76, 0x55, 0xc4, - 0x1a, 0xe9, 0x59, 0x22, 0xca, 0x64, 0x32, 0x90, 0x4e, 0xa7, 0x21, 0x95, 0x4a, 0x41, 0xa5, 0x52, - 0x01, 0xff, 0x9a, 0xbf, 0x3a, 0x31, 0x69, 0xfa, 0xc8, 0xb2, 0xec, 0xb6, 0x6e, 0x89, 0xcc, 0x44, - 0x44, 0x04, 0xf1, 0x78, 0x1c, 0xa2, 0xd1, 0x28, 0x44, 0x22, 0x11, 0xc8, 0x66, 0xb3, 0x44, 0xde, - 0x34, 0xdf, 0xbe, 0xf5, 0x63, 0xf8, 0xda, 0x70, 0x5f, 0xc7, 0x22, 0x6e, 0x9c, 0x99, 0x23, 0x22, - 0x22, 0x08, 0x85, 0x42, 0x10, 0x0c, 0x06, 0x21, 0x10, 0x08, 0x80, 0xdf, 0xef, 0x87, 0x58, 0x2c, - 0x06, 0xa5, 0x52, 0x09, 0x6c, 0xcf, 0x6c, 0x51, 0x8d, 0x46, 0x33, 0xd8, 0xe1, 0x44, 0xec, 0x3c, - 0x11, 0x11, 0x01, 0x29, 0xee, 0xf3, 0xf9, 0xc0, 0xe3, 0xf1, 0x80, 0xdb, 0xed, 0x06, 0xa7, 0xd3, - 0x09, 0x5e, 0xaf, 0x57, 0x78, 0x95, 0x9f, 0xbf, 0x7c, 0xca, 0x52, 0x2c, 0xc5, 0x75, 0x32, 0xd1, - 0x03, 0x9e, 0xcf, 0x09, 0x05, 0x49, 0xf1, 0x70, 0x38, 0x2c, 0x4c, 0x54, 0xad, 0x56, 0x85, 0x70, - 0x64, 0xb2, 0x19, 0x48, 0x24, 0x13, 0xcd, 0x70, 0x38, 0xf4, 0xeb, 0xe1, 0x23, 0x4b, 0x99, 0x62, - 0x0c, 0xd6, 0x36, 0x53, 0xc7, 0x58, 0x49, 0x41, 0xd2, 0x3d, 0x79, 0x7d, 0xb5, 0x5a, 0x0d, 0x92, - 0xc9, 0xa4, 0x10, 0x8e, 0x85, 0xb7, 0xf6, 0x9f, 0x4a, 0xf5, 0x15, 0xf5, 0x88, 0x6a, 0x44, 0xa6, - 0x54, 0xca, 0x2f, 0xa8, 0x54, 0xf2, 0x33, 0xa3, 0xa3, 0x43, 0x07, 0xda, 0x0d, 0x83, 0x8d, 0xcf, - 0xf3, 0x42, 0x18, 0xb0, 0xeb, 0x3a, 0x67, 0x64, 0x12, 0xf9, 0x7c, 0x1e, 0x5c, 0x2e, 0x17, 0x99, - 0xa8, 0x39, 0x31, 0x39, 0xfe, 0xb4, 0x5b, 0xfb, 0xe8, 0x39, 0x29, 0xbc, 0xba, 0xea, 0x28, 0xa3, - 0xd4, 0xa2, 0x56, 0x5f, 0xde, 0xf3, 0xfe, 0xc3, 0xbb, 0x34, 0x11, 0x93, 0x70, 0x2c, 0xad, 0x2c, - 0xe5, 0xe4, 0x57, 0xe5, 0xfb, 0x3a, 0x8f, 0x37, 0x47, 0xbf, 0xb0, 0xbf, 0xb1, 0x17, 0x68, 0xda, - 0x40, 0xfd, 0x59, 0xa3, 0x19, 0xc3, 0x6b, 0xdc, 0x53, 0x4d, 0x87, 0xc3, 0x21, 0x7c, 0xa7, 0x9b, - 0xe6, 0x1b, 0xcb, 0x1d, 0x8b, 0x68, 0x8e, 0x1e, 0x1a, 0x1b, 0xd3, 0x5c, 0x14, 0x89, 0x44, 0x5b, - 0x91, 0x5d, 0x48, 0xbf, 0x58, 0x2c, 0x96, 0xd8, 0x6c, 0x4f, 0xd2, 0x24, 0xda, 0xc5, 0x62, 0x11, - 0xac, 0x8f, 0x2d, 0x6b, 0xb8, 0x7e, 0x04, 0x39, 0x84, 0xf4, 0x21, 0x3b, 0xdb, 0x3a, 0x8f, 0xc8, - 0x83, 0xc8, 0x5e, 0xe4, 0x30, 0x72, 0x0a, 0x39, 0x2f, 0x95, 0x9e, 0x9c, 0xe7, 0x4c, 0x6c, 0x0c, - 0x37, 0xec, 0xfa, 0xc0, 0xf1, 0x81, 0x39, 0x5c, 0xbb, 0x84, 0x9c, 0x45, 0x8e, 0x21, 0x07, 0x91, - 0xdd, 0xc8, 0xe6, 0xbf, 0x3e, 0xf8, 0xf0, 0xda, 0xd1, 0xea, 0x96, 0x74, 0x7d, 0x14, 0x91, 0x20, - 0xa7, 0x5b, 0x48, 0x91, 0x13, 0xad, 0x46, 0xf6, 0xb7, 0x26, 0xdf, 0xd2, 0xb5, 0x13, 0x16, 0xaf, - 0x4d, 0xa4, 0x6b, 0x72, 0xdf, 0xf8, 0x67, 0xf8, 0x3f, 0x44, 0xbf, 0x01, 0xa3, 0x1c, 0x6c, 0xc6, - 0xf1, 0x20, 0x65, 0x79, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x03, 0xb0, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xdd, 0x96, 0x4d, 0x68, 0x5c, + 0x55, 0x14, 0xc7, 0xff, 0xe7, 0x7e, 0xbc, 0xf7, 0xe6, 0x2b, 0xc9, 0xd4, 0xc9, 0x47, 0x9b, 0x6a, + 0xdb, 0x54, 0x5c, 0x84, 0x14, 0xec, 0x46, 0x49, 0x4c, 0x9a, 0x26, 0xd3, 0xc9, 0xcb, 0x47, 0x8b, + 0x82, 0x4b, 0x89, 0x60, 0xc1, 0xfa, 0x01, 0x0a, 0xd6, 0x8d, 0x82, 0x0b, 0x17, 0x82, 0x44, 0x37, + 0x2e, 0x15, 0x14, 0x11, 0x97, 0x2a, 0x2e, 0x2a, 0x4d, 0x4d, 0xa7, 0x48, 0x51, 0xd2, 0xd6, 0x06, + 0x4a, 0x11, 0x4b, 0xa9, 0xb8, 0x89, 0xfd, 0x8e, 0xcc, 0x4c, 0x66, 0x32, 0x1f, 0x6f, 0xde, 0x7b, + 0xf7, 0xb8, 0x98, 0x0c, 0x8a, 0x34, 0x29, 0x26, 0x6d, 0x17, 0x9e, 0xd5, 0xe5, 0x5e, 0x38, 0xbf, + 0xfb, 0xff, 0x9f, 0x73, 0x2e, 0x97, 0x98, 0x19, 0x0f, 0x22, 0x04, 0x1e, 0x50, 0xfc, 0xff, 0x40, + 0x6a, 0xad, 0x83, 0x91, 0xa9, 0x91, 0xae, 0xa8, 0xb0, 0x66, 0xbc, 0x30, 0x9c, 0xc9, 0x1e, 0xcf, + 0x5e, 0xba, 0x6f, 0x8a, 0xac, 0x40, 0xf4, 0xfa, 0x7e, 0x38, 0xad, 0x20, 0x2e, 0x64, 0xdc, 0xcc, + 0xe1, 0xfb, 0x06, 0x62, 0x86, 0x8a, 0x27, 0xec, 0xea, 0xf4, 0x91, 0x3d, 0x96, 0x65, 0x8b, 0x8f, + 0x27, 0x0f, 0xb9, 0x5f, 0x0d, 0x3e, 0x3d, 0x98, 0xb8, 0x0f, 0x35, 0x62, 0x45, 0x44, 0xe8, 0xed, + 0xeb, 0xc2, 0x9b, 0xef, 0x0c, 0xe9, 0xce, 0xae, 0xf8, 0xa1, 0x16, 0x13, 0xfb, 0x35, 0x93, 0xc9, + 0xec, 0xbd, 0xa7, 0x20, 0x22, 0x92, 0x82, 0x08, 0xc6, 0x28, 0xb4, 0xb6, 0xc6, 0xf0, 0xca, 0x1b, + 0x83, 0x76, 0xff, 0xd0, 0xae, 0x6e, 0xa1, 0xf0, 0xb3, 0xeb, 0x1e, 0x78, 0xfd, 0x9e, 0x5a, 0x27, + 0x24, 0xb1, 0x09, 0x25, 0x4c, 0x28, 0x01, 0x28, 0xb8, 0x53, 0x7d, 0x62, 0xfa, 0xf0, 0x80, 0xb2, + 0x22, 0xfa, 0xc3, 0xc9, 0x29, 0xf7, 0xf8, 0xc1, 0x83, 0x43, 0xc9, 0x4d, 0x83, 0x0c, 0x91, 0x24, + 0x22, 0x98, 0x50, 0xc2, 0x18, 0x09, 0x5e, 0x05, 0x3e, 0xfa, 0xd8, 0x56, 0xbc, 0x76, 0x74, 0xdc, + 0xda, 0xba, 0x3d, 0x39, 0x1a, 0x72, 0xf4, 0x72, 0xda, 0x4d, 0x0f, 0x6c, 0x76, 0x8e, 0x14, 0x11, + 0xad, 0x02, 0x54, 0x03, 0x66, 0x1a, 0xd0, 0x58, 0x3c, 0x86, 0x17, 0x5e, 0xcc, 0xd8, 0x4f, 0xed, + 0xeb, 0x6d, 0x57, 0x42, 0x9c, 0x76, 0x27, 0x0e, 0xbc, 0x4d, 0x44, 0xb4, 0x51, 0x90, 0x24, 0x6a, + 0x40, 0x38, 0xfc, 0x5b, 0x11, 0x87, 0x0d, 0x20, 0x1b, 0x89, 0xe1, 0xfd, 0x7b, 0xe9, 0xb9, 0xe7, + 0xc7, 0x94, 0xed, 0xd8, 0xef, 0x4e, 0x4c, 0x8e, 0xfd, 0xe0, 0xba, 0x6e, 0xc7, 0x86, 0x15, 0x99, + 0x55, 0x15, 0x4d, 0x0b, 0x9b, 0xeb, 0x86, 0x3a, 0x81, 0x47, 0x76, 0x74, 0xe3, 0xc8, 0xcb, 0xcf, + 0x5a, 0xdb, 0xba, 0x3b, 0xfb, 0x85, 0xc4, 0x65, 0xd7, 0x4d, 0x8f, 0xfe, 0xb7, 0xae, 0x03, 0x49, + 0x22, 0x81, 0x66, 0x33, 0xfc, 0xb3, 0x4e, 0x4d, 0x0b, 0xf3, 0xb9, 0x0a, 0x96, 0x6e, 0x17, 0x51, + 0x2a, 0x7a, 0x18, 0xde, 0xff, 0x84, 0xb5, 0x63, 0xe7, 0xf6, 0xa4, 0x01, 0x65, 0xdd, 0x71, 0xf7, + 0xbd, 0x7f, 0x5b, 0xa9, 0xd6, 0x53, 0x24, 0x48, 0x80, 0x43, 0xd9, 0xe8, 0x42, 0x10, 0xc0, 0x8d, + 0x2b, 0x30, 0x13, 0xfe, 0x58, 0xbc, 0x85, 0x2f, 0xbf, 0x38, 0x06, 0x00, 0x2c, 0x84, 0xf0, 0x89, + 0xc8, 0x07, 0xc1, 0xd7, 0x4a, 0xd5, 0x0d, 0xf3, 0x33, 0x13, 0x13, 0x13, 0x1f, 0x00, 0x28, 0xde, + 0x15, 0xc4, 0x60, 0xd5, 0x54, 0x04, 0x10, 0x96, 0x96, 0xf2, 0x98, 0x3b, 0x31, 0xef, 0xf5, 0x0f, + 0x3c, 0x6e, 0xef, 0xea, 0x79, 0x18, 0xed, 0xed, 0x1d, 0x88, 0xc6, 0x22, 0x5e, 0xa5, 0x52, 0x7b, + 0xeb, 0xfb, 0xd9, 0xb9, 0x8f, 0x36, 0x3e, 0xb0, 0x20, 0x29, 0x84, 0x20, 0x63, 0x14, 0x7e, 0xbb, + 0x72, 0x15, 0x9f, 0x7f, 0xf6, 0xad, 0xbf, 0xb8, 0x78, 0xe3, 0xd2, 0x77, 0xc7, 0x4e, 0x7b, 0x7e, + 0x1d, 0xd0, 0xd2, 0xc1, 0xb8, 0x3b, 0x6a, 0x0b, 0xa2, 0xf7, 0xd3, 0xe9, 0x74, 0xf7, 0x26, 0xdb, + 0x5b, 0xe0, 0xec, 0x99, 0x8b, 0xfc, 0xcd, 0xd7, 0x27, 0xfc, 0xd0, 0x0f, 0x5e, 0xcd, 0xfd, 0x99, + 0x7f, 0xb2, 0x56, 0xf3, 0x6e, 0x9e, 0x3b, 0x7b, 0x91, 0x8d, 0x91, 0xe8, 0xe9, 0xd9, 0x8d, 0x9e, + 0xdd, 0x3b, 0x85, 0xe5, 0xe8, 0x4f, 0x36, 0x01, 0x32, 0xf2, 0xda, 0xb5, 0x1b, 0x91, 0x9f, 0x7e, + 0x3c, 0x5f, 0x08, 0xc1, 0xc3, 0x73, 0x73, 0xa7, 0x3e, 0x5d, 0x58, 0x58, 0xf0, 0x83, 0x7a, 0xf8, + 0xd2, 0xfc, 0xfc, 0xf9, 0x70, 0xb9, 0x50, 0x05, 0x87, 0x12, 0xe9, 0x91, 0x8c, 0xc5, 0x8c, 0x31, + 0xd7, 0x4d, 0xef, 0xdb, 0xd8, 0x13, 0x44, 0x74, 0x4e, 0x4a, 0x35, 0x5b, 0xaf, 0xf9, 0x7b, 0xb2, + 0xb3, 0xd9, 0x33, 0xcd, 0xfd, 0x6c, 0x36, 0x3b, 0x47, 0xa0, 0x53, 0x27, 0x4f, 0x66, 0xfd, 0x20, + 0x60, 0x48, 0xa1, 0x60, 0x3b, 0x56, 0x68, 0x84, 0x48, 0xad, 0x07, 0xa2, 0xb5, 0x3e, 0x27, 0x44, + 0x44, 0xa9, 0x14, 0xe2, 0xcc, 0x68, 0xb1, 0xe2, 0x68, 0x89, 0x38, 0x3a, 0x66, 0x5b, 0x1c, 0x55, + 0x0e, 0x2c, 0xdb, 0x4e, 0x6d, 0x7b, 0x28, 0xd1, 0x37, 0x43, 0x24, 0x53, 0xc6, 0x18, 0x01, 0x84, + 0x57, 0xae, 0xde, 0xfa, 0xe5, 0x68, 0xb9, 0x54, 0xb8, 0x19, 0xd6, 0xfc, 0x95, 0x7c, 0x1e, 0xc5, + 0x72, 0x19, 0x45, 0x66, 0xae, 0xae, 0x0b, 0x4a, 0x26, 0xa9, 0xcd, 0xb6, 0x91, 0x74, 0x12, 0x3a, + 0x19, 0x4b, 0x70, 0x32, 0x1a, 0xe7, 0x36, 0xbb, 0x05, 0x6d, 0x89, 0x28, 0xb7, 0x3a, 0x31, 0xd1, + 0x62, 0xd9, 0x88, 0x29, 0xa9, 0x9d, 0xea, 0xca, 0x96, 0x0e, 0x13, 0xfa, 0x95, 0x50, 0xe4, 0x7e, + 0xaf, 0xae, 0x98, 0x62, 0xad, 0x4c, 0xcb, 0x95, 0x32, 0xf2, 0xb5, 0x22, 0x15, 0x4a, 0xe5, 0x20, + 0x5f, 0x29, 0x20, 0x9f, 0xcb, 0x21, 0xc7, 0xcc, 0x15, 0x75, 0x27, 0x25, 0x89, 0x04, 0xa4, 0xd6, + 0x50, 0xc2, 0x86, 0x22, 0x0d, 0x25, 0x34, 0x2c, 0x4b, 0xb1, 0xad, 0x6d, 0xe1, 0x68, 0x0b, 0x51, + 0x27, 0x42, 0x09, 0xed, 0x04, 0x8e, 0x13, 0xbf, 0x5d, 0x0e, 0x3c, 0x94, 0x57, 0xca, 0x88, 0x98, + 0xba, 0xf0, 0xea, 0x1e, 0x6b, 0xa9, 0x61, 0x19, 0x82, 0x92, 0x42, 0x2b, 0x63, 0xf9, 0x2a, 0x95, + 0x82, 0xbc, 0x9b, 0x75, 0x76, 0x34, 0x85, 0x2d, 0x6d, 0x16, 0x5a, 0x9d, 0xb8, 0x4e, 0xe8, 0x08, + 0xc7, 0x23, 0x36, 0x47, 0x55, 0x14, 0x11, 0x21, 0xa0, 0x15, 0x35, 0x12, 0xd4, 0x81, 0xc0, 0x78, + 0xf0, 0x3c, 0x8f, 0xaa, 0xa6, 0x86, 0x4a, 0xa5, 0x4a, 0xa5, 0x4a, 0xcd, 0x2f, 0xd5, 0x96, 0x51, + 0x28, 0x95, 0x50, 0x60, 0xe6, 0x60, 0x5d, 0xd0, 0x1d, 0xc0, 0x02, 0x80, 0xee, 0xec, 0x84, 0xaa, + 0xd7, 0xa1, 0x82, 0x00, 0x8a, 0x08, 0xac, 0x14, 0x02, 0xc7, 0x41, 0x70, 0xfd, 0x3a, 0x7c, 0x00, + 0x01, 0xaf, 0x91, 0xf0, 0x2f, 0xec, 0x6a, 0xa5, 0x78, 0xe2, 0xce, 0xd5, 0xd9, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE cursor_xpm[1] = {{ png, sizeof( png ), "cursor_xpm" }}; diff --git a/bitmaps_png/cpp_26/delete_association.cpp b/bitmaps_png/cpp_26/delete_association.cpp index 2b613ebbcf..47a4618fff 100644 --- a/bitmaps_png/cpp_26/delete_association.cpp +++ b/bitmaps_png/cpp_26/delete_association.cpp @@ -8,66 +8,94 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x03, 0x9b, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xdd, 0x56, 0x7d, 0x68, 0x96, - 0x55, 0x14, 0xff, 0xdd, 0x67, 0xef, 0x98, 0x31, 0x9d, 0xc3, 0x34, 0x5a, 0x35, 0x44, 0xdb, 0x2c, - 0x82, 0x2c, 0x6b, 0xad, 0x68, 0x90, 0xa1, 0x61, 0x1f, 0x92, 0x85, 0xc5, 0xb2, 0x16, 0x23, 0x89, - 0x58, 0x52, 0x82, 0xc9, 0xc4, 0xc2, 0x60, 0xae, 0x55, 0xb4, 0x9a, 0x85, 0x06, 0x11, 0x7d, 0x81, - 0xc2, 0xb2, 0x2c, 0xa6, 0xa0, 0x2c, 0x58, 0x4a, 0xda, 0x08, 0x19, 0xa9, 0x49, 0x86, 0x66, 0xac, - 0x56, 0x7e, 0x6c, 0x7e, 0xae, 0x35, 0xd7, 0xf6, 0x3e, 0xf7, 0x3d, 0xe7, 0x77, 0xfa, 0xe3, 0xfd, - 0xd8, 0x3b, 0xd9, 0xc7, 0xab, 0x82, 0x7f, 0x74, 0xe1, 0xf0, 0x3c, 0xf7, 0xb9, 0xe7, 0x9e, 0x1f, - 0xbf, 0xdf, 0x39, 0xe7, 0x3e, 0xd7, 0x99, 0x19, 0x2e, 0xc7, 0x08, 0x70, 0x99, 0x46, 0x64, 0xc8, - 0xec, 0xa3, 0xaa, 0xec, 0x81, 0x93, 0xe3, 0x77, 0x00, 0x41, 0x1b, 0x18, 0xac, 0xbd, 0xa2, 0xa6, - 0xfe, 0xd8, 0xc5, 0x06, 0xfe, 0xbb, 0xaa, 0x6a, 0xe2, 0xd9, 0x9c, 0x9c, 0x68, 0xd1, 0xba, 0x75, - 0x21, 0x00, 0xb8, 0x74, 0xe9, 0xfa, 0xeb, 0xaa, 0xeb, 0x1c, 0xf0, 0x6a, 0x62, 0x1a, 0x03, 0xdc, - 0x97, 0xa4, 0x5b, 0x93, 0x5b, 0xf3, 0xf6, 0xfe, 0x8c, 0xa2, 0xd7, 0xd6, 0x06, 0x27, 0xbb, 0xda, - 0x9f, 0x00, 0xb5, 0xca, 0x54, 0xcb, 0x8c, 0xfa, 0x17, 0xc9, 0x65, 0xd7, 0xae, 0x6f, 0xda, 0x96, - 0x02, 0xea, 0x7f, 0x63, 0x79, 0x89, 0x63, 0xb0, 0x3b, 0xc9, 0xd2, 0xc8, 0x94, 0x41, 0xd9, 0x18, - 0xd5, 0x81, 0x25, 0x93, 0xeb, 0x3f, 0x3d, 0x37, 0x2c, 0x40, 0x79, 0x79, 0xd6, 0xa9, 0x09, 0x41, - 0x05, 0xc1, 0x55, 0xa6, 0x9c, 0x61, 0x4a, 0x90, 0x84, 0x29, 0x9b, 0x48, 0x6b, 0x98, 0xba, 0x69, - 0xeb, 0xee, 0x41, 0xe9, 0xcc, 0x5d, 0x65, 0xaa, 0x07, 0x8d, 0x9c, 0x49, 0x4d, 0x80, 0x68, 0x0a, - 0xac, 0xc2, 0xa9, 0xdd, 0x75, 0x66, 0x69, 0xe5, 0xa2, 0xc9, 0xef, 0x6f, 0xd8, 0x93, 0xda, 0xe3, - 0x9c, 0xeb, 0x5c, 0xfc, 0xf8, 0x33, 0x6e, 0x1c, 0x57, 0x31, 0x8c, 0x5d, 0x9f, 0xdc, 0x03, 0xea, - 0x11, 0x11, 0x79, 0x6e, 0xda, 0xe6, 0x96, 0x96, 0x94, 0xeb, 0xf9, 0x55, 0xf7, 0xcf, 0x8a, 0x25, - 0x73, 0x8c, 0xfa, 0x92, 0x51, 0xe7, 0x53, 0xe9, 0xce, 0x03, 0x8c, 0x19, 0xe5, 0x95, 0xab, 0x3f, - 0xfb, 0xfa, 0xdd, 0xa3, 0x8b, 0x16, 0x14, 0x20, 0x70, 0xeb, 0x41, 0xde, 0x17, 0x5f, 0xd7, 0xa4, - 0xdf, 0xc7, 0x1a, 0xcb, 0xae, 0x2e, 0x6a, 0x6e, 0xee, 0x4d, 0x8f, 0xeb, 0x46, 0x2a, 0xef, 0xd3, - 0xcf, 0x57, 0x14, 0x1b, 0xad, 0x81, 0xca, 0x05, 0x46, 0x1d, 0xc2, 0x90, 0xc2, 0x1d, 0x30, 0xbb, - 0xd5, 0x54, 0xae, 0x34, 0x26, 0x64, 0x12, 0x76, 0x1a, 0x74, 0x71, 0x51, 0xf3, 0xae, 0x96, 0xe1, - 0xe2, 0xb9, 0xb1, 0xfa, 0xe8, 0x78, 0xc5, 0xa3, 0x95, 0x54, 0xae, 0x35, 0x32, 0x3f, 0x0e, 0xa6, - 0x83, 0xf9, 0x4b, 0x49, 0xac, 0x87, 0xb3, 0xe0, 0xe6, 0x4d, 0xff, 0xb6, 0xf5, 0xc8, 0x48, 0x71, - 0x5c, 0x26, 0x0d, 0xdb, 0xfe, 0xd8, 0x43, 0xd7, 0x39, 0xf1, 0x9f, 0x40, 0x78, 0xff, 0x50, 0x10, - 0x85, 0x91, 0x7b, 0x23, 0x8c, 0x3d, 0x58, 0xf4, 0xfd, 0xbe, 0xd3, 0x97, 0xdc, 0xb0, 0x45, 0x4d, - 0xdf, 0x1c, 0x67, 0x7f, 0xf8, 0x87, 0x46, 0xa3, 0x90, 0x68, 0x14, 0x32, 0x90, 0x7c, 0x86, 0x90, - 0x81, 0x70, 0xcf, 0x58, 0x20, 0x19, 0x33, 0xfa, 0x75, 0xf6, 0x9d, 0xab, 0x8d, 0xac, 0x49, 0x32, - 0xe1, 0x50, 0x46, 0x30, 0xb5, 0x27, 0x67, 0xfd, 0x72, 0xf8, 0x8b, 0x4b, 0x02, 0x3a, 0x58, 0x36, - 0xeb, 0x11, 0x8a, 0x6d, 0x36, 0xd2, 0xa5, 0xf2, 0xa3, 0xf4, 0x46, 0x06, 0x24, 0x23, 0x34, 0x80, - 0x66, 0xe7, 0x5c, 0xe0, 0x4a, 0x4a, 0x0f, 0xfd, 0xfe, 0xdb, 0x45, 0x01, 0x1d, 0x28, 0x99, 0x79, - 0x23, 0x55, 0xda, 0x8c, 0xcc, 0x4b, 0x55, 0x9c, 0x19, 0x68, 0x56, 0x0e, 0x5a, 0x44, 0x61, 0x8d, - 0xa4, 0x39, 0x9a, 0xc1, 0xcc, 0x0e, 0xd0, 0x22, 0xa5, 0xf7, 0x76, 0x74, 0x44, 0xc7, 0x3e, 0xeb, - 0xd2, 0x46, 0x5b, 0x71, 0x71, 0x5e, 0x76, 0x8e, 0x6d, 0x31, 0xb5, 0x3c, 0x1a, 0x60, 0x71, 0x00, - 0x90, 0xb6, 0xf1, 0xee, 0xf6, 0x3f, 0xbf, 0x02, 0x80, 0x5d, 0xd3, 0x0a, 0x8b, 0x09, 0xab, 0x25, - 0x0d, 0x66, 0x76, 0x33, 0xa1, 0xd5, 0x00, 0x5e, 0xbf, 0xa0, 0x62, 0x08, 0xb2, 0x58, 0x1b, 0x8b, - 0xe9, 0x0d, 0x5e, 0x15, 0x5e, 0x05, 0x5e, 0x04, 0x5e, 0xa4, 0xbb, 0x0f, 0xd1, 0x65, 0x49, 0x9f, - 0xd9, 0x1d, 0x47, 0x5f, 0x0b, 0x45, 0x1a, 0xbd, 0x2a, 0x42, 0x51, 0xf8, 0x98, 0xac, 0x6c, 0x9a, - 0x32, 0xa5, 0x20, 0x63, 0xa0, 0xd6, 0xe2, 0xa9, 0x37, 0x85, 0x22, 0x2f, 0x7a, 0x51, 0x24, 0x2d, - 0x54, 0x85, 0x17, 0x56, 0xcf, 0x6b, 0x3f, 0x71, 0x2a, 0xdd, 0xd7, 0xc6, 0x4d, 0x78, 0xd6, 0x8b, - 0x1c, 0xf2, 0x2a, 0xf0, 0xaa, 0xe3, 0xcd, 0xf8, 0x66, 0xc6, 0x39, 0xda, 0x39, 0xbd, 0x70, 0x3b, - 0x69, 0x73, 0x53, 0x72, 0xc5, 0x73, 0xf0, 0xdd, 0x03, 0xc7, 0x4e, 0xcc, 0x19, 0x2e, 0xc8, 0xa6, - 0x49, 0x93, 0xca, 0xcc, 0xb1, 0x95, 0x66, 0xce, 0xcc, 0x48, 0xd3, 0x3b, 0x9e, 0xee, 0xf9, 0x77, - 0xdf, 0xa8, 0x8c, 0xb6, 0x17, 0x5e, 0xb3, 0xd0, 0xc7, 0x64, 0xae, 0x17, 0x41, 0x28, 0x29, 0xc9, - 0x10, 0x53, 0x59, 0x39, 0x92, 0xcc, 0xe5, 0xdd, 0xdd, 0x3f, 0x78, 0xd1, 0x0f, 0x13, 0xec, 0x03, - 0x2f, 0xf6, 0xde, 0xa8, 0xd2, 0xd5, 0x3a, 0x17, 0x78, 0x6a, 0x43, 0xba, 0x64, 0x09, 0xdb, 0xf9, - 0x70, 0xd7, 0x99, 0x1f, 0x47, 0xed, 0xfc, 0x48, 0xdf, 0xcb, 0x5e, 0xb4, 0x33, 0x8c, 0xfb, 0xdf, - 0xf3, 0x41, 0x4e, 0xce, 0xc2, 0x11, 0x81, 0x6a, 0xcc, 0x18, 0x8a, 0x56, 0x7b, 0xd5, 0x7e, 0xaf, - 0x89, 0xdc, 0x88, 0xc2, 0x53, 0xeb, 0xc7, 0x6a, 0xea, 0x8a, 0xb3, 0xd6, 0x1b, 0x6a, 0xec, 0x85, - 0x41, 0x05, 0x74, 0xc5, 0x98, 0x39, 0xfa, 0x3c, 0x3f, 0xff, 0x76, 0x38, 0x6e, 0xa5, 0x59, 0x01, - 0x69, 0x3f, 0x57, 0xf6, 0xf6, 0xdd, 0x92, 0xe9, 0x2f, 0x7c, 0x8d, 0x73, 0xdb, 0x00, 0xcc, 0x07, - 0x00, 0x07, 0xdc, 0xb6, 0xdc, 0xec, 0xa7, 0x11, 0xab, 0xee, 0xa9, 0x9e, 0x9e, 0xbd, 0xfd, 0xa1, - 0x94, 0x86, 0xa2, 0xfb, 0x3d, 0xf5, 0x9d, 0x0b, 0xb9, 0x2b, 0x18, 0x50, 0x97, 0x78, 0xed, 0x32, - 0x20, 0x77, 0x70, 0x21, 0x5e, 0x51, 0xc3, 0xda, 0x06, 0x20, 0x77, 0x35, 0x10, 0x19, 0xcd, 0x67, - 0x38, 0x6b, 0x00, 0x96, 0xbe, 0x05, 0x4c, 0x4c, 0xff, 0xe6, 0xfe, 0x77, 0xf7, 0xba, 0xff, 0x00, - 0xa8, 0x6c, 0x30, 0x24, 0x92, 0xb0, 0x6e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, - 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x05, 0x66, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xa5, 0x96, 0x79, 0x6c, 0xd4, + 0x45, 0x14, 0xc7, 0x3f, 0xb3, 0x5b, 0x76, 0xb7, 0x2d, 0x6d, 0xa1, 0xad, 0xa5, 0xc2, 0x22, 0x92, + 0x7a, 0x00, 0x1e, 0x98, 0x88, 0x45, 0xab, 0x88, 0x28, 0x46, 0x50, 0x14, 0x15, 0xad, 0x1a, 0xad, + 0x62, 0x3c, 0x88, 0x57, 0x82, 0x48, 0x38, 0x4c, 0x44, 0xf9, 0x47, 0x51, 0x23, 0xf1, 0xbe, 0xa1, + 0x04, 0x11, 0xcf, 0x44, 0x25, 0x2a, 0x46, 0x82, 0xf0, 0x87, 0x18, 0xd4, 0xa8, 0x40, 0x45, 0x89, + 0xa0, 0x80, 0x5c, 0x2d, 0xa5, 0x85, 0x76, 0xb7, 0xbf, 0xfd, 0x1d, 0x33, 0xf3, 0xfc, 0x63, 0x7f, + 0xbb, 0x2e, 0x45, 0x25, 0xea, 0x24, 0x93, 0x99, 0xbc, 0x99, 0x79, 0xdf, 0x79, 0xdf, 0xf7, 0x66, + 0xde, 0x43, 0x44, 0x10, 0x11, 0x80, 0x06, 0xa0, 0x15, 0x28, 0xcb, 0xc9, 0xfe, 0x4b, 0x07, 0x3e, + 0x01, 0x66, 0x03, 0xd1, 0x42, 0x79, 0x84, 0x3f, 0x5b, 0x1c, 0x18, 0x00, 0x9c, 0xa6, 0x94, 0x8a, + 0xf2, 0xdf, 0x5b, 0x35, 0x50, 0x07, 0x1c, 0xa3, 0x94, 0x52, 0x39, 0x61, 0x21, 0x10, 0x7d, 0xa2, + 0x11, 0xb6, 0xcd, 0xbc, 0xb3, 0x39, 0x35, 0x7f, 0xc6, 0x13, 0x99, 0xf9, 0xb3, 0x93, 0xff, 0x03, + 0xac, 0xea, 0xa2, 0xc1, 0x83, 0x8f, 0x7b, 0xaf, 0xb1, 0x31, 0x91, 0x13, 0xa8, 0xd0, 0x5c, 0x94, + 0x52, 0xe3, 0xe6, 0x5d, 0x74, 0xee, 0x17, 0x73, 0xc6, 0x9e, 0x9d, 0x5b, 0x0b, 0x40, 0xbd, 0x63, + 0xad, 0x7a, 0xaa, 0xf4, 0xe1, 0x27, 0x36, 0xfc, 0x93, 0x56, 0xa5, 0xd4, 0x54, 0xa0, 0x39, 0xa2, + 0x14, 0x93, 0xeb, 0x86, 0x70, 0xf3, 0xb0, 0x3a, 0x46, 0x55, 0x57, 0xb2, 0x2b, 0x95, 0xa2, 0xdd, + 0xc9, 0xdc, 0x76, 0xc5, 0xa7, 0x6b, 0x17, 0x17, 0xe5, 0x36, 0xcf, 0xba, 0xa0, 0xfe, 0x94, 0x99, + 0x63, 0xea, 0xf3, 0x87, 0xc5, 0xda, 0x3e, 0x62, 0xed, 0x4d, 0x62, 0xed, 0x4d, 0xe9, 0x07, 0xef, + 0x7d, 0xd3, 0x35, 0x99, 0xbb, 0xaa, 0x1f, 0x5f, 0x94, 0xfa, 0x2b, 0xa0, 0x44, 0x34, 0x1a, 0xbd, + 0xf2, 0x84, 0x3a, 0x66, 0x8e, 0x1e, 0xcd, 0x40, 0xe5, 0x20, 0xc6, 0x62, 0x7d, 0x9f, 0x96, 0xd6, + 0x03, 0x6c, 0xe8, 0x38, 0x34, 0x60, 0xb2, 0x52, 0xd1, 0xbc, 0x45, 0x5d, 0xf3, 0xef, 0xbf, 0xcc, + 0xf3, 0x82, 0x67, 0x4a, 0x8b, 0xa2, 0x75, 0xd6, 0x58, 0xc4, 0x5a, 0x24, 0x37, 0x5a, 0x8b, 0x35, + 0xe6, 0x57, 0xb1, 0xfa, 0xfa, 0x63, 0x9e, 0x7f, 0x63, 0x33, 0x60, 0x45, 0xc4, 0x43, 0x29, 0xb5, + 0xf7, 0xd6, 0x6b, 0xa6, 0xa6, 0x1c, 0x7f, 0x41, 0xdf, 0xa2, 0x48, 0x4d, 0xee, 0x4c, 0x67, 0xb4, + 0x92, 0xd7, 0x4a, 0x26, 0xf1, 0xc2, 0xa2, 0x46, 0x80, 0x99, 0xc0, 0xb3, 0x85, 0xd4, 0x55, 0x01, + 0x73, 0x2f, 0x18, 0x92, 0xbc, 0x77, 0xfa, 0x59, 0xa7, 0xeb, 0x31, 0xc9, 0xda, 0x52, 0x39, 0x12, + 0x30, 0xd8, 0x97, 0x4e, 0x3f, 0x7a, 0xe6, 0xdb, 0x1f, 0xdb, 0x8d, 0x53, 0x26, 0x2e, 0xae, 0x88, + 0xc7, 0x9a, 0xb1, 0x76, 0x7c, 0x76, 0xdd, 0x20, 0xc6, 0xf2, 0x55, 0xe5, 0x04, 0x56, 0x0c, 0x9e, + 0x46, 0x5b, 0xfb, 0x56, 0xd6, 0xbe, 0x78, 0x06, 0xc0, 0x1c, 0x60, 0xa1, 0x02, 0x2a, 0x81, 0xe7, + 0x80, 0xcb, 0x81, 0x16, 0xe0, 0x15, 0x20, 0x33, 0xf1, 0xf8, 0xe4, 0xd0, 0x05, 0x0d, 0xa3, 0x26, + 0xd7, 0x24, 0xe2, 0x0d, 0x62, 0xcd, 0x61, 0x80, 0xeb, 0xf6, 0xb5, 0xdb, 0xb3, 0xaa, 0x2a, 0x52, + 0x51, 0x2b, 0x15, 0x62, 0x2d, 0xd6, 0x5a, 0xf6, 0xf7, 0xb8, 0x38, 0xbf, 0x75, 0xd2, 0xd3, 0xe5, + 0x02, 0xb0, 0x33, 0x12, 0xe5, 0xbe, 0x8e, 0x6d, 0x79, 0xa0, 0x08, 0x30, 0x16, 0xb8, 0x14, 0xd0, + 0xc0, 0x06, 0xc0, 0x00, 0xbb, 0x57, 0xee, 0xd8, 0xdd, 0x3c, 0x72, 0xf9, 0x87, 0x17, 0xff, 0xdc, + 0xb6, 0x7f, 0x86, 0xe7, 0xb8, 0x29, 0x9d, 0xf1, 0xd0, 0xae, 0x87, 0xce, 0xb8, 0xd4, 0x97, 0x97, + 0x46, 0xf0, 0xfc, 0x0a, 0xed, 0x66, 0x65, 0x07, 0x53, 0xe9, 0xd6, 0x5b, 0xd6, 0xff, 0x40, 0xe0, + 0xc6, 0x89, 0xc5, 0x2b, 0x88, 0xc5, 0x2b, 0x48, 0xf4, 0x7a, 0x21, 0x45, 0xc0, 0x47, 0xc0, 0x38, + 0xe0, 0x76, 0xe0, 0x6a, 0xe0, 0x2a, 0xe0, 0x31, 0xe0, 0x3b, 0x11, 0xf1, 0x95, 0x52, 0x23, 0x6b, + 0x8b, 0x13, 0x65, 0x8f, 0x8d, 0x1c, 0xc6, 0x98, 0xca, 0xfe, 0x79, 0x9f, 0x15, 0xd0, 0xf5, 0x7d, + 0xd3, 0x77, 0x2d, 0x4b, 0xb7, 0xdb, 0xf8, 0xd3, 0x2f, 0xdd, 0xfd, 0x43, 0x5e, 0x71, 0x57, 0xeb, + 0x46, 0xc8, 0x52, 0x97, 0x05, 0x12, 0x11, 0xab, 0x94, 0xda, 0x12, 0xd2, 0xb7, 0x0a, 0x98, 0x06, + 0x3c, 0x05, 0xcc, 0x51, 0x4a, 0x9d, 0x02, 0xa8, 0xb6, 0x8c, 0xcb, 0xce, 0x43, 0x29, 0x1a, 0x4a, + 0x8a, 0xb1, 0x85, 0x3e, 0x33, 0x96, 0x1e, 0xad, 0x5b, 0x7e, 0xee, 0xc9, 0xa4, 0xca, 0x22, 0x01, + 0xd7, 0x36, 0x8f, 0xcb, 0x2b, 0x6e, 0xf5, 0xd3, 0xac, 0xed, 0x65, 0x11, 0x22, 0xe2, 0x2a, 0xa5, + 0x86, 0x02, 0x0f, 0x01, 0x27, 0x03, 0x2b, 0x80, 0x35, 0xe1, 0x3c, 0x72, 0xcf, 0x90, 0x41, 0x34, + 0x56, 0xf7, 0x47, 0xbb, 0x5e, 0x36, 0x74, 0x0b, 0x2c, 0x8a, 0x59, 0x7b, 0xcb, 0xac, 0x63, 0x6b, + 0xbc, 0x17, 0xdb, 0x3a, 0x71, 0x8a, 0xf2, 0xef, 0x13, 0xcf, 0xf8, 0x87, 0x53, 0xa7, 0x94, 0x1a, + 0x0f, 0xbc, 0x04, 0x0c, 0x04, 0x5e, 0x05, 0x1e, 0x04, 0x6a, 0x01, 0x17, 0x70, 0xae, 0xaf, 0xad, + 0x4e, 0xde, 0x39, 0xa0, 0x3a, 0x04, 0xc9, 0x06, 0x85, 0xaf, 0x2d, 0xca, 0x1a, 0x94, 0x08, 0x56, + 0xe0, 0x8a, 0xbe, 0x25, 0x37, 0xbf, 0x9f, 0x36, 0x7c, 0xd2, 0xb4, 0xf2, 0xef, 0xa9, 0x03, 0x62, + 0x80, 0x00, 0x7d, 0x80, 0xe1, 0x61, 0x40, 0xac, 0x07, 0xf6, 0xac, 0x3a, 0x6d, 0xd8, 0xd0, 0xaa, + 0x88, 0x1a, 0x65, 0x5c, 0x37, 0x4f, 0x97, 0x15, 0x61, 0xee, 0x9e, 0x36, 0x4a, 0x23, 0x6a, 0xcf, + 0xec, 0x9a, 0xaa, 0x81, 0x62, 0x45, 0x59, 0x91, 0xc4, 0xbc, 0x8a, 0x18, 0x6f, 0xed, 0x6f, 0x41, + 0x47, 0x62, 0x00, 0x38, 0x07, 0xb7, 0x1f, 0x11, 0x0c, 0x9f, 0x01, 0x4d, 0xc0, 0x84, 0x30, 0x10, + 0x5e, 0x06, 0x96, 0x4c, 0x2a, 0x2f, 0x5f, 0x58, 0x69, 0x83, 0xf7, 0x6c, 0x20, 0x7d, 0xad, 0x80, + 0x88, 0x60, 0x45, 0xd8, 0xe1, 0xf9, 0x5f, 0xae, 0x4e, 0xf5, 0x9c, 0x0d, 0x2c, 0xbe, 0xb0, 0xb8, + 0xf8, 0xa4, 0xd3, 0x13, 0xb1, 0xeb, 0xac, 0x15, 0x06, 0x29, 0xa8, 0x5a, 0xda, 0xc0, 0xf2, 0xee, + 0xf4, 0x5f, 0x7e, 0x53, 0xb9, 0x60, 0xd8, 0x04, 0xec, 0x06, 0xbe, 0x06, 0x66, 0x00, 0xb7, 0x8f, + 0x28, 0x8e, 0x35, 0x05, 0x81, 0x29, 0xb5, 0x21, 0x80, 0x58, 0xc1, 0x88, 0x1c, 0x7c, 0xa7, 0xeb, + 0xd0, 0x74, 0xe0, 0x56, 0x60, 0xd7, 0xf4, 0xd6, 0xf6, 0xc5, 0x2b, 0x93, 0x03, 0xb4, 0x08, 0x37, + 0x5a, 0x2b, 0x4c, 0x29, 0xeb, 0xc7, 0xde, 0x0b, 0x17, 0x92, 0x8e, 0x95, 0xe3, 0x1c, 0xdc, 0xc1, + 0x4f, 0xab, 0xe6, 0xd0, 0xfb, 0xf7, 0xb6, 0xc0, 0x14, 0x60, 0x09, 0x50, 0x77, 0x66, 0x49, 0x62, + 0xd9, 0xa4, 0xd2, 0x92, 0x62, 0x5f, 0x1b, 0x72, 0xdd, 0x33, 0x86, 0x40, 0xdb, 0x07, 0x3e, 0xec, + 0x72, 0xb6, 0x00, 0x0b, 0x81, 0x5f, 0x80, 0xbd, 0x92, 0x28, 0xbb, 0xad, 0xd3, 0x0f, 0xf6, 0xf9, + 0x46, 0x83, 0xef, 0x30, 0xb1, 0x63, 0x23, 0x83, 0x4e, 0xbd, 0x8e, 0x9a, 0x13, 0x27, 0x1c, 0x66, + 0x51, 0x44, 0x29, 0x35, 0x0f, 0x38, 0x00, 0x3c, 0x00, 0x2c, 0x00, 0xa6, 0xcd, 0xaa, 0xea, 0x5f, + 0x1f, 0x18, 0x13, 0x29, 0x04, 0x0a, 0xb4, 0x59, 0x33, 0xfe, 0xf7, 0x3d, 0xcd, 0x80, 0x03, 0x74, + 0x86, 0xbe, 0x0c, 0x26, 0x6e, 0xdd, 0xea, 0x2d, 0x4f, 0x39, 0x4b, 0x3c, 0x6d, 0xf0, 0xb4, 0x26, + 0xf9, 0xe3, 0x32, 0xfa, 0xef, 0x3f, 0xf2, 0xb3, 0x8f, 0x00, 0xab, 0x81, 0x0e, 0xa0, 0x1f, 0x30, + 0x62, 0x6e, 0x65, 0xbf, 0x73, 0xfb, 0x89, 0x8c, 0xf0, 0xb5, 0xc6, 0xd3, 0x1a, 0x3f, 0xec, 0x81, + 0xd1, 0xb3, 0xc3, 0xa7, 0x20, 0x40, 0x37, 0xd0, 0x1d, 0xce, 0xf9, 0xd4, 0x75, 0xb7, 0x7d, 0xee, + 0xd9, 0xec, 0xa5, 0x82, 0x80, 0xe1, 0x9f, 0xcf, 0x40, 0x7b, 0xa9, 0x23, 0x82, 0x61, 0x3d, 0x30, + 0x15, 0x78, 0x58, 0xc1, 0x1d, 0xe7, 0x24, 0xfa, 0xec, 0xf2, 0xb5, 0x21, 0xef, 0x9b, 0xec, 0xb8, + 0x76, 0x4a, 0x7b, 0xe7, 0xb7, 0xf9, 0x14, 0x22, 0x62, 0x7b, 0xdf, 0xf8, 0x6d, 0x27, 0xc5, 0xf0, + 0x78, 0x9c, 0x72, 0xa0, 0x7c, 0xe7, 0x3a, 0xd2, 0xdb, 0xc6, 0x1e, 0x6e, 0x91, 0x88, 0x18, 0xe0, + 0x1b, 0xe0, 0x75, 0x01, 0x3e, 0x4e, 0x39, 0xef, 0xfa, 0xc6, 0x38, 0xbe, 0x09, 0x7d, 0xa3, 0x0d, + 0xbe, 0x35, 0x8f, 0x1f, 0x25, 0xa3, 0x7e, 0x9b, 0x11, 0x9e, 0xfe, 0x28, 0xf0, 0xd7, 0xe7, 0x18, + 0x98, 0x90, 0xa5, 0xf7, 0x03, 0xa0, 0x27, 0x1f, 0x0c, 0x22, 0xe2, 0x00, 0x6d, 0x00, 0xaf, 0xa6, + 0x7a, 0xb6, 0x74, 0x7a, 0x7a, 0x9c, 0xaf, 0xf5, 0x3e, 0xdf, 0x68, 0x7c, 0xad, 0x37, 0xdd, 0xd0, + 0xd1, 0xf5, 0xd9, 0x51, 0x80, 0x36, 0x03, 0xaf, 0xac, 0x33, 0xb2, 0x60, 0xb3, 0x36, 0x3d, 0x81, + 0xb1, 0x54, 0x5b, 0x5b, 0x79, 0x1e, 0xac, 0x03, 0xb6, 0x03, 0xb6, 0xb0, 0x66, 0x30, 0xb9, 0xcc, + 0x7c, 0x47, 0x77, 0xf7, 0xf7, 0x8e, 0xa7, 0xeb, 0x3d, 0x6d, 0x36, 0xf8, 0xd6, 0x3c, 0x79, 0xb4, + 0x02, 0x21, 0xa4, 0xf2, 0x57, 0x60, 0xd5, 0x6a, 0xf8, 0x3d, 0x54, 0x76, 0xe0, 0x7c, 0xd8, 0x04, + 0xac, 0x11, 0x11, 0x53, 0x58, 0x26, 0xd5, 0x86, 0xd9, 0xb0, 0x29, 0x7c, 0x5f, 0x2c, 0x85, 0xd2, + 0x47, 0xc2, 0xf9, 0xbf, 0x28, 0xb7, 0x2e, 0x69, 0x84, 0x15, 0x27, 0xc2, 0xe8, 0xd0, 0x35, 0x59, + 0x79, 0xc1, 0x06, 0x05, 0x24, 0x81, 0xf3, 0x7b, 0xd7, 0x64, 0xff, 0x12, 0x28, 0x1a, 0xea, 0x48, + 0xe6, 0x8a, 0x1f, 0x11, 0xf9, 0xb3, 0x0a, 0x0a, 0xd3, 0x79, 0x51, 0x68, 0x8d, 0xfb, 0x3f, 0x4a, + 0x2d, 0x94, 0x52, 0x09, 0x40, 0x8b, 0x88, 0xce, 0xc9, 0xfe, 0x00, 0xf5, 0x78, 0xba, 0x9d, 0x14, + 0x70, 0xbb, 0x50, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE delete_association_xpm[1] = {{ png, sizeof( png ), "delete_association_xpm" }}; diff --git a/bitmaps_png/cpp_26/delete_body.cpp b/bitmaps_png/cpp_26/delete_body.cpp deleted file mode 100644 index 76bb7cf699..0000000000 --- a/bitmaps_png/cpp_26/delete_body.cpp +++ /dev/null @@ -1,75 +0,0 @@ - -/* Do not modify this file, it was automatically generated by the - * PNG2cpp CMake script, using a *.png file as input. - */ - -#include - -static const unsigned char png[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, - 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x03, 0x9b, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xdd, 0x56, 0x7d, 0x68, 0x96, - 0x55, 0x14, 0xff, 0xdd, 0x67, 0xef, 0x98, 0x31, 0x9d, 0xc3, 0x34, 0x5a, 0x35, 0x44, 0xdb, 0x2c, - 0x82, 0x2c, 0x6b, 0xad, 0x68, 0x90, 0xa1, 0x61, 0x1f, 0x92, 0x85, 0xc5, 0xb2, 0x16, 0x23, 0x89, - 0x58, 0x52, 0x82, 0xc9, 0xc4, 0xc2, 0x60, 0xae, 0x55, 0xb4, 0x9a, 0x85, 0x06, 0x11, 0x7d, 0x81, - 0xc2, 0xb2, 0x2c, 0xa6, 0xa0, 0x2c, 0x58, 0x4a, 0xda, 0x08, 0x19, 0xa9, 0x49, 0x86, 0x66, 0xac, - 0x56, 0x7e, 0x6c, 0x7e, 0xae, 0x35, 0xd7, 0xf6, 0x3e, 0xf7, 0x3d, 0xe7, 0x77, 0xfa, 0xe3, 0xfd, - 0xd8, 0x3b, 0xd9, 0xc7, 0xab, 0x82, 0x7f, 0x74, 0xe1, 0xf0, 0x3c, 0xf7, 0xb9, 0xe7, 0x9e, 0x1f, - 0xbf, 0xdf, 0x39, 0xe7, 0x3e, 0xd7, 0x99, 0x19, 0x2e, 0xc7, 0x08, 0x70, 0x99, 0x46, 0x64, 0xc8, - 0xec, 0xa3, 0xaa, 0xec, 0x81, 0x93, 0xe3, 0x77, 0x00, 0x41, 0x1b, 0x18, 0xac, 0xbd, 0xa2, 0xa6, - 0xfe, 0xd8, 0xc5, 0x06, 0xfe, 0xbb, 0xaa, 0x6a, 0xe2, 0xd9, 0x9c, 0x9c, 0x68, 0xd1, 0xba, 0x75, - 0x21, 0x00, 0xb8, 0x74, 0xe9, 0xfa, 0xeb, 0xaa, 0xeb, 0x1c, 0xf0, 0x6a, 0x62, 0x1a, 0x03, 0xdc, - 0x97, 0xa4, 0x5b, 0x93, 0x5b, 0xf3, 0xf6, 0xfe, 0x8c, 0xa2, 0xd7, 0xd6, 0x06, 0x27, 0xbb, 0xda, - 0x9f, 0x00, 0xb5, 0xca, 0x54, 0xcb, 0x8c, 0xfa, 0x17, 0xc9, 0x65, 0xd7, 0xae, 0x6f, 0xda, 0x96, - 0x02, 0xea, 0x7f, 0x63, 0x79, 0x89, 0x63, 0xb0, 0x3b, 0xc9, 0xd2, 0xc8, 0x94, 0x41, 0xd9, 0x18, - 0xd5, 0x81, 0x25, 0x93, 0xeb, 0x3f, 0x3d, 0x37, 0x2c, 0x40, 0x79, 0x79, 0xd6, 0xa9, 0x09, 0x41, - 0x05, 0xc1, 0x55, 0xa6, 0x9c, 0x61, 0x4a, 0x90, 0x84, 0x29, 0x9b, 0x48, 0x6b, 0x98, 0xba, 0x69, - 0xeb, 0xee, 0x41, 0xe9, 0xcc, 0x5d, 0x65, 0xaa, 0x07, 0x8d, 0x9c, 0x49, 0x4d, 0x80, 0x68, 0x0a, - 0xac, 0xc2, 0xa9, 0xdd, 0x75, 0x66, 0x69, 0xe5, 0xa2, 0xc9, 0xef, 0x6f, 0xd8, 0x93, 0xda, 0xe3, - 0x9c, 0xeb, 0x5c, 0xfc, 0xf8, 0x33, 0x6e, 0x1c, 0x57, 0x31, 0x8c, 0x5d, 0x9f, 0xdc, 0x03, 0xea, - 0x11, 0x11, 0x79, 0x6e, 0xda, 0xe6, 0x96, 0x96, 0x94, 0xeb, 0xf9, 0x55, 0xf7, 0xcf, 0x8a, 0x25, - 0x73, 0x8c, 0xfa, 0x92, 0x51, 0xe7, 0x53, 0xe9, 0xce, 0x03, 0x8c, 0x19, 0xe5, 0x95, 0xab, 0x3f, - 0xfb, 0xfa, 0xdd, 0xa3, 0x8b, 0x16, 0x14, 0x20, 0x70, 0xeb, 0x41, 0xde, 0x17, 0x5f, 0xd7, 0xa4, - 0xdf, 0xc7, 0x1a, 0xcb, 0xae, 0x2e, 0x6a, 0x6e, 0xee, 0x4d, 0x8f, 0xeb, 0x46, 0x2a, 0xef, 0xd3, - 0xcf, 0x57, 0x14, 0x1b, 0xad, 0x81, 0xca, 0x05, 0x46, 0x1d, 0xc2, 0x90, 0xc2, 0x1d, 0x30, 0xbb, - 0xd5, 0x54, 0xae, 0x34, 0x26, 0x64, 0x12, 0x76, 0x1a, 0x74, 0x71, 0x51, 0xf3, 0xae, 0x96, 0xe1, - 0xe2, 0xb9, 0xb1, 0xfa, 0xe8, 0x78, 0xc5, 0xa3, 0x95, 0x54, 0xae, 0x35, 0x32, 0x3f, 0x0e, 0xa6, - 0x83, 0xf9, 0x4b, 0x49, 0xac, 0x87, 0xb3, 0xe0, 0xe6, 0x4d, 0xff, 0xb6, 0xf5, 0xc8, 0x48, 0x71, - 0x5c, 0x26, 0x0d, 0xdb, 0xfe, 0xd8, 0x43, 0xd7, 0x39, 0xf1, 0x9f, 0x40, 0x78, 0xff, 0x50, 0x10, - 0x85, 0x91, 0x7b, 0x23, 0x8c, 0x3d, 0x58, 0xf4, 0xfd, 0xbe, 0xd3, 0x97, 0xdc, 0xb0, 0x45, 0x4d, - 0xdf, 0x1c, 0x67, 0x7f, 0xf8, 0x87, 0x46, 0xa3, 0x90, 0x68, 0x14, 0x32, 0x90, 0x7c, 0x86, 0x90, - 0x81, 0x70, 0xcf, 0x58, 0x20, 0x19, 0x33, 0xfa, 0x75, 0xf6, 0x9d, 0xab, 0x8d, 0xac, 0x49, 0x32, - 0xe1, 0x50, 0x46, 0x30, 0xb5, 0x27, 0x67, 0xfd, 0x72, 0xf8, 0x8b, 0x4b, 0x02, 0x3a, 0x58, 0x36, - 0xeb, 0x11, 0x8a, 0x6d, 0x36, 0xd2, 0xa5, 0xf2, 0xa3, 0xf4, 0x46, 0x06, 0x24, 0x23, 0x34, 0x80, - 0x66, 0xe7, 0x5c, 0xe0, 0x4a, 0x4a, 0x0f, 0xfd, 0xfe, 0xdb, 0x45, 0x01, 0x1d, 0x28, 0x99, 0x79, - 0x23, 0x55, 0xda, 0x8c, 0xcc, 0x4b, 0x55, 0x9c, 0x19, 0x68, 0x56, 0x0e, 0x5a, 0x44, 0x61, 0x8d, - 0xa4, 0x39, 0x9a, 0xc1, 0xcc, 0x0e, 0xd0, 0x22, 0xa5, 0xf7, 0x76, 0x74, 0x44, 0xc7, 0x3e, 0xeb, - 0xd2, 0x46, 0x5b, 0x71, 0x71, 0x5e, 0x76, 0x8e, 0x6d, 0x31, 0xb5, 0x3c, 0x1a, 0x60, 0x71, 0x00, - 0x90, 0xb6, 0xf1, 0xee, 0xf6, 0x3f, 0xbf, 0x02, 0x80, 0x5d, 0xd3, 0x0a, 0x8b, 0x09, 0xab, 0x25, - 0x0d, 0x66, 0x76, 0x33, 0xa1, 0xd5, 0x00, 0x5e, 0xbf, 0xa0, 0x62, 0x08, 0xb2, 0x58, 0x1b, 0x8b, - 0xe9, 0x0d, 0x5e, 0x15, 0x5e, 0x05, 0x5e, 0x04, 0x5e, 0xa4, 0xbb, 0x0f, 0xd1, 0x65, 0x49, 0x9f, - 0xd9, 0x1d, 0x47, 0x5f, 0x0b, 0x45, 0x1a, 0xbd, 0x2a, 0x42, 0x51, 0xf8, 0x98, 0xac, 0x6c, 0x9a, - 0x32, 0xa5, 0x20, 0x63, 0xa0, 0xd6, 0xe2, 0xa9, 0x37, 0x85, 0x22, 0x2f, 0x7a, 0x51, 0x24, 0x2d, - 0x54, 0x85, 0x17, 0x56, 0xcf, 0x6b, 0x3f, 0x71, 0x2a, 0xdd, 0xd7, 0xc6, 0x4d, 0x78, 0xd6, 0x8b, - 0x1c, 0xf2, 0x2a, 0xf0, 0xaa, 0xe3, 0xcd, 0xf8, 0x66, 0xc6, 0x39, 0xda, 0x39, 0xbd, 0x70, 0x3b, - 0x69, 0x73, 0x53, 0x72, 0xc5, 0x73, 0xf0, 0xdd, 0x03, 0xc7, 0x4e, 0xcc, 0x19, 0x2e, 0xc8, 0xa6, - 0x49, 0x93, 0xca, 0xcc, 0xb1, 0x95, 0x66, 0xce, 0xcc, 0x48, 0xd3, 0x3b, 0x9e, 0xee, 0xf9, 0x77, - 0xdf, 0xa8, 0x8c, 0xb6, 0x17, 0x5e, 0xb3, 0xd0, 0xc7, 0x64, 0xae, 0x17, 0x41, 0x28, 0x29, 0xc9, - 0x10, 0x53, 0x59, 0x39, 0x92, 0xcc, 0xe5, 0xdd, 0xdd, 0x3f, 0x78, 0xd1, 0x0f, 0x13, 0xec, 0x03, - 0x2f, 0xf6, 0xde, 0xa8, 0xd2, 0xd5, 0x3a, 0x17, 0x78, 0x6a, 0x43, 0xba, 0x64, 0x09, 0xdb, 0xf9, - 0x70, 0xd7, 0x99, 0x1f, 0x47, 0xed, 0xfc, 0x48, 0xdf, 0xcb, 0x5e, 0xb4, 0x33, 0x8c, 0xfb, 0xdf, - 0xf3, 0x41, 0x4e, 0xce, 0xc2, 0x11, 0x81, 0x6a, 0xcc, 0x18, 0x8a, 0x56, 0x7b, 0xd5, 0x7e, 0xaf, - 0x89, 0xdc, 0x88, 0xc2, 0x53, 0xeb, 0xc7, 0x6a, 0xea, 0x8a, 0xb3, 0xd6, 0x1b, 0x6a, 0xec, 0x85, - 0x41, 0x05, 0x74, 0xc5, 0x98, 0x39, 0xfa, 0x3c, 0x3f, 0xff, 0x76, 0x38, 0x6e, 0xa5, 0x59, 0x01, - 0x69, 0x3f, 0x57, 0xf6, 0xf6, 0xdd, 0x92, 0xe9, 0x2f, 0x7c, 0x8d, 0x73, 0xdb, 0x00, 0xcc, 0x07, - 0x00, 0x07, 0xdc, 0xb6, 0xdc, 0xec, 0xa7, 0x11, 0xab, 0xee, 0xa9, 0x9e, 0x9e, 0xbd, 0xfd, 0xa1, - 0x94, 0x86, 0xa2, 0xfb, 0x3d, 0xf5, 0x9d, 0x0b, 0xb9, 0x2b, 0x18, 0x50, 0x97, 0x78, 0xed, 0x32, - 0x20, 0x77, 0x70, 0x21, 0x5e, 0x51, 0xc3, 0xda, 0x06, 0x20, 0x77, 0x35, 0x10, 0x19, 0xcd, 0x67, - 0x38, 0x6b, 0x00, 0x96, 0xbe, 0x05, 0x4c, 0x4c, 0xff, 0xe6, 0xfe, 0x77, 0xf7, 0xba, 0xff, 0x00, - 0xa8, 0x6c, 0x30, 0x24, 0x92, 0xb0, 0x6e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, - 0xae, 0x42, 0x60, 0x82, -}; - -const BITMAP_OPAQUE delete_body_xpm[1] = {{ png, sizeof( png ), "delete_body_xpm" }}; - -//EOF diff --git a/bitmaps_png/cpp_26/hierarchy_cursor.cpp b/bitmaps_png/cpp_26/hierarchy_cursor.cpp index b5dd4f8f85..1b82f27c88 100644 --- a/bitmaps_png/cpp_26/hierarchy_cursor.cpp +++ b/bitmaps_png/cpp_26/hierarchy_cursor.cpp @@ -8,56 +8,60 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x03, 0x00, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0xd6, 0x5b, 0x48, 0x53, - 0x71, 0x00, 0xc7, 0x71, 0x1f, 0xa2, 0xc2, 0x12, 0xcc, 0xa2, 0x30, 0xad, 0x40, 0x2c, 0x82, 0x5e, - 0x44, 0x2c, 0x41, 0xcb, 0xeb, 0xd4, 0x34, 0x2c, 0x2d, 0x42, 0x85, 0xe8, 0x21, 0xc2, 0x5a, 0x06, - 0xdb, 0x74, 0xae, 0x09, 0x4e, 0x9d, 0xbb, 0x9d, 0x9d, 0xb3, 0xed, 0xe8, 0xd0, 0x4d, 0x77, 0xc9, - 0xd4, 0xcd, 0x74, 0x6a, 0x1c, 0x4d, 0xf0, 0x52, 0x06, 0x45, 0x8a, 0x79, 0xc9, 0x96, 0xe4, 0x8b, - 0xa1, 0x4f, 0x3d, 0x05, 0x41, 0x97, 0xf7, 0x5f, 0x6e, 0xc2, 0xe8, 0xb4, 0xed, 0x38, 0x27, 0xf8, - 0xf0, 0x19, 0xfc, 0x0f, 0x87, 0xff, 0x17, 0xfe, 0xe7, 0xbf, 0xf3, 0x3f, 0x11, 0xd1, 0xc5, 0xfb, - 0xb1, 0x17, 0x22, 0x3c, 0x3f, 0xb3, 0x4b, 0x33, 0xf8, 0xbc, 0xea, 0xde, 0x31, 0xd7, 0xf0, 0x00, - 0x5a, 0x8c, 0x34, 0xdc, 0x5f, 0x3e, 0x05, 0xbd, 0xc7, 0x33, 0xb7, 0x2f, 0xe4, 0xb9, 0xb0, 0xb1, - 0xb1, 0xb1, 0x63, 0x66, 0xb3, 0x09, 0xa6, 0x8e, 0x76, 0xd4, 0xd5, 0x49, 0xb1, 0xb2, 0xb2, 0x12, - 0xf0, 0x1e, 0xcf, 0xdc, 0xde, 0x50, 0x8d, 0x34, 0x12, 0x4a, 0x65, 0x3c, 0x54, 0xaa, 0xd3, 0xdb, - 0x38, 0x85, 0xd1, 0xd1, 0x06, 0xd6, 0x24, 0x6d, 0xed, 0x6d, 0x68, 0xed, 0x36, 0x42, 0xff, 0x4c, - 0x0f, 0x89, 0xb4, 0x16, 0x93, 0x93, 0x93, 0xc1, 0x43, 0xf5, 0xf5, 0x91, 0x30, 0x18, 0x73, 0x61, - 0x77, 0x8a, 0x38, 0xc9, 0x64, 0x51, 0x18, 0x1e, 0x16, 0xb3, 0x26, 0x31, 0x1a, 0x5b, 0x61, 0xe8, - 0xa1, 0x71, 0x90, 0x3c, 0x0c, 0x89, 0x5d, 0x0a, 0x35, 0xad, 0xf2, 0x5e, 0x5b, 0x5f, 0x5f, 0x0f, - 0x1c, 0x72, 0x32, 0x24, 0xe6, 0xd7, 0xfe, 0x70, 0x6a, 0x68, 0x8c, 0xf6, 0x0b, 0x19, 0x68, 0x03, - 0xf4, 0xdd, 0x7a, 0x44, 0x68, 0xf7, 0x79, 0x15, 0xb4, 0x15, 0xc1, 0x60, 0xa3, 0x21, 0x91, 0xd4, - 0xc2, 0xed, 0x76, 0xfb, 0x87, 0xfa, 0x18, 0x02, 0x4b, 0x5f, 0x7f, 0x72, 0x0a, 0x14, 0xa2, 0x74, - 0x14, 0xc8, 0x2e, 0xca, 0x17, 0xf2, 0x88, 0xd3, 0x9d, 0x01, 0x61, 0xd7, 0xa2, 0x46, 0x52, 0x83, - 0xf1, 0xf1, 0xf1, 0xff, 0x96, 0xae, 0xf5, 0x32, 0x9e, 0xf6, 0x56, 0x72, 0x0a, 0xb4, 0x74, 0x84, - 0x96, 0x00, 0xd1, 0xa5, 0x65, 0x85, 0x3c, 0x0e, 0x90, 0x87, 0x20, 0xe8, 0x14, 0x42, 0x4e, 0xc9, - 0x41, 0x90, 0x9a, 0xad, 0x90, 0xe0, 0x49, 0x24, 0xd4, 0x9a, 0x04, 0x10, 0x44, 0xa2, 0x97, 0x4c, - 0x16, 0x0b, 0xa9, 0xf4, 0x98, 0x6f, 0xfc, 0xaf, 0xb1, 0x31, 0x39, 0x2b, 0xa4, 0x52, 0xab, 0xa0, - 0xe9, 0x52, 0xfb, 0x26, 0x3f, 0x6f, 0xb8, 0x00, 0xca, 0xaa, 0x83, 0xd6, 0x46, 0x42, 0x63, 0x51, - 0x43, 0xdf, 0x69, 0x40, 0x63, 0x53, 0x23, 0xae, 0x14, 0xa6, 0xf9, 0x6f, 0x6f, 0xb1, 0x58, 0x0c, - 0x1e, 0x8f, 0x17, 0xd2, 0xf6, 0x6e, 0x56, 0xc8, 0xa1, 0xb4, 0xab, 0x70, 0x42, 0x17, 0x07, 0xb5, - 0x55, 0x03, 0xc2, 0xa6, 0x45, 0x99, 0xa9, 0x02, 0xc2, 0x5a, 0x21, 0xac, 0x56, 0x2b, 0x5c, 0x2e, - 0x17, 0xfa, 0x06, 0x9c, 0x38, 0x59, 0x18, 0x13, 0x7a, 0xa8, 0x7f, 0x70, 0x19, 0x26, 0xcb, 0x02, - 0xcb, 0x03, 0xbe, 0x14, 0xb4, 0xad, 0x05, 0x54, 0x07, 0x85, 0xfb, 0x95, 0x22, 0x48, 0xea, 0xeb, - 0x70, 0xbb, 0xbd, 0x0c, 0x4a, 0x8b, 0x12, 0x72, 0x79, 0x13, 0x7b, 0x33, 0x84, 0x1a, 0xca, 0xbe, - 0x3a, 0x8a, 0xa8, 0xe3, 0x0e, 0x96, 0xf4, 0x0c, 0x3e, 0xe4, 0x4a, 0x35, 0x92, 0x53, 0x6b, 0xbc, - 0xe3, 0xa4, 0x14, 0x11, 0xc8, 0x0e, 0x1d, 0x92, 0xe9, 0x14, 0x34, 0xd3, 0x0a, 0x4c, 0x4d, 0x4d, - 0x85, 0x17, 0x4a, 0xcb, 0x9f, 0xc0, 0xc8, 0xbb, 0xef, 0x3e, 0x0a, 0x5d, 0x0f, 0x28, 0x33, 0xe3, - 0x1b, 0x0f, 0x4f, 0x7f, 0xc3, 0x9d, 0xbb, 0x8f, 0x40, 0x58, 0x08, 0xd0, 0x16, 0xda, 0xbb, 0x2b, - 0x83, 0x86, 0xf8, 0x7c, 0x3e, 0x2e, 0xa5, 0x5e, 0xc4, 0xcd, 0x5b, 0xa5, 0x2c, 0x29, 0xe9, 0x4e, - 0xe4, 0x14, 0x4f, 0x61, 0x61, 0xed, 0x37, 0xa7, 0xfc, 0x1b, 0x0e, 0x5c, 0x2f, 0x79, 0xb8, 0xb9, - 0xa9, 0xea, 0xbd, 0xff, 0xa5, 0xa0, 0x21, 0x81, 0x40, 0x80, 0x8c, 0xcc, 0x0c, 0xf4, 0x3a, 0x7a, - 0x59, 0xd2, 0x73, 0x87, 0x90, 0x7d, 0x6d, 0x02, 0x73, 0xab, 0x3f, 0x38, 0x15, 0x94, 0xbe, 0x42, - 0x5a, 0x36, 0xe3, 0xff, 0x66, 0xd8, 0xcd, 0x33, 0x0a, 0x26, 0x3d, 0x67, 0x24, 0xfc, 0x90, 0xc5, - 0xbe, 0x08, 0x85, 0x66, 0x26, 0x24, 0x66, 0xeb, 0x42, 0xf8, 0xa1, 0x70, 0xed, 0x3a, 0x34, 0xab, - 0xb6, 0x63, 0xac, 0x40, 0xb0, 0x2d, 0x26, 0xaf, 0x0a, 0xe2, 0x84, 0xa4, 0xf0, 0x43, 0xaf, 0xef, - 0x29, 0xd0, 0x77, 0xb4, 0x08, 0x43, 0x99, 0x42, 0x4e, 0xfd, 0x89, 0xe5, 0xb0, 0xc7, 0xe4, 0x04, - 0x0e, 0x65, 0x65, 0x65, 0xa1, 0xa1, 0x41, 0xc6, 0xc9, 0x55, 0x22, 0x42, 0xff, 0xd9, 0x72, 0x7c, - 0xd8, 0x3c, 0x42, 0xb8, 0xbc, 0x7c, 0xdc, 0x16, 0x38, 0xc4, 0x30, 0x0c, 0x48, 0x8a, 0xdc, 0x3c, - 0x75, 0x15, 0x9c, 0x06, 0x4b, 0xab, 0xe1, 0x3a, 0x57, 0xb1, 0x79, 0x84, 0xfc, 0xe2, 0x34, 0x56, - 0x65, 0x0c, 0x1c, 0x0a, 0x95, 0x67, 0xe9, 0x9e, 0xc7, 0x97, 0xe0, 0x0d, 0xe1, 0xe2, 0xf4, 0x22, - 0xaf, 0x1a, 0xb6, 0x23, 0xd9, 0xbb, 0x0b, 0x39, 0xa2, 0x78, 0x21, 0xb1, 0xc5, 0x64, 0x85, 0xff, - 0xb9, 0xe5, 0xfe, 0xb8, 0x88, 0xe5, 0xf9, 0xb9, 0x6d, 0xbd, 0x7f, 0x3b, 0x8d, 0xd8, 0xc2, 0xc8, - 0xad, 0xd0, 0x5e, 0xf8, 0x0b, 0x55, 0xb5, 0x47, 0x12, 0x29, 0xf3, 0xf1, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x03, 0x3b, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xcd, 0xd4, 0x5b, 0x4c, 0x52, + 0x71, 0x1c, 0xc0, 0x71, 0x6c, 0x35, 0x05, 0x64, 0x1d, 0x94, 0xca, 0xbc, 0xf5, 0x98, 0xba, 0x55, + 0x9a, 0x5b, 0xd7, 0x99, 0x96, 0x79, 0x23, 0x45, 0xcb, 0x2e, 0x02, 0x0a, 0xc4, 0x2d, 0xbb, 0xb8, + 0xa9, 0xa4, 0x66, 0x81, 0x73, 0xe9, 0x5c, 0x92, 0x46, 0x28, 0x21, 0x72, 0x91, 0x99, 0xd0, 0x7a, + 0xe8, 0xb1, 0xb2, 0x16, 0x68, 0x2f, 0x99, 0xeb, 0xa1, 0x1e, 0x5a, 0x6d, 0xd6, 0xba, 0x3c, 0xb4, + 0x79, 0xab, 0x24, 0xd3, 0x52, 0x4e, 0xfa, 0xeb, 0x8f, 0x9b, 0x85, 0x3a, 0x38, 0x24, 0xb5, 0x75, + 0xb6, 0xef, 0x79, 0x38, 0x3b, 0xff, 0xf3, 0xd9, 0x39, 0xff, 0xff, 0xf9, 0x93, 0x00, 0x80, 0xb4, + 0x9c, 0x32, 0xb3, 0x32, 0x4e, 0xee, 0xda, 0xbd, 0x73, 0x9d, 0xaf, 0xf7, 0x93, 0x4a, 0x4a, 0x48, + 0x81, 0x0a, 0x05, 0x75, 0x5a, 0xa1, 0x08, 0xc6, 0x89, 0xa3, 0x4e, 0xcf, 0x0f, 0x64, 0xe5, 0xe6, + 0x8c, 0xf0, 0xf8, 0xbc, 0x91, 0xd4, 0xd4, 0x7d, 0xa9, 0x3e, 0x41, 0xb5, 0xb5, 0xa4, 0x20, 0xd7, + 0x43, 0x7a, 0x5e, 0x4c, 0x76, 0x13, 0x25, 0x97, 0x53, 0x60, 0x7e, 0x20, 0x9b, 0x5d, 0x30, 0xa8, + 0x37, 0x19, 0xa0, 0xba, 0xe6, 0xdc, 0x57, 0x84, 0x2a, 0xd1, 0xdb, 0x05, 0x10, 0x42, 0x72, 0x45, + 0xb0, 0xf3, 0xe1, 0x2b, 0x30, 0x11, 0xe5, 0x0e, 0x71, 0xb8, 0xec, 0xc1, 0xba, 0x8e, 0x7a, 0x28, + 0x37, 0xc8, 0x40, 0xdd, 0xae, 0xc6, 0x73, 0xf3, 0x58, 0x4f, 0x10, 0xc6, 0xf0, 0x0e, 0xc9, 0x83, + 0x9d, 0x3d, 0x03, 0xd0, 0x40, 0x94, 0x3b, 0x54, 0x54, 0x54, 0x38, 0xa4, 0x30, 0xd7, 0x00, 0xa9, + 0x71, 0x25, 0xec, 0x6f, 0x4d, 0x07, 0x8d, 0x59, 0x03, 0xdc, 0x42, 0xce, 0x70, 0xca, 0xde, 0xe4, + 0x24, 0x2f, 0x10, 0x05, 0xe4, 0x72, 0xaa, 0x73, 0x51, 0xf8, 0xd2, 0x6b, 0xbf, 0x21, 0x3e, 0x9f, + 0x37, 0x54, 0x6d, 0x3a, 0x3f, 0x07, 0xb9, 0x8a, 0x68, 0xda, 0x00, 0x4d, 0x1d, 0xcd, 0x20, 0xab, + 0x92, 0x7d, 0x3d, 0x90, 0xcd, 0xac, 0x5b, 0xfc, 0x29, 0xe7, 0x4e, 0x2e, 0xcc, 0xbd, 0x6d, 0xdb, + 0xa8, 0xeb, 0x68, 0x34, 0xb2, 0x63, 0xf1, 0x75, 0x57, 0xf3, 0x03, 0x05, 0xc7, 0xf9, 0xc3, 0x15, + 0xc6, 0xca, 0x5f, 0x90, 0xab, 0x40, 0x25, 0x15, 0xca, 0xf5, 0x32, 0x50, 0xb6, 0x2a, 0x71, 0x16, + 0x2b, 0xa7, 0x0f, 0x61, 0xf4, 0x05, 0xd0, 0xe2, 0x30, 0x74, 0x90, 0xc9, 0x64, 0x87, 0xb7, 0xc9, + 0x15, 0x0a, 0x85, 0x23, 0xa5, 0xfa, 0xb2, 0x05, 0xd0, 0x7c, 0xa9, 0x2d, 0x69, 0xa0, 0x36, 0xaa, + 0xa1, 0x80, 0x7d, 0x6c, 0x70, 0x4f, 0x72, 0xd2, 0x0e, 0xbf, 0x20, 0x91, 0x58, 0x34, 0x7a, 0x46, + 0x5f, 0xf2, 0xeb, 0xe1, 0x01, 0x8d, 0xab, 0x80, 0xd9, 0x92, 0x0d, 0x1c, 0x6d, 0x21, 0x70, 0xb5, + 0x45, 0x50, 0xa1, 0xab, 0x04, 0x9d, 0xb1, 0x1d, 0x4a, 0xcb, 0x4a, 0xc7, 0xd1, 0x3f, 0x77, 0x61, + 0xd9, 0x90, 0x58, 0x22, 0xfe, 0x58, 0xdc, 0x7e, 0x72, 0x0e, 0xd9, 0xac, 0x4a, 0x80, 0x2a, 0xfd, + 0x39, 0xc8, 0xd7, 0x1c, 0x01, 0x9d, 0x41, 0x37, 0x23, 0x3d, 0x21, 0x19, 0x43, 0x8d, 0x8a, 0xc5, + 0xa2, 0x61, 0x81, 0x80, 0x3f, 0x98, 0x9e, 0x91, 0xf6, 0xe1, 0x8f, 0x20, 0xf4, 0xfe, 0x01, 0x18, + 0x66, 0xc6, 0x5c, 0x49, 0xa5, 0xd2, 0xcf, 0xa2, 0x36, 0x31, 0xe4, 0x69, 0x0e, 0x41, 0x73, 0x5b, + 0xf3, 0x8c, 0xaa, 0xed, 0xaa, 0x33, 0x59, 0xbd, 0x0f, 0x1a, 0x0d, 0x4a, 0xc8, 0x3f, 0x7c, 0xf8, + 0x6d, 0x44, 0x84, 0x12, 0x5b, 0xb2, 0x18, 0x7c, 0x85, 0xa8, 0x6b, 0xcc, 0x61, 0xb4, 0xb5, 0x16, + 0x58, 0x1d, 0x66, 0xc5, 0x85, 0xc2, 0xd3, 0xb3, 0x5a, 0x83, 0x16, 0xe4, 0xf5, 0xb5, 0x90, 0xb8, + 0xfd, 0xcc, 0x6c, 0x5a, 0x06, 0x1b, 0x54, 0x46, 0x15, 0x6c, 0xba, 0x12, 0x0f, 0x97, 0x5a, 0x94, + 0x10, 0x17, 0x7f, 0xf6, 0x93, 0x5f, 0x10, 0x23, 0xfa, 0xe6, 0xb8, 0xed, 0x25, 0x7e, 0x47, 0x2c, + 0x91, 0xe0, 0xa5, 0xe5, 0xe5, 0x3f, 0x2e, 0xaa, 0x3a, 0x9f, 0xf7, 0x0e, 0xc0, 0xed, 0x96, 0x2e, + 0x5b, 0xbf, 0xbc, 0xb6, 0x06, 0xe7, 0x5d, 0x13, 0x40, 0xb1, 0xf6, 0x14, 0x88, 0xa4, 0xa7, 0x67, + 0xd0, 0xaa, 0x5b, 0x4f, 0x08, 0x45, 0x45, 0x47, 0x7d, 0xdf, 0x9a, 0x98, 0x30, 0xe5, 0xde, 0x96, + 0xf8, 0xa4, 0x37, 0xa1, 0x51, 0x37, 0x1d, 0xf6, 0x97, 0x4e, 0x73, 0x76, 0x6e, 0xde, 0x78, 0xab, + 0xc5, 0x76, 0xc7, 0x7d, 0xe7, 0xe0, 0x0a, 0xc4, 0x43, 0x6a, 0x03, 0x5a, 0x6d, 0x1a, 0x0e, 0x28, + 0x35, 0x97, 0x01, 0x41, 0x47, 0x09, 0x21, 0x0a, 0x85, 0xe2, 0x48, 0x49, 0x49, 0x09, 0x72, 0x0f, + 0x0b, 0x6b, 0x88, 0x0e, 0x89, 0xbc, 0x31, 0xe6, 0x69, 0xe7, 0xe8, 0xbc, 0xfb, 0x5c, 0x5b, 0xc0, + 0x2d, 0x74, 0xc8, 0x2a, 0x2a, 0xa7, 0x59, 0x07, 0x79, 0x38, 0x82, 0x22, 0xfd, 0x98, 0x23, 0xeb, + 0x2c, 0xb6, 0xde, 0x3a, 0xe1, 0x29, 0x7a, 0x78, 0xd7, 0x44, 0x68, 0xa4, 0xe9, 0x1b, 0x9a, 0xc7, + 0xd7, 0xcb, 0x9e, 0x23, 0xb4, 0x61, 0xad, 0x70, 0x61, 0xbe, 0x44, 0x0b, 0xbf, 0xc1, 0x58, 0x36, + 0xe4, 0x4f, 0xff, 0x3f, 0x64, 0x65, 0x30, 0x07, 0x50, 0x0e, 0xc2, 0x42, 0xb2, 0xde, 0xf9, 0x07, + 0x85, 0x32, 0xc7, 0x6c, 0xdd, 0xef, 0xed, 0xf6, 0xbe, 0xcf, 0xf7, 0x3d, 0x65, 0xeb, 0x1d, 0x7a, + 0x60, 0xa1, 0x67, 0x4e, 0x7a, 0x85, 0x62, 0x62, 0x37, 0xce, 0xc6, 0xc6, 0xc5, 0x4c, 0x79, 0xca, + 0x12, 0x92, 0xf5, 0xc5, 0xfe, 0xe8, 0xe3, 0x75, 0xf4, 0xb3, 0x1a, 0x3d, 0x65, 0x7f, 0x36, 0x69, + 0xb6, 0xd2, 0x33, 0x26, 0x3c, 0x42, 0xbe, 0x64, 0xa5, 0x67, 0x7e, 0xea, 0x36, 0xf4, 0xb7, 0xdf, + 0xbb, 0xf5, 0xa2, 0xd5, 0x63, 0x5d, 0x4f, 0xb5, 0x16, 0xcc, 0x4f, 0x08, 0x7d, 0x92, 0xc7, 0xd6, + 0x10, 0xe6, 0x5b, 0xc2, 0xe8, 0x99, 0x4f, 0xfd, 0x82, 0xfe, 0xca, 0xaa, 0xfb, 0x17, 0xfd, 0x04, + 0x2c, 0x04, 0x83, 0xbc, 0x23, 0xc5, 0x78, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, + 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE hierarchy_cursor_xpm[1] = {{ png, sizeof( png ), "hierarchy_cursor_xpm" }}; diff --git a/bitmaps_png/cpp_26/hierarchy_nav.cpp b/bitmaps_png/cpp_26/hierarchy_nav.cpp index 899cc878bd..4e5ddc0aaf 100644 --- a/bitmaps_png/cpp_26/hierarchy_nav.cpp +++ b/bitmaps_png/cpp_26/hierarchy_nav.cpp @@ -8,37 +8,33 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x01, 0xd3, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xd5, 0xd6, 0xcf, 0x2b, 0xc3, - 0x71, 0x1c, 0xc7, 0x71, 0x27, 0x87, 0xd5, 0x8a, 0x91, 0x52, 0xe3, 0xb0, 0x70, 0x76, 0xf0, 0xa3, - 0x4c, 0x7c, 0x37, 0x63, 0x58, 0x2b, 0xe3, 0xc2, 0xd5, 0x41, 0x2d, 0xea, 0xcb, 0x7c, 0xcb, 0x0e, - 0xbe, 0x93, 0xc6, 0xac, 0xa9, 0x15, 0x89, 0x62, 0x73, 0xd9, 0xc6, 0x9a, 0x1f, 0x7d, 0x37, 0x3b, - 0x88, 0x51, 0x84, 0xc6, 0xfc, 0x3e, 0xb8, 0x50, 0xfb, 0x03, 0x94, 0xf2, 0xe3, 0xfe, 0xb2, 0x2f, - 0x25, 0xb4, 0x3e, 0xfb, 0xf6, 0xfd, 0xa2, 0x1c, 0x1e, 0xdf, 0xfa, 0x7e, 0x0f, 0x9f, 0x67, 0x7d, - 0xbe, 0x9f, 0x6f, 0xef, 0x6f, 0x56, 0x8e, 0x31, 0x1b, 0x7f, 0x21, 0x8b, 0xbf, 0x1c, 0x9d, 0x1d, - 0xe2, 0xfa, 0xe6, 0xea, 0x57, 0xf0, 0x6b, 0x7f, 0x84, 0xf8, 0x07, 0xc9, 0x64, 0xf2, 0x57, 0xf0, - 0x6b, 0xbf, 0x85, 0x06, 0xad, 0x32, 0x8c, 0x8d, 0x29, 0x31, 0x3e, 0x5e, 0x9c, 0x41, 0x11, 0x22, - 0x11, 0x9b, 0xf8, 0xd0, 0xf0, 0xb0, 0x0c, 0xee, 0xe9, 0x06, 0x78, 0x03, 0x03, 0x44, 0x2c, 0x2b, - 0xc7, 0xda, 0x1a, 0x23, 0x2d, 0x14, 0xe0, 0x5c, 0x38, 0xb9, 0x7d, 0x21, 0xb2, 0x8d, 0xe4, 0x48, - 0x0f, 0x2d, 0x71, 0x4e, 0x9c, 0xdd, 0x3d, 0x12, 0xfd, 0x48, 0xc8, 0x3d, 0x55, 0x8b, 0x45, 0x5f, - 0x0f, 0x91, 0xe4, 0xad, 0xa3, 0x87, 0x64, 0x70, 0x4c, 0xa8, 0xe0, 0x74, 0x96, 0xbc, 0x61, 0xd9, - 0x42, 0x58, 0xad, 0xf9, 0x1f, 0xf7, 0x9f, 0x45, 0xa3, 0xa3, 0xe2, 0x43, 0xdf, 0x8f, 0x37, 0xc3, - 0x30, 0xd0, 0xe9, 0x74, 0x3f, 0x7f, 0xbc, 0x85, 0x86, 0x82, 0x2b, 0x17, 0x98, 0x9d, 0x4f, 0x08, - 0xb2, 0x1c, 0xba, 0x14, 0x1f, 0xd2, 0x34, 0x47, 0x20, 0x2f, 0xf0, 0x0b, 0x52, 0xa3, 0xe1, 0xa4, - 0x85, 0x6a, 0x9a, 0x36, 0x11, 0xde, 0xbf, 0x27, 0xa2, 0x0c, 0x5b, 0xa9, 0x50, 0x38, 0x73, 0xc8, - 0x6c, 0x36, 0xa3, 0xaa, 0xba, 0x12, 0xed, 0x1d, 0xa6, 0x2f, 0x2a, 0xd4, 0x01, 0x68, 0x8d, 0x5b, - 0x48, 0xdc, 0x3e, 0x13, 0x35, 0x77, 0xc4, 0x84, 0x85, 0x68, 0x9a, 0x46, 0x5d, 0x7d, 0x1d, 0x7c, - 0x7e, 0xdf, 0x17, 0xea, 0x86, 0x55, 0x68, 0x0c, 0x9b, 0x88, 0xdf, 0x3c, 0x10, 0xe9, 0x4d, 0xdb, - 0xd2, 0xb7, 0x4e, 0xe8, 0x3b, 0x52, 0x6b, 0xc3, 0xe2, 0x43, 0xf3, 0xde, 0x53, 0xd8, 0x27, 0x0e, - 0x05, 0x99, 0x5b, 0x48, 0xfc, 0x83, 0xef, 0xe8, 0xbb, 0x23, 0x87, 0x17, 0x51, 0x3d, 0x9d, 0x11, - 0xd7, 0xd8, 0x0b, 0x46, 0x55, 0x2e, 0x3e, 0x14, 0xeb, 0xb6, 0x63, 0x29, 0xaf, 0x15, 0xab, 0xf5, - 0xfd, 0x44, 0xc1, 0x92, 0x4e, 0x78, 0x15, 0xda, 0xf4, 0x21, 0x8a, 0xa2, 0x60, 0xb3, 0xb1, 0x44, - 0xa1, 0xb6, 0x01, 0x04, 0x4b, 0x3b, 0x71, 0x9c, 0x1a, 0x21, 0x24, 0x1b, 0x7d, 0x33, 0xe9, 0x43, - 0x1c, 0xc7, 0xc1, 0x35, 0xe9, 0x4a, 0x4d, 0x5d, 0x3b, 0xd1, 0x8a, 0xc9, 0x82, 0x50, 0x59, 0x57, - 0x6a, 0x84, 0x3c, 0x11, 0x45, 0x7b, 0xa7, 0xd3, 0x87, 0x84, 0xe2, 0xb7, 0x6e, 0x59, 0xd9, 0x86, - 0x5d, 0x67, 0x88, 0x68, 0xbd, 0xd1, 0x02, 0x4f, 0xae, 0x46, 0x5a, 0xc8, 0x2f, 0xd7, 0x09, 0xe2, - 0x51, 0x50, 0xe2, 0x7f, 0xb7, 0xae, 0xce, 0x4f, 0x71, 0x71, 0x12, 0xcf, 0xe8, 0x60, 0x6f, 0x07, - 0x85, 0x2d, 0xb2, 0xf7, 0xd0, 0x5f, 0x78, 0x05, 0xf9, 0x52, 0x9b, 0x76, 0x43, 0xd6, 0x57, 0xf2, - 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x01, 0x90, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x63, 0xf8, 0xff, 0xff, 0x3f, + 0x03, 0x3d, 0x30, 0x43, 0x6e, 0x2e, 0x03, 0x7b, 0x6d, 0x2d, 0xf7, 0xcf, 0xda, 0x5a, 0x9e, 0xdf, + 0x84, 0x31, 0xf7, 0x4f, 0xb2, 0x2d, 0x6a, 0x68, 0x60, 0xe0, 0x00, 0x19, 0xb2, 0xef, 0xea, 0xd7, + 0xed, 0x84, 0x70, 0x4d, 0x0d, 0xd7, 0x7f, 0x8a, 0x2c, 0xaa, 0xa9, 0xe5, 0xf9, 0x75, 0xe0, 0xd6, + 0xff, 0xb9, 0x84, 0x30, 0xe5, 0x16, 0xd5, 0xf0, 0xfc, 0xda, 0x77, 0xf3, 0x7f, 0x1b, 0x21, 0x4c, + 0x05, 0x8b, 0xb8, 0xfe, 0xd7, 0xd4, 0x70, 0xff, 0x42, 0xc3, 0xbf, 0x31, 0xc5, 0x28, 0xb0, 0x08, + 0x44, 0x80, 0x2c, 0x43, 0xc6, 0xe6, 0xe6, 0xdc, 0xe2, 0xbc, 0xbc, 0x9c, 0x1f, 0xd0, 0xc5, 0x41, + 0x98, 0x22, 0x8b, 0xd0, 0xb1, 0x00, 0x10, 0x70, 0x72, 0x72, 0x7e, 0xa0, 0x6a, 0xf2, 0x1e, 0xd9, + 0x16, 0x01, 0x55, 0x33, 0x0a, 0x08, 0xcc, 0x17, 0x20, 0x06, 0x8b, 0x88, 0xcc, 0xe5, 0x25, 0xdb, + 0x22, 0x6e, 0xd1, 0xf9, 0x12, 0xbc, 0x62, 0x4b, 0xfe, 0xf3, 0x4b, 0x2c, 0xfd, 0x4d, 0x00, 0xff, + 0x11, 0x94, 0x5a, 0x7a, 0x8f, 0x22, 0x8b, 0x44, 0xe4, 0x56, 0x7c, 0xda, 0x7f, 0xf3, 0xff, 0x16, + 0x7c, 0x78, 0xd6, 0xfa, 0xd7, 0x07, 0x44, 0xe4, 0x57, 0x3c, 0x24, 0xca, 0x22, 0x59, 0x39, 0xd9, + 0xef, 0x46, 0xc6, 0x86, 0x3f, 0x90, 0xb1, 0x9e, 0xbe, 0xed, 0x5d, 0x61, 0xd9, 0x15, 0x1f, 0x08, + 0x95, 0x20, 0xd3, 0xd7, 0xbc, 0x5a, 0x23, 0x2c, 0xb7, 0xfc, 0x01, 0x51, 0x16, 0x71, 0x71, 0x71, + 0x7d, 0x70, 0x70, 0x70, 0xe0, 0x40, 0xc6, 0x82, 0x52, 0x1d, 0x72, 0x42, 0x32, 0xcb, 0xde, 0x13, + 0x2a, 0x41, 0xfa, 0x97, 0xbf, 0x98, 0x29, 0x24, 0xbb, 0xfc, 0x3e, 0x85, 0x71, 0xb4, 0xf4, 0x9f, + 0x80, 0xe4, 0xd2, 0x2f, 0x04, 0xf0, 0x57, 0x60, 0x3c, 0xdd, 0xa6, 0x20, 0xd5, 0x35, 0x30, 0x81, + 0x2c, 0x23, 0x06, 0xf3, 0x4a, 0x2d, 0x13, 0x19, 0xcd, 0xb0, 0x58, 0xf1, 0x52, 0x11, 0xaf, 0x9b, + 0x40, 0xfc, 0x81, 0x20, 0x16, 0xf2, 0xbc, 0x4f, 0x99, 0x45, 0xc2, 0x5e, 0xef, 0xf7, 0x6c, 0x7f, + 0xb0, 0x77, 0xef, 0xb1, 0x77, 0x3b, 0x71, 0xe1, 0x3d, 0xfb, 0x5f, 0xec, 0x5e, 0x22, 0xe8, 0xf1, + 0x15, 0xaf, 0x45, 0xea, 0x1a, 0x6a, 0xff, 0x34, 0xb5, 0x34, 0x7e, 0xe0, 0xc2, 0x8b, 0x85, 0x3d, + 0x3e, 0xee, 0x3d, 0xfa, 0x66, 0x11, 0x30, 0x83, 0xce, 0xc1, 0x85, 0xf7, 0x9e, 0xff, 0x3a, 0x7f, + 0xa9, 0xa0, 0xfb, 0x17, 0x9c, 0x16, 0x11, 0x83, 0x97, 0x0a, 0x7a, 0xbc, 0xdd, 0x3e, 0xfb, 0xc4, + 0xcc, 0x1d, 0x6b, 0xae, 0x4e, 0xc6, 0x89, 0x17, 0x9f, 0x9b, 0xb6, 0x44, 0x80, 0x42, 0x8b, 0x80, + 0x41, 0x72, 0x7c, 0xa9, 0x90, 0xd7, 0x3d, 0x82, 0x58, 0xd0, 0xe3, 0x1c, 0x45, 0x16, 0x51, 0x25, + 0xd5, 0xd1, 0x02, 0x03, 0x00, 0x3c, 0x6b, 0xd6, 0x47, 0xca, 0x0b, 0x70, 0x93, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE hierarchy_nav_xpm[1] = {{ png, sizeof( png ), "hierarchy_nav_xpm" }}; diff --git a/bitmaps_png/cpp_26/module_filtered_list.cpp b/bitmaps_png/cpp_26/module_filtered_list.cpp index fb07756f64..8babad12ed 100644 --- a/bitmaps_png/cpp_26/module_filtered_list.cpp +++ b/bitmaps_png/cpp_26/module_filtered_list.cpp @@ -8,63 +8,48 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x03, 0x76, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xb5, 0x95, 0x6b, 0x48, 0x93, - 0x51, 0x18, 0xc7, 0x7d, 0x5f, 0xb7, 0x91, 0xd1, 0x45, 0x2a, 0x10, 0x6f, 0x20, 0x79, 0x61, 0x29, - 0x4d, 0x34, 0xd9, 0x9a, 0xe2, 0x94, 0xa6, 0xe1, 0x9a, 0x39, 0xca, 0xb6, 0x79, 0xcb, 0x6b, 0xde, - 0x95, 0x9c, 0x29, 0x5d, 0xb4, 0xa5, 0xa5, 0x25, 0x82, 0x73, 0xe5, 0x34, 0x41, 0x24, 0x3f, 0x94, - 0xe4, 0x50, 0x30, 0xb0, 0x10, 0x32, 0x50, 0x08, 0x5b, 0x85, 0x20, 0x42, 0xe5, 0x07, 0x4d, 0x30, - 0x45, 0x05, 0x49, 0x52, 0x41, 0x26, 0xe4, 0xd3, 0x39, 0x6f, 0xbe, 0x73, 0x9b, 0x6e, 0x6e, 0x99, - 0x07, 0xfe, 0xb0, 0xfd, 0xce, 0xce, 0xf9, 0x71, 0x9e, 0x73, 0xce, 0x8e, 0x03, 0x00, 0x38, 0x18, - 0x07, 0xb5, 0x63, 0x4c, 0x26, 0xf3, 0x2c, 0x1d, 0xf4, 0xfd, 0xd4, 0x26, 0x3f, 0x6c, 0xcc, 0x59, - 0x2c, 0x16, 0x67, 0x93, 0xb3, 0x8c, 0x39, 0x4a, 0x88, 0xf9, 0x9c, 0xd4, 0xef, 0xcc, 0x41, 0x98, - 0x27, 0xd9, 0xa8, 0x4b, 0x25, 0x80, 0x4e, 0xea, 0x69, 0x72, 0x0c, 0xf3, 0x33, 0x6e, 0x64, 0xf1, - 0x1b, 0xd9, 0x16, 0xcf, 0x0b, 0x26, 0x27, 0x31, 0xc7, 0x93, 0xb7, 0x8b, 0xb7, 0x78, 0x19, 0x8f, - 0x5c, 0x44, 0x72, 0x67, 0x9b, 0x44, 0x70, 0x0b, 0x7d, 0xdc, 0xcc, 0x0d, 0x2e, 0xf1, 0x89, 0x16, - 0xcd, 0x15, 0x6f, 0xf1, 0x9a, 0x08, 0xe2, 0x0b, 0x2d, 0xc2, 0x02, 0x9a, 0xb7, 0xc4, 0x10, 0x73, - 0x16, 0x45, 0xa8, 0x11, 0x28, 0x07, 0x70, 0xf8, 0x1e, 0x64, 0x93, 0x2e, 0xfb, 0x10, 0xd4, 0xe5, - 0x5f, 0x84, 0xe6, 0x64, 0x36, 0x94, 0x72, 0x89, 0xcf, 0x98, 0x07, 0xb9, 0x92, 0xa5, 0x1f, 0x33, - 0x18, 0x50, 0x9d, 0x11, 0x0d, 0xd5, 0x52, 0x0e, 0x3c, 0x88, 0x20, 0xbe, 0x62, 0xce, 0x60, 0x30, - 0x04, 0x03, 0x89, 0x04, 0x54, 0x24, 0x84, 0x82, 0x32, 0x81, 0x07, 0x8f, 0xa3, 0x89, 0x79, 0xc4, - 0x5d, 0xe8, 0xf9, 0x50, 0x48, 0x83, 0xc8, 0xcf, 0xcf, 0xef, 0x8e, 0x5c, 0x2e, 0x9f, 0xcd, 0xc9, - 0xc9, 0x99, 0x8e, 0x0d, 0x0b, 0x58, 0xee, 0x48, 0x74, 0x83, 0xa1, 0x57, 0x2f, 0x40, 0x99, 0x22, - 0x00, 0x45, 0xc4, 0x09, 0x3d, 0xe6, 0x12, 0x21, 0x7f, 0xa9, 0x4b, 0x7e, 0x04, 0x7a, 0x9f, 0x3d, - 0x81, 0x9b, 0xa9, 0x22, 0xa8, 0x10, 0x3a, 0xaf, 0x63, 0x1e, 0x17, 0x17, 0x37, 0xaf, 0xbd, 0xc4, - 0x00, 0xb5, 0xb2, 0x04, 0xea, 0xca, 0xaf, 0xc1, 0xfd, 0x73, 0x4e, 0xbf, 0xd3, 0xd2, 0xd2, 0x66, - 0x70, 0x5f, 0x66, 0x66, 0xe6, 0x34, 0x9b, 0xcd, 0x6e, 0x35, 0x88, 0xfc, 0xfd, 0xfd, 0x1f, 0x4e, - 0x4d, 0x4d, 0x01, 0x6e, 0xea, 0x7b, 0x0a, 0xd8, 0x40, 0x25, 0x18, 0x4e, 0x67, 0xc2, 0xcf, 0x12, - 0x07, 0x50, 0x67, 0xf0, 0x28, 0xfe, 0xb2, 0xbd, 0x09, 0x70, 0xe9, 0x46, 0xb2, 0x98, 0x30, 0x5b, - 0xe4, 0x00, 0xad, 0x69, 0x01, 0x14, 0xd7, 0xe9, 0x74, 0xd4, 0xde, 0x7c, 0xcb, 0x65, 0xc0, 0x44, - 0x3e, 0x09, 0x1d, 0x89, 0xae, 0xb0, 0xb4, 0xb4, 0x44, 0xf5, 0xad, 0xad, 0xad, 0x01, 0x87, 0xc3, - 0xe9, 0xb4, 0x28, 0x32, 0xde, 0x23, 0x73, 0x11, 0xcd, 0xcd, 0x45, 0x34, 0xb7, 0x59, 0xf4, 0xfe, - 0x6d, 0x1f, 0xa8, 0xcb, 0x92, 0x0c, 0x79, 0x5a, 0x53, 0x46, 0xf1, 0xb1, 0x11, 0x1d, 0x34, 0x28, - 0x12, 0x0d, 0xbc, 0xe1, 0x76, 0x2e, 0xc5, 0x67, 0x66, 0x66, 0xa0, 0xae, 0x58, 0x66, 0xe0, 0xb5, - 0xd7, 0x53, 0x40, 0xaf, 0xd7, 0xef, 0x2c, 0xf2, 0xf5, 0xf5, 0x6d, 0x54, 0xa9, 0x54, 0xb0, 0xb2, - 0xb2, 0x02, 0xd6, 0xda, 0xea, 0xea, 0x2a, 0x68, 0x34, 0x1a, 0xa8, 0xaa, 0xaa, 0xb2, 0x29, 0xb5, - 0xb5, 0xb5, 0x10, 0x14, 0x14, 0xf4, 0xda, 0x64, 0x45, 0x3d, 0x3d, 0x3d, 0x80, 0x36, 0xd1, 0xaa, - 0xa8, 0xaf, 0xaf, 0x0f, 0x04, 0x02, 0x01, 0x24, 0x27, 0x27, 0x43, 0x53, 0x93, 0x66, 0xd7, 0x48, - 0xa5, 0x32, 0xe0, 0xf3, 0xf9, 0x53, 0xdb, 0x4a, 0x57, 0x5f, 0x5f, 0x0f, 0xe3, 0xe3, 0xe3, 0x16, - 0x45, 0x5a, 0xad, 0x96, 0x12, 0x55, 0x56, 0xde, 0x85, 0xe5, 0xe5, 0xd5, 0x5d, 0xa3, 0x50, 0x28, - 0x20, 0x34, 0x34, 0xf4, 0x87, 0x89, 0xa8, 0xbf, 0xbf, 0x1f, 0x92, 0x92, 0x92, 0xac, 0xae, 0x88, - 0x16, 0x89, 0xc5, 0xb1, 0x80, 0x8e, 0xef, 0xae, 0x11, 0x89, 0x44, 0xa6, 0x22, 0x74, 0x8f, 0x1a, - 0x94, 0x4a, 0x25, 0x2c, 0x2c, 0x2c, 0xd8, 0x24, 0x8a, 0x8f, 0x8f, 0xa7, 0x56, 0x65, 0x1e, 0x89, - 0x44, 0x42, 0xf5, 0x1b, 0x67, 0xdb, 0x8a, 0xe8, 0x53, 0xb7, 0xb1, 0xb1, 0x41, 0x9d, 0x16, 0x3a, - 0xeb, 0xeb, 0xeb, 0x06, 0xde, 0xd9, 0xd9, 0x69, 0xb5, 0x74, 0xb8, 0x54, 0x36, 0x8b, 0x9a, 0x1f, - 0x55, 0x40, 0xab, 0xdc, 0xd3, 0x90, 0x22, 0x09, 0x97, 0xe2, 0x3d, 0xcf, 0xdb, 0x20, 0x3f, 0xc6, - 0xff, 0xff, 0xad, 0xc8, 0xda, 0x85, 0x6d, 0x4f, 0x70, 0xdf, 0xdb, 0x1e, 0x99, 0x8b, 0x26, 0x0b, - 0x59, 0x50, 0x77, 0x95, 0x07, 0xdd, 0xe9, 0x1e, 0x26, 0x22, 0xcd, 0x15, 0xf7, 0xbd, 0x9d, 0x3a, - 0x6f, 0x6f, 0xef, 0x98, 0xc0, 0xc0, 0xc0, 0x77, 0xe8, 0x72, 0x0d, 0x70, 0x7d, 0x8e, 0x4f, 0xb7, - 0xc8, 0x3c, 0x61, 0x71, 0x62, 0x14, 0x6a, 0xb2, 0x45, 0x90, 0xc7, 0x3d, 0xf8, 0x0b, 0xf3, 0x60, - 0x3f, 0xd7, 0xf1, 0xf2, 0x0b, 0x3e, 0x76, 0xdf, 0x23, 0x24, 0x1a, 0xb1, 0xf8, 0x1e, 0xad, 0x94, - 0xa2, 0xff, 0x32, 0x99, 0x07, 0x8c, 0xe6, 0x3a, 0x99, 0xbc, 0x47, 0x6d, 0xf2, 0xbf, 0x2b, 0x8a, - 0x8a, 0x8a, 0xa2, 0xf6, 0xc3, 0x38, 0x62, 0xb1, 0x78, 0xdb, 0xfe, 0x6c, 0xa6, 0xd7, 0xee, 0x87, - 0x8f, 0xde, 0xa3, 0x9d, 0x4a, 0x37, 0x3c, 0xfc, 0xc1, 0x3e, 0x11, 0xcf, 0xc3, 0x31, 0xa7, 0x28, - 0x84, 0x18, 0xa2, 0x73, 0xfe, 0x24, 0xd1, 0x8d, 0x79, 0xa0, 0x8b, 0x63, 0xec, 0x65, 0x9e, 0xd7, - 0x77, 0x3c, 0x38, 0x2b, 0x2b, 0x0b, 0xba, 0xba, 0xb4, 0x26, 0x51, 0xa9, 0x1a, 0xed, 0x13, 0x59, - 0x4b, 0x78, 0x78, 0x78, 0x89, 0x85, 0xc9, 0xac, 0xe5, 0xdf, 0x45, 0xc6, 0xa5, 0x93, 0x4a, 0xa5, - 0xfb, 0x27, 0x2a, 0x28, 0x28, 0x84, 0xc1, 0xc1, 0x21, 0x2a, 0xe8, 0x29, 0xdf, 0x17, 0x51, 0x18, - 0x1a, 0xa8, 0xb7, 0xa7, 0x74, 0x68, 0x4c, 0xb9, 0xdd, 0x22, 0x1c, 0x74, 0xb4, 0x8f, 0x46, 0x46, - 0x46, 0x7a, 0xd9, 0x12, 0xa1, 0x50, 0xe8, 0x42, 0x8f, 0xfb, 0x03, 0x44, 0x91, 0x62, 0xcf, 0xfa, - 0x46, 0x0e, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x02, 0x83, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x56, 0xcf, 0x4f, 0x13, + 0x41, 0x14, 0x6e, 0x14, 0x89, 0x47, 0xff, 0x02, 0x25, 0x88, 0xca, 0x5f, 0xd1, 0x34, 0xfd, 0x01, + 0xdd, 0xdd, 0x5a, 0xba, 0xab, 0x4b, 0x90, 0xaa, 0x18, 0x0b, 0xdb, 0x1e, 0x4c, 0x7a, 0x70, 0x31, + 0xfc, 0x17, 0x22, 0x89, 0x86, 0x34, 0x31, 0xe2, 0xc9, 0x44, 0xd2, 0x60, 0x82, 0x29, 0x01, 0x6f, + 0x1e, 0x7b, 0xe5, 0x40, 0x6c, 0xe2, 0xc1, 0xf4, 0x50, 0x3d, 0xb0, 0x26, 0xb8, 0x29, 0x5d, 0x6d, + 0xfb, 0xdc, 0x37, 0xee, 0x4c, 0x76, 0xbb, 0x3f, 0x58, 0x10, 0x98, 0xe4, 0x4b, 0xdf, 0xce, 0x37, + 0xef, 0x7d, 0x7d, 0x6f, 0x67, 0xde, 0x6c, 0x04, 0x00, 0x22, 0xe7, 0x01, 0xc7, 0x83, 0x28, 0xa4, + 0x1a, 0x3c, 0x37, 0xf9, 0x87, 0x62, 0x8a, 0x4f, 0x7d, 0xa3, 0x9c, 0x24, 0x24, 0x77, 0x33, 0xdc, + 0xc4, 0x21, 0x05, 0xae, 0xa5, 0x1c, 0xae, 0xf3, 0xf3, 0xf3, 0x14, 0xc2, 0x45, 0xfa, 0xe2, 0x10, + 0x18, 0xcf, 0x2e, 0x10, 0xa4, 0xd3, 0x69, 0xb0, 0x73, 0x9a, 0x3a, 0x0c, 0xfa, 0xe2, 0x25, 0x02, + 0x3b, 0x87, 0x36, 0xf5, 0x19, 0xf4, 0xf3, 0x15, 0xfa, 0xb0, 0x30, 0x06, 0x8f, 0xee, 0xa6, 0xa1, + 0xaa, 0xdc, 0x74, 0x09, 0x6d, 0x28, 0x37, 0x08, 0xb7, 0xa1, 0x8c, 0xb9, 0x84, 0x70, 0x7d, 0x5e, + 0xe4, 0x60, 0x7d, 0xe1, 0x96, 0xbf, 0x90, 0x24, 0x49, 0xbb, 0x3c, 0xcf, 0x63, 0xda, 0x30, 0x77, + 0x87, 0x83, 0xb7, 0xab, 0x2b, 0x20, 0x4f, 0x71, 0xc4, 0x81, 0xcc, 0x5b, 0xdc, 0xac, 0x19, 0xe8, + 0xcd, 0xab, 0x65, 0xf2, 0x6b, 0xe7, 0xd0, 0xce, 0x4b, 0x1c, 0xbc, 0x7e, 0xf9, 0xdc, 0xc1, 0x65, + 0xb3, 0xd9, 0x56, 0x2c, 0x16, 0xbb, 0xcc, 0x84, 0x32, 0x99, 0xcc, 0xa1, 0xa6, 0x69, 0x70, 0x5b, + 0xe0, 0xa1, 0x56, 0x1c, 0x01, 0x65, 0x7a, 0x12, 0x3e, 0x16, 0xaf, 0x13, 0x07, 0xc3, 0x30, 0x08, + 0x90, 0xdb, 0x54, 0x46, 0x2d, 0x6e, 0xd4, 0xc1, 0xa1, 0xfd, 0xa9, 0x74, 0x15, 0x9e, 0xcc, 0x4c, + 0xc0, 0x76, 0xf1, 0x1a, 0xe3, 0x4c, 0xa1, 0x4e, 0x2e, 0x97, 0xbb, 0xe2, 0x10, 0xd2, 0x75, 0x9d, + 0x04, 0xc3, 0x1a, 0xc3, 0x52, 0x84, 0xc0, 0x2a, 0x01, 0x19, 0x41, 0x1c, 0xb1, 0xad, 0x79, 0x3b, + 0xe7, 0x2b, 0xf4, 0xf8, 0xc1, 0x3d, 0x33, 0x20, 0xc7, 0x70, 0x7f, 0x46, 0x66, 0xc1, 0x82, 0x38, + 0xb4, 0xbd, 0x38, 0x2f, 0xa1, 0x4e, 0xbd, 0x5e, 0x87, 0x5e, 0xaf, 0xc7, 0xca, 0x81, 0xe8, 0x76, + 0xbb, 0x2c, 0x58, 0x10, 0x87, 0xb6, 0x17, 0xe7, 0x12, 0x12, 0x04, 0xc1, 0x28, 0x14, 0x0a, 0x50, + 0xa9, 0x54, 0xe0, 0x34, 0x87, 0x67, 0xe9, 0x9a, 0xcd, 0x26, 0x12, 0xd0, 0x6e, 0xb7, 0x43, 0x05, + 0x29, 0x97, 0xcb, 0x90, 0x48, 0x24, 0x02, 0x11, 0x8d, 0x46, 0x11, 0x9f, 0x1d, 0x42, 0xd5, 0x6a, + 0x15, 0x4a, 0xa5, 0x12, 0xf4, 0xfb, 0xfd, 0x23, 0x45, 0xb0, 0x3c, 0x18, 0x64, 0x7f, 0xff, 0x67, + 0x20, 0xf6, 0xf6, 0xbe, 0x90, 0x75, 0xb8, 0xc5, 0xff, 0x1d, 0x46, 0x9e, 0xff, 0xad, 0xaa, 0x2a, + 0x34, 0x1a, 0x8d, 0x50, 0xd9, 0x50, 0xa1, 0x64, 0x32, 0x19, 0x08, 0x9a, 0x15, 0x13, 0xa2, 0xbb, + 0x2e, 0xec, 0xa0, 0x42, 0xad, 0xd6, 0x0f, 0x57, 0x16, 0xb6, 0x92, 0x31, 0xb8, 0x84, 0xe6, 0xe7, + 0xf2, 0xe4, 0x0c, 0x50, 0x3c, 0x9c, 0x9d, 0x66, 0xc1, 0x91, 0xc3, 0xb3, 0x44, 0x81, 0x01, 0x30, + 0xe8, 0x60, 0x16, 0x83, 0x22, 0x9e, 0x42, 0x47, 0x1d, 0x4a, 0xda, 0x34, 0xb5, 0xa7, 0xc3, 0xa1, + 0xde, 0x11, 0xc2, 0x57, 0xe8, 0xbd, 0xd9, 0x14, 0x07, 0x9a, 0x23, 0x13, 0x5a, 0xb7, 0xb8, 0x77, + 0xf3, 0xe3, 0x9e, 0xff, 0xdc, 0x0f, 0x4c, 0x48, 0x14, 0xc5, 0xaf, 0xe6, 0x59, 0xea, 0x62, 0xe3, + 0xc4, 0x40, 0x6b, 0xab, 0x2f, 0x58, 0x73, 0xc4, 0x79, 0x04, 0xda, 0xac, 0xa9, 0xe6, 0x38, 0x12, + 0xe0, 0xe0, 0x40, 0x67, 0xf0, 0x2b, 0x9b, 0x43, 0x48, 0x96, 0xe5, 0x8b, 0xf8, 0x80, 0x57, 0xc1, + 0x96, 0xd9, 0x14, 0xed, 0xcd, 0x11, 0xe7, 0x11, 0x68, 0x6f, 0x5b, 0xdc, 0xa6, 0x32, 0x72, 0xb2, + 0x8c, 0xec, 0x77, 0x8e, 0xc7, 0x3b, 0x62, 0x77, 0x0e, 0x9d, 0xff, 0xa5, 0x0e, 0xf9, 0xee, 0xba, + 0x50, 0x42, 0x78, 0x05, 0xdb, 0x77, 0x5d, 0x96, 0x4f, 0x7d, 0xa7, 0x1c, 0xda, 0x76, 0xee, 0x44, + 0xbb, 0xee, 0xb8, 0x40, 0x47, 0xbf, 0x8c, 0x28, 0x6a, 0xb5, 0xad, 0xd3, 0x13, 0xf2, 0xca, 0x88, + 0x22, 0x1e, 0x8f, 0xff, 0xbf, 0x10, 0xc2, 0x0c, 0xb0, 0x63, 0xa2, 0x13, 0x02, 0x3b, 0xae, 0x8f, + 0x93, 0x73, 0xfb, 0xae, 0x3b, 0x4b, 0xfc, 0x05, 0x25, 0x52, 0xe7, 0x63, 0x57, 0x67, 0xc5, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE module_filtered_list_xpm[1] = {{ png, sizeof( png ), "module_filtered_list_xpm" }}; diff --git a/bitmaps_png/cpp_26/module_full_list.cpp b/bitmaps_png/cpp_26/module_full_list.cpp index d74072b376..a572a950b8 100644 --- a/bitmaps_png/cpp_26/module_full_list.cpp +++ b/bitmaps_png/cpp_26/module_full_list.cpp @@ -8,64 +8,46 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x03, 0x79, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xad, 0x95, 0x6f, 0x48, 0x13, - 0x61, 0x1c, 0xc7, 0xbd, 0x6b, 0x1b, 0x15, 0xfd, 0xa3, 0x02, 0xb1, 0x14, 0x22, 0x53, 0xcc, 0x68, - 0x62, 0xc5, 0xd6, 0x14, 0xe7, 0x9f, 0x59, 0xba, 0x5a, 0x0e, 0xad, 0x9c, 0xb3, 0xda, 0xa6, 0x95, - 0x4b, 0x72, 0xb5, 0x99, 0x96, 0x65, 0x2d, 0x2b, 0xcd, 0x21, 0x68, 0x56, 0x56, 0x42, 0x58, 0xbd, - 0x28, 0x29, 0x49, 0x28, 0xb0, 0x10, 0xaa, 0x17, 0x41, 0xc4, 0x2a, 0x84, 0x12, 0x2a, 0x5f, 0x54, - 0x82, 0x19, 0x26, 0x44, 0x92, 0x0a, 0x32, 0x21, 0xbf, 0x3d, 0xcf, 0xe5, 0x4d, 0xb7, 0xda, 0x6e, - 0x66, 0x0f, 0x7c, 0xe1, 0xee, 0x73, 0xf7, 0x3c, 0x1f, 0x9e, 0xdf, 0x73, 0xcf, 0x3d, 0x41, 0x00, - 0x82, 0x26, 0x87, 0xb4, 0x85, 0x62, 0xb1, 0x78, 0x3d, 0x1f, 0x72, 0xbf, 0x72, 0x9c, 0xcf, 0x9d, - 0xcc, 0x25, 0x12, 0x89, 0x74, 0x9c, 0x4b, 0x26, 0x73, 0x92, 0x75, 0xde, 0x63, 0x72, 0xef, 0x79, - 0x83, 0xf8, 0x30, 0xf6, 0x9c, 0xd3, 0xc0, 0x80, 0x8f, 0x61, 0x35, 0xdb, 0x49, 0xf9, 0xda, 0x25, - 0xac, 0xe5, 0x61, 0xf6, 0x04, 0xdf, 0xb7, 0x86, 0xfd, 0x48, 0x39, 0x1d, 0xbc, 0x69, 0xf3, 0x04, - 0x2f, 0x91, 0xb3, 0xdf, 0x88, 0x7c, 0x41, 0x40, 0x22, 0x94, 0x91, 0xcb, 0xf1, 0x1c, 0x92, 0x31, - 0x2f, 0x79, 0x51, 0x9f, 0x65, 0x82, 0x57, 0x26, 0x32, 0x6f, 0x79, 0x11, 0x15, 0xf0, 0xfc, 0x72, - 0x3a, 0xd3, 0xe7, 0x53, 0x44, 0x1a, 0x43, 0x32, 0x93, 0x46, 0x11, 0xca, 0x5e, 0x74, 0xee, 0x9d, - 0x03, 0x47, 0xe1, 0x16, 0x5c, 0xda, 0x11, 0x85, 0x62, 0x19, 0xf3, 0x8a, 0xf2, 0xd8, 0x10, 0xb6, - 0xf8, 0x45, 0x9e, 0x08, 0xa7, 0xf2, 0x36, 0xe0, 0xd4, 0x76, 0x29, 0xce, 0x24, 0x32, 0xef, 0x28, - 0x17, 0x89, 0x44, 0xca, 0xc7, 0x7a, 0x06, 0xe5, 0x39, 0x71, 0xb0, 0xe7, 0xc8, 0x71, 0x7e, 0x03, - 0xf3, 0x95, 0xf0, 0x60, 0x7e, 0x3c, 0x12, 0xd6, 0x2d, 0x8a, 0x8c, 0x8c, 0x3c, 0xa6, 0xd3, 0xe9, - 0xbe, 0x14, 0x14, 0x14, 0xf4, 0x68, 0xe2, 0x57, 0x0d, 0xde, 0xd0, 0x2f, 0xc1, 0xd3, 0xfb, 0xb7, - 0x60, 0xdf, 0xa9, 0x84, 0x2d, 0x71, 0xb1, 0x8b, 0x72, 0xad, 0x4a, 0x31, 0x70, 0x47, 0x37, 0x0f, - 0xf7, 0xae, 0x5f, 0xc0, 0x11, 0x83, 0x1a, 0xe5, 0xaa, 0x05, 0xa3, 0x94, 0x67, 0x64, 0x64, 0x7c, - 0x6d, 0xc9, 0x14, 0xa1, 0xde, 0x6e, 0x85, 0xa3, 0x74, 0x0f, 0x4e, 0xa7, 0xcc, 0xfa, 0x69, 0x34, - 0x1a, 0x7b, 0xe9, 0xb3, 0xfc, 0xfc, 0xfc, 0x9e, 0xa8, 0xa8, 0xa8, 0x46, 0xb7, 0x28, 0x3a, 0x3a, - 0xfa, 0x6c, 0x77, 0x77, 0x37, 0x68, 0xab, 0x3f, 0x69, 0xc3, 0x18, 0x29, 0xc1, 0x73, 0x93, 0x18, - 0xdf, 0xad, 0x41, 0xa8, 0xcf, 0x93, 0x73, 0xfc, 0x76, 0xd3, 0x45, 0xd0, 0xd2, 0x75, 0xec, 0x16, - 0xe3, 0x4b, 0x51, 0x10, 0x1a, 0x8d, 0xab, 0x38, 0xee, 0x74, 0x3a, 0xb9, 0xb5, 0x79, 0x6f, 0x16, - 0xe1, 0x43, 0x21, 0x8b, 0x1b, 0xfa, 0x10, 0x0c, 0x0c, 0x0c, 0x70, 0xcf, 0x46, 0x46, 0x46, 0x20, - 0x95, 0x4a, 0x9b, 0x7d, 0x8a, 0x26, 0xaf, 0x91, 0xb7, 0x88, 0xe7, 0xde, 0x22, 0x9e, 0x07, 0x2c, - 0x7a, 0xf6, 0xa8, 0x0d, 0xf5, 0x25, 0xb9, 0xee, 0x5c, 0xa9, 0x2c, 0xe1, 0x78, 0x67, 0x87, 0x13, - 0xb5, 0x36, 0xbd, 0x9b, 0xd7, 0x1e, 0x35, 0x73, 0xbc, 0xb7, 0xb7, 0x17, 0x0e, 0x4b, 0xb6, 0x9b, - 0x57, 0x1d, 0xdc, 0x09, 0x97, 0xcb, 0xf5, 0x77, 0x51, 0x44, 0x44, 0xc4, 0xb9, 0xba, 0xba, 0x3a, - 0x0c, 0x0d, 0x0d, 0xc1, 0x5f, 0x1b, 0x1e, 0x1e, 0x46, 0x43, 0x43, 0x03, 0x2a, 0x2a, 0x2a, 0x02, - 0x4a, 0x55, 0x55, 0x15, 0x62, 0x63, 0x63, 0x1f, 0x78, 0xcc, 0xa8, 0xb5, 0xb5, 0x15, 0x64, 0x11, - 0xfd, 0x8a, 0xda, 0xda, 0xda, 0xa0, 0x54, 0x2a, 0xa1, 0xd5, 0x6a, 0x61, 0xb3, 0xd9, 0x04, 0xa3, - 0xd1, 0x68, 0xa0, 0x50, 0x28, 0xba, 0xff, 0x28, 0x5d, 0x4d, 0x4d, 0x0d, 0xba, 0xba, 0xba, 0x7c, - 0x8a, 0x5a, 0x5a, 0x5a, 0x38, 0xd1, 0xf1, 0xe3, 0x27, 0x30, 0x38, 0x38, 0x2c, 0x18, 0x2a, 0x8b, - 0x8b, 0x8b, 0xfb, 0xec, 0x21, 0x6a, 0x6f, 0x6f, 0x47, 0x6e, 0x6e, 0xae, 0xdf, 0x19, 0xf1, 0xa2, - 0x94, 0x94, 0x14, 0xa8, 0xd5, 0x6a, 0xc1, 0x24, 0x27, 0x27, 0x7b, 0x8a, 0xc8, 0x3e, 0xaa, 0xb5, - 0xdb, 0xed, 0xe8, 0xef, 0xef, 0x0f, 0x48, 0x44, 0x07, 0x31, 0x99, 0x4c, 0x82, 0x49, 0x4b, 0x4b, - 0xfb, 0x73, 0x46, 0xfc, 0x57, 0x37, 0x36, 0x36, 0xc6, 0x7d, 0x2d, 0x7c, 0x46, 0x47, 0x47, 0xdd, - 0xbc, 0xb9, 0xb9, 0x79, 0xfa, 0xa5, 0xe3, 0x45, 0x97, 0xaa, 0xcb, 0xd1, 0xa8, 0x0b, 0x73, 0xa7, - 0x48, 0x2b, 0xe3, 0x78, 0xeb, 0xcd, 0xab, 0x28, 0x4c, 0x8f, 0xfe, 0x7f, 0x33, 0xf2, 0xb7, 0x61, - 0x9b, 0x72, 0x96, 0x4e, 0x6f, 0x8d, 0xbc, 0x45, 0x1f, 0xf7, 0x4b, 0xe0, 0xd8, 0x25, 0xc7, 0x5d, - 0x53, 0xa8, 0x87, 0xa8, 0x61, 0xdb, 0xd2, 0xe9, 0x95, 0x2e, 0x3c, 0x3c, 0x3c, 0x3d, 0x26, 0x26, - 0xe6, 0x09, 0xd9, 0x5c, 0x8f, 0x65, 0x2b, 0x16, 0xf5, 0x5c, 0xce, 0x0e, 0xc3, 0xb7, 0x0f, 0xaf, - 0x51, 0xb9, 0x57, 0x8d, 0x7d, 0xb2, 0xd9, 0x3f, 0x28, 0x5f, 0x13, 0x19, 0xd2, 0x55, 0xba, 0x69, - 0x05, 0x27, 0xca, 0xcc, 0xcc, 0xc4, 0xe1, 0xc3, 0x47, 0x04, 0x43, 0x7e, 0xb8, 0x54, 0xd4, 0xe1, - 0xf3, 0x3c, 0x1a, 0x2a, 0x26, 0xff, 0xb2, 0xec, 0x50, 0xbc, 0x36, 0xcf, 0xf2, 0x38, 0x8f, 0xae, - 0xea, 0x7e, 0xcf, 0x68, 0x8a, 0xb9, 0x37, 0xe5, 0x83, 0x8f, 0x5f, 0xa3, 0xb2, 0xb2, 0xa3, 0xe8, - 0xeb, 0xeb, 0x17, 0x8c, 0xc5, 0x72, 0xc0, 0xb7, 0x48, 0x1e, 0x3a, 0xa3, 0xa0, 0x68, 0x1d, 0xf3, - 0x94, 0xcf, 0xc6, 0xe5, 0xcc, 0x5d, 0xca, 0x63, 0x82, 0x67, 0x68, 0xb2, 0xe4, 0xcb, 0x3e, 0x51, - 0x11, 0x39, 0xbb, 0x50, 0x5d, 0xed, 0x10, 0x4c, 0x56, 0xd6, 0x56, 0xdf, 0x22, 0x7f, 0x49, 0x48, - 0x48, 0xb0, 0xfe, 0xb7, 0xd2, 0x05, 0x22, 0xb2, 0x5a, 0x6d, 0x78, 0xf3, 0xa6, 0x53, 0x30, 0x66, - 0xb3, 0x79, 0x7a, 0x22, 0x83, 0xc1, 0x88, 0x6b, 0xd7, 0xae, 0x0b, 0x46, 0xaf, 0xd7, 0xff, 0xb3, - 0x28, 0x9e, 0x74, 0x74, 0x4d, 0xa5, 0x74, 0xa4, 0x4f, 0xe9, 0x94, 0x45, 0x34, 0xa9, 0xa9, 0xa9, - 0xf3, 0x93, 0x92, 0x92, 0x96, 0x05, 0x12, 0x95, 0x4a, 0x15, 0xcc, 0xf7, 0xfb, 0x05, 0x1b, 0x4e, - 0x78, 0xb6, 0xc1, 0xf0, 0x8c, 0xae, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, - 0x60, 0x82, + 0xce, 0x00, 0x00, 0x02, 0x63, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x56, 0xcf, 0x6b, 0x13, + 0x41, 0x14, 0x0e, 0x5a, 0x8b, 0x47, 0xff, 0x02, 0x2d, 0xb5, 0x6a, 0xff, 0x8a, 0x10, 0x48, 0xd2, + 0x66, 0x67, 0x63, 0x9a, 0x5d, 0xdd, 0x52, 0x1b, 0xb5, 0x62, 0xda, 0x4d, 0x0e, 0x42, 0x0e, 0x6e, + 0xc5, 0xff, 0xa2, 0x5a, 0x50, 0x4a, 0x40, 0xd4, 0x53, 0xc1, 0x12, 0x2a, 0x54, 0x94, 0xd6, 0x9b, + 0xc7, 0x5c, 0x7b, 0x0b, 0x78, 0x90, 0x1c, 0xa2, 0x87, 0xae, 0x50, 0x97, 0x34, 0xab, 0x49, 0x9e, + 0xfb, 0xc6, 0x9d, 0x71, 0xb6, 0xd9, 0x6c, 0x97, 0xed, 0x8f, 0x81, 0x8f, 0x7d, 0x3b, 0xdf, 0xbc, + 0xf7, 0xf1, 0xe6, 0xc7, 0x9b, 0x89, 0x01, 0x40, 0xec, 0x2c, 0xe0, 0xf9, 0x51, 0xe4, 0x74, 0x83, + 0x48, 0xd3, 0x7f, 0x18, 0x66, 0x48, 0xfa, 0x1b, 0xe3, 0x54, 0x39, 0xb5, 0x9b, 0x95, 0xa6, 0x0e, + 0x18, 0x70, 0x2c, 0xe3, 0x70, 0xdc, 0x30, 0x3f, 0x5f, 0x21, 0x1c, 0x64, 0x2d, 0x8f, 0x80, 0xfd, + 0xe4, 0x1c, 0x45, 0x26, 0x93, 0x01, 0x91, 0x33, 0x8d, 0x51, 0xb0, 0x96, 0x2f, 0x50, 0x88, 0x1c, + 0xda, 0xcc, 0xe7, 0xb0, 0xdf, 0x50, 0xa1, 0xf7, 0x4b, 0x13, 0xf0, 0xe0, 0x76, 0x06, 0x6a, 0xfa, + 0xf5, 0x01, 0xa1, 0x4d, 0xfd, 0x1a, 0xe5, 0x36, 0xf5, 0x89, 0x01, 0x21, 0x1c, 0x5f, 0x50, 0x24, + 0xd8, 0x58, 0xba, 0x31, 0x5c, 0x48, 0x55, 0xd5, 0x5d, 0x42, 0x08, 0xa6, 0x0d, 0x0b, 0xb7, 0x24, + 0x78, 0xbb, 0xb6, 0x0a, 0xda, 0x8c, 0x44, 0x1d, 0x68, 0xbf, 0xcb, 0xcd, 0x3b, 0x81, 0x5e, 0xbf, + 0x7c, 0x46, 0xbf, 0x22, 0x87, 0x76, 0x41, 0x95, 0xe0, 0xd5, 0x8b, 0x15, 0x0f, 0x97, 0xcb, 0xe5, + 0x5a, 0x89, 0x44, 0xe2, 0x22, 0x17, 0xca, 0x66, 0xb3, 0x07, 0xa6, 0x69, 0xc2, 0x4d, 0x99, 0xc0, + 0xc7, 0xd2, 0x18, 0xe8, 0xb3, 0xd3, 0xf0, 0xa1, 0x74, 0x95, 0x3a, 0xd8, 0xb6, 0x4d, 0x81, 0xdc, + 0x96, 0x3e, 0xee, 0x72, 0xe3, 0x1e, 0x0e, 0xed, 0xcf, 0xe5, 0xcb, 0xf0, 0x68, 0x6e, 0x0a, 0xb6, + 0x4b, 0x57, 0x38, 0xe7, 0x08, 0x75, 0xf2, 0xf9, 0xfc, 0x25, 0x8f, 0x90, 0x65, 0x59, 0x34, 0x18, + 0xce, 0x31, 0x3c, 0x8d, 0x51, 0xb8, 0x53, 0x40, 0x5b, 0x10, 0x47, 0x6d, 0xb7, 0x5f, 0xe4, 0x86, + 0x0a, 0x3d, 0xbc, 0x77, 0xc7, 0x09, 0x28, 0x71, 0xdc, 0x9d, 0xd3, 0x78, 0xb0, 0x20, 0x0e, 0x6d, + 0x3f, 0xce, 0x4f, 0xa8, 0x53, 0xaf, 0xd7, 0xa1, 0xd7, 0xeb, 0xf1, 0xe9, 0x40, 0x74, 0xbb, 0x5d, + 0x1e, 0x2c, 0x88, 0x43, 0xdb, 0x8f, 0x1b, 0x10, 0x92, 0x65, 0xd9, 0x2e, 0x16, 0x8b, 0x50, 0xad, + 0x56, 0xe1, 0x24, 0x9b, 0xef, 0xd4, 0x35, 0x9b, 0x4d, 0x24, 0xa0, 0xdd, 0x6e, 0x87, 0x0a, 0x52, + 0xa9, 0x54, 0x20, 0x99, 0x4c, 0x06, 0x22, 0x1e, 0x8f, 0x23, 0xbe, 0x78, 0x84, 0x6a, 0xb5, 0x1a, + 0x94, 0xcb, 0x65, 0xe8, 0xf7, 0xfb, 0x47, 0x8a, 0xe0, 0xf4, 0x60, 0x90, 0xbd, 0xbd, 0x9f, 0xb0, + 0xbf, 0x6f, 0x05, 0x02, 0xc7, 0xe1, 0x16, 0xff, 0x77, 0x18, 0x09, 0xf9, 0x6d, 0x18, 0x06, 0x34, + 0x1a, 0x8d, 0x50, 0xd9, 0x30, 0xa1, 0xb0, 0xe0, 0x42, 0x6c, 0xd7, 0x85, 0x6d, 0x91, 0x33, 0x62, + 0x42, 0x8b, 0x0b, 0x05, 0x7a, 0x06, 0x18, 0xee, 0xcf, 0xcf, 0xf2, 0xe0, 0xc8, 0xe1, 0x59, 0x62, + 0x38, 0x56, 0x46, 0x47, 0x1d, 0x4a, 0x56, 0x34, 0xcd, 0xc7, 0xa3, 0x34, 0x40, 0xab, 0xf5, 0x83, + 0x66, 0x15, 0x04, 0xdc, 0x14, 0xbe, 0x42, 0xef, 0x9c, 0xa2, 0x78, 0xa8, 0x38, 0x72, 0xa1, 0x0d, + 0x97, 0x5b, 0x5f, 0x9c, 0x8c, 0x96, 0x91, 0xa2, 0x28, 0x5f, 0x9d, 0xb3, 0xd4, 0xc5, 0xc2, 0x89, + 0x81, 0xde, 0xac, 0x3d, 0xe7, 0xc5, 0x11, 0xfb, 0x11, 0x68, 0xf3, 0xa2, 0x9a, 0x97, 0x42, 0xaf, + 0x51, 0x2a, 0x95, 0xfa, 0x2f, 0xa4, 0x69, 0xda, 0x79, 0xfc, 0xc1, 0xab, 0xe0, 0x93, 0x53, 0x14, + 0xc5, 0xe2, 0x88, 0xfd, 0x08, 0xb4, 0xb7, 0x5d, 0x6e, 0x4b, 0x1f, 0x8b, 0x96, 0x91, 0x78, 0xe7, + 0xf8, 0xac, 0x11, 0xbf, 0x73, 0x58, 0xff, 0x2f, 0x63, 0x24, 0xda, 0xae, 0x13, 0xaf, 0x64, 0x71, + 0xd7, 0xe5, 0x48, 0xfa, 0x3b, 0xe3, 0xd0, 0x16, 0xb9, 0x63, 0x65, 0x14, 0x16, 0xe8, 0x18, 0x69, + 0x8d, 0xa2, 0x0a, 0x9d, 0x7a, 0x46, 0x08, 0x27, 0xc0, 0x8e, 0x83, 0x4e, 0x08, 0xec, 0x0c, 0x3c, + 0x4e, 0xce, 0xec, 0x5d, 0x77, 0x9a, 0xf8, 0x0b, 0xc3, 0x10, 0x07, 0xc8, 0xe2, 0xa0, 0x96, 0x6a, + 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE module_full_list_xpm[1] = {{ png, sizeof( png ), "module_full_list_xpm" }}; diff --git a/bitmaps_png/cpp_26/module_pin_filtered_list.cpp b/bitmaps_png/cpp_26/module_pin_filtered_list.cpp index dcafbab9b2..b2784c5ea7 100644 --- a/bitmaps_png/cpp_26/module_pin_filtered_list.cpp +++ b/bitmaps_png/cpp_26/module_pin_filtered_list.cpp @@ -8,88 +8,55 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x00, 0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64, - 0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x07, 0x7f, 0x00, 0x00, 0x07, - 0x7f, 0x01, 0x78, 0x5e, 0xe4, 0x82, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, - 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63, - 0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, 0x00, 0x04, 0xb2, 0x49, - 0x44, 0x41, 0x54, 0x48, 0x89, 0xcd, 0x94, 0x7f, 0x4c, 0xd4, 0x65, 0x1c, 0xc7, 0x5f, 0xcf, 0xdd, - 0xf7, 0x7b, 0x77, 0xf1, 0x63, 0xa0, 0x70, 0xa8, 0x0c, 0x54, 0x14, 0x0f, 0x06, 0x83, 0xe2, 0xb4, - 0xdc, 0x95, 0x73, 0x3a, 0xb5, 0xb5, 0x65, 0x1b, 0x6b, 0xcb, 0xa9, 0xad, 0x04, 0x4d, 0x8c, 0xc2, - 0x8d, 0xfe, 0xcb, 0x96, 0xeb, 0x8f, 0x36, 0x37, 0xff, 0x68, 0x68, 0xad, 0x52, 0x37, 0x37, 0x56, - 0xce, 0x35, 0xa5, 0x55, 0x5b, 0x5a, 0x6d, 0xb4, 0xc0, 0x10, 0x31, 0xbb, 0x8b, 0x38, 0x9d, 0x1e, - 0x72, 0x62, 0x8a, 0xc0, 0x09, 0x8a, 0x28, 0xdc, 0x71, 0xf0, 0xc5, 0x4f, 0x7f, 0x70, 0x87, 0x87, - 0x82, 0xc2, 0xd6, 0x1f, 0xbd, 0xff, 0x7a, 0xde, 0xef, 0xe7, 0xf3, 0x79, 0xde, 0xcf, 0xf3, 0x7e, - 0xbe, 0xdf, 0x47, 0x89, 0x08, 0xb1, 0x50, 0x4a, 0xcd, 0xd6, 0x75, 0xdd, 0x11, 0xe5, 0x23, 0x23, - 0x23, 0xfd, 0x22, 0x72, 0x51, 0x29, 0x95, 0xa8, 0xeb, 0x7a, 0x7e, 0x4c, 0x5d, 0x30, 0x1c, 0x0e, - 0xb7, 0x28, 0xa5, 0x2c, 0xba, 0xae, 0x3b, 0x63, 0x96, 0x30, 0x86, 0x87, 0x87, 0xff, 0xe4, 0x21, - 0x68, 0x0f, 0x0b, 0x2f, 0x64, 0x9a, 0x76, 0x7f, 0xb2, 0xda, 0xa8, 0x8c, 0xf2, 0x2f, 0xfe, 0x32, - 0x79, 0x81, 0xc2, 0xa5, 0xe9, 0xa6, 0x92, 0x8f, 0x57, 0x18, 0x9f, 0xce, 0xb6, 0x8d, 0xe9, 0xd5, - 0xe7, 0xd5, 0x15, 0x60, 0xb1, 0xae, 0xeb, 0xce, 0x03, 0x2f, 0x1a, 0x67, 0xf2, 0x53, 0xc6, 0xf4, - 0x1a, 0x9f, 0xba, 0xa5, 0x94, 0xca, 0x16, 0x91, 0x3b, 0x8f, 0x35, 0x02, 0x58, 0x9e, 0xfe, 0xe0, - 0x94, 0xc7, 0x2f, 0x31, 0x14, 0x1d, 0x17, 0xcd, 0x11, 0xe6, 0xc6, 0x8f, 0x8d, 0x6b, 0xff, 0x79, - 0xa0, 0xe7, 0xa7, 0x3c, 0xe8, 0xf1, 0xdc, 0x64, 0x64, 0xb2, 0x35, 0xb5, 0x48, 0x0c, 0x0a, 0xb0, - 0x02, 0xb8, 0x32, 0x4c, 0xda, 0xd9, 0x5b, 0x09, 0xd4, 0x69, 0xab, 0x49, 0xbc, 0x7b, 0x19, 0xc1, - 0xa7, 0x94, 0x52, 0xb6, 0xa2, 0x79, 0x26, 0xfd, 0xda, 0x80, 0xc6, 0xa1, 0x81, 0xd5, 0x30, 0x10, - 0xc0, 0x84, 0x57, 0x29, 0xa5, 0x6c, 0x9a, 0xa6, 0x59, 0x06, 0x46, 0xe0, 0xc3, 0xab, 0xcf, 0x63, - 0x66, 0x94, 0x94, 0xd1, 0x3f, 0x14, 0x60, 0x55, 0x4a, 0x45, 0xce, 0xce, 0xb0, 0x88, 0xdc, 0xd7, - 0x00, 0x1c, 0x0e, 0xc7, 0xae, 0xa2, 0xa2, 0xa2, 0x77, 0x93, 0x92, 0x92, 0x46, 0x3b, 0x2f, 0x9c, - 0x4e, 0xbe, 0x34, 0xd0, 0x87, 0x6b, 0xe3, 0x46, 0x7e, 0x3d, 0x7e, 0x10, 0x79, 0xaa, 0xb7, 0xb0, - 0xac, 0xec, 0xd5, 0xd6, 0x80, 0xdf, 0x9b, 0x78, 0x35, 0x78, 0x81, 0xa7, 0x5f, 0x7a, 0x85, 0x33, - 0xbf, 0xfd, 0x84, 0xa6, 0x5d, 0xcb, 0x2e, 0x2b, 0xdb, 0xd0, 0xda, 0xdd, 0xdd, 0x6d, 0xb9, 0x3d, - 0x74, 0x12, 0x7b, 0xc1, 0x73, 0x0c, 0x85, 0x06, 0xe8, 0xbf, 0xd9, 0x62, 0xdf, 0xb2, 0x65, 0x83, - 0xdb, 0x6a, 0xb5, 0xde, 0x37, 0x0c, 0x83, 0xc6, 0xc6, 0xc6, 0x93, 0xc0, 0xdb, 0x88, 0x08, 0x79, - 0x79, 0x79, 0x7b, 0xda, 0xdb, 0xdb, 0x45, 0x44, 0x64, 0xdf, 0x47, 0xef, 0xc9, 0xfd, 0xf7, 0x91, - 0xc6, 0x12, 0x5d, 0x6e, 0x57, 0x22, 0xfb, 0x4a, 0x97, 0x8b, 0x88, 0xc8, 0x37, 0x87, 0x3f, 0x93, - 0xae, 0x9d, 0x88, 0x7b, 0x9b, 0x2e, 0x37, 0x2a, 0x90, 0x03, 0x5b, 0xf2, 0x45, 0x44, 0xa4, 0xa9, - 0xa9, 0x49, 0x9a, 0xde, 0x54, 0x72, 0x71, 0x87, 0x26, 0x6d, 0xe5, 0x26, 0xa9, 0xde, 0x34, 0x4f, - 0xfa, 0xfa, 0xfa, 0x44, 0x44, 0x24, 0x14, 0x0a, 0x49, 0x61, 0x61, 0xe1, 0x51, 0x11, 0x99, 0xfc, - 0x8e, 0x14, 0xe0, 0x9a, 0x1b, 0x89, 0xba, 0x7f, 0xe2, 0x9c, 0xd3, 0x1e, 0xd1, 0xef, 0x4d, 0xd4, - 0x73, 0x67, 0x19, 0x00, 0x34, 0xdc, 0x61, 0x52, 0x3c, 0x62, 0xb4, 0x6c, 0xc5, 0x1a, 0xf6, 0xff, - 0x12, 0x18, 0xe7, 0xd6, 0xc5, 0xe9, 0x00, 0xe4, 0x3d, 0xf3, 0x2c, 0x47, 0xcf, 0x6f, 0xc2, 0x6c, - 0x28, 0x00, 0x46, 0xd3, 0x13, 0x01, 0xc8, 0xc8, 0xc8, 0xe0, 0x48, 0xd2, 0x6b, 0x34, 0x19, 0x63, - 0x4b, 0x0d, 0xa6, 0x99, 0x88, 0x8b, 0x8b, 0x7b, 0x74, 0xf3, 0x22, 0x82, 0xc3, 0xe1, 0xa8, 0x2a, - 0x2f, 0x2f, 0xaf, 0xdc, 0xbe, 0x7d, 0x3b, 0x09, 0x09, 0x09, 0x93, 0x6f, 0x09, 0x18, 0x1c, 0x1c, - 0xa4, 0xba, 0xba, 0x9a, 0xde, 0xde, 0xde, 0x29, 0x6b, 0x62, 0xa1, 0xeb, 0x3a, 0x35, 0x35, 0x35, - 0x27, 0x3d, 0x1e, 0xcf, 0xcb, 0x5a, 0x44, 0x08, 0x2d, 0x58, 0xb0, 0x80, 0x8a, 0x8a, 0x0a, 0xaa, - 0xab, 0xab, 0xa7, 0x6c, 0xac, 0xab, 0xab, 0xe3, 0xd8, 0xb1, 0x63, 0xd3, 0x32, 0x89, 0xc2, 0x66, - 0xb3, 0xe5, 0x01, 0x98, 0xa2, 0x82, 0xd3, 0xe9, 0x24, 0x3f, 0x3f, 0x1f, 0x9f, 0xcf, 0x37, 0x65, - 0x53, 0x30, 0x18, 0x9c, 0x91, 0x09, 0x80, 0x52, 0x4a, 0x9b, 0x60, 0xe4, 0xf3, 0xf9, 0x68, 0x6e, - 0x6e, 0x26, 0x27, 0x27, 0x67, 0xc6, 0x8b, 0x4d, 0x07, 0x26, 0x00, 0xc3, 0x30, 0xac, 0x8d, 0x8d, - 0x8d, 0x54, 0x55, 0x55, 0xcd, 0xa8, 0x79, 0xfe, 0xfc, 0xf9, 0x6c, 0xde, 0xfc, 0xfa, 0x38, 0xdf, - 0xba, 0x75, 0x1b, 0x76, 0xbb, 0x7d, 0xd2, 0x5a, 0x0d, 0x40, 0xd3, 0xb4, 0x70, 0x69, 0x69, 0x29, - 0x69, 0x69, 0x69, 0x88, 0x08, 0xe1, 0x70, 0x78, 0xbc, 0xc0, 0x6c, 0x36, 0xa3, 0xeb, 0x3a, 0x22, - 0x82, 0x61, 0x18, 0x13, 0x9a, 0xed, 0x76, 0x3b, 0x56, 0xab, 0x75, 0x9c, 0x3b, 0x1c, 0x0e, 0x42, - 0xa1, 0xd0, 0xd4, 0x46, 0xb1, 0xf8, 0x72, 0xef, 0x6e, 0xcc, 0xcd, 0x5f, 0x8d, 0xf3, 0xf3, 0x43, - 0xf3, 0xf8, 0xec, 0xfb, 0xb3, 0x7c, 0x77, 0xf4, 0x30, 0xbf, 0x1f, 0xa9, 0x02, 0x52, 0x49, 0x4e, - 0x4e, 0x26, 0x33, 0x73, 0x3e, 0x05, 0x05, 0x85, 0xd8, 0x6c, 0x36, 0x0a, 0x0a, 0x0a, 0x01, 0x48, - 0x4d, 0x4d, 0x25, 0x2b, 0x6b, 0x11, 0xc1, 0x60, 0x10, 0xbf, 0xbf, 0xed, 0xf1, 0x46, 0x23, 0x43, - 0x41, 0xde, 0xc9, 0xba, 0x3e, 0xce, 0xf7, 0x07, 0xc6, 0xfe, 0xa3, 0x91, 0xf0, 0x10, 0xcb, 0x92, - 0xfb, 0xb9, 0x10, 0x4c, 0x25, 0x25, 0x25, 0x05, 0x97, 0xcb, 0xc5, 0x92, 0x25, 0x4b, 0x08, 0x06, - 0x43, 0xb8, 0x5c, 0x2e, 0x00, 0xe2, 0xe2, 0xe2, 0x71, 0xb9, 0x5c, 0x04, 0x02, 0x81, 0x27, 0x1b, - 0x01, 0x5c, 0xb9, 0x67, 0xe1, 0xf8, 0xdd, 0x22, 0xb2, 0xcd, 0x37, 0xc6, 0x9e, 0x89, 0x08, 0x42, - 0x91, 0xe4, 0xfc, 0x7e, 0x3f, 0x7e, 0xbf, 0x9f, 0xb2, 0xb2, 0x1d, 0x34, 0x35, 0x9d, 0xa1, 0xa5, - 0xa5, 0x05, 0x8b, 0xc5, 0x42, 0x6e, 0x6e, 0x2e, 0x87, 0x0e, 0x1d, 0x9c, 0x3a, 0xba, 0x70, 0x38, - 0x7c, 0xaa, 0xb8, 0xb8, 0x78, 0xb9, 0xc9, 0x64, 0x12, 0xfd, 0xde, 0x35, 0x87, 0xc5, 0x39, 0x27, - 0xf3, 0xad, 0x3d, 0x07, 0x39, 0xb0, 0x77, 0x17, 0x1d, 0x7f, 0xd7, 0xdf, 0x75, 0x3a, 0x9d, 0xe7, - 0xd4, 0x60, 0x77, 0xc6, 0x9a, 0xec, 0xf8, 0x1c, 0x80, 0x85, 0x0b, 0xb3, 0x58, 0xb5, 0x6a, 0x15, - 0x45, 0x45, 0x4e, 0x6c, 0x36, 0x1b, 0x4e, 0xe7, 0x52, 0xe2, 0xe3, 0xe3, 0x49, 0x48, 0x48, 0xa4, - 0xa4, 0xa4, 0x94, 0x9e, 0x9e, 0x1e, 0x4e, 0x9c, 0xf8, 0x31, 0xea, 0x71, 0x13, 0x22, 0x5f, 0x5d, - 0x5b, 0x5b, 0xdb, 0xcf, 0xcd, 0xcd, 0xcd, 0x6b, 0x3c, 0x1e, 0xcf, 0x5a, 0x3d, 0xdc, 0xf7, 0xed, - 0x1b, 0x19, 0xd7, 0xa9, 0xf9, 0x60, 0x3d, 0xeb, 0x4d, 0x75, 0xc4, 0x13, 0xf2, 0x79, 0x3c, 0x9e, - 0xb5, 0x6a, 0x20, 0xf0, 0xb9, 0x23, 0x71, 0xec, 0xa2, 0xfb, 0xfb, 0xef, 0xe0, 0xf5, 0xb6, 0x30, - 0x3a, 0x3a, 0x8a, 0xc7, 0xe3, 0xc6, 0xeb, 0x6d, 0xa1, 0xa3, 0xa3, 0x83, 0xce, 0xce, 0x4e, 0xbc, - 0xde, 0x96, 0x09, 0xb1, 0x69, 0x9a, 0x76, 0x7d, 0xca, 0xe8, 0x12, 0x2c, 0xb0, 0x63, 0x51, 0x07, - 0x00, 0x5f, 0xc7, 0x64, 0x67, 0x8a, 0x0c, 0xfb, 0xfa, 0xfa, 0x70, 0xbb, 0xdd, 0x94, 0x96, 0x6e, - 0xa5, 0xa1, 0xa1, 0x01, 0x00, 0x5d, 0xb7, 0x70, 0xf9, 0x72, 0x2b, 0x6e, 0xb7, 0x7b, 0xea, 0xe8, - 0x62, 0x61, 0x88, 0xba, 0xb8, 0xb3, 0x56, 0x9d, 0x8a, 0xf2, 0xd6, 0xdb, 0xf4, 0x00, 0x18, 0xa3, - 0xaa, 0xfd, 0x44, 0xbb, 0xde, 0x8e, 0x95, 0xac, 0xe8, 0x5c, 0x4f, 0x4f, 0x4f, 0xec, 0xce, 0xe9, - 0xea, 0xea, 0x9a, 0xd4, 0x04, 0x22, 0x8f, 0xea, 0x74, 0xb1, 0x72, 0xe5, 0xca, 0x4a, 0xa5, 0xd4, - 0xcc, 0xfe, 0x6a, 0xf8, 0xa1, 0xbe, 0xbe, 0xbe, 0xd8, 0xf4, 0xe4, 0xba, 0xff, 0x06, 0xff, 0x5b, - 0xa3, 0x73, 0xc0, 0xf0, 0x4c, 0x1a, 0x44, 0xe4, 0x34, 0xcc, 0xf0, 0x8e, 0x00, 0xd6, 0xad, 0x5b, - 0x97, 0x64, 0x18, 0xc6, 0xac, 0xe9, 0xd4, 0x9a, 0xcd, 0xe6, 0x50, 0x6d, 0x6d, 0x6d, 0x00, 0xe0, - 0x5f, 0x6d, 0xdb, 0xe2, 0x7f, 0x13, 0xa4, 0x85, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, - 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x02, 0xf2, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x56, 0x4d, 0x4f, 0x1a, + 0x51, 0x14, 0x35, 0xad, 0x35, 0x5d, 0xf6, 0x17, 0xb4, 0xc6, 0xda, 0x8f, 0x5f, 0x81, 0x44, 0x40, + 0x99, 0x81, 0x22, 0xd0, 0x62, 0x44, 0xda, 0xd2, 0x20, 0x20, 0xd1, 0x46, 0x43, 0xc4, 0xa6, 0xff, + 0x80, 0xc4, 0x85, 0xfd, 0x88, 0x6d, 0x8c, 0x49, 0xd3, 0x36, 0x2e, 0x1a, 0x6b, 0x88, 0x24, 0x36, + 0x6d, 0xb4, 0xb8, 0xa0, 0x2b, 0x62, 0x58, 0xe9, 0xc6, 0xa0, 0x15, 0x1b, 0x16, 0x65, 0x61, 0x48, + 0x4c, 0x89, 0xf2, 0xa5, 0xb7, 0x73, 0x6f, 0xe7, 0x4d, 0x06, 0x19, 0x06, 0x6a, 0x5a, 0x27, 0x39, + 0xe1, 0xcc, 0x3b, 0xef, 0x9d, 0x93, 0x79, 0xdc, 0x77, 0x67, 0x5a, 0x00, 0xa0, 0xe5, 0x3c, 0x50, + 0x75, 0x63, 0x33, 0x19, 0x52, 0x3c, 0xd7, 0x5b, 0x66, 0xe8, 0xe3, 0x0d, 0x3f, 0x98, 0x66, 0x37, + 0xe9, 0x37, 0xcd, 0x5c, 0xcf, 0x11, 0x03, 0xce, 0x65, 0x1a, 0xce, 0xab, 0xb7, 0x4e, 0x31, 0x08, + 0x27, 0xe5, 0x27, 0x5b, 0xa1, 0xf8, 0xe4, 0x02, 0xc1, 0x68, 0x34, 0x82, 0x5c, 0xcb, 0x85, 0xda, + 0x20, 0x3f, 0x79, 0x89, 0x20, 0xd7, 0x90, 0xb3, 0x35, 0xa7, 0xd7, 0xd5, 0x0d, 0x8a, 0xfa, 0x3a, + 0xe1, 0xd1, 0x3d, 0x23, 0x44, 0xfc, 0x37, 0x6b, 0x82, 0x96, 0xfc, 0x37, 0x48, 0x5b, 0xf2, 0x77, + 0xd6, 0x04, 0xe1, 0x7c, 0x97, 0x8d, 0x83, 0x45, 0xdf, 0xad, 0xfa, 0x41, 0x76, 0xbb, 0x7d, 0x93, + 0xe7, 0x79, 0x7c, 0x6c, 0x70, 0xdf, 0xe5, 0xe0, 0xfd, 0xec, 0x4b, 0x70, 0xf4, 0x71, 0xb4, 0x80, + 0xc6, 0x45, 0x6d, 0x50, 0x30, 0x7a, 0xfb, 0xfa, 0x39, 0xfd, 0xca, 0x35, 0xe4, 0x2e, 0x3b, 0x07, + 0x6f, 0x5e, 0x3d, 0xab, 0xd2, 0x2c, 0x16, 0xcb, 0x4f, 0xad, 0x56, 0x7b, 0x59, 0x0a, 0x32, 0x9b, + 0xcd, 0x47, 0xb9, 0x5c, 0x0e, 0xee, 0x98, 0x78, 0xf8, 0x3c, 0xdc, 0x0e, 0xfe, 0xfe, 0x5e, 0xf8, + 0x34, 0x7c, 0x9d, 0x16, 0x14, 0x8b, 0x45, 0x02, 0x6a, 0xcb, 0xfe, 0x0e, 0x51, 0xeb, 0xa8, 0xd2, + 0x90, 0x7f, 0x0d, 0x5c, 0x85, 0xc7, 0x03, 0x3d, 0xb0, 0x32, 0x7c, 0x4d, 0xd2, 0x84, 0xa0, 0x82, + 0xd5, 0x6a, 0xbd, 0x52, 0x15, 0x94, 0xcf, 0xe7, 0xc9, 0x0c, 0xf7, 0x18, 0x9e, 0xb6, 0x10, 0xc4, + 0x2d, 0xa0, 0x4b, 0x4d, 0x23, 0x2e, 0x8e, 0xcb, 0xb5, 0xba, 0x41, 0x9e, 0x07, 0x4e, 0xc1, 0x90, + 0x93, 0x70, 0x7f, 0xc0, 0x21, 0x99, 0xa9, 0x69, 0xc8, 0x95, 0x34, 0xa5, 0xa0, 0xc2, 0xfa, 0xfa, + 0x3a, 0x1c, 0x1f, 0x1f, 0x4b, 0xdb, 0x81, 0xa8, 0x54, 0x2a, 0x92, 0x99, 0x9a, 0x86, 0x5c, 0x49, + 0xab, 0x09, 0x32, 0x99, 0x4c, 0xc5, 0xa1, 0xa1, 0x21, 0x98, 0x9b, 0x9b, 0x83, 0x7f, 0x79, 0x29, + 0x6e, 0x5d, 0x26, 0x93, 0x41, 0x01, 0x0e, 0x0f, 0x0f, 0x9b, 0x32, 0x19, 0x1f, 0x1f, 0x07, 0x9d, + 0x4e, 0xa7, 0x0a, 0x8d, 0x46, 0x83, 0xf8, 0x56, 0x15, 0x14, 0x89, 0x44, 0x20, 0x10, 0x08, 0xc0, + 0xc9, 0xc9, 0x49, 0xc3, 0x10, 0xdc, 0x1e, 0xd1, 0xa4, 0x29, 0x60, 0x89, 0xff, 0x39, 0x8c, 0x3c, + 0x5f, 0x0a, 0x85, 0x42, 0x90, 0x4a, 0xa5, 0x9a, 0x7a, 0x1a, 0x79, 0x90, 0xc7, 0xe3, 0x81, 0x60, + 0x30, 0x48, 0xdc, 0xed, 0x76, 0x03, 0xfa, 0xd4, 0x0d, 0x62, 0x55, 0xd7, 0xec, 0x25, 0x0f, 0x5a, + 0x58, 0x58, 0x80, 0xe9, 0xe9, 0x69, 0xe2, 0xf3, 0xf3, 0xf3, 0x30, 0x33, 0x33, 0xd3, 0x38, 0xc8, + 0xeb, 0x76, 0xd1, 0x19, 0x60, 0x78, 0x38, 0xd8, 0x2f, 0x99, 0xa3, 0x86, 0x67, 0x89, 0x81, 0x99, + 0x6c, 0x6c, 0x6c, 0x80, 0xcf, 0xe7, 0x23, 0x9e, 0x4c, 0x26, 0x61, 0x74, 0x74, 0xb4, 0x71, 0x50, + 0xa3, 0x43, 0xc9, 0x9a, 0x66, 0x6e, 0xa2, 0x0d, 0x12, 0x89, 0x04, 0x6c, 0x6f, 0x6f, 0x43, 0xb9, + 0x5c, 0x86, 0xdd, 0xdd, 0x5d, 0xe2, 0xa5, 0x52, 0x09, 0xd2, 0xe9, 0x34, 0x6d, 0x61, 0xc3, 0xa0, + 0x8f, 0x42, 0x53, 0x3c, 0xd5, 0x1c, 0xa5, 0xa0, 0x45, 0x51, 0xfb, 0xe0, 0xbd, 0x4d, 0x15, 0x8a, + 0xff, 0xcd, 0xd6, 0xd6, 0x16, 0x08, 0x25, 0x4c, 0x7c, 0x67, 0x67, 0x87, 0x78, 0x77, 0x77, 0xb7, + 0x72, 0x90, 0xcd, 0x66, 0xfb, 0x2e, 0x9c, 0xa5, 0x0a, 0x36, 0x4e, 0x34, 0x7a, 0x37, 0xfb, 0x42, + 0x6a, 0x8e, 0x38, 0x8e, 0x40, 0x2e, 0x35, 0x55, 0x2b, 0x47, 0x06, 0x53, 0x53, 0x53, 0x80, 0xd5, + 0xca, 0x78, 0x34, 0x1a, 0x55, 0xaf, 0x3a, 0x87, 0xc3, 0x71, 0x11, 0x6f, 0xf0, 0x55, 0xf0, 0x45, + 0x68, 0x8a, 0xf2, 0xe6, 0x88, 0xe3, 0x08, 0xe4, 0x2b, 0xa2, 0xb6, 0xec, 0x6f, 0xa7, 0x80, 0xbd, + 0xbd, 0x3d, 0xaa, 0xd4, 0xb5, 0xb5, 0xb5, 0x2a, 0xee, 0x74, 0x3a, 0x95, 0x83, 0xe4, 0xef, 0x1c, + 0x85, 0xff, 0x48, 0x7a, 0xe7, 0xb0, 0xf1, 0x5f, 0xa1, 0x56, 0x18, 0x1b, 0x1b, 0x83, 0xfd, 0xfd, + 0x7d, 0x08, 0x87, 0xc3, 0x54, 0xd2, 0xd9, 0x6c, 0x56, 0xe2, 0x1c, 0xc7, 0xa9, 0x07, 0xe1, 0x2b, + 0x58, 0x5e, 0x75, 0x16, 0xde, 0x90, 0x65, 0x1a, 0x72, 0xb9, 0x86, 0x66, 0x07, 0x07, 0x07, 0xd0, + 0xd5, 0xd5, 0x05, 0x7a, 0xbd, 0x9e, 0xb8, 0x60, 0xa8, 0xbe, 0x75, 0x7f, 0x0b, 0x5c, 0x38, 0x32, + 0x32, 0x02, 0xb1, 0x58, 0x8c, 0x8c, 0xbc, 0x5e, 0x2f, 0xc4, 0xe3, 0xf1, 0xc6, 0x9d, 0xe1, 0x2c, + 0x41, 0x67, 0x6a, 0x41, 0x67, 0x81, 0x60, 0xb0, 0x2a, 0xa0, 0xd0, 0x04, 0x56, 0x6b, 0x3e, 0x4e, + 0xce, 0xed, 0xbb, 0xee, 0x7f, 0xe2, 0x37, 0x1f, 0x92, 0xd4, 0xd4, 0xbc, 0xf7, 0xa2, 0x44, 0x00, + 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE module_pin_filtered_list_xpm[1] = {{ png, sizeof( png ), "module_pin_filtered_list_xpm" }}; diff --git a/bitmaps_png/cpp_26/zone_unfill.cpp b/bitmaps_png/cpp_26/zone_unfill.cpp index 2eef46163e..420aeef009 100644 --- a/bitmaps_png/cpp_26/zone_unfill.cpp +++ b/bitmaps_png/cpp_26/zone_unfill.cpp @@ -8,102 +8,99 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x05, 0xf1, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x9d, 0x96, 0x0b, 0x50, 0x53, - 0x47, 0x14, 0x86, 0xb7, 0x0d, 0x06, 0x45, 0x2d, 0x2d, 0xb5, 0x2a, 0x25, 0xe2, 0x03, 0xb1, 0x38, - 0x02, 0x09, 0xa2, 0x96, 0x8a, 0xa0, 0x9d, 0x8a, 0x22, 0x3a, 0x8a, 0xb5, 0x8a, 0x4a, 0xa8, 0x5a, - 0xed, 0x4c, 0xd5, 0xa1, 0xea, 0x08, 0x64, 0x1c, 0x64, 0x44, 0x85, 0xe9, 0x54, 0x11, 0x14, 0x54, - 0x1e, 0x3e, 0xa6, 0xc2, 0x40, 0x44, 0x01, 0x45, 0x90, 0x87, 0x80, 0x21, 0x08, 0x44, 0xde, 0x20, - 0x02, 0x06, 0x42, 0x0b, 0x08, 0x21, 0x40, 0x82, 0x20, 0xbe, 0x50, 0xe0, 0xef, 0xde, 0x54, 0xac, - 0x25, 0x11, 0xb1, 0x3b, 0xf3, 0xcd, 0xdc, 0xbd, 0x7b, 0xee, 0xfd, 0xf7, 0x9c, 0xdd, 0x3d, 0x67, - 0x09, 0x00, 0x32, 0x52, 0x4a, 0x4a, 0x4a, 0xf4, 0x32, 0x32, 0x32, 0x3c, 0x93, 0x92, 0x92, 0x84, - 0xf1, 0xf1, 0xf1, 0x77, 0xc3, 0xc2, 0xc2, 0x4a, 0xc2, 0xc3, 0xc3, 0x45, 0x01, 0x01, 0x01, 0xcb, - 0xdf, 0xf7, 0xed, 0x88, 0x04, 0x2a, 0x2b, 0x2b, 0x8d, 0x8a, 0x8a, 0x8a, 0x2e, 0x95, 0x97, 0x97, - 0x37, 0x96, 0x96, 0x96, 0x22, 0x2f, 0x2f, 0x17, 0x42, 0xa1, 0x10, 0x21, 0x21, 0x21, 0x38, 0x7a, - 0xf4, 0x28, 0x83, 0x92, 0xf6, 0xd7, 0xff, 0x6f, 0x21, 0xa6, 0xc9, 0x64, 0xb2, 0x23, 0x4d, 0x4d, - 0x4d, 0x0a, 0x95, 0x4a, 0x85, 0x8e, 0x8e, 0x0e, 0xd0, 0x3e, 0x24, 0x12, 0x09, 0xa8, 0x57, 0x08, - 0x0e, 0x0e, 0x86, 0xbf, 0xbf, 0x3f, 0x04, 0x02, 0x01, 0x12, 0x13, 0x13, 0x4b, 0x19, 0xfb, 0x0f, - 0x16, 0x2a, 0x2e, 0x2e, 0x9e, 0xd4, 0xd8, 0xd8, 0x98, 0xa5, 0x52, 0x29, 0x5f, 0xd1, 0x86, 0x17, - 0x2f, 0x5e, 0x40, 0xa9, 0x54, 0x42, 0x2a, 0x95, 0x22, 0x3f, 0x3f, 0x1f, 0xc9, 0xc9, 0xc9, 0xa0, - 0x61, 0x83, 0x9f, 0x9f, 0x1f, 0xbc, 0xbd, 0xbd, 0x51, 0x58, 0x58, 0xf8, 0x8a, 0x0a, 0x73, 0x3f, - 0x48, 0x48, 0x2c, 0x16, 0x7f, 0x2a, 0x97, 0xb7, 0xdc, 0x63, 0xbc, 0x18, 0x14, 0xe9, 0xee, 0xee, - 0x46, 0x73, 0x73, 0x33, 0xaa, 0xaa, 0xaa, 0x68, 0xe8, 0xf2, 0x18, 0x0f, 0x70, 0xf1, 0xe2, 0x45, - 0x1c, 0x3e, 0x7c, 0x18, 0xb1, 0xb1, 0xb1, 0xa0, 0x93, 0x42, 0x45, 0x45, 0xc5, 0x35, 0xea, 0xd4, - 0x47, 0x23, 0x12, 0x4a, 0x4d, 0x4d, 0xd5, 0x95, 0xd6, 0x4a, 0x8b, 0x6b, 0x6a, 0x6a, 0xd4, 0xa1, - 0xea, 0xec, 0xec, 0x04, 0x23, 0xd8, 0xd2, 0xd2, 0x82, 0xba, 0xba, 0x3a, 0x94, 0x95, 0x95, 0x41, - 0x24, 0x12, 0x81, 0x6e, 0x06, 0x5c, 0xb8, 0x70, 0x01, 0xa1, 0xa1, 0xa1, 0x60, 0x6c, 0xe5, 0x72, - 0x39, 0x68, 0x88, 0x07, 0x62, 0x62, 0x62, 0x96, 0x8e, 0x48, 0x88, 0x2e, 0xf6, 0x89, 0xa4, 0x84, - 0x78, 0x88, 0xe8, 0x4f, 0xb2, 0x03, 0x03, 0x91, 0xe2, 0xe5, 0x85, 0xf8, 0x5d, 0xbb, 0x90, 0xe8, - 0xe3, 0x83, 0x9b, 0x41, 0x41, 0x48, 0x8d, 0x8c, 0x44, 0x7a, 0x7a, 0xba, 0xda, 0x8b, 0xa8, 0xa8, - 0x28, 0xd4, 0xd7, 0xd7, 0x43, 0xa1, 0x50, 0xa0, 0xbd, 0xbd, 0x1d, 0xad, 0x8d, 0x05, 0xa8, 0x2f, - 0x89, 0xb8, 0x47, 0xbd, 0x62, 0x0d, 0x2b, 0xc4, 0xb8, 0x9d, 0x2e, 0xf0, 0x6a, 0x8b, 0xd7, 0xd3, - 0x43, 0x14, 0x1d, 0x0a, 0xa5, 0x1c, 0xa7, 0xf8, 0x52, 0x3c, 0x28, 0x3b, 0x29, 0x6e, 0x94, 0x2d, - 0xe3, 0xc7, 0x23, 0xc8, 0xd5, 0x15, 0x0d, 0x0d, 0x0d, 0x6f, 0xbc, 0x66, 0xd6, 0xef, 0xb1, 0xec, - 0x2c, 0xda, 0x44, 0xb6, 0x74, 0x22, 0x29, 0xfc, 0xf7, 0x09, 0xe9, 0x44, 0x72, 0x38, 0xaf, 0x52, - 0xe9, 0xeb, 0x04, 0x4a, 0xa4, 0x36, 0xb1, 0x51, 0xa3, 0x70, 0xd2, 0xd9, 0x19, 0xed, 0xad, 0xad, - 0x78, 0xf2, 0xe4, 0x09, 0x7a, 0x7a, 0x7a, 0xd0, 0xd5, 0xd5, 0x85, 0xc7, 0xca, 0x1a, 0xf4, 0x75, - 0x8a, 0xd1, 0x53, 0xe6, 0x8a, 0x07, 0x39, 0x7e, 0xad, 0x16, 0x16, 0x16, 0x63, 0x87, 0x13, 0x22, - 0xa1, 0x93, 0x27, 0xab, 0x85, 0x86, 0x8a, 0x9d, 0xa4, 0x5e, 0x84, 0x7f, 0xbf, 0x16, 0xf5, 0x5e, - 0xbb, 0x50, 0x73, 0xe9, 0x9c, 0x7a, 0x83, 0xf4, 0xf7, 0xf7, 0xe3, 0xf9, 0xf3, 0xe7, 0xe8, 0x51, - 0xc9, 0xd0, 0xdf, 0x25, 0x01, 0xfa, 0x1e, 0xa3, 0xb5, 0x20, 0x08, 0xcd, 0x9e, 0x9b, 0x90, 0xe5, - 0xb3, 0x3f, 0x8b, 0x99, 0xf8, 0x3b, 0xd7, 0xe8, 0xb4, 0xa5, 0x65, 0x6a, 0x86, 0xbe, 0x3e, 0x6e, - 0xe8, 0xea, 0x22, 0x82, 0xcb, 0x45, 0xfc, 0xf6, 0xed, 0x10, 0x47, 0x44, 0xa0, 0x3c, 0x47, 0x8c, - 0x26, 0xaf, 0x9d, 0x78, 0xb4, 0xc1, 0x01, 0x5d, 0xfc, 0x55, 0x90, 0x45, 0x9e, 0xc7, 0xcb, 0x97, - 0x2f, 0xf1, 0x5c, 0x55, 0x84, 0x67, 0xb2, 0x63, 0xe8, 0x53, 0x65, 0xa2, 0xbd, 0xe6, 0x0e, 0x5a, - 0xf6, 0x6d, 0x55, 0xdb, 0x3c, 0x72, 0x5b, 0x85, 0xf4, 0x2d, 0xeb, 0x4e, 0x0d, 0x8a, 0x69, 0x08, - 0xed, 0x21, 0xc4, 0x25, 0x67, 0xd6, 0x2c, 0xa4, 0x1d, 0x3f, 0xae, 0x9e, 0x75, 0x6f, 0x6f, 0x2f, - 0x5a, 0xeb, 0x6a, 0xd1, 0xb4, 0xf7, 0x67, 0x28, 0x9d, 0x97, 0xbc, 0x41, 0xb5, 0x7e, 0x19, 0xaa, - 0x8e, 0xf1, 0x71, 0xef, 0xaa, 0x35, 0xba, 0x2b, 0x76, 0xa3, 0x25, 0xff, 0x04, 0x1e, 0xee, 0xde, - 0xfc, 0x1f, 0x1b, 0xa5, 0xcb, 0x72, 0x88, 0x36, 0x3b, 0x07, 0x30, 0x62, 0x1a, 0x42, 0x8e, 0x84, - 0xcc, 0xbf, 0x36, 0x7d, 0xfa, 0x23, 0x9a, 0x76, 0x9e, 0x31, 0xf1, 0x67, 0x28, 0xf0, 0xde, 0x0f, - 0x85, 0x93, 0x2d, 0xda, 0x86, 0xd0, 0xbe, 0x66, 0x09, 0x24, 0x9e, 0x36, 0x78, 0x10, 0xe7, 0x84, - 0x86, 0x1d, 0xce, 0x1a, 0xe3, 0x0c, 0x0d, 0xab, 0x97, 0xf4, 0x6e, 0xe7, 0xce, 0x59, 0xa6, 0x21, - 0x64, 0x4f, 0x88, 0x55, 0xac, 0x89, 0x49, 0x73, 0x66, 0x66, 0xe6, 0x45, 0x7a, 0x2e, 0xf0, 0xf4, - 0xe9, 0x53, 0x48, 0xee, 0xdc, 0x81, 0x78, 0x93, 0x33, 0x5a, 0x96, 0x2e, 0x80, 0x7c, 0x08, 0xad, - 0x8e, 0xb6, 0x68, 0xa4, 0xa1, 0x92, 0x6b, 0x19, 0x93, 0x39, 0xcc, 0x43, 0x20, 0xdf, 0xa9, 0x9e, - 0x7a, 0x34, 0x59, 0x43, 0xe8, 0x1b, 0x42, 0x2c, 0x12, 0xe6, 0xcc, 0x91, 0xbb, 0xbb, 0xbb, 0x1b, - 0xd3, 0x24, 0xda, 0xc9, 0x6c, 0x5f, 0x66, 0x2d, 0x8a, 0x0a, 0x0a, 0x20, 0xda, 0xe8, 0x8c, 0x87, - 0xf6, 0x73, 0xd1, 0x3c, 0x02, 0xea, 0x96, 0x58, 0x23, 0x7a, 0x9f, 0x2d, 0xf2, 0x63, 0xec, 0x07, - 0x4e, 0x9f, 0x3e, 0x6d, 0xa7, 0x21, 0x34, 0x97, 0x90, 0xd9, 0x09, 0x5c, 0x6e, 0x1b, 0xb3, 0x03, - 0x69, 0x9a, 0xf9, 0xbd, 0xb6, 0xb6, 0x56, 0x1d, 0xbe, 0x41, 0xb1, 0x5b, 0x1b, 0xd6, 0xa0, 0xc1, - 0xc6, 0x02, 0x8d, 0xc3, 0x50, 0x6d, 0xcb, 0xc5, 0x15, 0x9f, 0x8d, 0x90, 0x8a, 0xdc, 0xf1, 0x57, - 0xda, 0x42, 0xc4, 0x0a, 0xff, 0x88, 0xd3, 0x10, 0x32, 0x27, 0xc4, 0x24, 0x8e, 0xcb, 0x55, 0x31, - 0xcf, 0x0e, 0x0e, 0x0e, 0xfa, 0x34, 0x53, 0x3f, 0xa4, 0x4d, 0x2d, 0xc4, 0xe4, 0xbd, 0x92, 0xe2, - 0x62, 0xdc, 0x5e, 0xbb, 0x12, 0x7f, 0xce, 0x35, 0xd3, 0x4a, 0xad, 0xf5, 0x6c, 0x08, 0x0f, 0x38, - 0x41, 0x96, 0x77, 0x18, 0xed, 0xe5, 0x3e, 0xb8, 0x2f, 0x3a, 0x08, 0x9a, 0x96, 0x72, 0xb5, 0x09, - 0x4d, 0xb9, 0x6c, 0x6e, 0xfe, 0x68, 0xb0, 0x4f, 0xeb, 0xcc, 0x7e, 0x1a, 0x42, 0x75, 0x06, 0x18, - 0x18, 0x18, 0x40, 0xd3, 0x5d, 0x09, 0xa4, 0x4b, 0x17, 0x41, 0x66, 0x6e, 0xa2, 0x1d, 0x4b, 0x53, - 0x14, 0xef, 0x76, 0x44, 0x63, 0xbe, 0x07, 0xe4, 0x25, 0xbe, 0xc8, 0x48, 0x4f, 0xc2, 0xd9, 0xb3, - 0x67, 0xcf, 0x68, 0x08, 0x4d, 0x22, 0x64, 0x62, 0xf4, 0xcc, 0x99, 0x5d, 0x6f, 0x1d, 0x62, 0x36, - 0xad, 0xaa, 0x55, 0x4c, 0xd6, 0xae, 0x4e, 0x4b, 0x45, 0xf5, 0x62, 0x1b, 0x48, 0x4d, 0x8d, 0x87, - 0xc7, 0x6c, 0x3a, 0x0a, 0x77, 0x2c, 0x87, 0x38, 0x2b, 0x09, 0x71, 0x71, 0x71, 0xdd, 0xae, 0xae, - 0xae, 0x26, 0xda, 0x8a, 0xdd, 0xb8, 0x30, 0x23, 0x23, 0xc5, 0xdb, 0xef, 0x68, 0x25, 0x75, 0x4b, - 0x0e, 0x09, 0xc6, 0xbd, 0xf9, 0x3c, 0x54, 0x4f, 0x35, 0x1c, 0x19, 0x33, 0x38, 0xb8, 0xcd, 0xdf, - 0xd8, 0xef, 0x7d, 0xe0, 0xc0, 0xaf, 0xe4, 0x5d, 0x15, 0x71, 0x35, 0x9b, 0x6d, 0xf9, 0x96, 0xf0, - 0xc7, 0x61, 0x3c, 0xcb, 0x4d, 0x65, 0xe6, 0x66, 0xfd, 0x95, 0x86, 0x13, 0x30, 0x94, 0x5c, 0x13, - 0x0e, 0x12, 0x16, 0x4e, 0x40, 0x85, 0x96, 0xb1, 0xfb, 0x9c, 0x49, 0x10, 0x7d, 0x6d, 0x2d, 0x5e, - 0x60, 0x60, 0xf0, 0xc9, 0x7b, 0xef, 0x0b, 0xb4, 0x7d, 0x72, 0x62, 0xe2, 0x84, 0xcb, 0x65, 0x9f, - 0xeb, 0xa3, 0x62, 0x08, 0x39, 0xd3, 0x38, 0x88, 0x0e, 0x08, 0x40, 0x6e, 0xf4, 0x52, 0x08, 0x17, - 0x4f, 0x81, 0x36, 0x9b, 0x4c, 0x03, 0xfd, 0x8e, 0x35, 0x86, 0x5f, 0xfc, 0x7b, 0x60, 0xbf, 0x1d, - 0x3d, 0x7a, 0x9a, 0x8f, 0xa9, 0xa9, 0x57, 0xb8, 0x83, 0xc3, 0xa9, 0x2b, 0x6e, 0x6e, 0xb1, 0x69, - 0x02, 0xc1, 0xcd, 0xeb, 0x7b, 0xf6, 0x44, 0x9d, 0x59, 0xb9, 0xf2, 0x37, 0x3b, 0x0e, 0x67, 0xbd, - 0xef, 0x18, 0x76, 0x42, 0xf1, 0x78, 0x3d, 0x94, 0xbe, 0x26, 0xcb, 0x70, 0x12, 0xce, 0xf9, 0xfb, - 0x81, 0x5e, 0x5a, 0x50, 0x59, 0x26, 0xa6, 0x6b, 0x71, 0x15, 0x61, 0x76, 0x8b, 0xfa, 0xde, 0xb6, - 0x49, 0x1d, 0x37, 0xa6, 0x6d, 0x1e, 0x8b, 0xc5, 0x67, 0x96, 0x83, 0xfc, 0x42, 0x88, 0x6d, 0x20, - 0x21, 0x29, 0xb9, 0xeb, 0xd6, 0x3d, 0x96, 0xd1, 0xb2, 0x5c, 0x7f, 0xe4, 0x08, 0x64, 0xbe, 0xbe, - 0xa8, 0xa3, 0x85, 0xae, 0xee, 0xe0, 0x41, 0x48, 0x3d, 0x3c, 0x70, 0x8b, 0xc7, 0xeb, 0xf1, 0x24, - 0x44, 0x22, 0xd0, 0x1b, 0x93, 0x77, 0x57, 0x97, 0x8d, 0x9b, 0x06, 0x9f, 0xc1, 0x6f, 0xef, 0x5e, - 0xd0, 0x6a, 0x8c, 0xec, 0xec, 0x6c, 0xe6, 0xa2, 0xa2, 0x38, 0x7f, 0x3e, 0x22, 0x9a, 0x96, 0x06, - 0x97, 0xa3, 0x3a, 0x3a, 0x37, 0x0a, 0xa8, 0x4d, 0x92, 0x2e, 0x5b, 0x61, 0xc5, 0x22, 0x2e, 0x8c, - 0x88, 0x3a, 0x32, 0x41, 0x84, 0x24, 0xa7, 0xd3, 0xa5, 0x1a, 0x24, 0xc7, 0xd8, 0x18, 0x77, 0x6d, - 0x6c, 0x50, 0x68, 0x6f, 0x0f, 0x89, 0xb5, 0x35, 0xb2, 0x8d, 0x8c, 0x90, 0xf6, 0x4f, 0xa9, 0x90, - 0xd9, 0x11, 0x72, 0xe8, 0x47, 0x16, 0x2b, 0xed, 0x3b, 0x33, 0xb3, 0x14, 0x3e, 0x9f, 0x1f, 0xbd, - 0x6d, 0xfb, 0xb6, 0x08, 0x1e, 0x8f, 0xe7, 0xc1, 0x66, 0xb3, 0x99, 0x1f, 0x3a, 0xbd, 0x66, 0xeb, - 0x4f, 0x84, 0xa4, 0x4d, 0x25, 0x44, 0x40, 0x9f, 0xad, 0x28, 0x5f, 0x52, 0xc6, 0x92, 0x43, 0x84, - 0x4c, 0xf3, 0x27, 0xc4, 0xf3, 0xa4, 0x8e, 0x8e, 0x30, 0x72, 0xe6, 0xcc, 0x72, 0xa1, 0x9d, 0x5d, - 0xe5, 0xe5, 0x15, 0x2b, 0xee, 0x47, 0x39, 0x3a, 0x16, 0x06, 0x59, 0x59, 0x5d, 0xf7, 0x34, 0x34, - 0x0c, 0xfc, 0x81, 0xc5, 0xda, 0x31, 0x9a, 0x90, 0xaf, 0xe8, 0x07, 0xa6, 0x14, 0x5b, 0xca, 0x3c, - 0x0a, 0x3d, 0x72, 0xc4, 0x82, 0x62, 0xf9, 0x1a, 0xa6, 0xcf, 0xd8, 0xcc, 0xa0, 0xf0, 0x28, 0x1c, - 0xb5, 0xc0, 0xeb, 0xb2, 0xfe, 0x37, 0xab, 0x8b, 0x74, 0x3b, 0xdf, 0xc1, 0x6d, 0xc4, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x05, 0xc1, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xe5, 0x56, 0x7d, 0x34, 0x94, + 0x59, 0x18, 0xbf, 0x49, 0x28, 0x1f, 0x51, 0xf2, 0x11, 0xa2, 0x95, 0x28, 0x99, 0xa4, 0x4f, 0x59, + 0xa2, 0x28, 0xa7, 0x56, 0x6d, 0x5a, 0xac, 0xe4, 0x23, 0xec, 0x66, 0x4b, 0x6d, 0x8e, 0xce, 0x96, + 0xd0, 0xce, 0xda, 0xea, 0xd8, 0x33, 0xd5, 0x98, 0x36, 0xd4, 0xe2, 0x11, 0x19, 0xb1, 0xf6, 0x58, + 0x73, 0xb6, 0x91, 0x88, 0x5a, 0xad, 0x65, 0x7d, 0x34, 0x31, 0x31, 0x32, 0xc3, 0x8c, 0x6f, 0x4d, + 0x44, 0xa2, 0x39, 0x76, 0x47, 0x77, 0xef, 0x3b, 0x67, 0x6b, 0xb5, 0x2b, 0xf5, 0xc7, 0x9e, 0xdd, + 0x3f, 0xf6, 0x9e, 0xf3, 0x3b, 0xf7, 0xbd, 0xef, 0x79, 0xef, 0xf3, 0xfb, 0x3d, 0x1f, 0xf7, 0xb9, + 0x2f, 0xc2, 0x18, 0xa3, 0x7f, 0x03, 0xe8, 0xff, 0x4d, 0xd4, 0xc6, 0xe1, 0xe8, 0xdf, 0xca, 0x4c, + 0xdf, 0x9e, 0x92, 0x92, 0xb2, 0x84, 0xac, 0x95, 0xff, 0x51, 0x22, 0xa9, 0x54, 0xaa, 0x51, 0x57, + 0x57, 0xb7, 0xa7, 0xb6, 0xb6, 0xf6, 0x74, 0x57, 0x22, 0xa3, 0x7e, 0x24, 0xee, 0x88, 0xfc, 0xc1, + 0xe9, 0x18, 0x01, 0xe7, 0xeb, 0x84, 0x94, 0xd4, 0xd4, 0xd4, 0x45, 0xaf, 0xdb, 0xd7, 0x1f, 0x1e, + 0x38, 0x4d, 0xfa, 0xc9, 0x1e, 0x8f, 0x87, 0x1f, 0xf9, 0xa6, 0xf4, 0x06, 0x7b, 0x7b, 0x4e, 0x45, + 0x32, 0xad, 0xad, 0xad, 0xcd, 0xab, 0xbd, 0xbd, 0x3d, 0x41, 0x2a, 0xed, 0x83, 0xde, 0x1f, 0x4b, + 0xb8, 0xcf, 0xe2, 0x22, 0x9f, 0x13, 0xe0, 0xd1, 0xcf, 0x0f, 0xe3, 0xa7, 0x31, 0x07, 0x71, 0xe7, + 0xc9, 0xe3, 0x75, 0x7d, 0x47, 0xfc, 0xd5, 0x5f, 0x11, 0xb6, 0xcf, 0x6f, 0x7a, 0x5f, 0xe8, 0x87, + 0x7e, 0x3d, 0x41, 0x5e, 0x8d, 0xdd, 0xfe, 0x3b, 0x71, 0xa7, 0xef, 0xf6, 0x9e, 0x0e, 0xef, 0x6d, + 0xfb, 0x27, 0x25, 0xa9, 0xaa, 0xaa, 0xd2, 0xea, 0xe9, 0xe9, 0x39, 0x36, 0x3c, 0x32, 0x9c, 0x36, + 0x3e, 0x3e, 0x0e, 0x43, 0x43, 0x43, 0x20, 0xe6, 0xd7, 0x67, 0x89, 0x2f, 0x25, 0xd4, 0x0c, 0x44, + 0x1f, 0x1a, 0x19, 0x8c, 0xfc, 0x18, 0x3f, 0x3e, 0x1c, 0x82, 0x89, 0x6a, 0xfc, 0x70, 0xbf, 0xbf, + 0xe8, 0x61, 0xa8, 0x2f, 0x8d, 0xda, 0xd7, 0x13, 0xb0, 0x6b, 0x55, 0x97, 0xdf, 0xfb, 0x2d, 0x1d, + 0x3e, 0x1e, 0xb8, 0xfd, 0x83, 0xad, 0x58, 0xbc, 0x73, 0x4b, 0x66, 0x9b, 0xc7, 0x26, 0x9d, 0x49, + 0x43, 0x27, 0x14, 0x0a, 0x55, 0xbb, 0xbb, 0xbb, 0xe9, 0xfd, 0xfd, 0xfd, 0x20, 0x93, 0xc9, 0x60, + 0x78, 0x78, 0x18, 0x7a, 0x7b, 0x7b, 0x41, 0x20, 0x10, 0x40, 0x79, 0x79, 0x39, 0xe4, 0xe5, 0x64, + 0x5f, 0x2e, 0x39, 0x71, 0xec, 0x76, 0x67, 0x98, 0xff, 0x28, 0x51, 0x8d, 0xbb, 0xfd, 0x3d, 0x29, + 0xd5, 0x32, 0xa2, 0xfa, 0x94, 0xc4, 0xd3, 0xfd, 0x59, 0xdb, 0x0e, 0x37, 0xdc, 0xba, 0x6d, 0x63, + 0xbf, 0xd0, 0x7d, 0x83, 0xc7, 0x94, 0x39, 0xe2, 0xf3, 0xf9, 0x91, 0xd5, 0xd5, 0xd5, 0x20, 0x6e, + 0x6d, 0x05, 0x61, 0x4d, 0x0d, 0x88, 0x9b, 0x9b, 0xa1, 0xa5, 0xa5, 0x05, 0x6a, 0xc8, 0x73, 0x49, + 0x49, 0x09, 0xb0, 0xd9, 0x6c, 0xc8, 0xcd, 0xcd, 0x05, 0xd1, 0xdd, 0xda, 0xac, 0xce, 0xe8, 0x48, + 0x11, 0x51, 0x8d, 0xdb, 0x3c, 0x5c, 0xb1, 0x68, 0xab, 0x33, 0x16, 0x6e, 0x76, 0xc4, 0x0f, 0x36, + 0xad, 0x7f, 0x22, 0xd8, 0xb0, 0xd6, 0x6e, 0xca, 0x62, 0x48, 0x4f, 0x4f, 0x37, 0xe3, 0xfa, 0x78, + 0xa5, 0xb2, 0xb5, 0xb5, 0x21, 0x49, 0x49, 0x09, 0xe2, 0x11, 0x82, 0x68, 0x32, 0x47, 0xcd, 0x9d, + 0x0b, 0x31, 0x4b, 0x97, 0xc2, 0x17, 0x2e, 0x2e, 0x90, 0xcb, 0x62, 0x41, 0x47, 0x47, 0x07, 0x50, + 0x1e, 0x3f, 0x6a, 0x97, 0x64, 0xb6, 0xfa, 0xba, 0xf5, 0x37, 0xbb, 0xd8, 0xe3, 0x26, 0xa7, 0x35, + 0xb8, 0x71, 0xbd, 0xdd, 0xf3, 0xfb, 0xeb, 0x96, 0xef, 0x7c, 0x63, 0xd5, 0x9d, 0xd9, 0xb7, 0xcf, + 0xb3, 0x90, 0x18, 0xff, 0x81, 0x80, 0x4d, 0x90, 0x44, 0xa0, 0x20, 0x23, 0x88, 0x98, 0x35, 0x0b, + 0x2e, 0x05, 0x06, 0xc2, 0xd0, 0xe0, 0x20, 0x8c, 0x8c, 0x8c, 0x28, 0xe6, 0xd6, 0x10, 0xef, 0xf6, + 0xfb, 0xf6, 0x2b, 0x30, 0x7f, 0x35, 0x0d, 0xd7, 0xdb, 0x59, 0x63, 0x1e, 0xcd, 0x0a, 0xdf, 0xb5, + 0x5e, 0x74, 0xef, 0x27, 0x4b, 0x4b, 0xcd, 0x29, 0x89, 0x82, 0x82, 0x82, 0x0c, 0xd8, 0xc4, 0xe0, + 0x4b, 0x32, 0x4d, 0x4d, 0xc8, 0x70, 0x75, 0x85, 0x42, 0x06, 0x03, 0x24, 0x62, 0x31, 0x8c, 0x8d, + 0x8d, 0x01, 0xf9, 0x0e, 0xe4, 0x72, 0x39, 0x88, 0xa3, 0x0f, 0xde, 0xbd, 0x67, 0xbb, 0x04, 0xf3, + 0x6c, 0x16, 0xe3, 0xba, 0x25, 0xe6, 0xb8, 0x7e, 0x97, 0x7d, 0x7d, 0xd5, 0x62, 0xb3, 0xe7, 0x15, + 0x8b, 0x4c, 0xf1, 0x1d, 0xf3, 0x05, 0x45, 0xb7, 0x9c, 0x91, 0xf2, 0x94, 0x39, 0xfa, 0xce, 0xc9, + 0x89, 0x95, 0x63, 0x64, 0x04, 0x85, 0x74, 0x3a, 0xb4, 0x90, 0xfc, 0x0c, 0x12, 0xe5, 0x14, 0x01, + 0x55, 0x7d, 0x14, 0x09, 0x26, 0xb3, 0x88, 0x75, 0xa0, 0xb8, 0xd6, 0xea, 0x1d, 0xfc, 0x8b, 0xe5, + 0x42, 0x5c, 0x69, 0x61, 0x86, 0x1b, 0x83, 0xb6, 0x0b, 0x86, 0xaa, 0x3d, 0xe1, 0x96, 0x87, 0xeb, + 0x85, 0x52, 0xd3, 0xf9, 0xb8, 0xd8, 0xc4, 0x10, 0x5f, 0x37, 0xd6, 0x3f, 0x34, 0x25, 0x51, 0x96, + 0xad, 0xed, 0x81, 0xfc, 0x88, 0x08, 0x16, 0x15, 0x1e, 0x85, 0xe1, 0x09, 0x18, 0x1f, 0xe1, 0xc3, + 0xe3, 0xb2, 0x0d, 0x19, 0x55, 0xcb, 0x4d, 0x9e, 0x12, 0xd5, 0xf8, 0xf6, 0x42, 0x63, 0x5c, 0x4e, + 0x5b, 0x3c, 0x2a, 0x93, 0xdc, 0xbc, 0x32, 0xd6, 0x7a, 0x12, 0xda, 0xcb, 0x83, 0x93, 0x39, 0x26, + 0x86, 0x31, 0x1c, 0x7d, 0x5d, 0xfc, 0xbd, 0xde, 0xdc, 0x81, 0x6f, 0xb5, 0xb4, 0xe6, 0xbc, 0x96, + 0x88, 0x4d, 0xa3, 0x85, 0x9c, 0x73, 0x77, 0x0f, 0x14, 0x93, 0x50, 0xbd, 0xf4, 0x82, 0x22, 0x91, + 0x49, 0x60, 0xbc, 0xc6, 0x06, 0xf8, 0x7e, 0x46, 0xbc, 0x17, 0xaa, 0x8b, 0x8c, 0x0d, 0xb0, 0x88, + 0x19, 0x7a, 0x73, 0x7c, 0xa0, 0x04, 0xc6, 0xba, 0xae, 0xc0, 0x40, 0xe5, 0x7b, 0x50, 0xce, 0xbd, + 0x10, 0x74, 0x75, 0xce, 0xec, 0x9f, 0xb3, 0xb5, 0xb5, 0x70, 0x96, 0xb6, 0x06, 0xeb, 0xb5, 0x44, + 0xd9, 0xeb, 0xd6, 0x85, 0x46, 0x21, 0x64, 0x4f, 0x0e, 0x6d, 0x2c, 0x55, 0x59, 0x13, 0x3d, 0x1a, + 0xbc, 0xe6, 0x97, 0x77, 0x7d, 0x81, 0xbe, 0xfc, 0x9a, 0xe1, 0x3c, 0xcc, 0x31, 0xd0, 0xc5, 0x85, + 0x36, 0x86, 0x8f, 0x46, 0x1a, 0x8f, 0x82, 0xac, 0xe3, 0x32, 0xc8, 0xba, 0xd8, 0x30, 0xc0, 0x3b, + 0x04, 0x4d, 0xdc, 0xad, 0xa9, 0xc9, 0xcb, 0x96, 0xbd, 0x9b, 0xa6, 0x3e, 0xf3, 0xd7, 0x94, 0x99, + 0x6a, 0xbf, 0x25, 0xa9, 0xaa, 0x5a, 0x4e, 0x4a, 0x74, 0xd5, 0xc1, 0x21, 0x84, 0x54, 0xd9, 0xfa, + 0x8c, 0x8c, 0x0c, 0x5a, 0x53, 0x53, 0x53, 0xda, 0xc4, 0x10, 0x3e, 0xe1, 0xdf, 0xc9, 0x29, 0x5a, + 0xa6, 0x37, 0x90, 0xa7, 0xab, 0x83, 0x73, 0xe7, 0xcc, 0xc6, 0x25, 0xc1, 0xba, 0xa5, 0xd2, 0x8a, + 0x1d, 0x30, 0xd4, 0x78, 0x02, 0x86, 0x85, 0x17, 0x60, 0x80, 0x4f, 0x07, 0x41, 0xf1, 0x5e, 0x48, + 0x4e, 0x4e, 0xde, 0x92, 0xa8, 0xa2, 0x7c, 0xf2, 0xbc, 0xf2, 0x74, 0xcc, 0x54, 0x52, 0xca, 0x9c, + 0xdc, 0xa3, 0xd5, 0xab, 0xf7, 0xc6, 0x22, 0xe4, 0x80, 0x10, 0x9a, 0x56, 0x56, 0x56, 0x16, 0x21, + 0x91, 0x48, 0x5e, 0x09, 0xe1, 0xb3, 0x86, 0x2f, 0x33, 0xb9, 0x6b, 0x74, 0xda, 0x73, 0x16, 0x68, + 0x3c, 0x11, 0xe7, 0x4d, 0x4f, 0xe7, 0xe5, 0x58, 0x41, 0x5f, 0xe5, 0x6e, 0xe8, 0xbf, 0x17, 0x03, + 0x7d, 0x3c, 0x3a, 0xdc, 0x2e, 0xce, 0x01, 0x16, 0x8b, 0xe5, 0x42, 0x47, 0x48, 0xed, 0x0c, 0x42, + 0xdd, 0x04, 0xb2, 0xaf, 0x10, 0xd2, 0xfc, 0x1b, 0xd1, 0x65, 0x6b, 0xeb, 0x00, 0x42, 0xe4, 0x48, + 0x3d, 0x33, 0x99, 0x4c, 0x33, 0x12, 0xc2, 0x6f, 0x48, 0x07, 0xff, 0x33, 0x57, 0xf2, 0x51, 0x90, + 0xd7, 0x39, 0xa7, 0x8b, 0x58, 0xfa, 0xf9, 0x5d, 0x05, 0xea, 0x50, 0x75, 0x49, 0x0d, 0x5a, 0xb9, + 0xab, 0x40, 0x52, 0x1e, 0x00, 0x0d, 0x95, 0x8a, 0xae, 0xc1, 0xb0, 0xb6, 0xb6, 0x56, 0x51, 0x9c, + 0x4b, 0x84, 0xfc, 0x18, 0x08, 0x6d, 0x9c, 0xd4, 0xa3, 0x33, 0xc6, 0xc6, 0x9e, 0x47, 0x10, 0x5a, + 0xfb, 0x62, 0x9d, 0x9f, 0x9f, 0x1f, 0xc6, 0xe3, 0xf1, 0x14, 0x8d, 0xf5, 0x85, 0x67, 0x72, 0x69, + 0x3e, 0x8c, 0xde, 0xb1, 0x80, 0x5e, 0xee, 0x3c, 0x68, 0xce, 0x9e, 0x01, 0x65, 0x69, 0xcb, 0x41, + 0x50, 0x93, 0x07, 0x37, 0x6e, 0xdc, 0x48, 0x8c, 0x8d, 0x8d, 0xb5, 0x79, 0xab, 0xfb, 0x88, 0x0c, + 0xa5, 0x89, 0x6b, 0x3a, 0x9d, 0xae, 0x5b, 0x50, 0x50, 0x90, 0x4c, 0x91, 0x0d, 0xfe, 0xd1, 0x15, + 0x28, 0x8c, 0xf2, 0x3c, 0xa1, 0xaf, 0xc8, 0x04, 0x84, 0x65, 0xc1, 0xc0, 0x6f, 0xa8, 0x01, 0x12, + 0xe6, 0xf3, 0x0c, 0x06, 0x63, 0xed, 0x5b, 0x5d, 0x7c, 0x64, 0xa8, 0xaa, 0x23, 0x64, 0xb0, 0x6b, + 0xfe, 0xfc, 0x15, 0x9b, 0x4d, 0x4d, 0x17, 0x92, 0xb5, 0xe2, 0x74, 0x27, 0x25, 0x25, 0x05, 0x12, + 0xcf, 0x14, 0x8d, 0x95, 0x2a, 0x7b, 0x0a, 0x12, 0x41, 0x21, 0x08, 0x79, 0x19, 0x8a, 0x77, 0x1c, + 0x0e, 0x27, 0x2a, 0x2c, 0x2c, 0xcc, 0x68, 0xca, 0x1b, 0x96, 0x4a, 0xfa, 0x51, 0x84, 0x76, 0x70, + 0xfd, 0xfc, 0x8e, 0x35, 0x30, 0x18, 0x67, 0x45, 0x4c, 0xe6, 0x45, 0x71, 0x42, 0x02, 0x08, 0xcf, + 0x9e, 0x4d, 0xad, 0x3d, 0x7e, 0x3c, 0x29, 0xc5, 0xc8, 0x28, 0xf2, 0x53, 0x35, 0x35, 0xa7, 0xf8, + 0xf8, 0xf8, 0x53, 0x54, 0xe7, 0x2e, 0x2d, 0x2d, 0x85, 0x8a, 0x8a, 0x0a, 0xca, 0x83, 0xd4, 0xbc, + 0xbc, 0xbc, 0xa8, 0xb8, 0xb8, 0x38, 0x87, 0x95, 0x2b, 0x57, 0xce, 0x78, 0xe3, 0x55, 0x4e, 0xe5, + 0xe3, 0x1a, 0x42, 0x69, 0xc5, 0xa4, 0xb7, 0x95, 0x90, 0x3e, 0x57, 0x69, 0x67, 0x07, 0x35, 0x6e, + 0x6e, 0x50, 0xed, 0xe8, 0x08, 0x65, 0x26, 0x26, 0x69, 0x80, 0x50, 0xc2, 0x41, 0x84, 0x02, 0x54, + 0x54, 0x54, 0xac, 0xbc, 0xc9, 0x08, 0x0f, 0x0f, 0x0f, 0xf1, 0xd9, 0xed, 0xe3, 0x65, 0x6c, 0x6c, + 0xec, 0x4c, 0x44, 0xda, 0x12, 0xd0, 0x08, 0x96, 0x12, 0x98, 0x13, 0x18, 0x12, 0x68, 0xfc, 0x35, + 0xfc, 0x2f, 0x43, 0x17, 0x43, 0x3e, 0x3a, 0x87, 0x90, 0xfb, 0x45, 0x1d, 0x9d, 0x3d, 0x89, 0xe6, + 0xe6, 0x01, 0x4c, 0x0b, 0x0b, 0xdf, 0xcf, 0xf4, 0xf4, 0xdc, 0x3c, 0x88, 0xf1, 0x3f, 0x36, 0x92, + 0x88, 0x92, 0x12, 0x45, 0x48, 0x6b, 0x02, 0xa8, 0xf7, 0xb3, 0x08, 0xd4, 0x08, 0x54, 0x26, 0x33, + 0xfe, 0x9f, 0xfc, 0x6e, 0xfd, 0x0e, 0xb8, 0x1e, 0xa6, 0xd9, 0xe8, 0x0c, 0xc7, 0x31, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; diff --git a/bitmaps_png/sources/cancel.svg b/bitmaps_png/sources/cancel.svg index 219114c3d1..6d0dabb351 100644 --- a/bitmaps_png/sources/cancel.svg +++ b/bitmaps_png/sources/cancel.svg @@ -1,335 +1,115 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + - - - - - - - - - diff --git a/bitmaps_png/sources/cancel_tool.svg b/bitmaps_png/sources/cancel_tool.svg deleted file mode 100644 index 219114c3d1..0000000000 --- a/bitmaps_png/sources/cancel_tool.svg +++ /dev/null @@ -1,335 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_png/sources/cursor.svg b/bitmaps_png/sources/cursor.svg index 78c6d9856d..026144bbfa 100644 --- a/bitmaps_png/sources/cursor.svg +++ b/bitmaps_png/sources/cursor.svg @@ -5,13 +5,14 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" height="48" width="48" version="1.1" id="svg2" - inkscape:version="0.47 r22583" + inkscape:version="0.48.1 " sodipodi:docname="cursor.svg"> @@ -21,7 +22,7 @@ image/svg+xml - + @@ -35,14 +36,14 @@ inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" - inkscape:window-height="949" + inkscape:window-height="968" id="namedview28" showgrid="false" - inkscape:zoom="4.9166667" - inkscape:cx="24" - inkscape:cy="23.59322" - inkscape:window-x="0" - inkscape:window-y="25" + inkscape:zoom="16.970389" + inkscape:cx="18.500421" + inkscape:cy="22.178251" + inkscape:window-x="-4" + inkscape:window-y="-4" inkscape:window-maximized="1" inkscape:current-layer="svg2" /> + id="stop7" + style="stop-color:#748b06;stop-opacity:1;" /> + id="stop12" + style="stop-color:#d0df86;stop-opacity:1;" /> + + + + - - - - - + + diff --git a/bitmaps_png/sources/delete_association.svg b/bitmaps_png/sources/delete_association.svg index 6d0dabb351..5dd1d0a3b0 100644 --- a/bitmaps_png/sources/delete_association.svg +++ b/bitmaps_png/sources/delete_association.svg @@ -14,7 +14,7 @@ height="26" id="svg3019" version="1.1" - inkscape:version="0.47 r22583" + inkscape:version="0.48.1 " sodipodi:docname="delete_association.svg"> @@ -53,6 +53,13 @@ id="linearGradient3017" xlink:href="#linearGradient3165" inkscape:collect="always" /> + + + @@ -90,7 +97,7 @@ image/svg+xml - + @@ -99,6 +106,252 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-1026.3622)"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/bitmaps_png/sources/hierarchy_cursor.svg b/bitmaps_png/sources/hierarchy_cursor.svg index 614b31cba1..f3773c382b 100644 --- a/bitmaps_png/sources/hierarchy_cursor.svg +++ b/bitmaps_png/sources/hierarchy_cursor.svg @@ -8,8 +8,8 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - height="48" - width="48" + height="26" + width="26" version="1.0" id="svg2" inkscape:version="0.48.1 " @@ -22,7 +22,7 @@ image/svg+xml - + @@ -38,14 +38,24 @@ inkscape:window-width="1280" inkscape:window-height="968" id="namedview89" - showgrid="false" - inkscape:zoom="15.088678" - inkscape:cx="22.775066" - inkscape:cy="27.739621" + showgrid="true" + inkscape:zoom="32.892445" + inkscape:cx="13.697382" + inkscape:cy="13.903946" inkscape:window-x="-4" inkscape:window-y="-4" inkscape:window-maximized="1" - inkscape:current-layer="svg2" /> + inkscape:current-layer="svg2" + inkscape:snap-grids="false" + inkscape:snap-to-guides="false"> + + - - - - - - - - - - - - + d="M 6.4452023,5.7236701 V 22.008055" /> + d="M 6.5093112,13.543361 H 11.85972" /> - - + d="m 6.035011,21.522532 h 8.112518" /> + y="-107.651" + x="21.122999" + id="rect61" + style="opacity:0.57787003;fill:#ffffff" /> + id="rect63" + style="opacity:0.57787003;fill:#ffffff" /> + id="rect67" + style="opacity:0.57787003;fill:#ffffff" /> + y="-315.22" + x="-958.79999" + id="rect83" + style="opacity:0.57787003;fill:#ffffff" /> + y="-345.82001" + x="-997.85999" + id="rect85" + style="opacity:0.57787003;fill:#ffffff" /> + x="12.402685" + y="11.457044" + width="9.9399824" + height="4.114213" /> + x="14.576992" + y="19.577936" + width="9.8903284" + height="3.7833779" /> - - + x="1.4616796" + y="1.5299835" + width="10.038758" + height="4.008337" /> + + + + diff --git a/bitmaps_png/sources/hierarchy_nav.svg b/bitmaps_png/sources/hierarchy_nav.svg index bfb0c31a8f..0bdf51ec6b 100644 --- a/bitmaps_png/sources/hierarchy_nav.svg +++ b/bitmaps_png/sources/hierarchy_nav.svg @@ -8,8 +8,8 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - height="48" - width="48" + height="26" + width="26" version="1.0" id="svg2" inkscape:version="0.48.1 " @@ -22,6 +22,7 @@ image/svg+xml + @@ -34,17 +35,27 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="1280" - inkscape:window-height="968" + inkscape:window-width="910" + inkscape:window-height="711" id="namedview89" - showgrid="false" - inkscape:zoom="15.088678" - inkscape:cx="22.775066" - inkscape:cy="22.437632" - inkscape:window-x="-4" - inkscape:window-y="-4" - inkscape:window-maximized="1" - inkscape:current-layer="svg2" /> + showgrid="true" + inkscape:zoom="22.615224" + inkscape:cx="12.957079" + inkscape:cy="13.561772" + inkscape:window-x="223" + inkscape:window-y="35" + inkscape:window-maximized="0" + inkscape:current-layer="svg2" + inkscape:snap-grids="false" + inkscape:snap-to-guides="false"> + + - - - - - - - - - - - + + + + + - + d="M 6.4452023,5.7236701 V 22.008055" /> + d="M 6.5093112,13.543361 H 11.85972" /> - - + d="m 6.035011,21.522532 h 8.112518" /> + y="-107.651" + x="21.122999" + id="rect61" + style="opacity:0.57787003;fill:#ffffff" /> + id="rect63" + style="opacity:0.57787003;fill:#ffffff" /> + id="rect67" + style="opacity:0.57787003;fill:#ffffff" /> + y="-315.22" + x="-958.79999" + id="rect83" + style="opacity:0.57787003;fill:#ffffff" /> + y="-345.82001" + x="-997.85999" + id="rect85" + style="opacity:0.57787003;fill:#ffffff" /> + x="12.402685" + y="11.457044" + width="9.9399824" + height="4.114213" /> + x="14.576992" + y="19.577936" + width="9.8903284" + height="3.7833779" /> + x="1.4616796" + y="1.5299835" + width="10.038758" + height="4.008337" /> diff --git a/bitmaps_png/sources/module_filtered_list.svg b/bitmaps_png/sources/module_filtered_list.svg index 0e44ad74ff..10d53ff280 100644 --- a/bitmaps_png/sources/module_filtered_list.svg +++ b/bitmaps_png/sources/module_filtered_list.svg @@ -1,32 +1,190 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bitmaps_png/sources/module_full_list.svg b/bitmaps_png/sources/module_full_list.svg index ed7b638a71..34736fd8ba 100644 --- a/bitmaps_png/sources/module_full_list.svg +++ b/bitmaps_png/sources/module_full_list.svg @@ -1,34 +1,190 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bitmaps_png/sources/module_pin_filtered_list.svg b/bitmaps_png/sources/module_pin_filtered_list.svg index 6363f781fa..38c7e379c3 100644 --- a/bitmaps_png/sources/module_pin_filtered_list.svg +++ b/bitmaps_png/sources/module_pin_filtered_list.svg @@ -1,31 +1,175 @@ - - - - - + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + # - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_png/sources/zone_unfill.svg b/bitmaps_png/sources/zone_unfill.svg index e3198853a7..1d41ed47ca 100644 --- a/bitmaps_png/sources/zone_unfill.svg +++ b/bitmaps_png/sources/zone_unfill.svg @@ -12,7 +12,7 @@ width="48" version="1.0" id="svg2" - inkscape:version="0.48.1 " + inkscape:version="0.48.2 r9819" sodipodi:docname="zone_unfill.svg"> @@ -22,7 +22,7 @@ image/svg+xml - + @@ -36,14 +36,14 @@ inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1280" - inkscape:window-height="968" + inkscape:window-height="969" id="namedview169" showgrid="false" - inkscape:zoom="16.07255" - inkscape:cx="14.815644" - inkscape:cy="23.666491" - inkscape:window-x="-4" - inkscape:window-y="-4" + inkscape:zoom="1.4206261" + inkscape:cx="86.045324" + inkscape:cy="47.445301" + inkscape:window-x="0" + inkscape:window-y="26" inkscape:window-maximized="1" inkscape:current-layer="svg2" /> + id="linearGradient3165"> + id="stop3167" /> + + id="stop3169" /> + + + + + + + + transform="matrix(0.8137128,0,0,0.8137128,0.86800034,-58.573032)" + id="g103" + style="opacity:0.61728396"> + id="rect105" + style="opacity:0.57787003;fill:#ffffff" /> + id="rect107" + style="opacity:0.57787003;fill:#ffffff" /> + d="m 6.0093,127.44 c 2.655,0.022 4.8939,-0.27986 5.4405,-0.26605 3.616,0.0913 12.279,-1.6267 8.8147,-3.7388 -3.7851,-2.3074 -14.189,-2.2454 -18.24,-0.0206 -4.4207,2.428 1.3297,4.0034 3.9843,4.0254 z" + id="path109" + style="opacity:0.37705;fill:url(#radialGradient3133);fill-rule:evenodd;stroke:url(#radialGradient3135);stroke-width:0.84430999" + inkscape:connector-curvature="0" /> + d="m 127.69,121.47 a 63.847,6.5298 0 1 1 -127.69,0 63.847,6.5298 0 1 1 127.69,0 z" + transform="matrix(0.38772,0,0,0.39701,0.048639,77.543)" + id="path111" + style="opacity:0.36474998;fill:url(#aj)" + inkscape:connector-curvature="0" /> + d="m 33.424,83.207 13.734,25.039 c 1.8994,3.4628 -2.2661,9.5271 -9.3001,13.538 -7.034,4.0106 -14.282,4.4542 -16.182,0.99147 -1.899,-3.47 -11.834,-21.58 -13.734,-25.044 -1.8989,-3.463 2.267,-9.527 9.301,-13.537 7.034,-4.0106 14.282,-4.4543 16.182,-0.99147 z" + id="path113" + inkscape:connector-curvature="0" + style="opacity:0.25;fill:none;stroke:#000000;stroke-width:1.16820002;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.33332998;stroke-dashoffset:4" /> + d="m 33.424,83.207 13.734,25.039 c 1.8994,3.4628 -2.2661,9.5271 -9.3001,13.538 -7.034,4.0106 -14.282,4.4542 -16.182,0.99147 -1.899,-3.47 -11.834,-21.58 -13.734,-25.044 -1.8989,-3.463 2.267,-9.527 9.301,-13.537 7.034,-4.0106 14.282,-4.4543 16.182,-0.99147 z" + id="path115" + inkscape:connector-curvature="0" + style="opacity:0.3;fill:none;stroke:#000000;stroke-width:0.77877998;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.33332998;stroke-dashoffset:4" /> + d="m 33.423,83.085 13.734,25.039 c 1.8994,3.4628 -2.2661,9.5271 -9.3001,13.538 -7.034,4.0106 -14.282,4.4542 -16.182,0.99146 -1.9,-3.46 -11.835,-21.57 -13.734,-25.036 -1.8994,-3.4628 2.2661,-9.5271 9.3001,-13.538 7.034,-4.0106 14.282,-4.4542 16.182,-0.99147 z" + id="path117" + style="fill:url(#ai)" + inkscape:connector-curvature="0" /> + d="m 33.423,83.085 13.734,25.039 c 1.8994,3.4628 -2.2661,9.5271 -9.3001,13.538 -7.034,4.0106 -14.282,4.4542 -16.182,0.99146 -1.9,-3.46 -11.835,-21.57 -13.734,-25.036 -1.8994,-3.4628 2.2661,-9.5271 9.3001,-13.538 7.034,-4.0106 14.282,-4.4542 16.182,-0.99147 z" + id="path119" + style="opacity:0.40574;fill:url(#am)" + inkscape:connector-curvature="0" /> + d="m 33.423,83.085 13.734,25.039 c 1.8994,3.4628 -2.2661,9.5271 -9.3001,13.538 -7.034,4.0106 -14.282,4.4542 -16.182,0.99146 -1.9,-3.46 -11.835,-21.57 -13.734,-25.036 -1.8994,-3.4628 2.2661,-9.5271 9.3001,-13.538 7.034,-4.0106 14.282,-4.4542 16.182,-0.99147 z" + id="path121" + style="fill:url(#ah)" + inkscape:connector-curvature="0" /> + d="m -84.361,47.981 a 33.4965,23.882356 0 1 1 -66.993,0 33.4965,23.882356 0 1 1 66.993,0 z" + transform="matrix(0.38042,-0.21691,0.14408,0.26268,59.09,52.157)" + id="path123" + style="opacity:0.4;fill:url(#an)" + inkscape:connector-curvature="0" /> + d="m -84.361,47.981 a 33.4965,23.882356 0 1 1 -66.993,0 33.4965,23.882356 0 1 1 66.993,0 z" + transform="matrix(0.38042,-0.21691,0.14408,0.26268,58.717,52.116)" + id="path125" + style="opacity:0.4;fill:url(#z)" + inkscape:connector-curvature="0" /> + d="m -84.361,47.981 a 33.4965,23.882356 0 1 1 -66.993,0 33.4965,23.882356 0 1 1 66.993,0 z" + transform="matrix(0.38042,-0.21691,0.14408,0.26268,58.717,52.116)" + id="path127" + style="opacity:0.4;fill:url(#aa)" + inkscape:connector-curvature="0" /> + d="m 33.46,83.158 c 0.11622,0.21188 0.53583,0.96658 0.6211,1.122 1.8994,3.4628 -2.2599,9.5246 -9.2939,13.535 -7.034,4.0106 -14.276,4.4577 -16.175,0.99497 -0.10266,-0.18716 -0.59317,-1.0869 -0.74024,-1.355 0.048724,0.54912 0.19007,1.0571 0.44752,1.5265 0.9842,1.7943 3.3607,2.5663 6.3496,2.383 2.9889,-0.1833 6.6184,-1.3189 10.182,-3.3506 3.5633,-2.0317 6.4077,-4.5743 8.1257,-7.0747 1.7179,-2.5004 2.3032,-4.968 1.319,-6.7623 -0.21456,-0.39116 -0.49658,-0.72505 -0.83492,-1.0191 z" + id="path129" + inkscape:connector-curvature="0" + style="fill:#cacaca" /> + d="m 29.794,81.293 c -3.206,-0.363 -7.69,0.753 -12.087,3.259 -7.034,4.011 -11.202,10.082 -9.3031,13.544 0.1425,0.26 0.3224,0.489 0.5228,0.705 -0.1043,-0.137 -0.2024,-0.272 -0.2861,-0.425 -1.8993,-3.462 2.2691,-9.533 9.3031,-13.544 6.504,-3.708 13.189,-4.367 15.662,-1.709 -0.781,-1.03 -2.116,-1.638 -3.812,-1.83 z" + id="path131" + inkscape:connector-curvature="0" + style="opacity:0.4;fill:#babdb6" /> + d="m 23.108,104.54 9.6297,16.635 c 5.7579,-2.6489 12.533,-8.8374 13.632,-12.946 l -9.38,-16.925 c -1.1577,6.0247 -8.2031,10.457 -13.883,13.239 z" + id="path133" + style="fill:url(#ag)" + inkscape:connector-curvature="0" /> + d="m -84.361,47.981 a 33.4965,23.882356 0 1 1 -66.993,0 33.4965,23.882356 0 1 1 66.993,0 z" + transform="matrix(0.37989,-0.21697,0.14389,0.26266,58.645,52.107)" + id="path135" + inkscape:connector-curvature="0" + style="fill:none;stroke:#ffffff;stroke-width:1.61269999;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:4" /> + d="m 7.6345,95.042 c -0.10733,0.92298 0.00976,1.7805 0.39891,2.5124 1.8376,3.456 8.6542,2.6038 15.641,-1.0594 1.8682,-0.97955 3.4115,-2.1613 3.8182,-2.5091 -2.9119,-1.8717 -18.781,-3.5503 -19.858,1.0561 z" + id="path137" + inkscape:connector-curvature="0" + style="fill:#b70000" /> + d="m 29.484,80.825 c -0.62002,-0.06894 -1.2913,-0.07484 -2.0036,-0.03099 -2.8491,0.17541 -6.3402,1.2615 -9.7932,3.2336 -3.453,1.9722 -6.1928,4.4399 -7.8303,6.827 -0.35762,0.52132 -0.65935,1.0438 -0.90883,1.5497 0.2277,-0.43679 0.50037,-0.87218 0.8074,-1.3198 1.6375,-2.3871 4.3771,-4.8676 7.8301,-6.8397 3.453,-1.9722 6.9442,-3.0582 9.7932,-3.2336 2.8491,-0.17541 5.0442,0.5423 5.9486,2.1932 0.62176,1.135 0.56323,2.5799 -0.06699,4.1434 0.71575,-1.6489 0.8196,-3.1722 0.1686,-4.3606 -0.67829,-1.2382 -2.0849,-1.9554 -3.945,-2.1622 z m 4.0663,7.2276 c -0.24118,0.46547 -0.52931,0.93211 -0.85275,1.4036 -1.725,2.5146 -4.5694,5.0704 -8.1405,7.11 -3.5712,2.0396 -7.1976,3.1817 -10.199,3.3665 -3.0013,0.18478 -5.3902,-0.59455 -6.3826,-2.4062 -0.6823,-1.2455 -0.61017,-2.8146 0.061924,-4.4866 -0.76023,1.7588 -0.87715,3.4012 -0.16353,4.7039 0.99243,1.8116 3.3813,2.591 6.3826,2.4062 3.0013,-0.18478 6.6277,-1.3269 10.199,-3.3665 3.5712,-2.0396 6.4157,-4.5827 8.1407,-7.0973 0.37395,-0.54512 0.69082,-1.0974 0.95417,-1.6336 z" + id="path139" + inkscape:connector-curvature="0" + style="fill-opacity:0.39431003" /> + d="m 29.69,80.732 c -0.62002,-0.06894 -1.2915,-0.08756 -2.0038,-0.04371 -2.8491,0.17541 -6.3402,1.2615 -9.7932,3.2336 -2.2089,1.2616 -4.1189,2.7318 -5.6439,4.2506 1.4707,-1.4082 3.2758,-2.7538 5.3342,-3.9294 3.453,-1.9722 6.9442,-3.0582 9.7932,-3.2336 2.8491,-0.17541 5.088,0.55309 5.9375,2.2337 0.80802,1.5986 0.18108,3.884 -1.4564,6.271 -0.56859,0.82887 -1.2068,1.5976 -2.0239,2.4221 0.95625,-0.92626 1.6916,-1.8074 2.3336,-2.7433 1.6375,-2.3871 2.335,-4.5686 1.4306,-6.2195 -0.678,-1.237 -2.047,-2.034 -3.908,-2.241 z m -18.094,7.3811 c -0.94214,0.92708 -1.7572,1.8759 -2.4041,2.8189 -1.725,2.5146 -2.3245,4.9972 -1.332,6.8088 0.99243,1.8116 3.3813,2.591 6.3826,2.4062 3.0013,-0.18478 6.6394,-1.3256 10.211,-3.3652 2.3864,-1.363 4.4379,-2.9547 6.0578,-4.6111 -1.5681,1.5407 -3.5161,3.0151 -5.7481,4.2899 -3.5712,2.0396 -7.1974,3.1944 -10.199,3.3792 -3.002,0.19 -5.3908,-0.607 -6.3832,-2.419 -0.9924,-1.811 -0.3929,-4.294 1.332,-6.808 0.5732,-0.835 1.2762,-1.674 2.0832,-2.499 z" + id="path141" + inkscape:connector-curvature="0" + style="fill-opacity:0.39431003" /> + d="m 23.108,104.54 9.6297,16.635 c 5.7579,-2.6489 12.533,-8.8374 13.632,-12.946 l -9.38,-16.93 c -1.1577,6.0247 -8.2031,10.457 -13.883,13.239 z" + id="path143" + style="fill:url(#al)" + inkscape:connector-curvature="0" /> + d="m 46.585,107.4 c 0.11481,0.20932 0.52934,0.95488 0.61359,1.1085 1.8764,3.4209 -2.2326,9.4093 -9.1814,13.371 -6.9489,3.9621 -14.103,4.4038 -15.98,0.98293 -0.10142,-0.18489 -0.58599,-1.0737 -0.73128,-1.3386 0.04813,0.54247 0.18777,1.0444 0.4421,1.508 0.97229,1.7726 3.32,2.5352 6.2728,2.3541 2.9527,-0.18108 6.5383,-1.3029 10.058,-3.31 3.5202,-2.0071 6.3302,-4.5189 8.0273,-6.9891 1.6971,-2.4702 2.2753,-4.9078 1.303,-6.6804 -0.21196,-0.38643 -0.49057,-0.71628 -0.82482,-1.0068 z" + id="path145" + style="opacity:0.78279;fill:url(#af)" + inkscape:connector-curvature="0" /> + d="m 46.412,107.2 c 0.11481,0.20932 0.52934,0.95488 0.61358,1.1085 1.8764,3.4209 -2.2326,9.4093 -9.1814,13.371 -6.9489,3.9621 -14.103,4.4038 -15.98,0.98292 -0.10142,-0.18489 -0.58599,-1.0737 -0.73128,-1.3386 0.04813,0.54247 0.18777,1.0444 0.4421,1.508 0.97229,1.7726 3.32,2.5352 6.2728,2.3541 2.9527,-0.18107 6.5383,-1.3029 10.058,-3.31 3.5202,-2.0071 6.3302,-4.5189 8.0273,-6.9891 1.6971,-2.4702 2.2753,-4.9078 1.303,-6.6804 -0.21196,-0.38643 -0.49057,-0.71627 -0.82481,-1.0068 z" + id="path147" + style="opacity:0.78279;fill:url(#ae)" + inkscape:connector-curvature="0" /> + d="m 6.0093,127.44 c 2.655,0.022 4.8939,-0.27986 5.4405,-0.26605 3.616,0.0913 12.279,-1.6267 8.8147,-3.7388 -3.7851,-2.3074 -14.189,-2.2454 -18.24,-0.0206 -4.4207,2.428 1.3297,4.0034 3.9843,4.0254 z" + id="path149" + inkscape:connector-curvature="0" + style="fill:#b90000;fill-rule:evenodd;stroke:#ae0000;stroke-width:0.29506999px" /> + d="m 5.9894,127.59 c 2.655,0.0219 4.904,-0.29498 5.4505,-0.27623 3.6491,0.12518 12.595,-1.6495 8.9242,-3.973 -3.7471,-2.3715 -14.288,-2.3472 -18.478,-1.9e-4 -4.401,2.4652 1.4491,4.2274 4.1036,4.2494 z" + id="path151" + style="opacity:0.88524996;fill:none;stroke:url(#linearGradient3137);stroke-width:0.03021" + inkscape:connector-curvature="0" /> + d="m 32.737,121.18 c 5.7579,-2.6489 12.533,-8.8374 13.632,-12.946 -6.7694,-12.005 -19.554,2.4904 -13.632,12.946 z" + id="path153" + style="opacity:0.43852001;fill:url(#ad)" + inkscape:connector-curvature="0" /> + d="m 14,99.675 c -2.2234,-0.05445 -3.0412,1.7745 -3.184,3.5536 -0.42678,5.3178 0.4632,9.0456 0.16561,13.3 -0.06036,0.86297 -1.5603,1.7306 -1.7366,-0.19189 -0.40911,-4.4614 0.28624,-7.592 -0.20289,-13.754 -0.162,-2.03 -0.7721,-3.988 -1.3073,-6.315" + id="path155" + inkscape:connector-curvature="0" + style="fill:#b70000;fill-rule:evenodd;stroke:#000000;stroke-width:0.039234" /> + d="m 8.3586,98.041 c 0.42645,1.7177 0.83004,3.2679 0.95688,4.8658 0.48913,6.1622 -0.20618,9.2954 0.20293,13.757 0.023488,0.25612 0.073383,0.46077 0.13732,0.62446 0.17107,-0.17904 0.28884,-0.40778 0.30502,-0.63905 0.29759,-4.2548 -0.6222,-7.9303 -0.19542,-13.248 0.11169,-1.3917 0.58734,-3.2122 1.8918,-3.599 -1.1037,-0.58622 -2.2392,-1.1509 -3.2985,-1.7608 z" + id="path157" + style="fill:url(#ak);fill-rule:evenodd" + inkscape:connector-curvature="0" /> + d="m 7.6345,95.042 c -0.10733,0.92298 0.00976,1.7805 0.39891,2.5124 1.8376,3.456 8.6542,2.6038 15.641,-1.0594 1.8682,-0.97955 3.4115,-2.1613 3.8182,-2.5091 -2.9119,-1.8717 -18.781,-3.5503 -19.858,1.0561 z" + id="path159" + style="fill:url(#ac)" + inkscape:connector-curvature="0" /> + d="m 5.9894,127.59 c 2.655,0.0219 4.904,-0.29498 5.4505,-0.27623 3.6491,0.12518 12.566,-1.6189 8.8943,-3.9424 -3.7471,-2.3715 -14.238,-2.3421 -18.429,0.005 -4.401,2.4652 1.4292,4.1918 4.0837,4.2138 z" + id="path161" + style="opacity:0.62705;fill:none;stroke:url(#linearGradient3139);stroke-width:0.10868" + inkscape:connector-curvature="0" /> + d="m 5.9894,127.59 c 2.655,0.0219 4.904,-0.29498 5.4505,-0.27623 3.6491,0.12518 12.498,-1.5125 8.817,-3.82 -3.7355,-2.3418 -14.104,-2.3114 -18.309,-0.002 -4.4209,2.4278 1.387,4.0766 4.0416,4.0985 z" + id="path163" + style="opacity:0.24589999;fill:none;stroke:url(#b);stroke-width:0.38330999" + inkscape:connector-curvature="0" /> + d="m 12.599,121.65 c -3.0669,-0.11835 -6.3077,0.19446 -8.6791,0.91147 -1.2154,1.1351 3.318,2.24 6.6542,2.3243 3.7933,0.0958 8.0875,-1.0156 7.3338,-2.4969 -1.5294,-0.41634 -3.3782,-0.6644 -5.309,-0.73889 z" + id="path165" + style="opacity:0.81967002;fill:url(#ab)" + inkscape:connector-curvature="0" /> + d="m 6.0093,127.44 c 2.655,0.022 4.8939,-0.27986 5.4405,-0.26605 3.616,0.0913 12.279,-1.6267 8.8147,-3.7388 -3.7851,-2.3074 -14.189,-2.2454 -18.24,-0.0206 -4.4207,2.428 1.3297,4.0034 3.9843,4.0254 z" + id="path167" + style="opacity:0.70082003;fill:url(#radialGradient3141);fill-rule:evenodd;stroke:url(#y);stroke-width:0.29506999px" + inkscape:connector-curvature="0" /> + id="g3143" + transform="matrix(1.2815648,0,0,1.2815648,64.140807,45.362525)"> + sodipodi:nodetypes="ccccc" + id="path2205" + d="m -15.929658,-8.3478112 c 0,0 -5.437059,-13.8983998 -19.071531,-18.4086998 l 2.209878,-3.2863 c 13.519108,4.4033 19.038487,20.3035998 19.038487,20.3035998 z" + style="fill:url(#linearGradient3147);fill-opacity:1;fill-rule:evenodd;stroke:none" + inkscape:connector-curvature="0" /> - - - - + sodipodi:nodetypes="ccccc" + id="path2408" + d="m -33.373685,-12.238811 4.076437,3.4638998 C -23.236742,-24.428911 -12.2844,-28.042811 -12.2844,-28.042811 l -2,-1.1786 c 0,0 -11.706729,2.1185 -19.089285,16.9826 z" + style="fill:url(#linearGradient3149);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" + inkscape:connector-curvature="0" /> diff --git a/eeschema/dialogs/dialog_edit_label_base.fbp b/eeschema/dialogs/dialog_edit_label_base.fbp index b49a834eee..636ed0d6b9 100644 --- a/eeschema/dialogs/dialog_edit_label_base.fbp +++ b/eeschema/dialogs/dialog_edit_label_base.fbp @@ -1,8 +1,8 @@ - + - + C++ 1 source_name @@ -14,73 +14,73 @@ none 1 dialog_edit_label_base - + . - + 1 1 1 0 - - - + + + 1 1 impl_virtual - - - + + + 0 wxID_ANY - - + + DialogLabelEditor_Base - + 359,347 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - + Text Editor - - + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + bMainSizer wxVERTICAL none @@ -94,7 +94,7 @@ 1 0 3 - + m_textControlSizer wxFLEX_GROWMODE_SPECIFIED protected @@ -105,55 +105,55 @@ wxRIGHT 0 - - + + 1 1 - - + + 0 wxID_ANY &Text: - - + + m_staticText1 protected - - - - + + + + Enter the text to be used within the schematic - + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -170,59 +170,59 @@ wxEXPAND|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_VALUESINGLE - + 0 - + m_textLabelSingleLine protected - - + + wxTE_PROCESS_ENTER - - - + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnEnterKey - - - + + + @@ -230,59 +230,59 @@ wxEXPAND|wxLEFT 1 - - + + 1 1 - - + + 0 wxID_VALUEMULTI - + 0 -1,60 m_textLabelMultiLine protected - - + + wxTE_MULTILINE|wxTE_PROCESS_ENTER - - - + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnEnterKey - - - + + + @@ -292,55 +292,55 @@ wxALIGN_CENTER_VERTICAL|wxRIGHT 0 - - + + 1 1 - - + + 0 wxID_ANY &Size: - - + + m_SizeTitle protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -348,7 +348,7 @@ wxEXPAND 1 - + bSizeCtrlSizer wxHORIZONTAL none @@ -357,59 +357,59 @@ wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT 0 - - + + 1 1 - - + + 0 wxID_SIZE - + 0 - + m_TextSize protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -417,55 +417,55 @@ wxALIGN_CENTER_VERTICAL|wxLEFT 0 - - + + 1 1 - - + + 0 wxID_ANY units - - + + m_staticSizeUnits protected - - - - - - + + + + + + wxFILTER_NONE wxDefaultValidator - - - - + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -477,7 +477,7 @@ wxEXPAND|wxLEFT|wxRIGHT|wxTOP 0 - + m_OptionsSizer wxHORIZONTAL none @@ -486,58 +486,58 @@ wxRIGHT|wxTOP 1 - + "Right" "Up" "Left" "Down" - + 1 1 - - + + 0 wxID_ANY O&rientation 1 - - + + m_TextOrient protected - + 0 - + wxRA_SPECIFY_COLS - - - + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -545,58 +545,58 @@ wxLEFT|wxRIGHT|wxTOP 1 - + "Normal" "Italic" "Bold" "Bold Italic" - + 1 1 - - + + 0 wxID_ANY St&yle 1 - - + + m_TextStyle protected - + 0 - + wxRA_SPECIFY_COLS - - - + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -604,58 +604,58 @@ wxALL|wxLEFT|wxTOP 1 - + "Input" "Output" "Bidirectional" "Tri-State" "Passive" - + 1 1 - - + + 0 wxID_ANY S&hape 1 - - + + m_TextShape protected - + 0 - + wxRA_SPECIFY_COLS - - - + + + wxFILTER_NONE wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

@@ -673,17 +673,17 @@ 1 0 0 - + m_sdbSizer1 protected - + OnCancelClick - - - + + + OnOkClick - - + +
diff --git a/eeschema/libedit_onrightclick.cpp b/eeschema/libedit_onrightclick.cpp index 501c446b2a..ca2f30c0d1 100644 --- a/eeschema/libedit_onrightclick.cpp +++ b/eeschema/libedit_onrightclick.cpp @@ -61,7 +61,7 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) { // If a tool is active, put menu "end tool" AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _( "End Tool" ), - KiBitmap( cancel_tool_xpm ) ); + KiBitmap( cursor_xpm ) ); PopMenu->AppendSeparator(); } } diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp index f693e10495..a214ba26df 100644 --- a/eeschema/menubar.cpp +++ b/eeschema/menubar.cpp @@ -210,7 +210,7 @@ void SCH_EDIT_FRAME::ReCreateMenuBar() editMenu->AppendSeparator(); AddMenuItem( editMenu, ID_SCHEMATIC_DELETE_ITEM_BUTT, _( "&Delete" ), HELP_DELETE_ITEMS, - KiBitmap( delete_body_xpm ) ); + KiBitmap( delete_xpm ) ); // Find editMenu->AppendSeparator(); diff --git a/eeschema/menubar_libedit.cpp b/eeschema/menubar_libedit.cpp index 86608ec469..e8b9045762 100644 --- a/eeschema/menubar_libedit.cpp +++ b/eeschema/menubar_libedit.cpp @@ -130,7 +130,7 @@ void LIB_EDIT_FRAME::ReCreateMenuBar() ID_LIBEDIT_DELETE_ITEM_BUTT, _( "&Delete" ), HELP_DELETE_ITEMS, - KiBitmap( delete_body_xpm ) ); + KiBitmap( delete_xpm ) ); // Menu View: wxMenu* viewMenu = new wxMenu; diff --git a/eeschema/onrightclick.cpp b/eeschema/onrightclick.cpp index 047e5f39d9..dcb7e54a44 100644 --- a/eeschema/onrightclick.cpp +++ b/eeschema/onrightclick.cpp @@ -109,7 +109,7 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) else { AddMenuItem( PopMenu, ID_CANCEL_CURRENT_COMMAND, _( "End Tool" ), - KiBitmap( cancel_tool_xpm ) ); + KiBitmap( cursor_xpm ) ); } PopMenu->AppendSeparator(); @@ -127,10 +127,11 @@ bool SCH_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) if( item == NULL ) { if( m_CurrentSheet->Last() != g_RootSheet ) + { AddMenuItem( PopMenu, ID_POPUP_SCH_LEAVE_SHEET, _( "Leave Sheet" ), KiBitmap( leave_sheet_xpm ) ); - - PopMenu->AppendSeparator(); + PopMenu->AppendSeparator(); + } return true; } diff --git a/eeschema/tool_lib.cpp b/eeschema/tool_lib.cpp index a2f58c56f0..bc0a91a0ff 100644 --- a/eeschema/tool_lib.cpp +++ b/eeschema/tool_lib.cpp @@ -89,7 +89,7 @@ void LIB_EDIT_FRAME::ReCreateVToolbar() m_drawToolBar->AddTool( ID_LIBEDIT_EXPORT_BODY_BUTT, wxEmptyString, KiBitmap( export_xpm ), _( "Export current drawing" ), wxITEM_CHECK ); - m_drawToolBar->AddTool( ID_LIBEDIT_DELETE_ITEM_BUTT, wxEmptyString, KiBitmap( delete_body_xpm ), + m_drawToolBar->AddTool( ID_LIBEDIT_DELETE_ITEM_BUTT, wxEmptyString, KiBitmap( delete_xpm ), HELP_DELETE_ITEMS, wxITEM_CHECK ); m_drawToolBar->Realize(); diff --git a/eeschema/tool_sch.cpp b/eeschema/tool_sch.cpp index 974a7d1445..53e5e107c7 100644 --- a/eeschema/tool_sch.cpp +++ b/eeschema/tool_sch.cpp @@ -254,7 +254,7 @@ void SCH_EDIT_FRAME::ReCreateVToolbar() _("Add a bitmap image"), wxITEM_CHECK ); m_drawToolBar->AddTool( ID_SCHEMATIC_DELETE_ITEM_BUTT, wxEmptyString, - KiBitmap( delete_body_xpm ), + KiBitmap( delete_xpm ), HELP_DELETE_ITEMS, wxITEM_CHECK ); // set icon paddings diff --git a/gerbview/onrightclick.cpp b/gerbview/onrightclick.cpp index 5bd97eb7da..7f100bf1ac 100644 --- a/gerbview/onrightclick.cpp +++ b/gerbview/onrightclick.cpp @@ -18,31 +18,33 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) BOARD_ITEM* DrawStruct = GetScreen()->GetCurItem(); wxString msg; bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE); + bool busy = DrawStruct && DrawStruct->GetFlags(); // Do not initiate a start block validation on menu. m_canvas->SetCanStartBlock( -1 ); // Simple location of elements where possible. - if( ( DrawStruct == NULL ) || ( DrawStruct->GetFlags() == 0 ) ) + if( !busy ) { DrawStruct = Locate( aPosition, CURSEUR_OFF_GRILLE ); + busy = DrawStruct && DrawStruct->GetFlags(); } // If command in progress, end command. if( GetToolId() != ID_NO_TOOL_SELECTED ) { - if( DrawStruct && DrawStruct->GetFlags() ) + if( busy ) AddMenuItem( PopMenu, ID_POPUP_CANCEL_CURRENT_COMMAND, _( "Cancel" ), KiBitmap( cancel_xpm ) ); else AddMenuItem( PopMenu, ID_POPUP_CLOSE_CURRENT_TOOL, - _( "End Tool" ), KiBitmap( cancel_tool_xpm ) ); + _( "End Tool" ), KiBitmap( cursor_xpm ) ); PopMenu->AppendSeparator(); } else { - if( (DrawStruct && DrawStruct->GetFlags()) || BlockActive ) + if( busy || BlockActive ) { if( BlockActive ) { @@ -67,10 +69,8 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) if( BlockActive ) return true; - if( DrawStruct == NULL ) - return true; - - GetScreen()->SetCurItem( DrawStruct ); + if( DrawStruct ) + GetScreen()->SetCurItem( DrawStruct ); return true; } diff --git a/include/bitmaps.h b/include/bitmaps.h index 602a00d2ac..d7da0aaafd 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -111,7 +111,6 @@ EXTERN_BITMAP( book_xpm ) EXTERN_BITMAP( break_bus_xpm ) EXTERN_BITMAP( break_line_xpm ) EXTERN_BITMAP( browse_files_xpm ) -EXTERN_BITMAP( cancel_tool_xpm ) EXTERN_BITMAP( cancel_xpm ) EXTERN_BITMAP( change_entry_orient_xpm ) EXTERN_BITMAP( checked_ok_xpm ) @@ -131,7 +130,6 @@ EXTERN_BITMAP( dashedline_xpm ) EXTERN_BITMAP( datasheet_xpm ) EXTERN_BITMAP( delete_arc_xpm ) EXTERN_BITMAP( delete_association_xpm ) -EXTERN_BITMAP( delete_body_xpm ) EXTERN_BITMAP( delete_bus_xpm ) EXTERN_BITMAP( delete_circle_xpm ) EXTERN_BITMAP( delete_connection_xpm ) diff --git a/pcbnew/menubar_modedit.cpp b/pcbnew/menubar_modedit.cpp index 514f333a89..054e27d00d 100644 --- a/pcbnew/menubar_modedit.cpp +++ b/pcbnew/menubar_modedit.cpp @@ -141,7 +141,7 @@ void FOOTPRINT_EDIT_FRAME::ReCreateMenuBar() // Delete items AddMenuItem( editMenu, ID_MODEDIT_DELETE_TOOL, _( "&Delete" ), _( "Delete objects with the eraser" ), - KiBitmap( delete_body_xpm ) ); + KiBitmap( delete_xpm ) ); // Separator editMenu->AppendSeparator(); diff --git a/pcbnew/menubar_pcbframe.cpp b/pcbnew/menubar_pcbframe.cpp index b49d8931c6..9f71b28a6d 100644 --- a/pcbnew/menubar_pcbframe.cpp +++ b/pcbnew/menubar_pcbframe.cpp @@ -265,7 +265,7 @@ void PCB_EDIT_FRAME::ReCreateMenuBar() // Delete AddMenuItem( editMenu, ID_PCB_DELETE_ITEM_BUTT, _( "&Delete" ), _( "Delete items" ), - KiBitmap( delete_body_xpm ) ); + KiBitmap( delete_xpm ) ); editMenu->AppendSeparator(); @@ -285,7 +285,7 @@ void PCB_EDIT_FRAME::ReCreateMenuBar() AddMenuItem( editMenu, ID_MENU_PCB_CLEAN, _( "&Cleanup Tracks and Vias" ), _( "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" ), - KiBitmap( delete_body_xpm ) ); + KiBitmap( delete_xpm ) ); // Swap Layers AddMenuItem( editMenu, ID_MENU_PCB_SWAP_LAYERS, diff --git a/pcbnew/modedit_onclick.cpp b/pcbnew/modedit_onclick.cpp index df85a41d06..d89e04092b 100644 --- a/pcbnew/modedit_onclick.cpp +++ b/pcbnew/modedit_onclick.cpp @@ -203,7 +203,7 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen KiBitmap( cancel_xpm ) ); else AddMenuItem( PopMenu, ID_POPUP_CLOSE_CURRENT_TOOL, _( "End Tool" ), - KiBitmap( cancel_tool_xpm ) ); + KiBitmap( cursor_xpm ) ); PopMenu->AppendSeparator(); } diff --git a/pcbnew/onrightclick.cpp b/pcbnew/onrightclick.cpp index dbd40b4aaa..dc5f5361b0 100644 --- a/pcbnew/onrightclick.cpp +++ b/pcbnew/onrightclick.cpp @@ -83,7 +83,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) else { AddMenuItem( aPopMenu, ID_POPUP_CLOSE_CURRENT_TOOL, - _( "End Tool" ), KiBitmap( cancel_tool_xpm ) ); + _( "End Tool" ), KiBitmap( cursor_xpm ) ); } aPopMenu->AppendSeparator(); @@ -203,7 +203,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) if( item->GetLayer() > LAST_COPPER_LAYER ) AddMenuItem( aPopMenu, ID_POPUP_PCB_DELETE_DRAWING_LAYER, - _( "Delete All Drawing on Layer" ), KiBitmap( delete_body_xpm ) ); + _( "Delete All Drawing on Layer" ), KiBitmap( delete_xpm ) ); } break; diff --git a/pcbnew/tool_modedit.cpp b/pcbnew/tool_modedit.cpp index 79d3439976..85bfc7580c 100644 --- a/pcbnew/tool_modedit.cpp +++ b/pcbnew/tool_modedit.cpp @@ -180,7 +180,7 @@ void FOOTPRINT_EDIT_FRAME::ReCreateVToolbar() wxITEM_CHECK ); m_drawToolBar->AddSeparator(); - m_drawToolBar->AddTool( ID_MODEDIT_DELETE_TOOL, wxEmptyString, KiBitmap( delete_body_xpm ), + m_drawToolBar->AddTool( ID_MODEDIT_DELETE_TOOL, wxEmptyString, KiBitmap( delete_xpm ), _( "Delete items" ), wxITEM_CHECK ); m_drawToolBar->AddTool( ID_MODEDIT_PLACE_GRID_COORD, wxEmptyString, diff --git a/pcbnew/tool_pcb.cpp b/pcbnew/tool_pcb.cpp index 6efe7c6405..3d389bbb64 100644 --- a/pcbnew/tool_pcb.cpp +++ b/pcbnew/tool_pcb.cpp @@ -448,7 +448,7 @@ void PCB_EDIT_FRAME::ReCreateVToolbar() _( "Add layer alignment target" ), wxITEM_CHECK ); m_drawToolBar->AddSeparator(); - m_drawToolBar->AddTool( ID_PCB_DELETE_ITEM_BUTT, wxEmptyString, KiBitmap( delete_body_xpm ), + m_drawToolBar->AddTool( ID_PCB_DELETE_ITEM_BUTT, wxEmptyString, KiBitmap( delete_xpm ), _( "Delete items" ), wxITEM_CHECK ); m_drawToolBar->AddSeparator(); From df0d018b4008e9c84684647f7b986f251db31ecb Mon Sep 17 00:00:00 2001 From: Andrey Fedorushkov Date: Tue, 20 Mar 2012 18:41:57 +0400 Subject: [PATCH 28/68] eeschema: fix sorting parts generate BOM "Single part per line" --- eeschema/component_references_lister.cpp | 19 +++++++++++++++++++ eeschema/dialogs/dialog_build_BOM.cpp | 4 ++-- eeschema/netlist.h | 22 ++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/eeschema/component_references_lister.cpp b/eeschema/component_references_lister.cpp index 3ecafd7da7..53aa8d00d7 100644 --- a/eeschema/component_references_lister.cpp +++ b/eeschema/component_references_lister.cpp @@ -106,6 +106,25 @@ bool SCH_REFERENCE_LIST::sortByRefAndValue( const SCH_REFERENCE& item1, return ii < 0; } +bool SCH_REFERENCE_LIST::sortByValueAndRef( const SCH_REFERENCE& item1, + const SCH_REFERENCE& item2 ) +{ + int ii = item1.CompareValue( item2 ); + if( ii == 0 ) + ii = RefDesStringCompare( item1.GetRef(), item2.GetRef() ); + if( ii == 0 ) + ii = item1.m_Unit - item2.m_Unit; + if( ii == 0 ) + ii = item1.m_SheetNum - item2.m_SheetNum; + if( ii == 0 ) + ii = item1.m_CmpPos.x - item2.m_CmpPos.x; + if( ii == 0 ) + ii = item1.m_CmpPos.y - item2.m_CmpPos.y; + if( ii == 0 ) + ii = item1.m_TimeStamp - item2.m_TimeStamp; + + return ii < 0; +} static bool engStrToDouble( wxString aStr, double* aDouble ) { diff --git a/eeschema/dialogs/dialog_build_BOM.cpp b/eeschema/dialogs/dialog_build_BOM.cpp index 0209fda40f..9a79c92ed0 100644 --- a/eeschema/dialogs/dialog_build_BOM.cpp +++ b/eeschema/dialogs/dialog_build_BOM.cpp @@ -427,8 +427,8 @@ void DIALOG_BUILD_BOM::CreatePartsList( const wxString& aFullFileName, bool aInc cmplist.RemoveSubComponentsFromList(); // sort component list by value - cmplist.SortByValueOnly( ); - PrintComponentsListByPart( f, cmplist,aIncludeSubComponents ); + cmplist.SortByRefAndValue( ); + PrintComponentsListByPart( f, cmplist, aIncludeSubComponents ); fclose( f ); } diff --git a/eeschema/netlist.h b/eeschema/netlist.h index cac43913c2..e274776c1a 100644 --- a/eeschema/netlist.h +++ b/eeschema/netlist.h @@ -376,6 +376,26 @@ public: sort( componentFlatList.begin(), componentFlatList.end(), sortByRefAndValue ); } + /** + * Function SortByValueAndRef + * sorts the list of references by value. + *

+ * Components are sorted in the following order: + *

    + *
  • Value of component.
  • + *
  • Numeric value of reference designator.
  • + *
  • Unit number when component has multiple parts.
  • + *
  • Sheet number.
  • + *
  • X coordinate position.
  • + *
  • Y coordinate position.
  • + *
+ *

+ */ + void SortByValueAndRef() + { + sort( componentFlatList.begin(), componentFlatList.end(), sortByValueAndRef ); + } + /** * Function SortByReferenceOnly * sorts the list of references by reference. @@ -454,6 +474,8 @@ private: static bool sortByRefAndValue( const SCH_REFERENCE& item1, const SCH_REFERENCE& item2 ); + static bool sortByValueAndRef( const SCH_REFERENCE& item1, const SCH_REFERENCE& item2 ); + static bool sortByXPosition( const SCH_REFERENCE& item1, const SCH_REFERENCE& item2 ); static bool sortByYPosition( const SCH_REFERENCE& item1, const SCH_REFERENCE& item2 ); From cdc07b5d4e2bb378c01f602a733d5124a5882f91 Mon Sep 17 00:00:00 2001 From: Andrey Fedorushkov Date: Tue, 20 Mar 2012 19:19:07 +0400 Subject: [PATCH 29/68] eeschema: add forgotten major fix in bzr3471 --- eeschema/dialogs/dialog_build_BOM.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eeschema/dialogs/dialog_build_BOM.cpp b/eeschema/dialogs/dialog_build_BOM.cpp index 9a79c92ed0..54a436992c 100644 --- a/eeschema/dialogs/dialog_build_BOM.cpp +++ b/eeschema/dialogs/dialog_build_BOM.cpp @@ -427,7 +427,7 @@ void DIALOG_BUILD_BOM::CreatePartsList( const wxString& aFullFileName, bool aInc cmplist.RemoveSubComponentsFromList(); // sort component list by value - cmplist.SortByRefAndValue( ); + cmplist.SortByValueAndRef( ); PrintComponentsListByPart( f, cmplist, aIncludeSubComponents ); fclose( f ); From da2019385296edaa95c422192ea91d5fcaa69662 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 20 Mar 2012 21:22:38 +0100 Subject: [PATCH 30/68] Pcbnew: Allows an offset for SMD type (and CONNECTOR type) pads. --- pcbnew/class_drawsegment.cpp | 2 +- pcbnew/dialogs/dialog_pad_properties.cpp | 79 ++++++++++++++---------- 2 files changed, 49 insertions(+), 32 deletions(-) diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 8f2535cd06..6b3f1cac05 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -1,7 +1,7 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2004 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index b4cfcf6d73..20c0352886 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -1,8 +1,32 @@ /*******************************************************************/ /* dialog_pad_properties.cpp: Pad editing functions and dialog box */ -/* see also dialog_pad_properties.xxx (built with wxFormBuilder) */ +/* see also dialog_pad_properties_base.xxx (built with wxFormBuilder) */ /*******************************************************************/ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2012 Jean-Pierre Charras + * Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + #include #include #include @@ -19,6 +43,7 @@ #include #include +#include #include #include @@ -58,7 +83,7 @@ static long Std_Pad_Layers[] = { * class DIALOG_PAD_PROPERTIES, derived from DIALOG_PAD_PROPERTIES_BASE, * created by wxFormBuilder */ -class DIALOG_PAD_PROPERTIES : public DIALOG_PAD_PROPERTIES_BASE +DIALOG_EXTEND_WITH_SHIM( DIALOG_PAD_PROPERTIES, DIALOG_PAD_PROPERTIES_BASE ) { public: DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aPad ); @@ -69,23 +94,14 @@ public: private: PCB_BASE_FRAME* m_Parent; - D_PAD* m_CurrentPad; // pad currently being edited - D_PAD* m_dummyPad; // a working copy used to show changes - BOARD* m_Board; - D_PAD& m_Pad_Master; - bool m_isFlipped; // true if the parent footprint (therefore pads) is flipped (mirrored) // in this case, some Y coordinates values must be negated - bool m_canUpdate; - static wxPoint prevPosition; - static wxSize prevSize; - void initValues(); bool PadValuesOK(); ///< test if all values are acceptable for the pad @@ -116,12 +132,8 @@ private: }; -wxPoint DIALOG_PAD_PROPERTIES::prevPosition( -1, -1 ); -wxSize DIALOG_PAD_PROPERTIES::prevSize; - - DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aPad ) : - DIALOG_PAD_PROPERTIES_BASE( aParent ), + DIALOG_PAD_PROPERTIES_BASE_SHIM( aParent ), m_Pad_Master( aParent->GetBoard()->GetDesignSettings().m_Pad_Master ) { m_canUpdate = false; @@ -140,12 +152,6 @@ DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aP m_sdbSizer1OK->SetDefault(); GetSizer()->SetSizeHints( this ); - if( prevPosition.x != -1 ) - SetSize( prevPosition.x, prevPosition.y, - prevSize.x, prevSize.y ); - else - Center(); - m_PadNumCtrl->SetFocus(); m_canUpdate = true; } @@ -208,6 +214,13 @@ void DIALOG_PAD_PROPERTIES::OnPaintShowPanel( wxPaintEvent& event ) GRResetPenAndBrush( &dc ); m_dummyPad->DrawShape( NULL, &dc, drawInfo ); + // Draw X and Y axis. + // this is particularly useful to show the reference position of pads + // with offset and no hole + int width = 0; + GRLine( NULL, &dc, -dim, 0, dim, 0, width, BLUE ); // X axis + GRLine( NULL, &dc, 0, -dim, 0, dim, width, BLUE ); // Y axis + event.Skip(); } @@ -673,8 +686,13 @@ if you do not want this pad plotted in gerber files"); } } - if( m_dummyPad->GetSize().x / 2 <= ABS( m_dummyPad->GetOffset().x ) || - m_dummyPad->GetSize().y / 2 <= ABS( m_dummyPad->GetOffset().y ) ) + wxPoint max_size; + max_size.x = ABS( m_dummyPad->GetOffset().x ); + max_size.y = ABS( m_dummyPad->GetOffset().y ); + max_size.x += m_dummyPad->GetDrillSize().x / 2; + max_size.y += m_dummyPad->GetDrillSize().y / 2; + if( ( m_dummyPad->GetSize().x / 2 <= max_size.x ) || + ( m_dummyPad->GetSize().y / 2 <= max_size.y ) ) { error_msgs.Add( _( "Incorrect value for pad offset" ) ); } @@ -719,9 +737,6 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) bool rastnestIsChanged = false; int isign = m_isFlipped ? -1 : 1; - prevPosition = GetPosition(); - prevSize = GetSize(); - TransfertDataToPad( &m_Pad_Master ); if( m_CurrentPad ) // Set current Pad parameters @@ -999,8 +1014,12 @@ bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad ) case PAD_CONN: case PAD_SMD: - // Offset is a translation of border relative to hole. SMD has no hole. - aPad->SetOffset( wxPoint( 0, 0 ) ); + // SMD and PAD_CONN has no hole. + // basically, SMD and PAD_CONN are same type of pads + // PAD_CONN has just a default non technical layers that differs frm SMD + // and are intended to be used in virtual edge board connectors + // However we can accept a non null offset, + // mainly to allow complex pads build from a set of from basic pad shapes aPad->SetDrillSize( wxSize( 0, 0 ) ); break; @@ -1078,7 +1097,5 @@ void DIALOG_PAD_PROPERTIES::OnValuesChanged( wxCommandEvent& event ) void DIALOG_PAD_PROPERTIES::OnCancelButtonClick( wxCommandEvent& event ) { - prevPosition = GetPosition(); - prevSize = GetSize(); EndModal( wxID_CANCEL ); } From 0d62f4706a333490535befe05ffce60eedc2f8bb Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Thu, 22 Mar 2012 02:02:49 -0500 Subject: [PATCH 31/68] Add include/dialog_shim.h and common/dialog_shim.cpp for use by wxformbuilder's "subclass a wxDialog" support. This works, but in my version of wxformbuilder there is a bug which does not properly show the subclass property, even though it is still in play. This happens after saving then loading the *.fbp file. So it is a nuisance bug, but does not affect functionality. --- common/CMakeLists.txt | 1 + common/dialog_shim.cpp | 90 + eeschema/dialogs/dialog_lib_edit_pin.cpp | 32 +- eeschema/dialogs/dialog_lib_edit_pin.h | 4 - eeschema/dialogs/dialog_lib_edit_pin_base.cpp | 423 +- eeschema/dialogs/dialog_lib_edit_pin_base.fbp | 4761 +++++++++-------- eeschema/dialogs/dialog_lib_edit_pin_base.h | 202 +- eeschema/pinedit.cpp | 24 +- include/dialog_shim.h | 59 + 9 files changed, 2864 insertions(+), 2732 deletions(-) create mode 100644 common/dialog_shim.cpp create mode 100644 include/dialog_shim.h diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index d0daea73f5..68d100c99b 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -48,6 +48,7 @@ set(COMMON_SRCS confirm.cpp copy_to_clipboard.cpp dcsvg.cpp + dialog_shim.cpp displlst.cpp dlist.cpp drawframe.cpp diff --git a/common/dialog_shim.cpp b/common/dialog_shim.cpp new file mode 100644 index 0000000000..95b282c79b --- /dev/null +++ b/common/dialog_shim.cpp @@ -0,0 +1,90 @@ + +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck + * Copyright (C) 2012 KiCad Developers, see CHANGELOG.TXT for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include + + +DIALOG_SHIM::DIALOG_SHIM( wxWindow* aParent, wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : + wxDialog( aParent, id, title, pos, size, style, name ) +{ + // linux wxGTK needed this at one time to allow the ESCAPE key to close a wxDialog window. + SetFocus(); +} + + +// our hashtable is an implementation secret, don't need or want it in a header file +#include +#include // EDA_RECT +#include + + +/// hashtable with key: C string and value: EDA_RECT. +/// The key is the classname of the derived wxformbuilder dialog +WX_DECLARE_HASH_MAP( char*, EDA_RECT, wxStringHash, wxStringEqual, RECT_MAP ); +static RECT_MAP class_map; + +bool DIALOG_SHIM::Show( bool show ) +{ + bool ret; + const char* classname = typeid(*this).name(); + + // Show or hide the window. If hiding, save current position and size. + // If showing, use previous position and size. + if( show ) + { + ret = wxDialog::Show( show ); + + // classname is key, returns a zeroed out default EDA_RECT if none existed before. + EDA_RECT r = class_map[ classname ]; + + if( r.GetSize().x != 0 && r.GetSize().y != 0 ) + SetSize( r.GetPosition().x, r.GetPosition().y, r.GetSize().x, r.GetSize().y, 0 ); + } + else + { + // Save the dialog's position & size before hiding, using classname as key + EDA_RECT r( wxDialog::GetPosition(), wxDialog::GetSize() ); + class_map[ classname ] = r; + + ret = wxDialog::Show( show ); + } + return ret; +} + +/* +const wxSize& DIALOG_SHIM::GetLastSize() +{ + const char* classname = typeid(*this).name(); + return class_map[ classname ].GetSize(); +} + + +const wxPoint& DIALOG_SHIM::GetLastPosition() +{ + const char* classname = typeid(*this).name(); + return class_map[ classname ].GetPosition(); +} +*/ diff --git a/eeschema/dialogs/dialog_lib_edit_pin.cpp b/eeschema/dialogs/dialog_lib_edit_pin.cpp index 461eaba2c2..c8676c2b8c 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin.cpp +++ b/eeschema/dialogs/dialog_lib_edit_pin.cpp @@ -7,11 +7,6 @@ #include -// dialog should remember its previous screen position and size -// Not also if the defaut size is > s_LastSize, default size is used -wxPoint DIALOG_LIB_EDIT_PIN::s_LastPos( -1, -1 ); -wxSize DIALOG_LIB_EDIT_PIN::s_LastSize; - DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN( wxWindow* parent, LIB_PIN* aPin ) : DIALOG_LIB_EDIT_PIN_BASE( parent ) { @@ -25,31 +20,17 @@ DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN( wxWindow* parent, LIB_PIN* aPin ) : m_panelShowPin->SetBackgroundColour( MakeColour( g_DrawBgColor ) ); - /* Required to make escape key work correctly in wxGTK. */ - SetFocus(); // Set tab order - m_textPadName-> MoveAfterInTabOrder(m_textPinName); + m_textPadName->MoveAfterInTabOrder(m_textPinName); m_sdbSizerButtonsOK->SetDefault(); } + DIALOG_LIB_EDIT_PIN::~DIALOG_LIB_EDIT_PIN() { delete m_dummyPin; } -void DIALOG_LIB_EDIT_PIN::SetLastSizeAndPosition() -{ - if( s_LastPos.x != -1 ) - { - wxSize defaultSize = GetSize(); - if( s_LastSize.x < defaultSize.x ) - s_LastSize.x = defaultSize.x; - SetSize( s_LastSize ); - SetPosition( s_LastPos ); - } - else - Center(); -} /* * Draw (on m_panelShowPin) the pin currently edited @@ -92,25 +73,16 @@ void DIALOG_LIB_EDIT_PIN::OnPaintShowPanel( wxPaintEvent& event ) void DIALOG_LIB_EDIT_PIN::OnCloseDialog( wxCloseEvent& event ) { - // Save the dialog's position - s_LastPos = GetPosition(); - s_LastSize = GetSize(); EndModal( wxID_CANCEL ); } void DIALOG_LIB_EDIT_PIN::OnCancelButtonClick( wxCommandEvent& event ) { - // Save the dialog's position - s_LastPos = GetPosition(); - s_LastSize = GetSize(); EndModal( wxID_CANCEL ); } void DIALOG_LIB_EDIT_PIN::OnOKButtonClick( wxCommandEvent& event ) { - // Save the dialog's position - s_LastPos = GetPosition(); - s_LastSize = GetSize(); EndModal( wxID_OK ); } diff --git a/eeschema/dialogs/dialog_lib_edit_pin.h b/eeschema/dialogs/dialog_lib_edit_pin.h index e41f2d2a6d..f434ee66c1 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin.h +++ b/eeschema/dialogs/dialog_lib_edit_pin.h @@ -13,9 +13,6 @@ /** Implementing DIALOG_LIB_EDIT_PIN_BASE */ class DIALOG_LIB_EDIT_PIN : public DIALOG_LIB_EDIT_PIN_BASE { - static wxSize s_LastSize; ///< last position and size - static wxPoint s_LastPos; - LIB_PIN * m_dummyPin; // a working copy used to show changes public: @@ -23,7 +20,6 @@ public: DIALOG_LIB_EDIT_PIN( wxWindow* parent, LIB_PIN* aPin ); ~DIALOG_LIB_EDIT_PIN(); - void SetLastSizeAndPosition(); void OnCloseDialog( wxCloseEvent& event ); void OnCancelButtonClick( wxCommandEvent& event ); void OnOKButtonClick( wxCommandEvent& event ); diff --git a/eeschema/dialogs/dialog_lib_edit_pin_base.cpp b/eeschema/dialogs/dialog_lib_edit_pin_base.cpp index f92641f795..791811d363 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin_base.cpp +++ b/eeschema/dialogs/dialog_lib_edit_pin_base.cpp @@ -1,207 +1,216 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "wx/bmpcbox.h" - -#include "dialog_lib_edit_pin_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* mainSizer; - mainSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bUpperSizer; - bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bLeftSizer; - bLeftSizer = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgSizerPins; - fgSizerPins = new wxFlexGridSizer( 5, 2, 0, 0 ); - fgSizerPins->AddGrowableCol( 1 ); - fgSizerPins->SetFlexibleDirection( wxBOTH ); - fgSizerPins->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); - - m_staticTextPinName = new wxStaticText( this, wxID_ANY, _("Pin &name:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextPinName->Wrap( -1 ); - fgSizerPins->Add( m_staticTextPinName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_textPinName = new wxTextCtrl( this, ID_M_TEXTPINNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerPins->Add( m_textPinName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); - - m_staticTextPadName = new wxStaticText( this, ID_M_STATICTEXTPADNAME, _("Pin n&umber:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextPadName->Wrap( -1 ); - m_staticTextPadName->SetToolTip( _("Pin number: 1 to 4 ASCII letters and/or digits") ); - - fgSizerPins->Add( m_staticTextPadName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_textPadName = new wxTextCtrl( this, ID_M_TEXTPADNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerPins->Add( m_textPadName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); - - m_staticTextOrient = new wxStaticText( this, wxID_ANY, _("&Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextOrient->Wrap( -1 ); - fgSizerPins->Add( m_staticTextOrient, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_choiceOrientation = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizerPins->Add( m_choiceOrientation, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - m_staticTextEType = new wxStaticText( this, wxID_ANY, _("&Electrical type:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextEType->Wrap( -1 ); - m_staticTextEType->SetToolTip( _("Used by the ERC.") ); - - fgSizerPins->Add( m_staticTextEType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_choiceElectricalType = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizerPins->Add( m_choiceElectricalType, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - m_staticTextGstyle = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextGstyle->Wrap( -1 ); - fgSizerPins->Add( m_staticTextGstyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_choiceStyle = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizerPins->Add( m_choiceStyle, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - bLeftSizer->Add( fgSizerPins, 0, wxALL|wxEXPAND, 5 ); - - wxBoxSizer* boarderSizer; - boarderSizer = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSizerPinSharing; - sbSizerPinSharing = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Sharing") ), wxVERTICAL ); - - m_checkApplyToAllParts = new wxCheckBox( this, wxID_ANY, _("Shared by all &parts in component"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerPinSharing->Add( m_checkApplyToAllParts, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_checkApplyToAllConversions = new wxCheckBox( this, wxID_ANY, _("Shared by all body &styles (DeMorgan)"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerPinSharing->Add( m_checkApplyToAllConversions, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - boarderSizer->Add( sbSizerPinSharing, 0, wxEXPAND|wxALL, 5 ); - - wxStaticBoxSizer* sbSizerSchematicProperties; - sbSizerSchematicProperties = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Schematic Properties") ), wxVERTICAL ); - - m_checkShow = new wxCheckBox( this, wxID_ANY, _("&Visible"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkShow->SetValue(true); - sbSizerSchematicProperties->Add( m_checkShow, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - boarderSizer->Add( sbSizerSchematicProperties, 0, wxEXPAND|wxALL, 5 ); - - bLeftSizer->Add( boarderSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); - - bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 ); - - wxBoxSizer* bRightSizer; - bRightSizer = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgSizerTextsSizes; - fgSizerTextsSizes = new wxFlexGridSizer( 3, 3, 0, 0 ); - fgSizerTextsSizes->AddGrowableCol( 1 ); - fgSizerTextsSizes->SetFlexibleDirection( wxBOTH ); - fgSizerTextsSizes->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); - - m_staticTextNameSize = new wxStaticText( this, ID_M_STATICTEXTNAMESIZE, _("N&ame text size:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextNameSize->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticTextNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_textPinNameTextSize = new wxTextCtrl( this, ID_M_TEXTPINNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerTextsSizes->Add( m_textPinNameTextSize, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); - - m_staticNameTextSizeUnits = new wxStaticText( this, ID_M_STATICNAMETEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticNameTextSizeUnits->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticNameTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_staticTextPadNameSize = new wxStaticText( this, ID_M_STATICTEXTPADNAMESIZE, _("Number te&xt size:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextPadNameSize->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticTextPadNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_textPadNameTextSize = new wxTextCtrl( this, ID_M_TEXTPADNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerTextsSizes->Add( m_textPadNameTextSize, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND, 3 ); - - m_staticNumberTextSizeUnits = new wxStaticText( this, ID_M_STATICNUMBERTEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticNumberTextSizeUnits->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticNumberTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_staticTextPinLen = new wxStaticText( this, ID_M_STATICTEXTPINLEN, _("&Length:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextPinLen->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticTextPinLen, 0, wxALL, 5 ); - - m_textLength = new wxTextCtrl( this, ID_M_TEXTLENGTH, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerTextsSizes->Add( m_textLength, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); - - m_staticLengthUnits = new wxStaticText( this, ID_M_STATICLENGTHUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticLengthUnits->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticLengthUnits, 0, wxALL, 5 ); - - bRightSizer->Add( fgSizerTextsSizes, 0, wxALL|wxEXPAND, 5 ); - - m_panelShowPin = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); - m_panelShowPin->SetMinSize( wxSize( 150,150 ) ); - - bRightSizer->Add( m_panelShowPin, 1, wxEXPAND | wxALL, 5 ); - - bUpperSizer->Add( bRightSizer, 1, wxEXPAND|wxRIGHT, 5 ); - - mainSizer->Add( bUpperSizer, 1, wxEXPAND, 5 ); - - m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - mainSizer->Add( m_staticline1, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_sdbSizerButtons = new wxStdDialogButtonSizer(); - m_sdbSizerButtonsOK = new wxButton( this, wxID_OK ); - m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK ); - m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel ); - m_sdbSizerButtons->Realize(); - mainSizer->Add( m_sdbSizerButtons, 0, wxALL|wxALIGN_RIGHT, 5 ); - - this->SetSizer( mainSizer ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCloseDialog ) ); - m_textPinName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPadName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceOrientation->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceElectricalType->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceStyle->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkApplyToAllParts->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkApplyToAllConversions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkShow->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPinNameTextSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPadNameTextSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textLength->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_panelShowPin->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPaintShowPanel ), NULL, this ); - m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCancelButtonClick ), NULL, this ); - m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnOKButtonClick ), NULL, this ); -} - -DIALOG_LIB_EDIT_PIN_BASE::~DIALOG_LIB_EDIT_PIN_BASE() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCloseDialog ) ); - m_textPinName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPadName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceOrientation->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceElectricalType->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceStyle->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkApplyToAllParts->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkApplyToAllConversions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkShow->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPinNameTextSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPadNameTextSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textLength->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_panelShowPin->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPaintShowPanel ), NULL, this ); - m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCancelButtonClick ), NULL, this ); - m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnOKButtonClick ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_lib_edit_pin_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* mainSizer; + mainSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bUpperSizer; + bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bLeftSizer; + bLeftSizer = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgSizerPins; + fgSizerPins = new wxFlexGridSizer( 5, 2, 0, 0 ); + fgSizerPins->AddGrowableCol( 1 ); + fgSizerPins->SetFlexibleDirection( wxBOTH ); + fgSizerPins->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); + + m_staticTextPinName = new wxStaticText( this, wxID_ANY, _("Pin &name:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextPinName->Wrap( -1 ); + fgSizerPins->Add( m_staticTextPinName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_textPinName = new wxTextCtrl( this, ID_M_TEXTPINNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_TAB ); + fgSizerPins->Add( m_textPinName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); + + m_staticTextPadName = new wxStaticText( this, ID_M_STATICTEXTPADNAME, _("Pin n&umber:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextPadName->Wrap( -1 ); + m_staticTextPadName->SetToolTip( _("Pin number: 1 to 4 ASCII letters and/or digits") ); + + fgSizerPins->Add( m_staticTextPadName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_textPadName = new wxTextCtrl( this, ID_M_TEXTPADNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_TAB ); + fgSizerPins->Add( m_textPadName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); + + m_staticTextOrient = new wxStaticText( this, wxID_ANY, _("&Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextOrient->Wrap( -1 ); + fgSizerPins->Add( m_staticTextOrient, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_choiceOrientation = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + fgSizerPins->Add( m_choiceOrientation, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + m_staticTextEType = new wxStaticText( this, wxID_ANY, _("&Electrical type:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextEType->Wrap( -1 ); + m_staticTextEType->SetToolTip( _("Used by the ERC.") ); + + fgSizerPins->Add( m_staticTextEType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_choiceElectricalType = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + fgSizerPins->Add( m_choiceElectricalType, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + m_staticTextGstyle = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextGstyle->Wrap( -1 ); + fgSizerPins->Add( m_staticTextGstyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_choiceStyle = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + fgSizerPins->Add( m_choiceStyle, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + + bLeftSizer->Add( fgSizerPins, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* boarderSizer; + boarderSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizerPinSharing; + sbSizerPinSharing = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Sharing") ), wxVERTICAL ); + + m_checkApplyToAllParts = new wxCheckBox( this, wxID_ANY, _("Shared by all &parts in component"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPinSharing->Add( m_checkApplyToAllParts, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_checkApplyToAllConversions = new wxCheckBox( this, wxID_ANY, _("Shared by all body &styles (DeMorgan)"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPinSharing->Add( m_checkApplyToAllConversions, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + + boarderSizer->Add( sbSizerPinSharing, 0, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbSizerSchematicProperties; + sbSizerSchematicProperties = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Schematic Properties") ), wxVERTICAL ); + + m_checkShow = new wxCheckBox( this, wxID_ANY, _("&Visible"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkShow->SetValue(true); + sbSizerSchematicProperties->Add( m_checkShow, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + + boarderSizer->Add( sbSizerSchematicProperties, 0, wxEXPAND|wxALL, 5 ); + + + bLeftSizer->Add( boarderSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); + + + bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 ); + + wxBoxSizer* bRightSizer; + bRightSizer = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgSizerTextsSizes; + fgSizerTextsSizes = new wxFlexGridSizer( 3, 3, 0, 0 ); + fgSizerTextsSizes->AddGrowableCol( 1 ); + fgSizerTextsSizes->SetFlexibleDirection( wxBOTH ); + fgSizerTextsSizes->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); + + m_staticTextNameSize = new wxStaticText( this, ID_M_STATICTEXTNAMESIZE, _("N&ame text size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextNameSize->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticTextNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_textPinNameTextSize = new wxTextCtrl( this, ID_M_TEXTPINNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerTextsSizes->Add( m_textPinNameTextSize, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); + + m_staticNameTextSizeUnits = new wxStaticText( this, ID_M_STATICNAMETEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticNameTextSizeUnits->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticNameTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_staticTextPadNameSize = new wxStaticText( this, ID_M_STATICTEXTPADNAMESIZE, _("Number te&xt size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextPadNameSize->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticTextPadNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_textPadNameTextSize = new wxTextCtrl( this, ID_M_TEXTPADNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerTextsSizes->Add( m_textPadNameTextSize, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND, 3 ); + + m_staticNumberTextSizeUnits = new wxStaticText( this, ID_M_STATICNUMBERTEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticNumberTextSizeUnits->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticNumberTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_staticTextPinLen = new wxStaticText( this, ID_M_STATICTEXTPINLEN, _("&Length:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextPinLen->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticTextPinLen, 0, wxALL, 5 ); + + m_textLength = new wxTextCtrl( this, ID_M_TEXTLENGTH, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerTextsSizes->Add( m_textLength, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); + + m_staticLengthUnits = new wxStaticText( this, ID_M_STATICLENGTHUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticLengthUnits->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticLengthUnits, 0, wxALL, 5 ); + + + bRightSizer->Add( fgSizerTextsSizes, 0, wxALL|wxEXPAND, 5 ); + + m_panelShowPin = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); + m_panelShowPin->SetMinSize( wxSize( 150,150 ) ); + + bRightSizer->Add( m_panelShowPin, 1, wxEXPAND | wxALL, 5 ); + + + bUpperSizer->Add( bRightSizer, 1, wxEXPAND|wxRIGHT, 5 ); + + + mainSizer->Add( bUpperSizer, 1, wxEXPAND, 5 ); + + m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + mainSizer->Add( m_staticline1, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_sdbSizerButtons = new wxStdDialogButtonSizer(); + m_sdbSizerButtonsOK = new wxButton( this, wxID_OK ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK ); + m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel ); + m_sdbSizerButtons->Realize(); + + mainSizer->Add( m_sdbSizerButtons, 0, wxALL|wxALIGN_RIGHT, 5 ); + + + this->SetSizer( mainSizer ); + this->Layout(); + mainSizer->Fit( this ); + + this->Centre( wxBOTH ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCloseDialog ) ); + m_textPinName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPadName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceOrientation->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceElectricalType->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceStyle->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkApplyToAllParts->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkApplyToAllConversions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkShow->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPinNameTextSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPadNameTextSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textLength->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_panelShowPin->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPaintShowPanel ), NULL, this ); + m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCancelButtonClick ), NULL, this ); + m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnOKButtonClick ), NULL, this ); +} + +DIALOG_LIB_EDIT_PIN_BASE::~DIALOG_LIB_EDIT_PIN_BASE() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCloseDialog ) ); + m_textPinName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPadName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceOrientation->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceElectricalType->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceStyle->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkApplyToAllParts->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkApplyToAllConversions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkShow->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPinNameTextSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPadNameTextSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textLength->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_panelShowPin->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPaintShowPanel ), NULL, this ); + m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCancelButtonClick ), NULL, this ); + m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnOKButtonClick ), NULL, this ); + +} diff --git a/eeschema/dialogs/dialog_lib_edit_pin_base.fbp b/eeschema/dialogs/dialog_lib_edit_pin_base.fbp index 11e510a8fd..7ecf136108 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin_base.fbp +++ b/eeschema/dialogs/dialog_lib_edit_pin_base.fbp @@ -1,2378 +1,2383 @@ - - - - - - C++ - 1 - source_name - 0 - res - UTF-8 - connect - dialog_lib_edit_pin_base - 1000 - none - 1 - dialog_lib_edit_pin - - . - - 1 - 1 - 1 - 0 - - 1 - 1 - 1 - 1 - 0 - - - - - 1 - wxBOTH - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - DIALOG_LIB_EDIT_PIN_BASE - 1 - - - 1 - - - Resizable - - 1 - 476,372 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Pin Properties - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - OnCloseDialog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mainSizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - bUpperSizer - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - - bLeftSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 2 - wxBOTH - 1 - - 0 - - fgSizerPins - wxFLEX_GROWMODE_ALL - none - 5 - 0 - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pin &name: - - - 0 - - - 0 - - 1 - m_staticTextPinName - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTPINNAME - - - 0 - - 0 - - 0 - - 1 - m_textPinName - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICTEXTPADNAME - Pin n&umber: - - - 0 - - - 0 - - 1 - m_staticTextPadName - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Pin number: 1 to 4 ASCII letters and/or digits - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTPADNAME - - - 0 - - 0 - - 0 - - 1 - m_textPadName - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - &Orientation: - - - 0 - - - 0 - - 1 - m_staticTextOrient - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_choiceOrientation - 1 - - - protected - 1 - - - Resizable - - 1 - - - wxBitmapComboBox; wx/bmpcbox.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - &Electrical type: - - - 0 - - - 0 - - 1 - m_staticTextEType - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Used by the ERC. - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_choiceElectricalType - 1 - - - protected - 1 - - - Resizable - - 1 - - - wxBitmapComboBox; wx/bmpcbox.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Graphic &Style: - - - 0 - - - 0 - - 1 - m_staticTextGstyle - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_choiceStyle - 1 - - - protected - 1 - - - Resizable - - 1 - - - wxBitmapComboBox; wx/bmpcbox.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - - boarderSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Sharing - - sbSizerPinSharing - wxVERTICAL - none - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shared by all &parts in component - - - 0 - - - 0 - - 1 - m_checkApplyToAllParts - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shared by all body &styles (DeMorgan) - - - 0 - - - 0 - - 1 - m_checkApplyToAllConversions - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Schematic Properties - - sbSizerSchematicProperties - wxVERTICAL - none - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - &Visible - - - 0 - - - 0 - - 1 - m_checkShow - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxRIGHT - 1 - - - bRightSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 3 - wxBOTH - 1 - - 0 - - fgSizerTextsSizes - wxFLEX_GROWMODE_ALL - none - 3 - 0 - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICTEXTNAMESIZE - N&ame text size: - - - 0 - - - 0 - - 1 - m_staticTextNameSize - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTPINNAMETEXTSIZE - - - 0 - - 0 - - 0 - - 1 - m_textPinNameTextSize - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICNAMETEXTSIZEUNITS - units - - - 0 - - - 0 - -1,-1 - 1 - m_staticNameTextSizeUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICTEXTPADNAMESIZE - Number te&xt size: - - - 0 - - - 0 - - 1 - m_staticTextPadNameSize - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTPADNAMETEXTSIZE - - - 0 - - 0 - - 0 - - 1 - m_textPadNameTextSize - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICNUMBERTEXTSIZEUNITS - units - - - 0 - - - 0 - - 1 - m_staticNumberTextSizeUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICTEXTPINLEN - &Length: - - - 0 - - - 0 - - 1 - m_staticTextPinLen - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxBOTTOM|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTLENGTH - - - 0 - - 0 - - 0 - - 1 - m_textLength - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICLENGTHUNITS - units - - - 0 - - - 0 - - 1 - m_staticLengthUnits - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - 150,150 - 1 - m_panelShowPin - 1 - - - protected - 1 - - - Resizable - - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxFULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER|wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - OnPaintShowPanel - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticline1 - 1 - - - protected - 1 - - - Resizable - - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_RIGHT - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizerButtons - protected - - OnCancelButtonClick - - - - OnOKButtonClick - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_lib_edit_pin_base + 1000 + none + 1 + dialog_lib_edit_pin + + . + + 1 + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + DIALOG_LIB_EDIT_PIN_BASE + 1 + + + 1 + + Resizable + 1 + -1,-1 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Pin Properties + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + OnCloseDialog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mainSizer + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + + bUpperSizer + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + + bLeftSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 2 + wxBOTH + 1 + + 0 + + fgSizerPins + wxFLEX_GROWMODE_ALL + none + 5 + 0 + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pin &name: + + 0 + + + 0 + + 1 + m_staticTextPinName + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTPINNAME + + 0 + + 0 + + 0 + + 1 + m_textPinName + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_PROCESS_TAB + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICTEXTPADNAME + Pin n&umber: + + 0 + + + 0 + + 1 + m_staticTextPadName + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Pin number: 1 to 4 ASCII letters and/or digits + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTPADNAME + + 0 + + 0 + + 0 + + 1 + m_textPadName + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_PROCESS_TAB + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Orientation: + + 0 + + + 0 + + 1 + m_staticTextOrient + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceOrientation + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + wxBitmapComboBox; wx/bmpcbox.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Electrical type: + + 0 + + + 0 + + 1 + m_staticTextEType + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Used by the ERC. + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceElectricalType + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + wxBitmapComboBox; wx/bmpcbox.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Graphic &Style: + + 0 + + + 0 + + 1 + m_staticTextGstyle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceStyle + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + wxBitmapComboBox; wx/bmpcbox.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + + boarderSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Sharing + + sbSizerPinSharing + wxVERTICAL + none + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shared by all &parts in component + + 0 + + + 0 + + 1 + m_checkApplyToAllParts + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shared by all body &styles (DeMorgan) + + 0 + + + 0 + + 1 + m_checkApplyToAllConversions + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Schematic Properties + + sbSizerSchematicProperties + wxVERTICAL + none + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Visible + + 0 + + + 0 + + 1 + m_checkShow + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT + 1 + + + bRightSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 3 + wxBOTH + 1 + + 0 + + fgSizerTextsSizes + wxFLEX_GROWMODE_ALL + none + 3 + 0 + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICTEXTNAMESIZE + N&ame text size: + + 0 + + + 0 + + 1 + m_staticTextNameSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTPINNAMETEXTSIZE + + 0 + + 0 + + 0 + + 1 + m_textPinNameTextSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICNAMETEXTSIZEUNITS + units + + 0 + + + 0 + -1,-1 + 1 + m_staticNameTextSizeUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICTEXTPADNAMESIZE + Number te&xt size: + + 0 + + + 0 + + 1 + m_staticTextPadNameSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTPADNAMETEXTSIZE + + 0 + + 0 + + 0 + + 1 + m_textPadNameTextSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICNUMBERTEXTSIZEUNITS + units + + 0 + + + 0 + + 1 + m_staticNumberTextSizeUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICTEXTPINLEN + &Length: + + 0 + + + 0 + + 1 + m_staticTextPinLen + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxBOTTOM|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTLENGTH + + 0 + + 0 + + 0 + + 1 + m_textLength + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICLENGTHUNITS + units + + 0 + + + 0 + + 1 + m_staticLengthUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + 150,150 + 1 + m_panelShowPin + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxFULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER|wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + OnPaintShowPanel + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_staticline1 + 1 + + + protected + 1 + + Resizable + 1 + + wxLI_HORIZONTAL + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_RIGHT + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizerButtons + protected + + OnCancelButtonClick + + + + OnOKButtonClick + + + + + + + + diff --git a/eeschema/dialogs/dialog_lib_edit_pin_base.h b/eeschema/dialogs/dialog_lib_edit_pin_base.h index fe92de1142..6732ec280a 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin_base.h +++ b/eeschema/dialogs/dialog_lib_edit_pin_base.h @@ -1,101 +1,101 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_LIB_EDIT_PIN_BASE_H__ -#define __DIALOG_LIB_EDIT_PIN_BASE_H__ - -#include -#include -#include -class wxBitmapComboBox; - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_LIB_EDIT_PIN_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_LIB_EDIT_PIN_BASE : public wxDialog -{ - private: - - protected: - enum - { - ID_M_TEXTPINNAME = 1000, - ID_M_STATICTEXTPADNAME, - ID_M_TEXTPADNAME, - ID_M_STATICTEXTNAMESIZE, - ID_M_TEXTPINNAMETEXTSIZE, - ID_M_STATICNAMETEXTSIZEUNITS, - ID_M_STATICTEXTPADNAMESIZE, - ID_M_TEXTPADNAMETEXTSIZE, - ID_M_STATICNUMBERTEXTSIZEUNITS, - ID_M_STATICTEXTPINLEN, - ID_M_TEXTLENGTH, - ID_M_STATICLENGTHUNITS, - }; - - wxStaticText* m_staticTextPinName; - wxTextCtrl* m_textPinName; - wxStaticText* m_staticTextPadName; - wxTextCtrl* m_textPadName; - wxStaticText* m_staticTextOrient; - wxBitmapComboBox* m_choiceOrientation; - wxStaticText* m_staticTextEType; - wxBitmapComboBox* m_choiceElectricalType; - wxStaticText* m_staticTextGstyle; - wxBitmapComboBox* m_choiceStyle; - wxCheckBox* m_checkApplyToAllParts; - wxCheckBox* m_checkApplyToAllConversions; - wxCheckBox* m_checkShow; - wxStaticText* m_staticTextNameSize; - wxTextCtrl* m_textPinNameTextSize; - wxStaticText* m_staticNameTextSizeUnits; - wxStaticText* m_staticTextPadNameSize; - wxTextCtrl* m_textPadNameTextSize; - wxStaticText* m_staticNumberTextSizeUnits; - wxStaticText* m_staticTextPinLen; - wxTextCtrl* m_textLength; - wxStaticText* m_staticLengthUnits; - wxPanel* m_panelShowPin; - wxStaticLine* m_staticline1; - wxStdDialogButtonSizer* m_sdbSizerButtons; - wxButton* m_sdbSizerButtonsOK; - wxButton* m_sdbSizerButtonsCancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnCloseDialog( wxCloseEvent& event ) { event.Skip(); } - virtual void OnPropertiesChange( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } - virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Pin Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 476,372 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_LIB_EDIT_PIN_BASE(); - -}; - -#endif //__DIALOG_LIB_EDIT_PIN_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_LIB_EDIT_PIN_BASE_H__ +#define __DIALOG_LIB_EDIT_PIN_BASE_H__ + +#include +#include +#include +#include "wx/bmpcbox.h" +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_LIB_EDIT_PIN_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_LIB_EDIT_PIN_BASE : public DIALOG_SHIM +{ + private: + + protected: + enum + { + ID_M_TEXTPINNAME = 1000, + ID_M_STATICTEXTPADNAME, + ID_M_TEXTPADNAME, + ID_M_STATICTEXTNAMESIZE, + ID_M_TEXTPINNAMETEXTSIZE, + ID_M_STATICNAMETEXTSIZEUNITS, + ID_M_STATICTEXTPADNAMESIZE, + ID_M_TEXTPADNAMETEXTSIZE, + ID_M_STATICNUMBERTEXTSIZEUNITS, + ID_M_STATICTEXTPINLEN, + ID_M_TEXTLENGTH, + ID_M_STATICLENGTHUNITS + }; + + wxStaticText* m_staticTextPinName; + wxTextCtrl* m_textPinName; + wxStaticText* m_staticTextPadName; + wxTextCtrl* m_textPadName; + wxStaticText* m_staticTextOrient; + wxBitmapComboBox* m_choiceOrientation; + wxStaticText* m_staticTextEType; + wxBitmapComboBox* m_choiceElectricalType; + wxStaticText* m_staticTextGstyle; + wxBitmapComboBox* m_choiceStyle; + wxCheckBox* m_checkApplyToAllParts; + wxCheckBox* m_checkApplyToAllConversions; + wxCheckBox* m_checkShow; + wxStaticText* m_staticTextNameSize; + wxTextCtrl* m_textPinNameTextSize; + wxStaticText* m_staticNameTextSizeUnits; + wxStaticText* m_staticTextPadNameSize; + wxTextCtrl* m_textPadNameTextSize; + wxStaticText* m_staticNumberTextSizeUnits; + wxStaticText* m_staticTextPinLen; + wxTextCtrl* m_textLength; + wxStaticText* m_staticLengthUnits; + wxPanel* m_panelShowPin; + wxStaticLine* m_staticline1; + wxStdDialogButtonSizer* m_sdbSizerButtons; + wxButton* m_sdbSizerButtonsOK; + wxButton* m_sdbSizerButtonsCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnCloseDialog( wxCloseEvent& event ) { event.Skip(); } + virtual void OnPropertiesChange( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } + virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Pin Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_LIB_EDIT_PIN_BASE(); + +}; + +#endif //__DIALOG_LIB_EDIT_PIN_BASE_H__ diff --git a/eeschema/pinedit.cpp b/eeschema/pinedit.cpp index 5490b27212..6449214ba5 100644 --- a/eeschema/pinedit.cpp +++ b/eeschema/pinedit.cpp @@ -109,7 +109,7 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event ) dlg.Layout(); dlg.Fit(); dlg.SetMinSize( dlg.GetSize() ); - dlg.SetLastSizeAndPosition(); + // dlg.SetLastSizeAndPosition(); // done in DIALOG_SHIM::Show() if( dlg.ShowModal() == wxID_CANCEL ) { @@ -121,7 +121,7 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event ) return; } - /* Save the pin properties to use for the next new pin. */ + // Save the pin properties to use for the next new pin. LastPinNameSize = ReturnValueFromString( g_UserUnit, dlg.GetNameTextSize(), m_internalUnits ); LastPinNumSize = ReturnValueFromString( g_UserUnit, dlg.GetPadNameTextSize(), m_internalUnits ); LastPinOrient = LIB_PIN::GetOrientationCode( dlg.GetOrientation() ); @@ -185,7 +185,7 @@ static void AbortPinMove( EDA_DRAW_PANEL* Panel, wxDC* DC ) else parent->RestoreComponent(); - /* clear edit flags */ + // clear edit flags parent->SetDrawItem( NULL ); parent->SetLastDrawItem( NULL ); Panel->Refresh( true ); @@ -258,7 +258,7 @@ another pin. Continue?" ) ); m_component->AddDrawItem( m_drawItem ); } - /* Put linked pins in new position, and clear flags */ + // Put linked pins in new position, and clear flags for( Pin = m_component->GetNextPin(); Pin != NULL; Pin = m_component->GetNextPin( Pin ) ) { if( Pin->GetFlags() == 0 ) @@ -292,7 +292,7 @@ void LIB_EDIT_FRAME::StartMovePin( wxDC* DC ) TempCopyComponent(); - /* Mark pins for moving. */ + // Mark pins for moving. Pin = m_component->GetNextPin(); for( ; Pin != NULL; Pin = m_component->GetNextPin( Pin ) ) @@ -341,7 +341,7 @@ static void DrawMovePin( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosi wxPoint pinpos = CurrentPin->GetPosition(); bool showPinText = true; - /* Erase pin in old position */ + // Erase pin in old position if( aErase ) { CurrentPin->SetPosition( PinPreviousPos ); @@ -349,7 +349,7 @@ static void DrawMovePin( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosi &showPinText, DefaultTransform ); } - /* Redraw pin in new position */ + // Redraw pin in new position CurrentPin->SetPosition( aPanel->GetScreen()->GetCrossHairPosition( true ) ); CurrentPin->Draw( aPanel, aDC, wxPoint( 0, 0 ), -1, g_XorMode, &showPinText, DefaultTransform ); @@ -383,7 +383,7 @@ void LIB_EDIT_FRAME::CreatePin( wxDC* DC ) pin->SetUnit( m_unit ); pin->SetConvert( m_convert ); - /* Flag pins to consider */ + // Flag pins to consider if( SynchronizePins() ) pin->SetFlags( IS_LINKED ); @@ -430,7 +430,7 @@ void LIB_EDIT_FRAME::CreateImagePins( LIB_PIN* aPin, int aUnit, int aConvert, bo if( !SynchronizePins() ) return; - /* Create "convert" pin at the current position. */ + // Create "convert" pin at the current position. if( aDeMorgan && ( aPin->GetConvert() != 0 ) ) { NewPin = (LIB_PIN*) aPin->Clone(); @@ -446,7 +446,7 @@ void LIB_EDIT_FRAME::CreateImagePins( LIB_PIN* aPin, int aUnit, int aConvert, bo for( ii = 1; ii <= aPin->GetParent()->GetPartCount(); ii++ ) { if( ii == aUnit || aPin->GetUnit() == 0 ) - continue; /* Pin common to all units. */ + continue; // Pin common to all units. NewPin = (LIB_PIN*) aPin->Clone(); @@ -526,7 +526,7 @@ void LIB_EDIT_FRAME::GlobalSetPins( wxDC* DC, LIB_PIN* MasterPin, int id ) } -/* Create a new pin based on the previous pin with an incremented pin number. */ +// Create a new pin based on the previous pin with an incremented pin number. void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin ) { LIB_PIN* Pin; @@ -570,7 +570,7 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin ) } -/* helper function to sort pins by pin num */ +// helper function to sort pins by pin num bool sort_by_pin_number( const LIB_PIN* ref, const LIB_PIN* tst ) { int test = ref->GetNumber() - tst->GetNumber(); diff --git a/include/dialog_shim.h b/include/dialog_shim.h new file mode 100644 index 0000000000..f4b88e65bf --- /dev/null +++ b/include/dialog_shim.h @@ -0,0 +1,59 @@ +#ifndef DIALOG_SHIM_ +#define DIALOG_SHIM_ + +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck + * Copyright (C) 2012 KiCad Developers, see CHANGELOG.TXT for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include +#include + + +/** + * Class DIALOG_SHIM + * may sit in the inheritance tree between wxDialog and any class written by + * wxFormBuilder. To put it there, use wxFormBuilder tool and set: + *
subclass name = DIALOG_SHIM + *
subclass header = dialog_shim.h + *
+ * in the dialog window's properties. + **/ +class DIALOG_SHIM : public wxDialog +{ +public: + + DIALOG_SHIM( wxWindow* aParent, wxWindowID id, const wxString& title, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_DIALOG_STYLE, + const wxString& name = wxDialogNameStr ); + + bool Show( bool show ); // overload wxDialog::Show + + /* + const wxSize& GetLastSize(); + const wxPoint& GetLastPosition(); + */ +}; + +#endif // DIALOG_SHIM_ From 72926fd4eeb14091f600e6bb76110c719b65f8bd Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Thu, 22 Mar 2012 13:36:20 -0500 Subject: [PATCH 32/68] Backout my usage of DIALOG_EXTEND_WITH_SHIM in favor of wxFormbuilder's subclass DIALOG_SHIM support. Tried dialog_drc but it has nesting problems due to use of DRCLISTBOX, which needs to be put into its own header file to untangle. --- eeschema/dialogs/dialog_edit_label.cpp | 5 +- eeschema/dialogs/dialog_edit_label_base.cpp | 229 +- eeschema/dialogs/dialog_edit_label_base.fbp | 1704 +- eeschema/dialogs/dialog_edit_label_base.h | 140 +- pcbnew/dialogs/dialog_pad_properties.cpp | 5 +- pcbnew/dialogs/dialog_pad_properties_base.cpp | 1254 +- pcbnew/dialogs/dialog_pad_properties_base.fbp | 17312 ++++++++-------- pcbnew/dialogs/dialog_pad_properties_base.h | 335 +- pcbnew/dialogs/dialog_pcb_text_properties.cpp | 7 +- .../dialog_pcb_text_properties_base.cpp | 350 +- .../dialog_pcb_text_properties_base.fbp | 4325 ++-- .../dialogs/dialog_pcb_text_properties_base.h | 153 +- 12 files changed, 13080 insertions(+), 12739 deletions(-) diff --git a/eeschema/dialogs/dialog_edit_label.cpp b/eeschema/dialogs/dialog_edit_label.cpp index f57897eac8..9f01bcdad1 100644 --- a/eeschema/dialogs/dialog_edit_label.cpp +++ b/eeschema/dialogs/dialog_edit_label.cpp @@ -39,13 +39,12 @@ #include #include -#include class SCH_EDIT_FRAME; class SCH_TEXT; -DIALOG_EXTEND_WITH_SHIM( DialogLabelEditor, DialogLabelEditor_Base ) +class DialogLabelEditor : public DialogLabelEditor_Base { public: DialogLabelEditor( SCH_EDIT_FRAME* parent, SCH_TEXT* aTextItem ); @@ -79,7 +78,7 @@ void SCH_EDIT_FRAME::EditSchematicText( SCH_TEXT* aTextItem ) DialogLabelEditor::DialogLabelEditor( SCH_EDIT_FRAME* aParent, SCH_TEXT* aTextItem ) : - DialogLabelEditor_Base_SHIM( aParent ) + DialogLabelEditor_Base( aParent ) { m_Parent = aParent; m_CurrentText = aTextItem; diff --git a/eeschema/dialogs/dialog_edit_label_base.cpp b/eeschema/dialogs/dialog_edit_label_base.cpp index 87030fc16c..8c0c44be75 100644 --- a/eeschema/dialogs/dialog_edit_label_base.cpp +++ b/eeschema/dialogs/dialog_edit_label_base.cpp @@ -1,111 +1,118 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 8 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_edit_label_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DialogLabelEditor_Base::DialogLabelEditor_Base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxVERTICAL ); - - m_textControlSizer = new wxFlexGridSizer( 2, 2, 3, 3 ); - m_textControlSizer->AddGrowableCol( 1 ); - m_textControlSizer->AddGrowableRow( 0 ); - m_textControlSizer->SetFlexibleDirection( wxBOTH ); - m_textControlSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText1 = new wxStaticText( this, wxID_ANY, _("&Text:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText1->Wrap( -1 ); - m_staticText1->SetToolTip( _("Enter the text to be used within the schematic") ); - - m_textControlSizer->Add( m_staticText1, 0, wxRIGHT, 3 ); - - wxBoxSizer* bSizeText; - bSizeText = new wxBoxSizer( wxVERTICAL ); - - m_textLabelSingleLine = new wxTextCtrl( this, wxID_VALUESINGLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER ); - bSizeText->Add( m_textLabelSingleLine, 0, wxEXPAND|wxLEFT, 3 ); - - m_textLabelMultiLine = new wxTextCtrl( this, wxID_VALUEMULTI, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_PROCESS_ENTER ); - m_textLabelMultiLine->SetMinSize( wxSize( -1,60 ) ); - - bSizeText->Add( m_textLabelMultiLine, 1, wxEXPAND|wxLEFT, 3 ); - - m_textControlSizer->Add( bSizeText, 1, wxEXPAND, 3 ); - - m_SizeTitle = new wxStaticText( this, wxID_ANY, _("&Size:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SizeTitle->Wrap( -1 ); - m_textControlSizer->Add( m_SizeTitle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 ); - - wxBoxSizer* bSizeCtrlSizer; - bSizeCtrlSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_TextSize = new wxTextCtrl( this, wxID_SIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizeCtrlSizer->Add( m_TextSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT, 3 ); - - m_staticSizeUnits = new wxStaticText( this, wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticSizeUnits->Wrap( -1 ); - bSizeCtrlSizer->Add( m_staticSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 3 ); - - m_textControlSizer->Add( bSizeCtrlSizer, 1, wxEXPAND, 3 ); - - bMainSizer->Add( m_textControlSizer, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 12 ); - - wxBoxSizer* m_OptionsSizer; - m_OptionsSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxString m_TextOrientChoices[] = { _("Right"), _("Up"), _("Left"), _("Down") }; - int m_TextOrientNChoices = sizeof( m_TextOrientChoices ) / sizeof( wxString ); - m_TextOrient = new wxRadioBox( this, wxID_ANY, _("O&rientation"), wxDefaultPosition, wxDefaultSize, m_TextOrientNChoices, m_TextOrientChoices, 1, wxRA_SPECIFY_COLS ); - m_TextOrient->SetSelection( 0 ); - m_OptionsSizer->Add( m_TextOrient, 1, wxRIGHT|wxTOP, 3 ); - - wxString m_TextStyleChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") }; - int m_TextStyleNChoices = sizeof( m_TextStyleChoices ) / sizeof( wxString ); - m_TextStyle = new wxRadioBox( this, wxID_ANY, _("St&yle"), wxDefaultPosition, wxDefaultSize, m_TextStyleNChoices, m_TextStyleChoices, 1, wxRA_SPECIFY_COLS ); - m_TextStyle->SetSelection( 0 ); - m_OptionsSizer->Add( m_TextStyle, 1, wxLEFT|wxRIGHT|wxTOP, 3 ); - - wxString m_TextShapeChoices[] = { _("Input"), _("Output"), _("Bidirectional"), _("Tri-State"), _("Passive") }; - int m_TextShapeNChoices = sizeof( m_TextShapeChoices ) / sizeof( wxString ); - m_TextShape = new wxRadioBox( this, wxID_ANY, _("S&hape"), wxDefaultPosition, wxDefaultSize, m_TextShapeNChoices, m_TextShapeChoices, 1, wxRA_SPECIFY_COLS ); - m_TextShape->SetSelection( 0 ); - m_OptionsSizer->Add( m_TextShape, 1, wxALL|wxLEFT|wxTOP, 3 ); - - bMainSizer->Add( m_OptionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 12 ); - - m_sdbSizer1 = new wxStdDialogButtonSizer(); - m_sdbSizer1OK = new wxButton( this, wxID_OK ); - m_sdbSizer1->AddButton( m_sdbSizer1OK ); - m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); - m_sdbSizer1->Realize(); - bMainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 12 ); - - this->SetSizer( bMainSizer ); - this->Layout(); - - // Connect Events - m_textLabelSingleLine->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this ); - m_textLabelMultiLine->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this ); - m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnCancelClick ), NULL, this ); - m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnOkClick ), NULL, this ); -} - -DialogLabelEditor_Base::~DialogLabelEditor_Base() -{ - // Disconnect Events - m_textLabelSingleLine->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this ); - m_textLabelMultiLine->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this ); - m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnCancelClick ), NULL, this ); - m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnOkClick ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_edit_label_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DialogLabelEditor_Base::DialogLabelEditor_Base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bMainSizer; + bMainSizer = new wxBoxSizer( wxVERTICAL ); + + m_textControlSizer = new wxFlexGridSizer( 2, 2, 3, 3 ); + m_textControlSizer->AddGrowableCol( 1 ); + m_textControlSizer->AddGrowableRow( 0 ); + m_textControlSizer->SetFlexibleDirection( wxBOTH ); + m_textControlSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText1 = new wxStaticText( this, wxID_ANY, _("&Text:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText1->Wrap( -1 ); + m_staticText1->SetToolTip( _("Enter the text to be used within the schematic") ); + + m_textControlSizer->Add( m_staticText1, 0, wxRIGHT, 3 ); + + wxBoxSizer* bSizeText; + bSizeText = new wxBoxSizer( wxVERTICAL ); + + m_textLabelSingleLine = new wxTextCtrl( this, wxID_VALUESINGLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER ); + bSizeText->Add( m_textLabelSingleLine, 0, wxEXPAND|wxLEFT, 3 ); + + m_textLabelMultiLine = new wxTextCtrl( this, wxID_VALUEMULTI, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_PROCESS_ENTER ); + m_textLabelMultiLine->SetMinSize( wxSize( -1,60 ) ); + + bSizeText->Add( m_textLabelMultiLine, 1, wxEXPAND|wxLEFT, 3 ); + + + m_textControlSizer->Add( bSizeText, 1, wxEXPAND, 3 ); + + m_SizeTitle = new wxStaticText( this, wxID_ANY, _("&Size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SizeTitle->Wrap( -1 ); + m_textControlSizer->Add( m_SizeTitle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 3 ); + + wxBoxSizer* bSizeCtrlSizer; + bSizeCtrlSizer = new wxBoxSizer( wxHORIZONTAL ); + + m_TextSize = new wxTextCtrl( this, wxID_SIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizeCtrlSizer->Add( m_TextSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT, 3 ); + + m_staticSizeUnits = new wxStaticText( this, wxID_ANY, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticSizeUnits->Wrap( -1 ); + bSizeCtrlSizer->Add( m_staticSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 3 ); + + + m_textControlSizer->Add( bSizeCtrlSizer, 1, wxEXPAND, 3 ); + + + bMainSizer->Add( m_textControlSizer, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 12 ); + + wxBoxSizer* m_OptionsSizer; + m_OptionsSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxString m_TextOrientChoices[] = { _("Right"), _("Up"), _("Left"), _("Down") }; + int m_TextOrientNChoices = sizeof( m_TextOrientChoices ) / sizeof( wxString ); + m_TextOrient = new wxRadioBox( this, wxID_ANY, _("O&rientation"), wxDefaultPosition, wxDefaultSize, m_TextOrientNChoices, m_TextOrientChoices, 1, wxRA_SPECIFY_COLS ); + m_TextOrient->SetSelection( 0 ); + m_OptionsSizer->Add( m_TextOrient, 1, wxRIGHT|wxTOP, 3 ); + + wxString m_TextStyleChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") }; + int m_TextStyleNChoices = sizeof( m_TextStyleChoices ) / sizeof( wxString ); + m_TextStyle = new wxRadioBox( this, wxID_ANY, _("St&yle"), wxDefaultPosition, wxDefaultSize, m_TextStyleNChoices, m_TextStyleChoices, 1, wxRA_SPECIFY_COLS ); + m_TextStyle->SetSelection( 0 ); + m_OptionsSizer->Add( m_TextStyle, 1, wxLEFT|wxRIGHT|wxTOP, 3 ); + + wxString m_TextShapeChoices[] = { _("Input"), _("Output"), _("Bidirectional"), _("Tri-State"), _("Passive") }; + int m_TextShapeNChoices = sizeof( m_TextShapeChoices ) / sizeof( wxString ); + m_TextShape = new wxRadioBox( this, wxID_ANY, _("S&hape"), wxDefaultPosition, wxDefaultSize, m_TextShapeNChoices, m_TextShapeChoices, 1, wxRA_SPECIFY_COLS ); + m_TextShape->SetSelection( 0 ); + m_OptionsSizer->Add( m_TextShape, 1, wxALL|wxLEFT|wxTOP, 3 ); + + + bMainSizer->Add( m_OptionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 12 ); + + m_sdbSizer1 = new wxStdDialogButtonSizer(); + m_sdbSizer1OK = new wxButton( this, wxID_OK ); + m_sdbSizer1->AddButton( m_sdbSizer1OK ); + m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); + m_sdbSizer1->Realize(); + + bMainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 12 ); + + + this->SetSizer( bMainSizer ); + this->Layout(); + bMainSizer->Fit( this ); + + // Connect Events + m_textLabelSingleLine->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this ); + m_textLabelMultiLine->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this ); + m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnCancelClick ), NULL, this ); + m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnOkClick ), NULL, this ); +} + +DialogLabelEditor_Base::~DialogLabelEditor_Base() +{ + // Disconnect Events + m_textLabelSingleLine->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this ); + m_textLabelMultiLine->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogLabelEditor_Base::OnEnterKey ), NULL, this ); + m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnCancelClick ), NULL, this ); + m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogLabelEditor_Base::OnOkClick ), NULL, this ); + +} diff --git a/eeschema/dialogs/dialog_edit_label_base.fbp b/eeschema/dialogs/dialog_edit_label_base.fbp index 636ed0d6b9..464b84e967 100644 --- a/eeschema/dialogs/dialog_edit_label_base.fbp +++ b/eeschema/dialogs/dialog_edit_label_base.fbp @@ -1,692 +1,1012 @@ - - - - - - C++ - 1 - source_name - 0 - UTF-8 - connect - dialog_edit_label_base - 1000 - none - 1 - dialog_edit_label_base - - . - - 1 - 1 - 1 - 0 - - - - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - - DialogLabelEditor_Base - - 359,347 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Text Editor - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bMainSizer - wxVERTICAL - none - - 12 - wxEXPAND|wxLEFT|wxRIGHT|wxTOP - 1 - - 2 - wxBOTH - 1 - 0 - 3 - - m_textControlSizer - wxFLEX_GROWMODE_SPECIFIED - protected - 2 - 3 - - 3 - wxRIGHT - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - &Text: - - - m_staticText1 - protected - - - - - Enter the text to be used within the schematic - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxEXPAND - 1 - - -1,-1 - bSizeText - wxVERTICAL - none - - 3 - wxEXPAND|wxLEFT - 0 - - - - 1 - 1 - - - 0 - wxID_VALUESINGLE - - 0 - - m_textLabelSingleLine - protected - - - wxTE_PROCESS_ENTER - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnEnterKey - - - - - - - 3 - wxEXPAND|wxLEFT - 1 - - - - 1 - 1 - - - 0 - wxID_VALUEMULTI - - 0 - -1,60 - m_textLabelMultiLine - protected - - - wxTE_MULTILINE|wxTE_PROCESS_ENTER - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnEnterKey - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - &Size: - - - m_SizeTitle - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxEXPAND - 1 - - - bSizeCtrlSizer - wxHORIZONTAL - none - - 3 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT - 0 - - - - 1 - 1 - - - 0 - wxID_SIZE - - 0 - - m_TextSize - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - - - 1 - 1 - - - 0 - wxID_ANY - units - - - m_staticSizeUnits - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 - wxEXPAND|wxLEFT|wxRIGHT|wxTOP - 0 - - - m_OptionsSizer - wxHORIZONTAL - none - - 3 - wxRIGHT|wxTOP - 1 - - - "Right" "Up" "Left" "Down" - - 1 - 1 - - - 0 - wxID_ANY - O&rientation - 1 - - - m_TextOrient - protected - - 0 - - wxRA_SPECIFY_COLS - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxLEFT|wxRIGHT|wxTOP - 1 - - - "Normal" "Italic" "Bold" "Bold Italic" - - 1 - 1 - - - 0 - wxID_ANY - St&yle - 1 - - - m_TextStyle - protected - - 0 - - wxRA_SPECIFY_COLS - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALL|wxLEFT|wxTOP - 1 - - - "Input" "Output" "Bidirectional" "Tri-State" "Passive" - - 1 - 1 - - - 0 - wxID_ANY - S&hape - 1 - - - m_TextShape - protected - - 0 - - wxRA_SPECIFY_COLS - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 - wxALL|wxEXPAND - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizer1 - protected - - OnCancelClick - - - - OnOkClick - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_edit_label_base + 1000 + none + 1 + dialog_edit_label_base + + . + + 1 + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + DialogLabelEditor_Base + 1 + + + 1 + + Resizable + 1 + -1,-1 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Text Editor + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bMainSizer + wxVERTICAL + none + + 12 + wxEXPAND|wxLEFT|wxRIGHT|wxTOP + 1 + + 2 + wxBOTH + 1 + 0 + 3 + + m_textControlSizer + wxFLEX_GROWMODE_SPECIFIED + protected + 2 + 3 + + 3 + wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Text: + + 0 + + + 0 + + 1 + m_staticText1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Enter the text to be used within the schematic + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxEXPAND + 1 + + -1,-1 + bSizeText + wxVERTICAL + none + + 3 + wxEXPAND|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_VALUESINGLE + + 0 + + 0 + + 0 + + 1 + m_textLabelSingleLine + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_PROCESS_ENTER + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnEnterKey + + + + + + + 3 + wxEXPAND|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_VALUEMULTI + + 0 + + 0 + + 0 + -1,60 + 1 + m_textLabelMultiLine + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_MULTILINE|wxTE_PROCESS_ENTER + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnEnterKey + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Size: + + 0 + + + 0 + + 1 + m_SizeTitle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxEXPAND + 1 + + + bSizeCtrlSizer + wxHORIZONTAL + none + + 3 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_SIZE + + 0 + + 0 + + 0 + + 1 + m_TextSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + units + + 0 + + + 0 + + 1 + m_staticSizeUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + wxEXPAND|wxLEFT|wxRIGHT|wxTOP + 0 + + + m_OptionsSizer + wxHORIZONTAL + none + + 3 + wxRIGHT|wxTOP + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Right" "Up" "Left" "Down" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + O&rientation + 1 + + 0 + + + 0 + + 1 + m_TextOrient + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxLEFT|wxRIGHT|wxTOP + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Normal" "Italic" "Bold" "Bold Italic" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + St&yle + 1 + + 0 + + + 0 + + 1 + m_TextStyle + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALL|wxLEFT|wxTOP + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Input" "Output" "Bidirectional" "Tri-State" "Passive" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + S&hape + 1 + + 0 + + + 0 + + 1 + m_TextShape + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + wxALL|wxEXPAND + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizer1 + protected + + OnCancelClick + + + + OnOkClick + + + + + + + + diff --git a/eeschema/dialogs/dialog_edit_label_base.h b/eeschema/dialogs/dialog_edit_label_base.h index e8a567db84..b9b1cebe27 100644 --- a/eeschema/dialogs/dialog_edit_label_base.h +++ b/eeschema/dialogs/dialog_edit_label_base.h @@ -1,69 +1,71 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 8 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __dialog_edit_label_base__ -#define __dialog_edit_label_base__ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DialogLabelEditor_Base -/////////////////////////////////////////////////////////////////////////////// -class DialogLabelEditor_Base : public wxDialog -{ - private: - - protected: - enum - { - wxID_VALUESINGLE = 1000, - wxID_VALUEMULTI, - wxID_SIZE, - }; - - wxFlexGridSizer* m_textControlSizer; - wxStaticText* m_staticText1; - wxTextCtrl* m_textLabelSingleLine; - wxTextCtrl* m_textLabelMultiLine; - wxStaticText* m_SizeTitle; - wxTextCtrl* m_TextSize; - wxStaticText* m_staticSizeUnits; - wxRadioBox* m_TextOrient; - wxRadioBox* m_TextStyle; - wxRadioBox* m_TextShape; - wxStdDialogButtonSizer* m_sdbSizer1; - wxButton* m_sdbSizer1OK; - wxButton* m_sdbSizer1Cancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnEnterKey( wxCommandEvent& event ) { event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DialogLabelEditor_Base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 359,347 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DialogLabelEditor_Base(); - -}; - -#endif //__dialog_edit_label_base__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_EDIT_LABEL_BASE_H__ +#define __DIALOG_EDIT_LABEL_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DialogLabelEditor_Base +/////////////////////////////////////////////////////////////////////////////// +class DialogLabelEditor_Base : public DIALOG_SHIM +{ + private: + + protected: + enum + { + wxID_VALUESINGLE = 1000, + wxID_VALUEMULTI, + wxID_SIZE + }; + + wxFlexGridSizer* m_textControlSizer; + wxStaticText* m_staticText1; + wxTextCtrl* m_textLabelSingleLine; + wxTextCtrl* m_textLabelMultiLine; + wxStaticText* m_SizeTitle; + wxTextCtrl* m_TextSize; + wxStaticText* m_staticSizeUnits; + wxRadioBox* m_TextOrient; + wxRadioBox* m_TextStyle; + wxRadioBox* m_TextShape; + wxStdDialogButtonSizer* m_sdbSizer1; + wxButton* m_sdbSizer1OK; + wxButton* m_sdbSizer1Cancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnEnterKey( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DialogLabelEditor_Base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text Editor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DialogLabelEditor_Base(); + +}; + +#endif //__DIALOG_EDIT_LABEL_BASE_H__ diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index 20c0352886..6783c9b4f4 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -43,7 +43,6 @@ #include #include -#include #include #include @@ -83,7 +82,7 @@ static long Std_Pad_Layers[] = { * class DIALOG_PAD_PROPERTIES, derived from DIALOG_PAD_PROPERTIES_BASE, * created by wxFormBuilder */ -DIALOG_EXTEND_WITH_SHIM( DIALOG_PAD_PROPERTIES, DIALOG_PAD_PROPERTIES_BASE ) + class DIALOG_PAD_PROPERTIES : public DIALOG_PAD_PROPERTIES_BASE { public: DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aPad ); @@ -133,7 +132,7 @@ private: DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aPad ) : - DIALOG_PAD_PROPERTIES_BASE_SHIM( aParent ), + DIALOG_PAD_PROPERTIES_BASE( aParent ), m_Pad_Master( aParent->GetBoard()->GetDesignSettings().m_Pad_Master ) { m_canUpdate = false; diff --git a/pcbnew/dialogs/dialog_pad_properties_base.cpp b/pcbnew/dialogs/dialog_pad_properties_base.cpp index bb09e94654..e877696ae7 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.cpp +++ b/pcbnew/dialogs/dialog_pad_properties_base.cpp @@ -1,627 +1,627 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Feb 9 2012) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_pad_properties_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); - - wxBoxSizer* m_MainSizer; - m_MainSizer = new wxBoxSizer( wxVERTICAL ); - - m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); - m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bGeneralSizer; - bGeneralSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* m_LeftBoxSizer; - m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgSizerPadType; - fgSizerPadType = new wxFlexGridSizer( 0, 2, 0, 0 ); - fgSizerPadType->AddGrowableCol( 1 ); - fgSizerPadType->SetFlexibleDirection( wxBOTH ); - fgSizerPadType->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_PadNumText = new wxStaticText( m_panel2, wxID_ANY, _("Pad number:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadNumText->Wrap( -1 ); - fgSizerPadType->Add( m_PadNumText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadNumCtrl = new wxTextCtrl( m_panel2, wxID_PADNUMCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerPadType->Add( m_PadNumCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_PadNameText = new wxStaticText( m_panel2, wxID_ANY, _("Net name:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadNameText->Wrap( -1 ); - fgSizerPadType->Add( m_PadNameText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadNetNameCtrl = new wxTextCtrl( m_panel2, wxID_PADNETNAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerPadType->Add( m_PadNetNameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_staticText44 = new wxStaticText( m_panel2, wxID_ANY, _("Pad type:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText44->Wrap( -1 ); - fgSizerPadType->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - wxString m_PadTypeChoices[] = { _("Through-hole"), _("SMD"), _("Connector"), _("NPTH, Mechanical") }; - int m_PadTypeNChoices = sizeof( m_PadTypeChoices ) / sizeof( wxString ); - m_PadType = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadTypeNChoices, m_PadTypeChoices, 0 ); - m_PadType->SetSelection( 0 ); - fgSizerPadType->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - - m_LeftBoxSizer->Add( fgSizerPadType, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxFlexGridSizer* fgSizerShapeType; - fgSizerShapeType = new wxFlexGridSizer( 0, 3, 0, 0 ); - fgSizerShapeType->AddGrowableCol( 1 ); - fgSizerShapeType->SetFlexibleDirection( wxBOTH ); - fgSizerShapeType->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText4->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_PadPosition_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_PadPosition_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadPosX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadPosX_Unit->Wrap( -1 ); - fgSizerShapeType->Add( m_PadPosX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText41->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); - - m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_PadPosition_Y_Ctrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadPosY_Unit->Wrap( -1 ); - fgSizerShapeType->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); - - m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText45->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") }; - int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); - m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 ); - m_PadShape->SetSelection( 0 ); - fgSizerShapeType->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); - - - fgSizerShapeType->Add( 0, 0, 0, wxEXPAND, 5 ); - - m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText12->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeSize_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_ShapeSize_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeSizeX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeSizeX_Unit->Wrap( -1 ); - fgSizerShapeType->Add( m_PadShapeSizeX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText15 = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText15->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeSize_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_ShapeSize_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeSizeY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeSizeY_Unit->Wrap( -1 ); - fgSizerShapeType->Add( m_PadShapeSizeY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText48 = new wxStaticText( m_panel2, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText48->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText48, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxString m_PadOrientChoices[] = { _("0"), _("90"), _("-90"), _("180"), _("Custom") }; - int m_PadOrientNChoices = sizeof( m_PadOrientChoices ) / sizeof( wxString ); - m_PadOrient = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadOrientNChoices, m_PadOrientChoices, 0 ); - m_PadOrient->SetSelection( 0 ); - fgSizerShapeType->Add( m_PadOrient, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_staticText491 = new wxStaticText( m_panel2, wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText491->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText491, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_PadOrientText = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_PadOrientText->Wrap( -1 ); - fgSizerShapeType->Add( m_PadOrientText, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadOrientCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_PadOrientCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_customOrientUnits = new wxStaticText( m_panel2, wxID_ANY, _("0.1 deg"), wxDefaultPosition, wxDefaultSize, 0 ); - m_customOrientUnits->Wrap( -1 ); - fgSizerShapeType->Add( m_customOrientUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText17 = new wxStaticText( m_panel2, wxID_ANY, _("Shape offset X:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText17->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeOffset_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_ShapeOffset_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeOffsetX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeOffsetX_Unit->Wrap( -1 ); - fgSizerShapeType->Add( m_PadShapeOffsetX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText19 = new wxStaticText( m_panel2, wxID_ANY, _("Shape offset Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText19->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeOffset_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_ShapeOffset_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeOffsetY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeOffsetY_Unit->Wrap( -1 ); - fgSizerShapeType->Add( m_PadShapeOffsetY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText38 = new wxStaticText( m_panel2, wxID_ANY, _("Die length:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText38->Wrap( -1 ); - m_staticText38->SetToolTip( _("Wire length from pad to die on chip ( used to calculate actual track length)") ); - - fgSizerShapeType->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_LengthDieCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_LengthDieCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLengthDie_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadLengthDie_Unit->Wrap( -1 ); - fgSizerShapeType->Add( m_PadLengthDie_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText21 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. delta dim:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText21->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); - - m_ShapeDelta_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerShapeType->Add( m_ShapeDelta_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_PadShapeDelta_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadShapeDelta_Unit->Wrap( -1 ); - fgSizerShapeType->Add( m_PadShapeDelta_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); - - m_staticText23 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. direction:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText23->Wrap( -1 ); - fgSizerShapeType->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); - - wxString m_trapDeltaDirChoiceChoices[] = { _("Horiz."), _("Vert.") }; - int m_trapDeltaDirChoiceNChoices = sizeof( m_trapDeltaDirChoiceChoices ) / sizeof( wxString ); - m_trapDeltaDirChoice = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_trapDeltaDirChoiceNChoices, m_trapDeltaDirChoiceChoices, 0 ); - m_trapDeltaDirChoice->SetSelection( 0 ); - fgSizerShapeType->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 ); - - - m_LeftBoxSizer->Add( fgSizerShapeType, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - wxBoxSizer* bMiddleUpperSizer; - bMiddleUpperSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_DrillShapeBoxSizer = new wxBoxSizer( wxVERTICAL ); - - - bMiddleUpperSizer->Add( m_DrillShapeBoxSizer, 0, wxBOTTOM, 5 ); - - wxBoxSizer* m_MiddleRightBoxSizer; - m_MiddleRightBoxSizer = new wxBoxSizer( wxVERTICAL ); - - - bMiddleUpperSizer->Add( m_MiddleRightBoxSizer, 0, wxBOTTOM, 5 ); - - - m_LeftBoxSizer->Add( bMiddleUpperSizer, 0, wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizeModuleInfo; - sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Footprint Orientation") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizer4; - fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 ); - fgSizer4->AddGrowableCol( 1 ); - fgSizer4->SetFlexibleDirection( wxBOTH ); - fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticTitleModuleRot = new wxStaticText( m_panel2, wxID_ANY, _("Rotation:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTitleModuleRot->Wrap( -1 ); - fgSizer4->Add( m_staticTitleModuleRot, 0, wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_staticModuleRotValue = new wxStaticText( m_panel2, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticModuleRotValue->Wrap( -1 ); - fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_staticTitleModuleSide = new wxStaticText( m_panel2, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTitleModuleSide->Wrap( -1 ); - fgSizer4->Add( m_staticTitleModuleSide, 0, wxALL|wxALIGN_RIGHT, 5 ); - - m_staticModuleSideValue = new wxStaticText( m_panel2, wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticModuleSideValue->Wrap( -1 ); - fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 ); - - - sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 ); - - m_staticTextWarningPadFlipped = new wxStaticText( m_panel2, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextWarningPadFlipped->Wrap( -1 ); - m_staticTextWarningPadFlipped->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); - - sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - - m_LeftBoxSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM, 5 ); - - - bGeneralSizer->Add( m_LeftBoxSizer, 0, wxALL|wxEXPAND, 5 ); - - wxBoxSizer* bSizer10; - bSizer10 = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSizer2; - sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Drill") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizerGeometry; - fgSizerGeometry = new wxFlexGridSizer( 14, 3, 0, 0 ); - fgSizerGeometry->SetFlexibleDirection( wxBOTH ); - fgSizerGeometry->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText47 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText47->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText47, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_DrillShapeCtrlChoices[] = { _("Circular"), _("Oval") }; - int m_DrillShapeCtrlNChoices = sizeof( m_DrillShapeCtrlChoices ) / sizeof( wxString ); - m_DrillShapeCtrl = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_DrillShapeCtrlNChoices, m_DrillShapeCtrlChoices, 0 ); - m_DrillShapeCtrl->SetSelection( 0 ); - fgSizerGeometry->Add( m_DrillShapeCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_staticText51 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText51->Wrap( -1 ); - fgSizerGeometry->Add( m_staticText51, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_textPadDrillX = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPadDrillX->Wrap( -1 ); - fgSizerGeometry->Add( m_textPadDrillX, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_PadDrill_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_PadDrill_X_Ctrl, 0, wxALL, 5 ); - - m_PadDrill_X_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadDrill_X_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadDrill_X_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_textPadDrillY = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPadDrillY->Wrap( -1 ); - fgSizerGeometry->Add( m_textPadDrillY, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_PadDrill_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerGeometry->Add( m_PadDrill_Y_Ctrl, 0, wxALL, 5 ); - - m_PadDrill_Y_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PadDrill_Y_Unit->Wrap( -1 ); - fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); - - - sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 ); - - - bSizer10->Add( sbSizer2, 0, wxALL, 5 ); - - wxStaticBoxSizer* m_LayersSizer; - m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Layers") ), wxVERTICAL ); - - wxBoxSizer* bSizer11; - bSizer11 = new wxBoxSizer( wxHORIZONTAL ); - - m_staticText511 = new wxStaticText( m_panel2, wxID_ANY, _("Copper:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText511->Wrap( -1 ); - bSizer11->Add( m_staticText511, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_rbCopperLayersSelChoices[] = { _("Front"), _("Back"), _("All"), _("None") }; - int m_rbCopperLayersSelNChoices = sizeof( m_rbCopperLayersSelChoices ) / sizeof( wxString ); - m_rbCopperLayersSel = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_rbCopperLayersSelNChoices, m_rbCopperLayersSelChoices, 0 ); - m_rbCopperLayersSel->SetSelection( 0 ); - bSizer11->Add( m_rbCopperLayersSel, 1, wxALL, 5 ); - - - m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizerTechlayers; - sbSizerTechlayers = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Technical Layers") ), wxVERTICAL ); - - m_PadLayerAdhCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerAdhCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerAdhCu = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerAdhCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerPateCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerPateCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerPateCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerPateCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerSilkCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerSilkCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerSilkCu = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerSilkCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerMaskCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerMaskCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerMaskCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Copper"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerMaskCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerDraft = new wxCheckBox( m_panel2, wxID_ANY, _("Draft layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerDraft, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerECO1 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.1 layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerECO1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_PadLayerECO2 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 ); - - - m_LayersSizer->Add( sbSizerTechlayers, 0, wxALL|wxEXPAND, 5 ); - - - bSizer10->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 5 ); - - - bGeneralSizer->Add( bSizer10, 0, wxALL|wxEXPAND, 5 ); - - wxBoxSizer* bSizer13x; - bSizer13x = new wxBoxSizer( wxVERTICAL ); - - m_panelShowPad = new wxPanel( m_panel2, wxID_ANY, wxDefaultPosition, wxSize( 200,200 ), wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER ); - m_panelShowPad->SetBackgroundColour( wxColour( 0, 0, 0 ) ); - - bSizer13x->Add( m_panelShowPad, 1, wxEXPAND|wxRIGHT|wxSHAPED|wxTOP, 5 ); - - - bGeneralSizer->Add( bSizer13x, 1, wxEXPAND, 5 ); - - - m_panel2->SetSizer( bGeneralSizer ); - m_panel2->Layout(); - bGeneralSizer->Fit( m_panel2 ); - m_notebook1->AddPage( m_panel2, _("General"), true ); - m_localSettingsPanel = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizer14; - bSizer14 = new wxBoxSizer( wxHORIZONTAL ); - - - bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizer13; - bSizer13 = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbClearancesSizer; - sbClearancesSizer = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Clearances") ), wxVERTICAL ); - - wxFlexGridSizer* fgClearancesGridSizer; - fgClearancesGridSizer = new wxFlexGridSizer( 5, 3, 0, 0 ); - fgClearancesGridSizer->SetFlexibleDirection( wxBOTH ); - fgClearancesGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticTextNetClearance = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Net pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextNetClearance->Wrap( -1 ); - m_staticTextNetClearance->SetToolTip( _("This is the local net clearance for pad.\nIf 0, the footprint local value or the Netclass value is used") ); - - fgClearancesGridSizer->Add( m_staticTextNetClearance, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_NetClearanceValueCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgClearancesGridSizer->Add( m_NetClearanceValueCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_NetClearanceUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_NetClearanceUnits->Wrap( -1 ); - fgClearancesGridSizer->Add( m_NetClearanceUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_MaskClearanceTitle = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_MaskClearanceTitle->Wrap( -1 ); - m_MaskClearanceTitle->SetToolTip( _("This is the local clearance between this pad and the solder mask\nIf 0, the footprint local value or the global value is used") ); - - fgClearancesGridSizer->Add( m_MaskClearanceTitle, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_SolderMaskMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgClearancesGridSizer->Add( m_SolderMaskMarginCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_SolderMaskMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SolderMaskMarginUnits->Wrap( -1 ); - fgClearancesGridSizer->Add( m_SolderMaskMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticTextSolderPaste = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextSolderPaste->Wrap( -1 ); - m_staticTextSolderPaste->SetToolTip( _("This is the local clearance between this pad and the solder paste.\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value ratio\nA negative value means a smaller mask size than pad size") ); - - fgClearancesGridSizer->Add( m_staticTextSolderPaste, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_SolderPasteMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgClearancesGridSizer->Add( m_SolderPasteMarginCtrl, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_SolderPasteMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SolderPasteMarginUnits->Wrap( -1 ); - fgClearancesGridSizer->Add( m_SolderPasteMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticTextRatio = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextRatio->Wrap( -1 ); - m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in per cent between this pad and the solder paste.\nA value of 10 means the clearance value is 10 per cent of the pad size\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value\nA negative value means a smaller mask size than pad size.") ); - - fgClearancesGridSizer->Add( m_staticTextRatio, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_SolderPasteMarginRatioCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgClearancesGridSizer->Add( m_SolderPasteMarginRatioCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_SolderPasteRatioMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SolderPasteRatioMarginUnits->Wrap( -1 ); - fgClearancesGridSizer->Add( m_SolderPasteRatioMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - - sbClearancesSizer->Add( fgClearancesGridSizer, 1, wxEXPAND, 5 ); - - - bSizer13->Add( sbClearancesSizer, 0, wxEXPAND|wxALL, 5 ); - - wxStaticBoxSizer* sbSizer7; - sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Copper Zones") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizer41; - fgSizer41 = new wxFlexGridSizer( 0, 3, 0, 0 ); - fgSizer41->SetFlexibleDirection( wxBOTH ); - fgSizer41->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText40 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText40->Wrap( -1 ); - fgSizer41->Add( m_staticText40, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_ZoneConnectionChoiceChoices[] = { _("From parent module"), _("Solid"), _("Thermal relief"), _("None") }; - int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString ); - m_ZoneConnectionChoice = new wxChoice( m_localSettingsPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 ); - m_ZoneConnectionChoice->SetSelection( 0 ); - fgSizer41->Add( m_ZoneConnectionChoice, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText43 = new wxStaticText( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText43->Wrap( -1 ); - fgSizer41->Add( m_staticText43, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText49 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief width:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText49->Wrap( -1 ); - fgSizer41->Add( m_staticText49, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_ThermalWidthCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer41->Add( m_ThermalWidthCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 ); - - m_ThermalWidthUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ThermalWidthUnits->Wrap( -1 ); - fgSizer41->Add( m_ThermalWidthUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText52 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief gap:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText52->Wrap( -1 ); - fgSizer41->Add( m_staticText52, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_ThermalGapCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizer41->Add( m_ThermalGapCtrl, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); - - m_ThermalGapUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ThermalGapUnits->Wrap( -1 ); - fgSizer41->Add( m_ThermalGapUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - - sbSizer7->Add( fgSizer41, 1, wxEXPAND, 5 ); - - - bSizer13->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 ); - - m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextWarning->Wrap( -1 ); - m_staticTextWarning->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); - - bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); - - - bSizer14->Add( bSizer13, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - - bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); - - - m_localSettingsPanel->SetSizer( bSizer14 ); - m_localSettingsPanel->Layout(); - bSizer14->Fit( m_localSettingsPanel ); - m_notebook1->AddPage( m_localSettingsPanel, _("Local Settings"), false ); - - m_MainSizer->Add( m_notebook1, 1, wxALL|wxEXPAND, 5 ); - - m_sdbSizer1 = new wxStdDialogButtonSizer(); - m_sdbSizer1OK = new wxButton( this, wxID_OK ); - m_sdbSizer1->AddButton( m_sdbSizer1OK ); - m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); - m_sdbSizer1->Realize(); - - m_MainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 5 ); - - - this->SetSizer( m_MainSizer ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - m_PadNumCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadNetNameCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); - m_PadShape->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); - m_ShapeSize_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeSize_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadOrient->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); - m_PadOrientCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeOffset_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeOffset_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeDelta_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_trapDeltaDirChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_DrillShapeCtrl->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); - m_PadDrill_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadDrill_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_rbCopperLayersSel->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerAdhCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerAdhCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerPateCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerPateCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerSilkCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerSilkCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerMaskCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerMaskCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerDraft->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerECO1->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerECO2->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_panelShowPad->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); - m_NetClearanceValueCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); - m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); -} - -DIALOG_PAD_PROPERTIES_BASE::~DIALOG_PAD_PROPERTIES_BASE() -{ - // Disconnect Events - m_PadNumCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadNetNameCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); - m_PadShape->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); - m_ShapeSize_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeSize_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadOrient->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); - m_PadOrientCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeOffset_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeOffset_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_ShapeDelta_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_trapDeltaDirChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_DrillShapeCtrl->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); - m_PadDrill_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_PadDrill_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_rbCopperLayersSel->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerAdhCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerAdhCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerPateCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerPateCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerSilkCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerSilkCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerMaskCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerMaskCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerDraft->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerECO1->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_PadLayerECO2->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); - m_panelShowPad->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); - m_NetClearanceValueCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); - m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); - m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_pad_properties_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_PAD_PROPERTIES_BASE::DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + + wxBoxSizer* m_MainSizer; + m_MainSizer = new wxBoxSizer( wxVERTICAL ); + + m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bGeneralSizer; + bGeneralSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* m_LeftBoxSizer; + m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgSizerPadType; + fgSizerPadType = new wxFlexGridSizer( 0, 2, 0, 0 ); + fgSizerPadType->AddGrowableCol( 1 ); + fgSizerPadType->SetFlexibleDirection( wxBOTH ); + fgSizerPadType->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_PadNumText = new wxStaticText( m_panel2, wxID_ANY, _("Pad number:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadNumText->Wrap( -1 ); + fgSizerPadType->Add( m_PadNumText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadNumCtrl = new wxTextCtrl( m_panel2, wxID_PADNUMCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPadType->Add( m_PadNumCtrl, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_PadNameText = new wxStaticText( m_panel2, wxID_ANY, _("Net name:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadNameText->Wrap( -1 ); + fgSizerPadType->Add( m_PadNameText, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadNetNameCtrl = new wxTextCtrl( m_panel2, wxID_PADNETNAMECTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPadType->Add( m_PadNetNameCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_staticText44 = new wxStaticText( m_panel2, wxID_ANY, _("Pad type:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText44->Wrap( -1 ); + fgSizerPadType->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + wxString m_PadTypeChoices[] = { _("Through-hole"), _("SMD"), _("Connector"), _("NPTH, Mechanical") }; + int m_PadTypeNChoices = sizeof( m_PadTypeChoices ) / sizeof( wxString ); + m_PadType = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadTypeNChoices, m_PadTypeChoices, 0 ); + m_PadType->SetSelection( 0 ); + fgSizerPadType->Add( m_PadType, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + m_LeftBoxSizer->Add( fgSizerPadType, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxFlexGridSizer* fgSizerShapeType; + fgSizerShapeType = new wxFlexGridSizer( 0, 3, 0, 0 ); + fgSizerShapeType->AddGrowableCol( 1 ); + fgSizerShapeType->SetFlexibleDirection( wxBOTH ); + fgSizerShapeType->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText4 = new wxStaticText( m_panel2, wxID_ANY, _("Position X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_PadPosition_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_PadPosition_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadPosX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadPosX_Unit->Wrap( -1 ); + fgSizerShapeType->Add( m_PadPosX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText41 = new wxStaticText( m_panel2, wxID_ANY, _("Position Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + m_PadPosition_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_PadPosition_Y_Ctrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + m_PadPosY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadPosY_Unit->Wrap( -1 ); + fgSizerShapeType->Add( m_PadPosY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); + + m_staticText45 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText45->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText45, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_PadShapeChoices[] = { _("Circular"), _("Oval"), _("Rectangular"), _("Trapezoidal") }; + int m_PadShapeNChoices = sizeof( m_PadShapeChoices ) / sizeof( wxString ); + m_PadShape = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadShapeNChoices, m_PadShapeChoices, 0 ); + m_PadShape->SetSelection( 0 ); + fgSizerShapeType->Add( m_PadShape, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + + + fgSizerShapeType->Add( 0, 0, 0, wxEXPAND, 5 ); + + m_staticText12 = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText12->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeSize_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_ShapeSize_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeSizeX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeSizeX_Unit->Wrap( -1 ); + fgSizerShapeType->Add( m_PadShapeSizeX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText15 = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText15->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeSize_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_ShapeSize_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeSizeY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeSizeY_Unit->Wrap( -1 ); + fgSizerShapeType->Add( m_PadShapeSizeY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText48 = new wxStaticText( m_panel2, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText48->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText48, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxString m_PadOrientChoices[] = { _("0"), _("90"), _("-90"), _("180"), _("Custom") }; + int m_PadOrientNChoices = sizeof( m_PadOrientChoices ) / sizeof( wxString ); + m_PadOrient = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_PadOrientNChoices, m_PadOrientChoices, 0 ); + m_PadOrient->SetSelection( 0 ); + fgSizerShapeType->Add( m_PadOrient, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_staticText491 = new wxStaticText( m_panel2, wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText491->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText491, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_PadOrientText = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_PadOrientText->Wrap( -1 ); + fgSizerShapeType->Add( m_PadOrientText, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadOrientCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_PadOrientCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_customOrientUnits = new wxStaticText( m_panel2, wxID_ANY, _("0.1 deg"), wxDefaultPosition, wxDefaultSize, 0 ); + m_customOrientUnits->Wrap( -1 ); + fgSizerShapeType->Add( m_customOrientUnits, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText17 = new wxStaticText( m_panel2, wxID_ANY, _("Shape offset X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText17->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeOffset_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_ShapeOffset_X_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeOffsetX_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeOffsetX_Unit->Wrap( -1 ); + fgSizerShapeType->Add( m_PadShapeOffsetX_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText19 = new wxStaticText( m_panel2, wxID_ANY, _("Shape offset Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText19->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeOffset_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_ShapeOffset_Y_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeOffsetY_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeOffsetY_Unit->Wrap( -1 ); + fgSizerShapeType->Add( m_PadShapeOffsetY_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText38 = new wxStaticText( m_panel2, wxID_ANY, _("Die length:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText38->Wrap( -1 ); + m_staticText38->SetToolTip( _("Wire length from pad to die on chip ( used to calculate actual track length)") ); + + fgSizerShapeType->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_LengthDieCtrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_LengthDieCtrl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLengthDie_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadLengthDie_Unit->Wrap( -1 ); + fgSizerShapeType->Add( m_PadLengthDie_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText21 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. delta dim:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText21->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 ); + + m_ShapeDelta_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerShapeType->Add( m_ShapeDelta_Ctrl, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_PadShapeDelta_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadShapeDelta_Unit->Wrap( -1 ); + fgSizerShapeType->Add( m_PadShapeDelta_Unit, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); + + m_staticText23 = new wxStaticText( m_panel2, wxID_ANY, _("Trap. direction:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText23->Wrap( -1 ); + fgSizerShapeType->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); + + wxString m_trapDeltaDirChoiceChoices[] = { _("Horiz."), _("Vert.") }; + int m_trapDeltaDirChoiceNChoices = sizeof( m_trapDeltaDirChoiceChoices ) / sizeof( wxString ); + m_trapDeltaDirChoice = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_trapDeltaDirChoiceNChoices, m_trapDeltaDirChoiceChoices, 0 ); + m_trapDeltaDirChoice->SetSelection( 0 ); + fgSizerShapeType->Add( m_trapDeltaDirChoice, 0, wxEXPAND|wxALL, 5 ); + + + m_LeftBoxSizer->Add( fgSizerShapeType, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + wxBoxSizer* bMiddleUpperSizer; + bMiddleUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + + m_DrillShapeBoxSizer = new wxBoxSizer( wxVERTICAL ); + + + bMiddleUpperSizer->Add( m_DrillShapeBoxSizer, 0, wxBOTTOM, 5 ); + + wxBoxSizer* m_MiddleRightBoxSizer; + m_MiddleRightBoxSizer = new wxBoxSizer( wxVERTICAL ); + + + bMiddleUpperSizer->Add( m_MiddleRightBoxSizer, 0, wxBOTTOM, 5 ); + + + m_LeftBoxSizer->Add( bMiddleUpperSizer, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizeModuleInfo; + sbSizeModuleInfo = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Footprint Orientation") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizer4; + fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 ); + fgSizer4->AddGrowableCol( 1 ); + fgSizer4->SetFlexibleDirection( wxBOTH ); + fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticTitleModuleRot = new wxStaticText( m_panel2, wxID_ANY, _("Rotation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTitleModuleRot->Wrap( -1 ); + fgSizer4->Add( m_staticTitleModuleRot, 0, wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_staticModuleRotValue = new wxStaticText( m_panel2, wxID_ANY, _("0"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticModuleRotValue->Wrap( -1 ); + fgSizer4->Add( m_staticModuleRotValue, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_staticTitleModuleSide = new wxStaticText( m_panel2, wxID_ANY, _("Board side:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTitleModuleSide->Wrap( -1 ); + fgSizer4->Add( m_staticTitleModuleSide, 0, wxALL|wxALIGN_RIGHT, 5 ); + + m_staticModuleSideValue = new wxStaticText( m_panel2, wxID_ANY, _("Front side"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticModuleSideValue->Wrap( -1 ); + fgSizer4->Add( m_staticModuleSideValue, 0, wxALL|wxEXPAND, 5 ); + + + sbSizeModuleInfo->Add( fgSizer4, 1, wxEXPAND, 5 ); + + m_staticTextWarningPadFlipped = new wxStaticText( m_panel2, wxID_ANY, _("Warning:\nThis pad is flipped on board.\nBack and front layers will be swapped."), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextWarningPadFlipped->Wrap( -1 ); + m_staticTextWarningPadFlipped->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); + + sbSizeModuleInfo->Add( m_staticTextWarningPadFlipped, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + + m_LeftBoxSizer->Add( sbSizeModuleInfo, 0, wxEXPAND|wxBOTTOM, 5 ); + + + bGeneralSizer->Add( m_LeftBoxSizer, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bSizer10; + bSizer10 = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizer2; + sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Drill") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizerGeometry; + fgSizerGeometry = new wxFlexGridSizer( 14, 3, 0, 0 ); + fgSizerGeometry->SetFlexibleDirection( wxBOTH ); + fgSizerGeometry->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText47 = new wxStaticText( m_panel2, wxID_ANY, _("Shape:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText47->Wrap( -1 ); + fgSizerGeometry->Add( m_staticText47, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_DrillShapeCtrlChoices[] = { _("Circular"), _("Oval") }; + int m_DrillShapeCtrlNChoices = sizeof( m_DrillShapeCtrlChoices ) / sizeof( wxString ); + m_DrillShapeCtrl = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_DrillShapeCtrlNChoices, m_DrillShapeCtrlChoices, 0 ); + m_DrillShapeCtrl->SetSelection( 0 ); + fgSizerGeometry->Add( m_DrillShapeCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_staticText51 = new wxStaticText( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText51->Wrap( -1 ); + fgSizerGeometry->Add( m_staticText51, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_textPadDrillX = new wxStaticText( m_panel2, wxID_ANY, _("Size X:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPadDrillX->Wrap( -1 ); + fgSizerGeometry->Add( m_textPadDrillX, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_PadDrill_X_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerGeometry->Add( m_PadDrill_X_Ctrl, 0, wxALL, 5 ); + + m_PadDrill_X_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadDrill_X_Unit->Wrap( -1 ); + fgSizerGeometry->Add( m_PadDrill_X_Unit, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_textPadDrillY = new wxStaticText( m_panel2, wxID_ANY, _("Size Y:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPadDrillY->Wrap( -1 ); + fgSizerGeometry->Add( m_textPadDrillY, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_PadDrill_Y_Ctrl = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerGeometry->Add( m_PadDrill_Y_Ctrl, 0, wxALL, 5 ); + + m_PadDrill_Y_Unit = new wxStaticText( m_panel2, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PadDrill_Y_Unit->Wrap( -1 ); + fgSizerGeometry->Add( m_PadDrill_Y_Unit, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + sbSizer2->Add( fgSizerGeometry, 1, wxEXPAND, 5 ); + + + bSizer10->Add( sbSizer2, 0, wxALL, 5 ); + + wxStaticBoxSizer* m_LayersSizer; + m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Layers") ), wxVERTICAL ); + + wxBoxSizer* bSizer11; + bSizer11 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText511 = new wxStaticText( m_panel2, wxID_ANY, _("Copper:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText511->Wrap( -1 ); + bSizer11->Add( m_staticText511, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_rbCopperLayersSelChoices[] = { _("Front"), _("Back"), _("All"), _("None") }; + int m_rbCopperLayersSelNChoices = sizeof( m_rbCopperLayersSelChoices ) / sizeof( wxString ); + m_rbCopperLayersSel = new wxChoice( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_rbCopperLayersSelNChoices, m_rbCopperLayersSelChoices, 0 ); + m_rbCopperLayersSel->SetSelection( 0 ); + bSizer11->Add( m_rbCopperLayersSel, 1, wxALL, 5 ); + + + m_LayersSizer->Add( bSizer11, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerTechlayers; + sbSizerTechlayers = new wxStaticBoxSizer( new wxStaticBox( m_panel2, wxID_ANY, _("Technical Layers") ), wxVERTICAL ); + + m_PadLayerAdhCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerAdhCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerAdhCu = new wxCheckBox( m_panel2, wxID_ANY, _("Adhesive Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerAdhCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerPateCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerPateCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerPateCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder paste Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerPateCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerSilkCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerSilkCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerSilkCu = new wxCheckBox( m_panel2, wxID_ANY, _("Silkscreen Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerSilkCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerMaskCmp = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Cmp"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerMaskCmp, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerMaskCu = new wxCheckBox( m_panel2, wxID_ANY, _("Solder mask Copper"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerMaskCu, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerDraft = new wxCheckBox( m_panel2, wxID_ANY, _("Draft layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerDraft, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerECO1 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.1 layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerECO1, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_PadLayerECO2 = new wxCheckBox( m_panel2, wxID_ANY, _("E.C.O.2 layer"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerTechlayers->Add( m_PadLayerECO2, 0, wxALL, 5 ); + + + m_LayersSizer->Add( sbSizerTechlayers, 0, wxALL|wxEXPAND, 5 ); + + + bSizer10->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 5 ); + + + bGeneralSizer->Add( bSizer10, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bSizer13x; + bSizer13x = new wxBoxSizer( wxVERTICAL ); + + m_panelShowPad = new wxPanel( m_panel2, wxID_ANY, wxDefaultPosition, wxSize( 200,200 ), wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER ); + m_panelShowPad->SetBackgroundColour( wxColour( 0, 0, 0 ) ); + + bSizer13x->Add( m_panelShowPad, 1, wxEXPAND|wxRIGHT|wxSHAPED|wxTOP, 5 ); + + + bGeneralSizer->Add( bSizer13x, 1, wxEXPAND, 5 ); + + + m_panel2->SetSizer( bGeneralSizer ); + m_panel2->Layout(); + bGeneralSizer->Fit( m_panel2 ); + m_notebook1->AddPage( m_panel2, _("General"), true ); + m_localSettingsPanel = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer14; + bSizer14 = new wxBoxSizer( wxHORIZONTAL ); + + + bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer13; + bSizer13 = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbClearancesSizer; + sbClearancesSizer = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Clearances") ), wxVERTICAL ); + + wxFlexGridSizer* fgClearancesGridSizer; + fgClearancesGridSizer = new wxFlexGridSizer( 5, 3, 0, 0 ); + fgClearancesGridSizer->SetFlexibleDirection( wxBOTH ); + fgClearancesGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticTextNetClearance = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Net pad clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextNetClearance->Wrap( -1 ); + m_staticTextNetClearance->SetToolTip( _("This is the local net clearance for pad.\nIf 0, the footprint local value or the Netclass value is used") ); + + fgClearancesGridSizer->Add( m_staticTextNetClearance, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_NetClearanceValueCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgClearancesGridSizer->Add( m_NetClearanceValueCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_NetClearanceUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_NetClearanceUnits->Wrap( -1 ); + fgClearancesGridSizer->Add( m_NetClearanceUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_MaskClearanceTitle = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MaskClearanceTitle->Wrap( -1 ); + m_MaskClearanceTitle->SetToolTip( _("This is the local clearance between this pad and the solder mask\nIf 0, the footprint local value or the global value is used") ); + + fgClearancesGridSizer->Add( m_MaskClearanceTitle, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_SolderMaskMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgClearancesGridSizer->Add( m_SolderMaskMarginCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_SolderMaskMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderMaskMarginUnits->Wrap( -1 ); + fgClearancesGridSizer->Add( m_SolderMaskMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticTextSolderPaste = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder paste clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextSolderPaste->Wrap( -1 ); + m_staticTextSolderPaste->SetToolTip( _("This is the local clearance between this pad and the solder paste.\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value ratio\nA negative value means a smaller mask size than pad size") ); + + fgClearancesGridSizer->Add( m_staticTextSolderPaste, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_SolderPasteMarginCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgClearancesGridSizer->Add( m_SolderPasteMarginCtrl, 0, wxEXPAND|wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_SolderPasteMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderPasteMarginUnits->Wrap( -1 ); + fgClearancesGridSizer->Add( m_SolderPasteMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticTextRatio = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Solder mask ratio clearance:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextRatio->Wrap( -1 ); + m_staticTextRatio->SetToolTip( _("This is the local clearance ratio in per cent between this pad and the solder paste.\nA value of 10 means the clearance value is 10 per cent of the pad size\nIf 0 the footprint value or the global value is used..\nThe final clearance value is the sum of this value and the clearance value\nA negative value means a smaller mask size than pad size.") ); + + fgClearancesGridSizer->Add( m_staticTextRatio, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_SolderPasteMarginRatioCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgClearancesGridSizer->Add( m_SolderPasteMarginRatioCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_SolderPasteRatioMarginUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SolderPasteRatioMarginUnits->Wrap( -1 ); + fgClearancesGridSizer->Add( m_SolderPasteRatioMarginUnits, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); + + + sbClearancesSizer->Add( fgClearancesGridSizer, 1, wxEXPAND, 5 ); + + + bSizer13->Add( sbClearancesSizer, 0, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbSizer7; + sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_localSettingsPanel, wxID_ANY, _("Copper Zones") ), wxVERTICAL ); + + wxFlexGridSizer* fgSizer41; + fgSizer41 = new wxFlexGridSizer( 0, 3, 0, 0 ); + fgSizer41->SetFlexibleDirection( wxBOTH ); + fgSizer41->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticText40 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Pad connection:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText40->Wrap( -1 ); + fgSizer41->Add( m_staticText40, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + wxString m_ZoneConnectionChoiceChoices[] = { _("From parent module"), _("Solid"), _("Thermal relief"), _("None") }; + int m_ZoneConnectionChoiceNChoices = sizeof( m_ZoneConnectionChoiceChoices ) / sizeof( wxString ); + m_ZoneConnectionChoice = new wxChoice( m_localSettingsPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_ZoneConnectionChoiceNChoices, m_ZoneConnectionChoiceChoices, 0 ); + m_ZoneConnectionChoice->SetSelection( 0 ); + fgSizer41->Add( m_ZoneConnectionChoice, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText43 = new wxStaticText( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText43->Wrap( -1 ); + fgSizer41->Add( m_staticText43, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText49 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief width:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText49->Wrap( -1 ); + fgSizer41->Add( m_staticText49, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_ThermalWidthCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer41->Add( m_ThermalWidthCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 ); + + m_ThermalWidthUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ThermalWidthUnits->Wrap( -1 ); + fgSizer41->Add( m_ThermalWidthUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText52 = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Thermal relief gap:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText52->Wrap( -1 ); + fgSizer41->Add( m_staticText52, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_ThermalGapCtrl = new wxTextCtrl( m_localSettingsPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer41->Add( m_ThermalGapCtrl, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); + + m_ThermalGapUnits = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Inch"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ThermalGapUnits->Wrap( -1 ); + fgSizer41->Add( m_ThermalGapUnits, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + + sbSizer7->Add( fgSizer41, 1, wxEXPAND, 5 ); + + + bSizer13->Add( sbSizer7, 1, wxEXPAND|wxALL, 5 ); + + m_staticTextWarning = new wxStaticText( m_localSettingsPanel, wxID_ANY, _("Set fields to 0 to use parent or global values"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextWarning->Wrap( -1 ); + m_staticTextWarning->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); + + bSizer13->Add( m_staticTextWarning, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); + + + bSizer14->Add( bSizer13, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + + bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); + + + m_localSettingsPanel->SetSizer( bSizer14 ); + m_localSettingsPanel->Layout(); + bSizer14->Fit( m_localSettingsPanel ); + m_notebook1->AddPage( m_localSettingsPanel, _("Local Settings"), false ); + + m_MainSizer->Add( m_notebook1, 1, wxALL|wxEXPAND, 5 ); + + m_sdbSizer1 = new wxStdDialogButtonSizer(); + m_sdbSizer1OK = new wxButton( this, wxID_OK ); + m_sdbSizer1->AddButton( m_sdbSizer1OK ); + m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); + m_sdbSizer1->Realize(); + + m_MainSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 5 ); + + + this->SetSizer( m_MainSizer ); + this->Layout(); + + this->Centre( wxBOTH ); + + // Connect Events + m_PadNumCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadNetNameCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); + m_PadShape->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); + m_ShapeSize_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeSize_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadOrient->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); + m_PadOrientCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeOffset_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeOffset_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeDelta_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_trapDeltaDirChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_DrillShapeCtrl->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); + m_PadDrill_X_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadDrill_Y_Ctrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_rbCopperLayersSel->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerAdhCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerAdhCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerPateCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerPateCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerSilkCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerSilkCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerMaskCmp->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerMaskCu->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerDraft->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerECO1->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerECO2->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_panelShowPad->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); + m_NetClearanceValueCtrl->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); + m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); +} + +DIALOG_PAD_PROPERTIES_BASE::~DIALOG_PAD_PROPERTIES_BASE() +{ + // Disconnect Events + m_PadNumCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadNetNameCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadTypeSelected ), NULL, this ); + m_PadShape->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPadShapeSelection ), NULL, this ); + m_ShapeSize_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeSize_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadOrient->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadOrientEvent ), NULL, this ); + m_PadOrientCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeOffset_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeOffset_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_ShapeDelta_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_trapDeltaDirChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_DrillShapeCtrl->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnDrillShapeSelected ), NULL, this ); + m_PadDrill_X_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_PadDrill_Y_Ctrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_rbCopperLayersSel->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerAdhCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerAdhCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerPateCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerPateCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerSilkCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerSilkCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerMaskCmp->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerMaskCu->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerDraft->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerECO1->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_PadLayerECO2->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnSetLayers ), NULL, this ); + m_panelShowPad->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnPaintShowPanel ), NULL, this ); + m_NetClearanceValueCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnValuesChanged ), NULL, this ); + m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::OnCancelButtonClick ), NULL, this ); + m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAD_PROPERTIES_BASE::PadPropertiesAccept ), NULL, this ); + +} diff --git a/pcbnew/dialogs/dialog_pad_properties_base.fbp b/pcbnew/dialogs/dialog_pad_properties_base.fbp index 5de2b17330..1262e5ded0 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.fbp +++ b/pcbnew/dialogs/dialog_pad_properties_base.fbp @@ -1,8656 +1,8656 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - dialog_pad_properties_base - 1000 - none - 1 - dialog_pad_properties_base - - . - - 1 - 1 - 1 - 1 - 0 - - 1 - 1 - 1 - 1 - - 0 - - - - - - - 1 - wxBOTH - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_DIALOG_EDIT_PAD - - 0 - - - 0 - -1,-1 - 1 - DIALOG_PAD_PROPERTIES_BASE - 1 - - - 1 - - Resizable - 1 - 857,618 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Pad Properties - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxSUNKEN_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - m_MainSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_notebook1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - General - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panel2 - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bGeneralSizer - wxHORIZONTAL - none - - 5 - wxALL|wxEXPAND - 0 - - - m_LeftBoxSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - 2 - wxBOTH - 1 - - 0 - - fgSizerPadType - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pad number: - - 0 - - - 0 - - 1 - m_PadNumText - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PADNUMCTRL - - 0 - - 0 - - 0 - - 1 - m_PadNumCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Net name: - - 0 - - - 0 - - 1 - m_PadNameText - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PADNETNAMECTRL - - 0 - - 0 - - 0 - - 1 - m_PadNetNameCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pad type: - - 0 - - - 0 - - 1 - m_staticText44 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "Through-hole" "SMD" "Connector" "NPTH, Mechanical" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_PadType - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - PadTypeSelected - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 3 - wxBOTH - 1 - - 0 - - fgSizerShapeType - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position X: - - 0 - - - 0 - - 1 - m_staticText4 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_PadPosition_X_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadPosX_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position Y: - - 0 - - - 0 - - 1 - m_staticText41 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_PadPosition_Y_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadPosY_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape: - - 0 - - - 0 - - 1 - m_staticText45 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "Circular" "Oval" "Rectangular" "Trapezoidal" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_PadShape - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPadShapeSelection - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size X: - - 0 - - - 0 - - 1 - m_staticText12 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_ShapeSize_X_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadShapeSizeX_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size Y: - - 0 - - - 0 - - 1 - m_staticText15 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_ShapeSize_Y_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadShapeSizeY_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Orientation: - - 0 - - - 0 - - 1 - m_staticText48 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "0" "90" "-90" "180" "Custom" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_PadOrient - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - PadOrientEvent - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - deg - - 0 - - - 0 - - 1 - m_staticText491 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_PadOrientText - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_PadOrientCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0.1 deg - - 0 - - - 0 - - 1 - m_customOrientUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape offset X: - - 0 - - - 0 - - 1 - m_staticText17 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_ShapeOffset_X_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadShapeOffsetX_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape offset Y: - - 0 - - - 0 - - 1 - m_staticText19 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_ShapeOffset_Y_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadShapeOffsetY_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Die length: - - 0 - - - 0 - - 1 - m_staticText38 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Wire length from pad to die on chip ( used to calculate actual track length) - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_LengthDieCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadLengthDie_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Trap. delta dim: - - 0 - - - 0 - - 1 - m_staticText21 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_ShapeDelta_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadShapeDelta_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Trap. direction: - - 0 - - - 0 - - 1 - m_staticText23 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "Horiz." "Vert." - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_trapDeltaDirChoice - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bMiddleUpperSizer - wxHORIZONTAL - none - - 5 - wxBOTTOM - 0 - - - m_DrillShapeBoxSizer - wxVERTICAL - protected - - - - 5 - wxBOTTOM - 0 - - - m_MiddleRightBoxSizer - wxVERTICAL - none - - - - - - 5 - wxEXPAND|wxBOTTOM - 0 - - wxID_ANY - Footprint Orientation - - sbSizeModuleInfo - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 2 - wxBOTH - 1 - - 0 - - fgSizer4 - wxFLEX_GROWMODE_SPECIFIED - none - 2 - 0 - - 5 - wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Rotation: - - 0 - - - 0 - - 1 - m_staticTitleModuleRot - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - - 0 - - - 0 - - 1 - m_staticModuleRotValue - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_RIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Board side: - - 0 - - - 0 - - 1 - m_staticTitleModuleSide - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Front side - - 0 - - - 0 - - 1 - m_staticModuleSideValue - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,90,92,-1,70,0 - 0 - 0 - wxID_ANY - Warning: This pad is flipped on board. Back and front layers will be swapped. - - 0 - - - 0 - - 1 - m_staticTextWarningPadFlipped - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - - bSizer10 - wxVERTICAL - none - - 5 - wxALL - 0 - - wxID_ANY - Drill - - sbSizer2 - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - - - 0 - - fgSizerGeometry - wxFLEX_GROWMODE_SPECIFIED - none - 14 - 0 - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shape: - - 0 - - - 0 - - 1 - m_staticText47 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "Circular" "Oval" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_DrillShapeCtrl - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnDrillShapeSelected - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticText51 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size X: - - 0 - - - 0 - - 1 - m_textPadDrillX - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_PadDrill_X_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadDrill_X_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size Y: - - 0 - - - 0 - - 1 - m_textPadDrillY - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_PadDrill_Y_Ctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_PadDrill_Y_Unit - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - wxID_ANY - Layers - - m_LayersSizer - wxVERTICAL - none - - - 5 - wxEXPAND - 0 - - - bSizer11 - wxHORIZONTAL - none - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Copper: - - 0 - - - 0 - - 1 - m_staticText511 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "Front" "Back" "All" "None" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_rbCopperLayersSel - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Technical Layers - - sbSizerTechlayers - wxVERTICAL - none - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Adhesive Cmp - - 0 - - - 0 - - 1 - m_PadLayerAdhCmp - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Adhesive Copper - - 0 - - - 0 - - 1 - m_PadLayerAdhCu - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste Cmp - - 0 - - - 0 - - 1 - m_PadLayerPateCmp - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste Copper - - 0 - - - 0 - - 1 - m_PadLayerPateCu - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Silkscreen Cmp - - 0 - - - 0 - - 1 - m_PadLayerSilkCmp - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Silkscreen Copper - - 0 - - - 0 - - 1 - m_PadLayerSilkCu - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask Cmp - - 0 - - - 0 - - 1 - m_PadLayerMaskCmp - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask Copper - - 0 - - - 0 - - 1 - m_PadLayerMaskCu - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Draft layer - - 0 - - - 0 - - 1 - m_PadLayerDraft - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - E.C.O.1 layer - - 0 - - - 0 - - 1 - m_PadLayerECO1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - E.C.O.2 layer - - 0 - - - 0 - - 1 - m_PadLayerECO2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetLayers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer13x - wxVERTICAL - none - - 5 - wxEXPAND|wxRIGHT|wxSHAPED|wxTOP - 1 - - 1 - 1 - 1 - 1 - - - - - - 0,0,0 - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - -1,-1 - 1 - m_panelShowPad - 1 - - - protected - 1 - - Resizable - 1 - 200,200 - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER - - - - - - - - - - - - - - - - - OnPaintShowPanel - - - - - - - - - - - - - - - - Local Settings - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_localSettingsPanel - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer14 - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - - bSizer13 - wxVERTICAL - none - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Clearances - - sbClearancesSizer - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - - - 0 - - fgClearancesGridSizer - wxFLEX_GROWMODE_SPECIFIED - none - 5 - 0 - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Net pad clearance: - - 0 - - - 0 - - 1 - m_staticTextNetClearance - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - This is the local net clearance for pad. If 0, the footprint local value or the Netclass value is used - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_NetClearanceValueCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnValuesChanged - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_NetClearanceUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask clearance: - - 0 - - - 0 - - 1 - m_MaskClearanceTitle - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - This is the local clearance between this pad and the solder mask If 0, the footprint local value or the global value is used - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_SolderMaskMarginCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_SolderMaskMarginUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder paste clearance: - - 0 - - - 0 - - 1 - m_staticTextSolderPaste - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - This is the local clearance between this pad and the solder paste. If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value ratio A negative value means a smaller mask size than pad size - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_SolderPasteMarginCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_SolderPasteMarginUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Solder mask ratio clearance: - - 0 - - - 0 - - 1 - m_staticTextRatio - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - This is the local clearance ratio in per cent between this pad and the solder paste. A value of 10 means the clearance value is 10 per cent of the pad size If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value A negative value means a smaller mask size than pad size. - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_SolderPasteMarginRatioCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - % - - 0 - - - 0 - - 1 - m_SolderPasteRatioMarginUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 1 - - wxID_ANY - Copper Zones - - sbSizer7 - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - - - 0 - - fgSizer41 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 5 - wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pad connection: - - 0 - - - 0 - - 1 - m_staticText40 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "From parent module" "Solid" "Thermal relief" "None" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_ZoneConnectionChoice - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_staticText43 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Thermal relief width: - - 0 - - - 0 - - 1 - m_staticText49 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_ThermalWidthCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_ThermalWidthUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Thermal relief gap: - - 0 - - - 0 - - 1 - m_staticText52 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 0 - - 1 - m_ThermalGapCtrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Inch - - 0 - - - 0 - - 1 - m_ThermalGapUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,90,92,-1,70,0 - 0 - 0 - wxID_ANY - Set fields to 0 to use parent or global values - - 0 - - - 0 - - 1 - m_staticTextWarning - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizer1 - protected - - OnCancelButtonClick - - - - PadPropertiesAccept - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_pad_properties_base + 1000 + none + 1 + dialog_pad_properties_base + + . + + 1 + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_DIALOG_EDIT_PAD + + 0 + + + 0 + -1,-1 + 1 + DIALOG_PAD_PROPERTIES_BASE + 1 + + + 1 + + Resizable + 1 + 857,618 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Pad Properties + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxSUNKEN_BORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + m_MainSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_notebook1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + General + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_panel2 + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bGeneralSizer + wxHORIZONTAL + none + + 5 + wxALL|wxEXPAND + 0 + + + m_LeftBoxSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 2 + wxBOTH + 1 + + 0 + + fgSizerPadType + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pad number: + + 0 + + + 0 + + 1 + m_PadNumText + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PADNUMCTRL + + 0 + + 0 + + 0 + + 1 + m_PadNumCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Net name: + + 0 + + + 0 + + 1 + m_PadNameText + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PADNETNAMECTRL + + 0 + + 0 + + 0 + + 1 + m_PadNetNameCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pad type: + + 0 + + + 0 + + 1 + m_staticText44 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Through-hole" "SMD" "Connector" "NPTH, Mechanical" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_PadType + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + PadTypeSelected + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 3 + wxBOTH + 1 + + 0 + + fgSizerShapeType + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position X: + + 0 + + + 0 + + 1 + m_staticText4 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PadPosition_X_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadPosX_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position Y: + + 0 + + + 0 + + 1 + m_staticText41 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PadPosition_Y_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadPosY_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape: + + 0 + + + 0 + + 1 + m_staticText45 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Circular" "Oval" "Rectangular" "Trapezoidal" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_PadShape + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPadShapeSelection + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size X: + + 0 + + + 0 + + 1 + m_staticText12 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_ShapeSize_X_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadShapeSizeX_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size Y: + + 0 + + + 0 + + 1 + m_staticText15 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_ShapeSize_Y_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadShapeSizeY_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Orientation: + + 0 + + + 0 + + 1 + m_staticText48 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "0" "90" "-90" "180" "Custom" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_PadOrient + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + PadOrientEvent + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + deg + + 0 + + + 0 + + 1 + m_staticText491 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_PadOrientText + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PadOrientCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0.1 deg + + 0 + + + 0 + + 1 + m_customOrientUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape offset X: + + 0 + + + 0 + + 1 + m_staticText17 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_ShapeOffset_X_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadShapeOffsetX_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape offset Y: + + 0 + + + 0 + + 1 + m_staticText19 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_ShapeOffset_Y_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadShapeOffsetY_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Die length: + + 0 + + + 0 + + 1 + m_staticText38 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Wire length from pad to die on chip ( used to calculate actual track length) + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_LengthDieCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadLengthDie_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Trap. delta dim: + + 0 + + + 0 + + 1 + m_staticText21 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_ShapeDelta_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadShapeDelta_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Trap. direction: + + 0 + + + 0 + + 1 + m_staticText23 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Horiz." "Vert." + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_trapDeltaDirChoice + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bMiddleUpperSizer + wxHORIZONTAL + none + + 5 + wxBOTTOM + 0 + + + m_DrillShapeBoxSizer + wxVERTICAL + protected + + + + 5 + wxBOTTOM + 0 + + + m_MiddleRightBoxSizer + wxVERTICAL + none + + + + + + 5 + wxEXPAND|wxBOTTOM + 0 + + wxID_ANY + Footprint Orientation + + sbSizeModuleInfo + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 2 + wxBOTH + 1 + + 0 + + fgSizer4 + wxFLEX_GROWMODE_SPECIFIED + none + 2 + 0 + + 5 + wxALIGN_RIGHT|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Rotation: + + 0 + + + 0 + + 1 + m_staticTitleModuleRot + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + + 0 + + + 0 + + 1 + m_staticModuleRotValue + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_RIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Board side: + + 0 + + + 0 + + 1 + m_staticTitleModuleSide + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Front side + + 0 + + + 0 + + 1 + m_staticModuleSideValue + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,90,92,-1,70,0 + 0 + 0 + wxID_ANY + Warning: This pad is flipped on board. Back and front layers will be swapped. + + 0 + + + 0 + + 1 + m_staticTextWarningPadFlipped + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + bSizer10 + wxVERTICAL + none + + 5 + wxALL + 0 + + wxID_ANY + Drill + + sbSizer2 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgSizerGeometry + wxFLEX_GROWMODE_SPECIFIED + none + 14 + 0 + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shape: + + 0 + + + 0 + + 1 + m_staticText47 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Circular" "Oval" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_DrillShapeCtrl + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrillShapeSelected + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_staticText51 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size X: + + 0 + + + 0 + + 1 + m_textPadDrillX + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PadDrill_X_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadDrill_X_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size Y: + + 0 + + + 0 + + 1 + m_textPadDrillY + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PadDrill_Y_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_PadDrill_Y_Unit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 1 + + wxID_ANY + Layers + + m_LayersSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 0 + + + bSizer11 + wxHORIZONTAL + none + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Copper: + + 0 + + + 0 + + 1 + m_staticText511 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Front" "Back" "All" "None" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_rbCopperLayersSel + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + wxID_ANY + Technical Layers + + sbSizerTechlayers + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Adhesive Cmp + + 0 + + + 0 + + 1 + m_PadLayerAdhCmp + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Adhesive Copper + + 0 + + + 0 + + 1 + m_PadLayerAdhCu + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste Cmp + + 0 + + + 0 + + 1 + m_PadLayerPateCmp + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste Copper + + 0 + + + 0 + + 1 + m_PadLayerPateCu + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Silkscreen Cmp + + 0 + + + 0 + + 1 + m_PadLayerSilkCmp + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Silkscreen Copper + + 0 + + + 0 + + 1 + m_PadLayerSilkCu + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask Cmp + + 0 + + + 0 + + 1 + m_PadLayerMaskCmp + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask Copper + + 0 + + + 0 + + 1 + m_PadLayerMaskCu + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Draft layer + + 0 + + + 0 + + 1 + m_PadLayerDraft + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + E.C.O.1 layer + + 0 + + + 0 + + 1 + m_PadLayerECO1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + E.C.O.2 layer + + 0 + + + 0 + + 1 + m_PadLayerECO2 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetLayers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer13x + wxVERTICAL + none + + 5 + wxEXPAND|wxRIGHT|wxSHAPED|wxTOP + 1 + + 1 + 1 + 1 + 1 + + + + + + 0,0,0 + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + m_panelShowPad + 1 + + + protected + 1 + + Resizable + 1 + 200,200 + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER + + + + + + + + + + + + + + + + + OnPaintShowPanel + + + + + + + + + + + + + + + + Local Settings + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_localSettingsPanel + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer14 + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bSizer13 + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Clearances + + sbClearancesSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgClearancesGridSizer + wxFLEX_GROWMODE_SPECIFIED + none + 5 + 0 + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Net pad clearance: + + 0 + + + 0 + + 1 + m_staticTextNetClearance + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + This is the local net clearance for pad. If 0, the footprint local value or the Netclass value is used + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_NetClearanceValueCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnValuesChanged + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_NetClearanceUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask clearance: + + 0 + + + 0 + + 1 + m_MaskClearanceTitle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + This is the local clearance between this pad and the solder mask If 0, the footprint local value or the global value is used + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_SolderMaskMarginCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_SolderMaskMarginUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste clearance: + + 0 + + + 0 + + 1 + m_staticTextSolderPaste + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + This is the local clearance between this pad and the solder paste. If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value ratio A negative value means a smaller mask size than pad size + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_SolderPasteMarginCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_SolderPasteMarginUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask ratio clearance: + + 0 + + + 0 + + 1 + m_staticTextRatio + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + This is the local clearance ratio in per cent between this pad and the solder paste. A value of 10 means the clearance value is 10 per cent of the pad size If 0 the footprint value or the global value is used.. The final clearance value is the sum of this value and the clearance value A negative value means a smaller mask size than pad size. + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_SolderPasteMarginRatioCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + % + + 0 + + + 0 + + 1 + m_SolderPasteRatioMarginUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 1 + + wxID_ANY + Copper Zones + + sbSizer7 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 3 + wxBOTH + + + 0 + + fgSizer41 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pad connection: + + 0 + + + 0 + + 1 + m_staticText40 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "From parent module" "Solid" "Thermal relief" "None" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_ZoneConnectionChoice + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_staticText43 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Thermal relief width: + + 0 + + + 0 + + 1 + m_staticText49 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_ThermalWidthCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_ThermalWidthUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Thermal relief gap: + + 0 + + + 0 + + 1 + m_staticText52 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_ThermalGapCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Inch + + 0 + + + 0 + + 1 + m_ThermalGapUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,90,92,-1,70,0 + 0 + 0 + wxID_ANY + Set fields to 0 to use parent or global values + + 0 + + + 0 + + 1 + m_staticTextWarning + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizer1 + protected + + OnCancelButtonClick + + + + PadPropertiesAccept + + + + + + + + diff --git a/pcbnew/dialogs/dialog_pad_properties_base.h b/pcbnew/dialogs/dialog_pad_properties_base.h index 60993c6e97..737a8777fe 100644 --- a/pcbnew/dialogs/dialog_pad_properties_base.h +++ b/pcbnew/dialogs/dialog_pad_properties_base.h @@ -1,167 +1,168 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Feb 9 2012) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_PAD_PROPERTIES_BASE_H__ -#define __DIALOG_PAD_PROPERTIES_BASE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_PAD_PROPERTIES_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_PAD_PROPERTIES_BASE : public wxDialog -{ - private: - - protected: - enum - { - wxID_DIALOG_EDIT_PAD = 1000, - wxID_PADNUMCTRL, - wxID_PADNETNAMECTRL - }; - - wxNotebook* m_notebook1; - wxPanel* m_panel2; - wxStaticText* m_PadNumText; - wxTextCtrl* m_PadNumCtrl; - wxStaticText* m_PadNameText; - wxTextCtrl* m_PadNetNameCtrl; - wxStaticText* m_staticText44; - wxChoice* m_PadType; - wxStaticText* m_staticText4; - wxTextCtrl* m_PadPosition_X_Ctrl; - wxStaticText* m_PadPosX_Unit; - wxStaticText* m_staticText41; - wxTextCtrl* m_PadPosition_Y_Ctrl; - wxStaticText* m_PadPosY_Unit; - wxStaticText* m_staticText45; - wxChoice* m_PadShape; - wxStaticText* m_staticText12; - wxTextCtrl* m_ShapeSize_X_Ctrl; - wxStaticText* m_PadShapeSizeX_Unit; - wxStaticText* m_staticText15; - wxTextCtrl* m_ShapeSize_Y_Ctrl; - wxStaticText* m_PadShapeSizeY_Unit; - wxStaticText* m_staticText48; - wxChoice* m_PadOrient; - wxStaticText* m_staticText491; - wxStaticText* m_PadOrientText; - wxTextCtrl* m_PadOrientCtrl; - wxStaticText* m_customOrientUnits; - wxStaticText* m_staticText17; - wxTextCtrl* m_ShapeOffset_X_Ctrl; - wxStaticText* m_PadShapeOffsetX_Unit; - wxStaticText* m_staticText19; - wxTextCtrl* m_ShapeOffset_Y_Ctrl; - wxStaticText* m_PadShapeOffsetY_Unit; - wxStaticText* m_staticText38; - wxTextCtrl* m_LengthDieCtrl; - wxStaticText* m_PadLengthDie_Unit; - wxStaticText* m_staticText21; - wxTextCtrl* m_ShapeDelta_Ctrl; - wxStaticText* m_PadShapeDelta_Unit; - wxStaticText* m_staticText23; - wxChoice* m_trapDeltaDirChoice; - wxBoxSizer* m_DrillShapeBoxSizer; - wxStaticText* m_staticTitleModuleRot; - wxStaticText* m_staticModuleRotValue; - wxStaticText* m_staticTitleModuleSide; - wxStaticText* m_staticModuleSideValue; - wxStaticText* m_staticTextWarningPadFlipped; - wxStaticText* m_staticText47; - wxChoice* m_DrillShapeCtrl; - wxStaticText* m_staticText51; - wxStaticText* m_textPadDrillX; - wxTextCtrl* m_PadDrill_X_Ctrl; - wxStaticText* m_PadDrill_X_Unit; - wxStaticText* m_textPadDrillY; - wxTextCtrl* m_PadDrill_Y_Ctrl; - wxStaticText* m_PadDrill_Y_Unit; - wxStaticText* m_staticText511; - wxChoice* m_rbCopperLayersSel; - wxCheckBox* m_PadLayerAdhCmp; - wxCheckBox* m_PadLayerAdhCu; - wxCheckBox* m_PadLayerPateCmp; - wxCheckBox* m_PadLayerPateCu; - wxCheckBox* m_PadLayerSilkCmp; - wxCheckBox* m_PadLayerSilkCu; - wxCheckBox* m_PadLayerMaskCmp; - wxCheckBox* m_PadLayerMaskCu; - wxCheckBox* m_PadLayerDraft; - wxCheckBox* m_PadLayerECO1; - wxCheckBox* m_PadLayerECO2; - wxPanel* m_panelShowPad; - wxPanel* m_localSettingsPanel; - wxStaticText* m_staticTextNetClearance; - wxTextCtrl* m_NetClearanceValueCtrl; - wxStaticText* m_NetClearanceUnits; - wxStaticText* m_MaskClearanceTitle; - wxTextCtrl* m_SolderMaskMarginCtrl; - wxStaticText* m_SolderMaskMarginUnits; - wxStaticText* m_staticTextSolderPaste; - wxTextCtrl* m_SolderPasteMarginCtrl; - wxStaticText* m_SolderPasteMarginUnits; - wxStaticText* m_staticTextRatio; - wxTextCtrl* m_SolderPasteMarginRatioCtrl; - wxStaticText* m_SolderPasteRatioMarginUnits; - wxStaticText* m_staticText40; - wxChoice* m_ZoneConnectionChoice; - wxStaticText* m_staticText43; - wxStaticText* m_staticText49; - wxTextCtrl* m_ThermalWidthCtrl; - wxStaticText* m_ThermalWidthUnits; - wxStaticText* m_staticText52; - wxTextCtrl* m_ThermalGapCtrl; - wxStaticText* m_ThermalGapUnits; - wxStaticText* m_staticTextWarning; - wxStdDialogButtonSizer* m_sdbSizer1; - wxButton* m_sdbSizer1OK; - wxButton* m_sdbSizer1Cancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnValuesChanged( wxCommandEvent& event ) { event.Skip(); } - virtual void PadTypeSelected( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPadShapeSelection( wxCommandEvent& event ) { event.Skip(); } - virtual void PadOrientEvent( wxCommandEvent& event ) { event.Skip(); } - virtual void OnSetLayers( wxCommandEvent& event ) { event.Skip(); } - virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } - virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void PadPropertiesAccept( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_EDIT_PAD, const wxString& title = _("Pad Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 857,618 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSUNKEN_BORDER ); - ~DIALOG_PAD_PROPERTIES_BASE(); - -}; - -#endif //__DIALOG_PAD_PROPERTIES_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_PAD_PROPERTIES_BASE_H__ +#define __DIALOG_PAD_PROPERTIES_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_PAD_PROPERTIES_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_PAD_PROPERTIES_BASE : public DIALOG_SHIM +{ + private: + + protected: + enum + { + wxID_DIALOG_EDIT_PAD = 1000, + wxID_PADNUMCTRL, + wxID_PADNETNAMECTRL + }; + + wxNotebook* m_notebook1; + wxPanel* m_panel2; + wxStaticText* m_PadNumText; + wxTextCtrl* m_PadNumCtrl; + wxStaticText* m_PadNameText; + wxTextCtrl* m_PadNetNameCtrl; + wxStaticText* m_staticText44; + wxChoice* m_PadType; + wxStaticText* m_staticText4; + wxTextCtrl* m_PadPosition_X_Ctrl; + wxStaticText* m_PadPosX_Unit; + wxStaticText* m_staticText41; + wxTextCtrl* m_PadPosition_Y_Ctrl; + wxStaticText* m_PadPosY_Unit; + wxStaticText* m_staticText45; + wxChoice* m_PadShape; + wxStaticText* m_staticText12; + wxTextCtrl* m_ShapeSize_X_Ctrl; + wxStaticText* m_PadShapeSizeX_Unit; + wxStaticText* m_staticText15; + wxTextCtrl* m_ShapeSize_Y_Ctrl; + wxStaticText* m_PadShapeSizeY_Unit; + wxStaticText* m_staticText48; + wxChoice* m_PadOrient; + wxStaticText* m_staticText491; + wxStaticText* m_PadOrientText; + wxTextCtrl* m_PadOrientCtrl; + wxStaticText* m_customOrientUnits; + wxStaticText* m_staticText17; + wxTextCtrl* m_ShapeOffset_X_Ctrl; + wxStaticText* m_PadShapeOffsetX_Unit; + wxStaticText* m_staticText19; + wxTextCtrl* m_ShapeOffset_Y_Ctrl; + wxStaticText* m_PadShapeOffsetY_Unit; + wxStaticText* m_staticText38; + wxTextCtrl* m_LengthDieCtrl; + wxStaticText* m_PadLengthDie_Unit; + wxStaticText* m_staticText21; + wxTextCtrl* m_ShapeDelta_Ctrl; + wxStaticText* m_PadShapeDelta_Unit; + wxStaticText* m_staticText23; + wxChoice* m_trapDeltaDirChoice; + wxBoxSizer* m_DrillShapeBoxSizer; + wxStaticText* m_staticTitleModuleRot; + wxStaticText* m_staticModuleRotValue; + wxStaticText* m_staticTitleModuleSide; + wxStaticText* m_staticModuleSideValue; + wxStaticText* m_staticTextWarningPadFlipped; + wxStaticText* m_staticText47; + wxChoice* m_DrillShapeCtrl; + wxStaticText* m_staticText51; + wxStaticText* m_textPadDrillX; + wxTextCtrl* m_PadDrill_X_Ctrl; + wxStaticText* m_PadDrill_X_Unit; + wxStaticText* m_textPadDrillY; + wxTextCtrl* m_PadDrill_Y_Ctrl; + wxStaticText* m_PadDrill_Y_Unit; + wxStaticText* m_staticText511; + wxChoice* m_rbCopperLayersSel; + wxCheckBox* m_PadLayerAdhCmp; + wxCheckBox* m_PadLayerAdhCu; + wxCheckBox* m_PadLayerPateCmp; + wxCheckBox* m_PadLayerPateCu; + wxCheckBox* m_PadLayerSilkCmp; + wxCheckBox* m_PadLayerSilkCu; + wxCheckBox* m_PadLayerMaskCmp; + wxCheckBox* m_PadLayerMaskCu; + wxCheckBox* m_PadLayerDraft; + wxCheckBox* m_PadLayerECO1; + wxCheckBox* m_PadLayerECO2; + wxPanel* m_panelShowPad; + wxPanel* m_localSettingsPanel; + wxStaticText* m_staticTextNetClearance; + wxTextCtrl* m_NetClearanceValueCtrl; + wxStaticText* m_NetClearanceUnits; + wxStaticText* m_MaskClearanceTitle; + wxTextCtrl* m_SolderMaskMarginCtrl; + wxStaticText* m_SolderMaskMarginUnits; + wxStaticText* m_staticTextSolderPaste; + wxTextCtrl* m_SolderPasteMarginCtrl; + wxStaticText* m_SolderPasteMarginUnits; + wxStaticText* m_staticTextRatio; + wxTextCtrl* m_SolderPasteMarginRatioCtrl; + wxStaticText* m_SolderPasteRatioMarginUnits; + wxStaticText* m_staticText40; + wxChoice* m_ZoneConnectionChoice; + wxStaticText* m_staticText43; + wxStaticText* m_staticText49; + wxTextCtrl* m_ThermalWidthCtrl; + wxStaticText* m_ThermalWidthUnits; + wxStaticText* m_staticText52; + wxTextCtrl* m_ThermalGapCtrl; + wxStaticText* m_ThermalGapUnits; + wxStaticText* m_staticTextWarning; + wxStdDialogButtonSizer* m_sdbSizer1; + wxButton* m_sdbSizer1OK; + wxButton* m_sdbSizer1Cancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnValuesChanged( wxCommandEvent& event ) { event.Skip(); } + virtual void PadTypeSelected( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPadShapeSelection( wxCommandEvent& event ) { event.Skip(); } + virtual void PadOrientEvent( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSetLayers( wxCommandEvent& event ) { event.Skip(); } + virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } + virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void PadPropertiesAccept( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_EDIT_PAD, const wxString& title = _("Pad Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 857,618 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSUNKEN_BORDER ); + ~DIALOG_PAD_PROPERTIES_BASE(); + +}; + +#endif //__DIALOG_PAD_PROPERTIES_BASE_H__ diff --git a/pcbnew/dialogs/dialog_pcb_text_properties.cpp b/pcbnew/dialogs/dialog_pcb_text_properties.cpp index 26e7a9ed68..5b0e07d4c4 100644 --- a/pcbnew/dialogs/dialog_pcb_text_properties.cpp +++ b/pcbnew/dialogs/dialog_pcb_text_properties.cpp @@ -33,7 +33,6 @@ #include #include #include -#include #include #include @@ -47,9 +46,7 @@ class PCB_EDIT_FRAME; class TEXTE_PCB; -/// Implement DIALOG_PCB_TEXT_PROPERTIES_BASE with interposing -/// DIALOG_PCB_TEXT_PROPERTIES_BASE_SHIM class -DIALOG_EXTEND_WITH_SHIM( DIALOG_PCB_TEXT_PROPERTIES, DIALOG_PCB_TEXT_PROPERTIES_BASE ) +class DIALOG_PCB_TEXT_PROPERTIES : public DIALOG_PCB_TEXT_PROPERTIES_BASE { public: DIALOG_PCB_TEXT_PROPERTIES( PCB_EDIT_FRAME* parent, TEXTE_PCB* passedTextPCB, wxDC* DC ); @@ -78,7 +75,7 @@ private: DIALOG_PCB_TEXT_PROPERTIES::DIALOG_PCB_TEXT_PROPERTIES( PCB_EDIT_FRAME* parent, TEXTE_PCB* passedTextPCB, wxDC* DC ) - : DIALOG_PCB_TEXT_PROPERTIES_BASE_SHIM( parent ) + : DIALOG_PCB_TEXT_PROPERTIES_BASE( parent ) { m_Parent = parent; m_DC = DC; diff --git a/pcbnew/dialogs/dialog_pcb_text_properties_base.cpp b/pcbnew/dialogs/dialog_pcb_text_properties_base.cpp index 63d73a1d7c..aa857d718b 100644 --- a/pcbnew/dialogs/dialog_pcb_text_properties_base.cpp +++ b/pcbnew/dialogs/dialog_pcb_text_properties_base.cpp @@ -1,171 +1,179 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_pcb_text_properties_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_PCB_TEXT_PROPERTIES_BASE::DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); - - wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bSizer9; - bSizer9 = new wxBoxSizer( wxVERTICAL ); - - m_TextLabel = new wxStaticText( this, wxID_ANY, _("Text:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_TextLabel->Wrap( -1 ); - bSizer9->Add( m_TextLabel, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_TextContentCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); - m_TextContentCtrl->SetToolTip( _("Enter the text placed on selected layer.") ); - m_TextContentCtrl->SetMinSize( wxSize( 400,60 ) ); - - bSizer9->Add( m_TextContentCtrl, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - wxBoxSizer* bSizerLower; - bSizerLower = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizerLeft; - bSizerLeft = new wxBoxSizer( wxVERTICAL ); - - m_SizeXLabel = new wxStaticText( this, wxID_ANY, _("Size X"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SizeXLabel->Wrap( -1 ); - bSizerLeft->Add( m_SizeXLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_SizeXCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizerLeft->Add( m_SizeXCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - m_SizeYLabel = new wxStaticText( this, wxID_ANY, _("Size Y"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SizeYLabel->Wrap( -1 ); - bSizerLeft->Add( m_SizeYLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_SizeYCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizerLeft->Add( m_SizeYCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - m_ThicknessLabel = new wxStaticText( this, wxID_ANY, _("Thickness"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ThicknessLabel->Wrap( -1 ); - bSizerLeft->Add( m_ThicknessLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_ThicknessCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizerLeft->Add( m_ThicknessCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - bSizerLower->Add( bSizerLeft, 1, 0, 5 ); - - wxBoxSizer* bSizerRight; - bSizerRight = new wxBoxSizer( wxVERTICAL ); - - m_PositionXLabel = new wxStaticText( this, wxID_ANY, _("Position X"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PositionXLabel->Wrap( -1 ); - bSizerRight->Add( m_PositionXLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_PositionXCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizerRight->Add( m_PositionXCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_PositionYLabel = new wxStaticText( this, wxID_ANY, _("Position Y"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PositionYLabel->Wrap( -1 ); - bSizerRight->Add( m_PositionYLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_PositionYCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizerRight->Add( m_PositionYCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - m_LayerLabel = new wxStaticText( this, wxID_ANY, _("Layer:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_LayerLabel->Wrap( -1 ); - bSizerRight->Add( m_LayerLabel, 0, wxLEFT|wxRIGHT, 5 ); - - wxArrayString m_LayerSelectionCtrlChoices; - m_LayerSelectionCtrl = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_LayerSelectionCtrlChoices, 0 ); - m_LayerSelectionCtrl->SetSelection( 0 ); - m_LayerSelectionCtrl->SetToolTip( _("Select the layer on which text should lay.") ); - - bSizerRight->Add( m_LayerSelectionCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - bSizerLower->Add( bSizerRight, 1, 0, 5 ); - - wxBoxSizer* bSizer5; - bSizer5 = new wxBoxSizer( wxVERTICAL ); - - m_staticText8 = new wxStaticText( this, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText8->Wrap( -1 ); - bSizer5->Add( m_staticText8, 0, wxLEFT|wxRIGHT, 5 ); - - wxString m_OrientationCtrlChoices[] = { _("0"), _("90"), _("180"), _("-90") }; - int m_OrientationCtrlNChoices = sizeof( m_OrientationCtrlChoices ) / sizeof( wxString ); - m_OrientationCtrl = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_OrientationCtrlNChoices, m_OrientationCtrlChoices, 0 ); - m_OrientationCtrl->SetSelection( 0 ); - bSizer5->Add( m_OrientationCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - m_staticText9 = new wxStaticText( this, wxID_ANY, _("Style:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText9->Wrap( -1 ); - bSizer5->Add( m_staticText9, 0, wxLEFT|wxRIGHT, 5 ); - - wxString m_StyleCtrlChoices[] = { _("Normal"), _("Italic") }; - int m_StyleCtrlNChoices = sizeof( m_StyleCtrlChoices ) / sizeof( wxString ); - m_StyleCtrl = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_StyleCtrlNChoices, m_StyleCtrlChoices, 0 ); - m_StyleCtrl->SetSelection( 0 ); - bSizer5->Add( m_StyleCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - bSizerLower->Add( bSizer5, 0, wxEXPAND, 5 ); - - wxBoxSizer* bSizer6; - bSizer6 = new wxBoxSizer( wxVERTICAL ); - - m_staticText10 = new wxStaticText( this, wxID_ANY, _("Display:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText10->Wrap( -1 ); - bSizer6->Add( m_staticText10, 0, wxLEFT|wxRIGHT, 5 ); - - wxString m_DisplayCtrlChoices[] = { _("Normal"), _("Mirrored") }; - int m_DisplayCtrlNChoices = sizeof( m_DisplayCtrlChoices ) / sizeof( wxString ); - m_DisplayCtrl = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_DisplayCtrlNChoices, m_DisplayCtrlChoices, 0 ); - m_DisplayCtrl->SetSelection( 0 ); - bSizer6->Add( m_DisplayCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - m_staticText11 = new wxStaticText( this, wxID_ANY, _("Justification:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText11->Wrap( -1 ); - bSizer6->Add( m_staticText11, 0, wxLEFT|wxRIGHT, 5 ); - - wxString m_justifyChoiceChoices[] = { _("Left"), _("Center"), _("Right") }; - int m_justifyChoiceNChoices = sizeof( m_justifyChoiceChoices ) / sizeof( wxString ); - m_justifyChoice = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_justifyChoiceNChoices, m_justifyChoiceChoices, 0 ); - m_justifyChoice->SetSelection( 0 ); - bSizer6->Add( m_justifyChoice, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - bSizerLower->Add( bSizer6, 0, wxEXPAND, 5 ); - - bSizer9->Add( bSizerLower, 0, wxEXPAND, 5 ); - - m_StandardSizer = new wxStdDialogButtonSizer(); - m_StandardSizerOK = new wxButton( this, wxID_OK ); - m_StandardSizer->AddButton( m_StandardSizerOK ); - m_StandardSizerCancel = new wxButton( this, wxID_CANCEL ); - m_StandardSizer->AddButton( m_StandardSizerCancel ); - m_StandardSizer->Realize(); - bSizer9->Add( m_StandardSizer, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL, 5 ); - - bMainSizer->Add( bSizer9, 1, wxALL|wxEXPAND, 5 ); - - this->SetSizer( bMainSizer ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnClose ) ); - m_StandardSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnCancelClick ), NULL, this ); - m_StandardSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnOkClick ), NULL, this ); -} - -DIALOG_PCB_TEXT_PROPERTIES_BASE::~DIALOG_PCB_TEXT_PROPERTIES_BASE() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnClose ) ); - m_StandardSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnCancelClick ), NULL, this ); - m_StandardSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnOkClick ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_pcb_text_properties_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_PCB_TEXT_PROPERTIES_BASE::DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + + wxBoxSizer* bMainSizer; + bMainSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizer9; + bSizer9 = new wxBoxSizer( wxVERTICAL ); + + m_TextLabel = new wxStaticText( this, wxID_ANY, _("Text:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextLabel->Wrap( -1 ); + bSizer9->Add( m_TextLabel, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_TextContentCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); + m_TextContentCtrl->SetToolTip( _("Enter the text placed on selected layer.") ); + m_TextContentCtrl->SetMinSize( wxSize( 400,60 ) ); + + bSizer9->Add( m_TextContentCtrl, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + wxBoxSizer* bSizerLower; + bSizerLower = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizerLeft; + bSizerLeft = new wxBoxSizer( wxVERTICAL ); + + m_SizeXLabel = new wxStaticText( this, wxID_ANY, _("Size X"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SizeXLabel->Wrap( -1 ); + bSizerLeft->Add( m_SizeXLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_SizeXCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerLeft->Add( m_SizeXCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + m_SizeYLabel = new wxStaticText( this, wxID_ANY, _("Size Y"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SizeYLabel->Wrap( -1 ); + bSizerLeft->Add( m_SizeYLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_SizeYCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerLeft->Add( m_SizeYCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + m_ThicknessLabel = new wxStaticText( this, wxID_ANY, _("Thickness"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ThicknessLabel->Wrap( -1 ); + bSizerLeft->Add( m_ThicknessLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_ThicknessCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerLeft->Add( m_ThicknessCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + + bSizerLower->Add( bSizerLeft, 1, 0, 5 ); + + wxBoxSizer* bSizerRight; + bSizerRight = new wxBoxSizer( wxVERTICAL ); + + m_PositionXLabel = new wxStaticText( this, wxID_ANY, _("Position X"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PositionXLabel->Wrap( -1 ); + bSizerRight->Add( m_PositionXLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_PositionXCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerRight->Add( m_PositionXCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_PositionYLabel = new wxStaticText( this, wxID_ANY, _("Position Y"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PositionYLabel->Wrap( -1 ); + bSizerRight->Add( m_PositionYLabel, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_PositionYCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerRight->Add( m_PositionYCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + m_LayerLabel = new wxStaticText( this, wxID_ANY, _("Layer:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_LayerLabel->Wrap( -1 ); + bSizerRight->Add( m_LayerLabel, 0, wxLEFT|wxRIGHT, 5 ); + + wxArrayString m_LayerSelectionCtrlChoices; + m_LayerSelectionCtrl = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_LayerSelectionCtrlChoices, 0 ); + m_LayerSelectionCtrl->SetSelection( 0 ); + m_LayerSelectionCtrl->SetToolTip( _("Select the layer on which text should lay.") ); + + bSizerRight->Add( m_LayerSelectionCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + bSizerLower->Add( bSizerRight, 1, 0, 5 ); + + wxBoxSizer* bSizer5; + bSizer5 = new wxBoxSizer( wxVERTICAL ); + + m_staticText8 = new wxStaticText( this, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText8->Wrap( -1 ); + bSizer5->Add( m_staticText8, 0, wxLEFT|wxRIGHT, 5 ); + + wxString m_OrientationCtrlChoices[] = { _("0"), _("90"), _("180"), _("-90") }; + int m_OrientationCtrlNChoices = sizeof( m_OrientationCtrlChoices ) / sizeof( wxString ); + m_OrientationCtrl = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_OrientationCtrlNChoices, m_OrientationCtrlChoices, 0 ); + m_OrientationCtrl->SetSelection( 0 ); + bSizer5->Add( m_OrientationCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + m_staticText9 = new wxStaticText( this, wxID_ANY, _("Style:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText9->Wrap( -1 ); + bSizer5->Add( m_staticText9, 0, wxLEFT|wxRIGHT, 5 ); + + wxString m_StyleCtrlChoices[] = { _("Normal"), _("Italic") }; + int m_StyleCtrlNChoices = sizeof( m_StyleCtrlChoices ) / sizeof( wxString ); + m_StyleCtrl = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_StyleCtrlNChoices, m_StyleCtrlChoices, 0 ); + m_StyleCtrl->SetSelection( 0 ); + bSizer5->Add( m_StyleCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + + bSizerLower->Add( bSizer5, 0, wxEXPAND, 5 ); + + wxBoxSizer* bSizer6; + bSizer6 = new wxBoxSizer( wxVERTICAL ); + + m_staticText10 = new wxStaticText( this, wxID_ANY, _("Display:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText10->Wrap( -1 ); + bSizer6->Add( m_staticText10, 0, wxLEFT|wxRIGHT, 5 ); + + wxString m_DisplayCtrlChoices[] = { _("Normal"), _("Mirrored") }; + int m_DisplayCtrlNChoices = sizeof( m_DisplayCtrlChoices ) / sizeof( wxString ); + m_DisplayCtrl = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_DisplayCtrlNChoices, m_DisplayCtrlChoices, 0 ); + m_DisplayCtrl->SetSelection( 0 ); + bSizer6->Add( m_DisplayCtrl, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + m_staticText11 = new wxStaticText( this, wxID_ANY, _("Justification:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText11->Wrap( -1 ); + bSizer6->Add( m_staticText11, 0, wxLEFT|wxRIGHT, 5 ); + + wxString m_justifyChoiceChoices[] = { _("Left"), _("Center"), _("Right") }; + int m_justifyChoiceNChoices = sizeof( m_justifyChoiceChoices ) / sizeof( wxString ); + m_justifyChoice = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_justifyChoiceNChoices, m_justifyChoiceChoices, 0 ); + m_justifyChoice->SetSelection( 0 ); + bSizer6->Add( m_justifyChoice, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + + bSizerLower->Add( bSizer6, 0, wxEXPAND, 5 ); + + + bSizer9->Add( bSizerLower, 0, wxEXPAND, 5 ); + + m_StandardSizer = new wxStdDialogButtonSizer(); + m_StandardSizerOK = new wxButton( this, wxID_OK ); + m_StandardSizer->AddButton( m_StandardSizerOK ); + m_StandardSizerCancel = new wxButton( this, wxID_CANCEL ); + m_StandardSizer->AddButton( m_StandardSizerCancel ); + m_StandardSizer->Realize(); + + bSizer9->Add( m_StandardSizer, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL, 5 ); + + + bMainSizer->Add( bSizer9, 1, wxALL|wxEXPAND, 5 ); + + + this->SetSizer( bMainSizer ); + this->Layout(); + + this->Centre( wxBOTH ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnClose ) ); + m_StandardSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnCancelClick ), NULL, this ); + m_StandardSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnOkClick ), NULL, this ); +} + +DIALOG_PCB_TEXT_PROPERTIES_BASE::~DIALOG_PCB_TEXT_PROPERTIES_BASE() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnClose ) ); + m_StandardSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnCancelClick ), NULL, this ); + m_StandardSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PCB_TEXT_PROPERTIES_BASE::OnOkClick ), NULL, this ); + +} diff --git a/pcbnew/dialogs/dialog_pcb_text_properties_base.fbp b/pcbnew/dialogs/dialog_pcb_text_properties_base.fbp index 41c6210652..ae7eed6d19 100644 --- a/pcbnew/dialogs/dialog_pcb_text_properties_base.fbp +++ b/pcbnew/dialogs/dialog_pcb_text_properties_base.fbp @@ -1,2159 +1,2166 @@ - - - - - - C++ - 1 - source_name - 0 - res - UTF-8 - connect - dialog_pcb_text_properties_base - 1000 - none - 1 - DIALOG_PCB_TEXT_PROPERTIES_BASE - - . - - 1 - 1 - 0 - 0 - - 1 - 1 - 1 - 1 - 0 - - - - - 1 - wxBOTH - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - -1,-1 - 1 - DIALOG_PCB_TEXT_PROPERTIES_BASE - 1 - - - 1 - - - Resizable - - 1 - 433,465 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU - - Text Properties - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - OnClose - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bMainSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 1 - - - bSizer9 - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Text: - - - 0 - - - 0 - - 1 - m_TextLabel - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - 400,60 - 1 - m_TextContentCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - wxTE_MULTILINE - - 0 - Enter the text placed on selected layer. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bSizerLower - wxHORIZONTAL - none - - 5 - - 1 - - - bSizerLeft - wxVERTICAL - none - - 5 - wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size X - - - 0 - - - 0 - - 1 - m_SizeXLabel - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_SizeXCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Size Y - - - 0 - - - 0 - - 1 - m_SizeYLabel - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_SizeYCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Thickness - - - 0 - - - 0 - - 1 - m_ThicknessLabel - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_ThicknessCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 1 - - - bSizerRight - wxVERTICAL - none - - 5 - wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position X - - - 0 - - - 0 - - 1 - m_PositionXLabel - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PositionXCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Position Y - - - 0 - - - 0 - - 1 - m_PositionYLabel - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PositionYCtrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Layer: - - - 0 - - - 0 - - 1 - m_LayerLabel - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_LayerSelectionCtrl - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - Select the layer on which text should lay. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bSizer5 - wxVERTICAL - none - - 5 - wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Orientation: - - - 0 - - - 0 - - 1 - m_staticText8 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "0" "90" "180" "-90" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_OrientationCtrl - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Style: - - - 0 - - - 0 - - 1 - m_staticText9 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Normal" "Italic" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_StyleCtrl - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bSizer6 - wxVERTICAL - none - - 5 - wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Display: - - - 0 - - - 0 - - 1 - m_staticText10 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Normal" "Mirrored" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_DisplayCtrl - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Justification: - - - 0 - - - 0 - - 1 - m_staticText11 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Left" "Center" "Right" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_justifyChoice - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_StandardSizer - protected - - OnCancelClick - - - - OnOkClick - - - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_pcb_text_properties_base + 1000 + none + 1 + DIALOG_PCB_TEXT_PROPERTIES_BASE + + . + + 1 + 1 + 1 + 0 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + DIALOG_PCB_TEXT_PROPERTIES_BASE + 1 + + + 1 + + Resizable + 1 + 433,465 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU + DIALOG_SHIM; dialog_shim.h + Text Properties + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + OnClose + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bMainSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 1 + + + bSizer9 + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Text: + + 0 + + + 0 + + 1 + m_TextLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + 400,60 + 1 + m_TextContentCtrl + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_MULTILINE + + 0 + Enter the text placed on selected layer. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bSizerLower + wxHORIZONTAL + none + + 5 + + 1 + + + bSizerLeft + wxVERTICAL + none + + 5 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size X + + 0 + + + 0 + + 1 + m_SizeXLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_SizeXCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Size Y + + 0 + + + 0 + + 1 + m_SizeYLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_SizeYCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Thickness + + 0 + + + 0 + + 1 + m_ThicknessLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_ThicknessCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 1 + + + bSizerRight + wxVERTICAL + none + + 5 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position X + + 0 + + + 0 + + 1 + m_PositionXLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PositionXCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Position Y + + 0 + + + 0 + + 1 + m_PositionYLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PositionYCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Layer: + + 0 + + + 0 + + 1 + m_LayerLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_LayerSelectionCtrl + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + Select the layer on which text should lay. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bSizer5 + wxVERTICAL + none + + 5 + wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Orientation: + + 0 + + + 0 + + 1 + m_staticText8 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "0" "90" "180" "-90" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_OrientationCtrl + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Style: + + 0 + + + 0 + + 1 + m_staticText9 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Normal" "Italic" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_StyleCtrl + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bSizer6 + wxVERTICAL + none + + 5 + wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Display: + + 0 + + + 0 + + 1 + m_staticText10 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Normal" "Mirrored" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_DisplayCtrl + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Justification: + + 0 + + + 0 + + 1 + m_staticText11 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Left" "Center" "Right" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_justifyChoice + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_StandardSizer + protected + + OnCancelClick + + + + OnOkClick + + + + + + + + + + diff --git a/pcbnew/dialogs/dialog_pcb_text_properties_base.h b/pcbnew/dialogs/dialog_pcb_text_properties_base.h index 39a77010d3..193cc9e404 100644 --- a/pcbnew/dialogs/dialog_pcb_text_properties_base.h +++ b/pcbnew/dialogs/dialog_pcb_text_properties_base.h @@ -1,76 +1,77 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_PCB_TEXT_PROPERTIES_BASE_H__ -#define __DIALOG_PCB_TEXT_PROPERTIES_BASE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_PCB_TEXT_PROPERTIES_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_PCB_TEXT_PROPERTIES_BASE : public wxDialog -{ - private: - - protected: - wxStaticText* m_TextLabel; - wxTextCtrl* m_TextContentCtrl; - wxStaticText* m_SizeXLabel; - wxTextCtrl* m_SizeXCtrl; - wxStaticText* m_SizeYLabel; - wxTextCtrl* m_SizeYCtrl; - wxStaticText* m_ThicknessLabel; - wxTextCtrl* m_ThicknessCtrl; - wxStaticText* m_PositionXLabel; - wxTextCtrl* m_PositionXCtrl; - wxStaticText* m_PositionYLabel; - wxTextCtrl* m_PositionYCtrl; - wxStaticText* m_LayerLabel; - wxChoice* m_LayerSelectionCtrl; - wxStaticText* m_staticText8; - wxChoice* m_OrientationCtrl; - wxStaticText* m_staticText9; - wxChoice* m_StyleCtrl; - wxStaticText* m_staticText10; - wxChoice* m_DisplayCtrl; - wxStaticText* m_staticText11; - wxChoice* m_justifyChoice; - wxStdDialogButtonSizer* m_StandardSizer; - wxButton* m_StandardSizerOK; - wxButton* m_StandardSizerCancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 433,465 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU ); - ~DIALOG_PCB_TEXT_PROPERTIES_BASE(); - -}; - -#endif //__DIALOG_PCB_TEXT_PROPERTIES_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_PCB_TEXT_PROPERTIES_BASE_H__ +#define __DIALOG_PCB_TEXT_PROPERTIES_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_PCB_TEXT_PROPERTIES_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_PCB_TEXT_PROPERTIES_BASE : public DIALOG_SHIM +{ + private: + + protected: + wxStaticText* m_TextLabel; + wxTextCtrl* m_TextContentCtrl; + wxStaticText* m_SizeXLabel; + wxTextCtrl* m_SizeXCtrl; + wxStaticText* m_SizeYLabel; + wxTextCtrl* m_SizeYCtrl; + wxStaticText* m_ThicknessLabel; + wxTextCtrl* m_ThicknessCtrl; + wxStaticText* m_PositionXLabel; + wxTextCtrl* m_PositionXCtrl; + wxStaticText* m_PositionYLabel; + wxTextCtrl* m_PositionYCtrl; + wxStaticText* m_LayerLabel; + wxChoice* m_LayerSelectionCtrl; + wxStaticText* m_staticText8; + wxChoice* m_OrientationCtrl; + wxStaticText* m_staticText9; + wxChoice* m_StyleCtrl; + wxStaticText* m_staticText10; + wxChoice* m_DisplayCtrl; + wxStaticText* m_staticText11; + wxChoice* m_justifyChoice; + wxStdDialogButtonSizer* m_StandardSizer; + wxButton* m_StandardSizerOK; + wxButton* m_StandardSizerCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_PCB_TEXT_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Text Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 433,465 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU ); + ~DIALOG_PCB_TEXT_PROPERTIES_BASE(); + +}; + +#endif //__DIALOG_PCB_TEXT_PROPERTIES_BASE_H__ From 890e7beb26b0cd0c0ebb4cca8d38e0b81a256e98 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sat, 24 Mar 2012 15:25:30 +0100 Subject: [PATCH 33/68] class EDA_RECT: is no more derived from EDA_ITEM, just from EDA_RECT (reason: does not use anything in EDA_ITEM) issue in cast to wxRect fixed (EDA_RECT accepts negative size, but not wxRect, so the wxRectcast is normalized now). This fixes some bugs. A minor other bug fix in Pcbnew. --- common/block_commande.cpp | 7 +------ eeschema/block.cpp | 3 +-- eeschema/block_libedit.cpp | 2 -- include/base_struct.h | 9 ++++++++- include/block_commande.h | 6 +----- pcbnew/block_module_editor.cpp | 1 - pcbnew/dialogs/dialog_pad_properties.cpp | 4 ++-- pcbnew/plot_rtn.cpp | 4 ++-- 8 files changed, 15 insertions(+), 21 deletions(-) diff --git a/common/block_commande.cpp b/common/block_commande.cpp index 0684106b5d..47c98ef117 100644 --- a/common/block_commande.cpp +++ b/common/block_commande.cpp @@ -40,9 +40,7 @@ #include -BLOCK_SELECTOR::BLOCK_SELECTOR() : - EDA_ITEM( BLOCK_LOCATE_STRUCT_TYPE ), - EDA_RECT() +BLOCK_SELECTOR::BLOCK_SELECTOR() : EDA_RECT() { m_State = STATE_NO_BLOCK; /* State (enum BlockState) of block. */ m_Command = BLOCK_IDLE; /* Type (enum CmdBlockType) of operation. */ @@ -188,7 +186,6 @@ void BLOCK_SELECTOR::Clear() { if( m_Command != BLOCK_IDLE ) { - m_Flags = 0; m_Command = BLOCK_IDLE; m_State = STATE_NO_BLOCK; ClearItemsList(); @@ -206,7 +203,6 @@ bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpo if( ( Block->m_Command != BLOCK_IDLE ) || ( Block->m_State != STATE_NO_BLOCK ) ) return false; - Block->ClearFlags(); Block->m_Command = (CmdBlockType) ReturnBlockCommand( key ); if( Block->m_Command == 0 ) @@ -323,7 +319,6 @@ void AbortBlockCurrentCommand( EDA_DRAW_PANEL* Panel, wxDC* DC ) screen->m_BlockLocate.ClearItemsList(); } - screen->m_BlockLocate.ClearFlags(); screen->m_BlockLocate.m_State = STATE_NO_BLOCK; screen->m_BlockLocate.m_Command = BLOCK_ABORT; Panel->GetParent()->HandleBlockEnd( DC ); diff --git a/eeschema/block.cpp b/eeschema/block.cpp index 9ae9a815d3..7b0f5dc1a0 100644 --- a/eeschema/block.cpp +++ b/eeschema/block.cpp @@ -178,7 +178,7 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) OnModify(); - // clear struct.m_Flags. + // clear dome flags and pointers GetScreen()->ClearDrawingState(); GetScreen()->ClearBlockCommand(); GetScreen()->SetCurItem( NULL ); @@ -308,7 +308,6 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( ! nextcmd ) { - block->ClearFlags(); block->m_State = STATE_NO_BLOCK; block->m_Command = BLOCK_IDLE; GetScreen()->SetCurItem( NULL ); diff --git a/eeschema/block_libedit.cpp b/eeschema/block_libedit.cpp index 4ff0e75a0e..c86eabc9ba 100644 --- a/eeschema/block_libedit.cpp +++ b/eeschema/block_libedit.cpp @@ -201,7 +201,6 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( GetScreen()->m_BlockLocate.m_Command != BLOCK_SELECT_ITEMS_ONLY && m_component ) m_component->ClearSelectedItems(); - GetScreen()->m_BlockLocate.ClearFlags(); GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; GetScreen()->SetCurItem( NULL ); @@ -298,7 +297,6 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) OnModify(); - GetScreen()->m_BlockLocate.ClearFlags(); GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; GetScreen()->SetCurItem( NULL ); diff --git a/include/base_struct.h b/include/base_struct.h index 85c28d991b..22609085f9 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -279,8 +279,15 @@ public: /** * Function operator(wxRect) * overloads the cast operator to return a wxRect + * wxRect does not accept negative values for size, so ensure the + * wxRect size is always >= 0 */ - operator wxRect() const { return wxRect( m_Pos, m_Size ); } + operator wxRect() const + { + EDA_RECT rect( m_Pos, m_Size ); + rect.Normalize(); + return wxRect( rect.m_Pos, rect.m_Size ); + } /** * Function Inflate diff --git a/include/block_commande.h b/include/block_commande.h index 920bc1e1bf..cdc3803950 100644 --- a/include/block_commande.h +++ b/include/block_commande.h @@ -53,7 +53,7 @@ typedef enum { } CmdBlockType; -class BLOCK_SELECTOR : public EDA_ITEM, public EDA_RECT +class BLOCK_SELECTOR : public EDA_RECT { public: BlockState m_State; /* State (enum BlockState) @@ -143,10 +143,6 @@ public: * and clears the selected item list. */ void Clear(); - -#if defined(DEBUG) - void Show( int nestLevel, std::ostream& os ) const {} // override -#endif }; diff --git a/pcbnew/block_module_editor.cpp b/pcbnew/block_module_editor.cpp index 650e82d0d6..8f542a0bbb 100644 --- a/pcbnew/block_module_editor.cpp +++ b/pcbnew/block_module_editor.cpp @@ -288,7 +288,6 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) OnModify(); - GetScreen()->m_BlockLocate.ClearFlags(); GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; SetCurItem( NULL ); diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index 6783c9b4f4..25ba093d50 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -690,8 +690,8 @@ if you do not want this pad plotted in gerber files"); max_size.y = ABS( m_dummyPad->GetOffset().y ); max_size.x += m_dummyPad->GetDrillSize().x / 2; max_size.y += m_dummyPad->GetDrillSize().y / 2; - if( ( m_dummyPad->GetSize().x / 2 <= max_size.x ) || - ( m_dummyPad->GetSize().y / 2 <= max_size.y ) ) + if( ( m_dummyPad->GetSize().x / 2 < max_size.x ) || + ( m_dummyPad->GetSize().y / 2 < max_size.y ) ) { error_msgs.Add( _( "Incorrect value for pad offset" ) ); } diff --git a/pcbnew/plot_rtn.cpp b/pcbnew/plot_rtn.cpp index 2b8621bb59..0d3f0ca685 100644 --- a/pcbnew/plot_rtn.cpp +++ b/pcbnew/plot_rtn.cpp @@ -747,8 +747,8 @@ void PCB_BASE_FRAME::Plot_Layer( PLOTTER* plotter, int Layer, EDA_DRAW_MODE_T tr } -/* Plot a copper layer or mask in HPGL format. - * HPGL unit = 0.98 mils (1 mil = 1.02041 unit HPGL). +/* Plot a copper layer or mask. + * Silk screen layers are not plotted here. */ void PCB_BASE_FRAME::Plot_Standard_Layer( PLOTTER* aPlotter, int aLayerMask, From cbe9446e50a3d1c283c5691bfd401ef1b003b886 Mon Sep 17 00:00:00 2001 From: Fabrizio Tappero Date: Sat, 24 Mar 2012 16:38:55 +0100 Subject: [PATCH 34/68] Update icons --- bitmaps_png/cpp_26/add_component.cpp | 75 +++-- bitmaps_png/cpp_26/delete_association.cpp | 173 +++++----- .../cpp_26/module_pin_filtered_list.cpp | 101 +++--- bitmaps_png/cpp_26/plot.cpp | 132 ++++---- bitmaps_png/sources/add_component.svg | 300 ++++++++---------- bitmaps_png/sources/delete_association.svg | 74 +++-- .../sources/module_pin_filtered_list.svg | 62 ++-- bitmaps_png/sources/plot.svg | 40 ++- 8 files changed, 476 insertions(+), 481 deletions(-) diff --git a/bitmaps_png/cpp_26/add_component.cpp b/bitmaps_png/cpp_26/add_component.cpp index 98115f65ec..8ca80fc453 100644 --- a/bitmaps_png/cpp_26/add_component.cpp +++ b/bitmaps_png/cpp_26/add_component.cpp @@ -8,40 +8,47 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x02, 0x03, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xd5, 0xd6, 0x4d, 0x4b, 0x55, - 0x51, 0x14, 0x06, 0xe0, 0xc7, 0xb2, 0x1b, 0x5a, 0x68, 0x59, 0x49, 0x4a, 0x54, 0x46, 0x93, 0x72, - 0x10, 0x12, 0x08, 0x22, 0x41, 0x14, 0x19, 0x82, 0x03, 0xa1, 0x2f, 0x6a, 0x62, 0x1f, 0x24, 0x12, - 0x92, 0x5a, 0x56, 0x60, 0x69, 0x06, 0xa5, 0x69, 0x9f, 0x5a, 0x6a, 0x90, 0x85, 0xd4, 0xa8, 0x41, - 0x34, 0x08, 0x0a, 0x07, 0x4d, 0xfa, 0x03, 0x11, 0x4d, 0xea, 0xd7, 0xdc, 0x26, 0x4b, 0x38, 0x9c, - 0x8e, 0xb7, 0x14, 0x6e, 0xe0, 0xe0, 0x85, 0xb5, 0xd6, 0x3e, 0x7b, 0xbf, 0x67, 0xaf, 0xbd, 0xf6, - 0xbb, 0xb6, 0x7c, 0x3e, 0xef, 0x7f, 0xc0, 0x8a, 0x23, 0x42, 0x09, 0x72, 0x58, 0x55, 0x6c, 0xa2, - 0xed, 0x98, 0xc1, 0x38, 0x3a, 0x8a, 0x4d, 0x74, 0x29, 0xec, 0x61, 0xac, 0xfb, 0x83, 0x08, 0x7b, - 0xd0, 0x8a, 0xaa, 0x02, 0x0b, 0xd5, 0xa0, 0x19, 0x75, 0x59, 0xe9, 0x49, 0x11, 0x5d, 0x44, 0x7d, - 0x6a, 0x5c, 0x2b, 0x06, 0x70, 0x02, 0x63, 0xc8, 0xa5, 0xf2, 0xde, 0x8e, 0x57, 0x98, 0x44, 0x1f, - 0xee, 0x63, 0x0e, 0x9d, 0x58, 0xbb, 0x08, 0xd1, 0x55, 0xd4, 0xa6, 0x89, 0x46, 0x51, 0x1a, 0x4e, - 0x03, 0x2a, 0xc2, 0xae, 0xc4, 0x10, 0xae, 0x63, 0x43, 0x6a, 0x52, 0x0e, 0x67, 0x31, 0x81, 0x1d, - 0x09, 0xa2, 0x31, 0x9c, 0xc3, 0x70, 0xc6, 0x8e, 0x8d, 0x87, 0x71, 0x05, 0x8f, 0xd1, 0x18, 0xfe, - 0x10, 0x8e, 0x65, 0x4c, 0xb8, 0x8d, 0xe6, 0xb0, 0x1b, 0x31, 0x8d, 0xb2, 0xc0, 0x51, 0x1c, 0xc2, - 0xfa, 0x2c, 0xa2, 0x01, 0xec, 0x0b, 0xa7, 0x13, 0x07, 0x70, 0x18, 0x83, 0x11, 0xdb, 0x96, 0x9a, - 0x30, 0x83, 0x41, 0xb4, 0x05, 0x9e, 0xe0, 0x79, 0xc2, 0xcf, 0xc2, 0x56, 0xd8, 0x8c, 0x5b, 0xb1, - 0xed, 0x5e, 0x54, 0xe0, 0x25, 0xb6, 0xc4, 0xc2, 0xf7, 0x70, 0x1e, 0xab, 0x13, 0x44, 0x9f, 0x31, - 0x1b, 0x78, 0x8d, 0x9f, 0x78, 0x9b, 0x88, 0xa5, 0xd1, 0x90, 0x55, 0x5d, 0xd5, 0x98, 0x4c, 0xf8, - 0x0f, 0xf1, 0x2e, 0xfe, 0xbc, 0x3a, 0x88, 0x5a, 0x52, 0x73, 0xfa, 0x16, 0x52, 0x5e, 0x50, 0x19, - 0xb0, 0x17, 0xfd, 0x71, 0xf0, 0x53, 0xf8, 0x88, 0x1b, 0x81, 0xaf, 0xf8, 0x81, 0xef, 0x98, 0xc7, - 0xfb, 0x0c, 0xa2, 0x76, 0x9c, 0xf9, 0x57, 0xa2, 0xcb, 0xe8, 0xc6, 0x03, 0x7c, 0x08, 0xbb, 0x1b, - 0x5f, 0xf0, 0x2d, 0x30, 0x8f, 0x4f, 0x19, 0x44, 0xc7, 0x71, 0x6a, 0x49, 0x5a, 0x87, 0x4d, 0x98, - 0xca, 0x48, 0xdd, 0x2c, 0x76, 0x2f, 0x92, 0xba, 0x6b, 0xd8, 0xbf, 0x64, 0x51, 0xc5, 0x8b, 0x85, - 0x6a, 0x8b, 0x7b, 0x36, 0x80, 0xf2, 0x44, 0x31, 0xbc, 0x49, 0x1c, 0xf4, 0x1c, 0x7e, 0xa5, 0x62, - 0x69, 0xec, 0x5a, 0x8c, 0xa8, 0x09, 0x23, 0xa1, 0x0c, 0xf5, 0x19, 0xe5, 0xdd, 0x83, 0x96, 0xc0, - 0xb3, 0xa8, 0xd8, 0x96, 0x02, 0xa8, 0x2c, 0x24, 0x92, 0xfd, 0xc9, 0xb2, 0x4e, 0xc4, 0x6f, 0xa2, - 0x29, 0xec, 0x23, 0x78, 0x8a, 0x35, 0xcb, 0xee, 0x47, 0x71, 0xd3, 0x7b, 0x70, 0x17, 0x3b, 0x51, - 0x92, 0x18, 0xab, 0x8a, 0xb1, 0x11, 0x54, 0x27, 0xe2, 0x1d, 0x51, 0x4c, 0xa3, 0xa8, 0x5b, 0x52, - 0x9b, 0xc0, 0xc1, 0x90, 0xa6, 0x39, 0xdc, 0x89, 0xf3, 0x9b, 0xc6, 0xc9, 0xe4, 0x6e, 0x43, 0xff, - 0x26, 0x50, 0x1a, 0xa9, 0x3f, 0xbd, 0xac, 0x7e, 0x84, 0xf2, 0xb8, 0x06, 0x1b, 0x0b, 0x7c, 0x73, - 0x21, 0xe4, 0xa8, 0x17, 0x35, 0xc5, 0x6a, 0x7c, 0xb5, 0xa1, 0x93, 0xb9, 0xd0, 0xb7, 0xa1, 0x62, - 0x11, 0x95, 0xe1, 0x51, 0xa4, 0xb4, 0x0b, 0x5d, 0x45, 0x7b, 0x05, 0x85, 0x16, 0xb6, 0x85, 0xfa, - 0x97, 0xac, 0xec, 0xe7, 0xd6, 0xdf, 0xf0, 0x1b, 0x78, 0x31, 0x40, 0x44, 0x3e, 0x72, 0xc2, 0xd2, - 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x02, 0x68, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xed, 0x96, 0xcf, 0x6a, 0x13, + 0x51, 0x14, 0xc6, 0x83, 0x56, 0xd1, 0x9d, 0x2f, 0x50, 0x95, 0x5a, 0x15, 0x7c, 0x8a, 0x2c, 0x9a, + 0x76, 0xfe, 0x27, 0x33, 0xed, 0xb4, 0xc6, 0x46, 0xab, 0xc4, 0x4e, 0xba, 0x70, 0x25, 0xa9, 0x48, + 0x77, 0x7d, 0x00, 0x51, 0x0b, 0x4a, 0x41, 0xc4, 0xb8, 0xd0, 0x85, 0x25, 0x26, 0xad, 0x92, 0x50, + 0x8a, 0x22, 0x2a, 0x22, 0xd9, 0x76, 0x27, 0xb8, 0x90, 0x2c, 0x74, 0x15, 0x5c, 0x0c, 0x34, 0xa3, + 0xc2, 0x71, 0xbe, 0xcb, 0xdc, 0xe1, 0x66, 0x3a, 0x13, 0x04, 0x49, 0x70, 0x61, 0xe0, 0x63, 0xce, + 0xdc, 0xdf, 0x39, 0xf7, 0x63, 0xee, 0xcc, 0x3d, 0x37, 0x29, 0x22, 0x4a, 0x0d, 0x43, 0x3d, 0x37, + 0xa6, 0x9a, 0xf9, 0xa4, 0xc8, 0x53, 0x3f, 0xb9, 0xb2, 0x4a, 0xe6, 0x0b, 0x67, 0x96, 0x3a, 0xb1, + 0xab, 0xc9, 0x93, 0x7b, 0x5c, 0xc8, 0xe5, 0x0c, 0x79, 0x49, 0x75, 0xb1, 0x46, 0x48, 0x72, 0x97, + 0x47, 0xc8, 0xbb, 0x71, 0x80, 0x49, 0x92, 0x24, 0x12, 0x59, 0xa7, 0x7c, 0x98, 0xdc, 0xe5, 0x43, + 0x4c, 0x22, 0x43, 0xcc, 0x6b, 0xa2, 0x75, 0x89, 0x46, 0xf5, 0xc5, 0x71, 0xba, 0x3c, 0x23, 0x51, + 0xd5, 0x39, 0xb3, 0xcf, 0xa8, 0xe6, 0x9c, 0x66, 0xac, 0xe6, 0x8c, 0xef, 0x33, 0x42, 0xfe, 0xbc, + 0x29, 0xd3, 0xc6, 0xe2, 0xd9, 0x64, 0x23, 0xcb, 0xb2, 0x76, 0x15, 0x45, 0xc1, 0x63, 0xd3, 0xc2, + 0xb4, 0x4c, 0x8f, 0xd7, 0xd7, 0xc8, 0xce, 0xca, 0xac, 0x80, 0x8d, 0x07, 0xec, 0x82, 0x3f, 0xd1, + 0xa3, 0xfb, 0x77, 0xd8, 0x55, 0x64, 0x88, 0xe7, 0x2d, 0x99, 0x1e, 0xde, 0xbb, 0xdd, 0xc3, 0x0c, + 0xc3, 0xf8, 0x9a, 0x4e, 0xa7, 0x8f, 0x84, 0x46, 0x9a, 0xa6, 0xed, 0x75, 0x3a, 0x1d, 0xd2, 0x55, + 0x85, 0x1a, 0xa5, 0x93, 0xe4, 0xcc, 0x4e, 0xd1, 0xcb, 0xd2, 0x29, 0x56, 0xe0, 0x79, 0x1e, 0x13, + 0xd8, 0x0b, 0x67, 0x2c, 0x60, 0x63, 0x3d, 0x0c, 0xf1, 0xce, 0xd2, 0x71, 0xba, 0x76, 0x7e, 0x92, + 0xb6, 0x4b, 0x27, 0x42, 0xe6, 0x1b, 0x75, 0x73, 0xb9, 0xdc, 0xb1, 0x1e, 0x23, 0xd7, 0x75, 0x49, + 0x53, 0x65, 0xb6, 0xc6, 0x74, 0x33, 0xc5, 0x84, 0x82, 0x8f, 0xcd, 0x26, 0x93, 0xa6, 0x24, 0x33, + 0xb6, 0x54, 0xc1, 0x38, 0x67, 0xf8, 0x25, 0x1a, 0x15, 0x6c, 0xd3, 0x9f, 0x50, 0x0a, 0x35, 0x67, + 0x19, 0xf4, 0x7e, 0x6b, 0x8b, 0xa9, 0x1f, 0x43, 0x1c, 0x65, 0x49, 0x46, 0xdd, 0x56, 0xab, 0x45, + 0x1f, 0x1a, 0x0d, 0x7a, 0x53, 0xab, 0x85, 0x7a, 0x5b, 0xaf, 0x87, 0x93, 0xbd, 0xdb, 0xdc, 0x4c, + 0x64, 0x88, 0xa3, 0x2c, 0xd6, 0x48, 0x55, 0x55, 0xaf, 0x58, 0x2c, 0xd2, 0xea, 0xca, 0x4a, 0x58, + 0xfc, 0xb7, 0x4a, 0x5c, 0xba, 0x76, 0xbb, 0x4d, 0xba, 0xa6, 0xd1, 0xeb, 0x6a, 0x75, 0xb0, 0x46, + 0x55, 0xdf, 0x60, 0xa1, 0x50, 0x18, 0xec, 0x13, 0xf9, 0xdf, 0xfc, 0x8f, 0x72, 0xb9, 0x4c, 0xcf, + 0x2b, 0x95, 0xc1, 0x2f, 0x1d, 0xbe, 0x3a, 0x7c, 0xaa, 0x43, 0x31, 0xba, 0x34, 0x67, 0xb1, 0x3d, + 0xc0, 0x95, 0x9f, 0xce, 0x86, 0x85, 0x17, 0x67, 0x2d, 0xb6, 0x97, 0xb8, 0xae, 0xe4, 0x67, 0x42, + 0x86, 0x3c, 0xb1, 0x0e, 0xb9, 0x7d, 0x8d, 0xe2, 0x36, 0x25, 0x9f, 0x4c, 0x6c, 0x9c, 0x68, 0xbc, + 0xc8, 0x15, 0x19, 0xaf, 0x01, 0x07, 0xeb, 0x6b, 0x84, 0x36, 0xf3, 0xcc, 0x6f, 0x8a, 0x62, 0x73, + 0xf4, 0xba, 0x5d, 0x26, 0xc4, 0x1b, 0x01, 0x43, 0x0e, 0x72, 0x45, 0xf6, 0xf4, 0xea, 0x39, 0xd6, + 0x1f, 0x9f, 0xf8, 0x57, 0xb0, 0x58, 0x23, 0xd3, 0x34, 0x3f, 0xfb, 0x7b, 0xe9, 0x17, 0x1a, 0x27, + 0x26, 0xaa, 0xac, 0xdf, 0x0d, 0x9b, 0x23, 0xc6, 0x21, 0xc4, 0xbc, 0xa9, 0x22, 0x07, 0xb9, 0x51, + 0xf6, 0x60, 0xed, 0x16, 0xbb, 0x72, 0xa6, 0xeb, 0xfa, 0x77, 0xdb, 0xb6, 0x8f, 0x86, 0x46, 0xfe, + 0xcd, 0x41, 0x74, 0x59, 0x1c, 0x05, 0x4d, 0xbf, 0x29, 0x8a, 0xcd, 0x11, 0xe3, 0x10, 0xe2, 0xed, + 0x80, 0x21, 0x07, 0xb9, 0x22, 0x7b, 0xb5, 0x34, 0x4a, 0xd7, 0xf3, 0x13, 0xb4, 0x53, 0x1a, 0x15, + 0xd9, 0x48, 0xe2, 0x79, 0x14, 0x7d, 0x47, 0xe2, 0x99, 0x23, 0xbe, 0x07, 0xe4, 0xfe, 0x09, 0x8b, + 0x35, 0xc2, 0x11, 0x2c, 0x7e, 0x3d, 0x86, 0x92, 0xf9, 0xc6, 0x19, 0x62, 0x91, 0x89, 0xc7, 0x75, + 0x3f, 0x16, 0x6b, 0x34, 0xb4, 0x3f, 0x27, 0xff, 0x8d, 0xfe, 0x49, 0xa3, 0xdf, 0xf4, 0x5e, 0xec, + 0x57, 0x87, 0xb9, 0x43, 0x28, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, + 0x82, }; const BITMAP_OPAQUE add_component_xpm[1] = {{ png, sizeof( png ), "add_component_xpm" }}; diff --git a/bitmaps_png/cpp_26/delete_association.cpp b/bitmaps_png/cpp_26/delete_association.cpp index 47a4618fff..1fa4cf2a6f 100644 --- a/bitmaps_png/cpp_26/delete_association.cpp +++ b/bitmaps_png/cpp_26/delete_association.cpp @@ -8,94 +8,91 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x05, 0x66, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xa5, 0x96, 0x79, 0x6c, 0xd4, - 0x45, 0x14, 0xc7, 0x3f, 0xb3, 0x5b, 0x76, 0xb7, 0x2d, 0x6d, 0xa1, 0xad, 0xa5, 0xc2, 0x22, 0x92, - 0x7a, 0x00, 0x1e, 0x98, 0x88, 0x45, 0xab, 0x88, 0x28, 0x46, 0x50, 0x14, 0x15, 0xad, 0x1a, 0xad, - 0x62, 0x3c, 0x88, 0x57, 0x82, 0x48, 0x38, 0x4c, 0x44, 0xf9, 0x47, 0x51, 0x23, 0xf1, 0xbe, 0xa1, - 0x04, 0x11, 0xcf, 0x44, 0x25, 0x2a, 0x46, 0x82, 0xf0, 0x87, 0x18, 0xd4, 0xa8, 0x40, 0x45, 0x89, - 0xa0, 0x80, 0x5c, 0x2d, 0xa5, 0x85, 0x76, 0xb7, 0xbf, 0xfd, 0x1d, 0x33, 0xf3, 0xfc, 0x63, 0x7f, - 0xbb, 0x2e, 0x45, 0x25, 0xea, 0x24, 0x93, 0x99, 0xbc, 0x99, 0x79, 0xdf, 0x79, 0xdf, 0xf7, 0x66, - 0xde, 0x43, 0x44, 0x10, 0x11, 0x80, 0x06, 0xa0, 0x15, 0x28, 0xcb, 0xc9, 0xfe, 0x4b, 0x07, 0x3e, - 0x01, 0x66, 0x03, 0xd1, 0x42, 0x79, 0x84, 0x3f, 0x5b, 0x1c, 0x18, 0x00, 0x9c, 0xa6, 0x94, 0x8a, - 0xf2, 0xdf, 0x5b, 0x35, 0x50, 0x07, 0x1c, 0xa3, 0x94, 0x52, 0x39, 0x61, 0x21, 0x10, 0x7d, 0xa2, - 0x11, 0xb6, 0xcd, 0xbc, 0xb3, 0x39, 0x35, 0x7f, 0xc6, 0x13, 0x99, 0xf9, 0xb3, 0x93, 0xff, 0x03, - 0xac, 0xea, 0xa2, 0xc1, 0x83, 0x8f, 0x7b, 0xaf, 0xb1, 0x31, 0x91, 0x13, 0xa8, 0xd0, 0x5c, 0x94, - 0x52, 0xe3, 0xe6, 0x5d, 0x74, 0xee, 0x17, 0x73, 0xc6, 0x9e, 0x9d, 0x5b, 0x0b, 0x40, 0xbd, 0x63, - 0xad, 0x7a, 0xaa, 0xf4, 0xe1, 0x27, 0x36, 0xfc, 0x93, 0x56, 0xa5, 0xd4, 0x54, 0xa0, 0x39, 0xa2, - 0x14, 0x93, 0xeb, 0x86, 0x70, 0xf3, 0xb0, 0x3a, 0x46, 0x55, 0x57, 0xb2, 0x2b, 0x95, 0xa2, 0xdd, - 0xc9, 0xdc, 0x76, 0xc5, 0xa7, 0x6b, 0x17, 0x17, 0xe5, 0x36, 0xcf, 0xba, 0xa0, 0xfe, 0x94, 0x99, - 0x63, 0xea, 0xf3, 0x87, 0xc5, 0xda, 0x3e, 0x62, 0xed, 0x4d, 0x62, 0xed, 0x4d, 0xe9, 0x07, 0xef, - 0x7d, 0xd3, 0x35, 0x99, 0xbb, 0xaa, 0x1f, 0x5f, 0x94, 0xfa, 0x2b, 0xa0, 0x44, 0x34, 0x1a, 0xbd, - 0xf2, 0x84, 0x3a, 0x66, 0x8e, 0x1e, 0xcd, 0x40, 0xe5, 0x20, 0xc6, 0x62, 0x7d, 0x9f, 0x96, 0xd6, - 0x03, 0x6c, 0xe8, 0x38, 0x34, 0x60, 0xb2, 0x52, 0xd1, 0xbc, 0x45, 0x5d, 0xf3, 0xef, 0xbf, 0xcc, - 0xf3, 0x82, 0x67, 0x4a, 0x8b, 0xa2, 0x75, 0xd6, 0x58, 0xc4, 0x5a, 0x24, 0x37, 0x5a, 0x8b, 0x35, - 0xe6, 0x57, 0xb1, 0xfa, 0xfa, 0x63, 0x9e, 0x7f, 0x63, 0x33, 0x60, 0x45, 0xc4, 0x43, 0x29, 0xb5, - 0xf7, 0xd6, 0x6b, 0xa6, 0xa6, 0x1c, 0x7f, 0x41, 0xdf, 0xa2, 0x48, 0x4d, 0xee, 0x4c, 0x67, 0xb4, - 0x92, 0xd7, 0x4a, 0x26, 0xf1, 0xc2, 0xa2, 0x46, 0x80, 0x99, 0xc0, 0xb3, 0x85, 0xd4, 0x55, 0x01, - 0x73, 0x2f, 0x18, 0x92, 0xbc, 0x77, 0xfa, 0x59, 0xa7, 0xeb, 0x31, 0xc9, 0xda, 0x52, 0x39, 0x12, - 0x30, 0xd8, 0x97, 0x4e, 0x3f, 0x7a, 0xe6, 0xdb, 0x1f, 0xdb, 0x8d, 0x53, 0x26, 0x2e, 0xae, 0x88, - 0xc7, 0x9a, 0xb1, 0x76, 0x7c, 0x76, 0xdd, 0x20, 0xc6, 0xf2, 0x55, 0xe5, 0x04, 0x56, 0x0c, 0x9e, - 0x46, 0x5b, 0xfb, 0x56, 0xd6, 0xbe, 0x78, 0x06, 0xc0, 0x1c, 0x60, 0xa1, 0x02, 0x2a, 0x81, 0xe7, - 0x80, 0xcb, 0x81, 0x16, 0xe0, 0x15, 0x20, 0x33, 0xf1, 0xf8, 0xe4, 0xd0, 0x05, 0x0d, 0xa3, 0x26, - 0xd7, 0x24, 0xe2, 0x0d, 0x62, 0xcd, 0x61, 0x80, 0xeb, 0xf6, 0xb5, 0xdb, 0xb3, 0xaa, 0x2a, 0x52, - 0x51, 0x2b, 0x15, 0x62, 0x2d, 0xd6, 0x5a, 0xf6, 0xf7, 0xb8, 0x38, 0xbf, 0x75, 0xd2, 0xd3, 0xe5, - 0x02, 0xb0, 0x33, 0x12, 0xe5, 0xbe, 0x8e, 0x6d, 0x79, 0xa0, 0x08, 0x30, 0x16, 0xb8, 0x14, 0xd0, - 0xc0, 0x06, 0xc0, 0x00, 0xbb, 0x57, 0xee, 0xd8, 0xdd, 0x3c, 0x72, 0xf9, 0x87, 0x17, 0xff, 0xdc, - 0xb6, 0x7f, 0x86, 0xe7, 0xb8, 0x29, 0x9d, 0xf1, 0xd0, 0xae, 0x87, 0xce, 0xb8, 0xd4, 0x97, 0x97, - 0x46, 0xf0, 0xfc, 0x0a, 0xed, 0x66, 0x65, 0x07, 0x53, 0xe9, 0xd6, 0x5b, 0xd6, 0xff, 0x40, 0xe0, - 0xc6, 0x89, 0xc5, 0x2b, 0x88, 0xc5, 0x2b, 0x48, 0xf4, 0x7a, 0x21, 0x45, 0xc0, 0x47, 0xc0, 0x38, - 0xe0, 0x76, 0xe0, 0x6a, 0xe0, 0x2a, 0xe0, 0x31, 0xe0, 0x3b, 0x11, 0xf1, 0x95, 0x52, 0x23, 0x6b, - 0x8b, 0x13, 0x65, 0x8f, 0x8d, 0x1c, 0xc6, 0x98, 0xca, 0xfe, 0x79, 0x9f, 0x15, 0xd0, 0xf5, 0x7d, - 0xd3, 0x77, 0x2d, 0x4b, 0xb7, 0xdb, 0xf8, 0xd3, 0x2f, 0xdd, 0xfd, 0x43, 0x5e, 0x71, 0x57, 0xeb, - 0x46, 0xc8, 0x52, 0x97, 0x05, 0x12, 0x11, 0xab, 0x94, 0xda, 0x12, 0xd2, 0xb7, 0x0a, 0x98, 0x06, - 0x3c, 0x05, 0xcc, 0x51, 0x4a, 0x9d, 0x02, 0xa8, 0xb6, 0x8c, 0xcb, 0xce, 0x43, 0x29, 0x1a, 0x4a, - 0x8a, 0xb1, 0x85, 0x3e, 0x33, 0x96, 0x1e, 0xad, 0x5b, 0x7e, 0xee, 0xc9, 0xa4, 0xca, 0x22, 0x01, - 0xd7, 0x36, 0x8f, 0xcb, 0x2b, 0x6e, 0xf5, 0xd3, 0xac, 0xed, 0x65, 0x11, 0x22, 0xe2, 0x2a, 0xa5, - 0x86, 0x02, 0x0f, 0x01, 0x27, 0x03, 0x2b, 0x80, 0x35, 0xe1, 0x3c, 0x72, 0xcf, 0x90, 0x41, 0x34, - 0x56, 0xf7, 0x47, 0xbb, 0x5e, 0x36, 0x74, 0x0b, 0x2c, 0x8a, 0x59, 0x7b, 0xcb, 0xac, 0x63, 0x6b, - 0xbc, 0x17, 0xdb, 0x3a, 0x71, 0x8a, 0xf2, 0xef, 0x13, 0xcf, 0xf8, 0x87, 0x53, 0xa7, 0x94, 0x1a, - 0x0f, 0xbc, 0x04, 0x0c, 0x04, 0x5e, 0x05, 0x1e, 0x04, 0x6a, 0x01, 0x17, 0x70, 0xae, 0xaf, 0xad, - 0x4e, 0xde, 0x39, 0xa0, 0x3a, 0x04, 0xc9, 0x06, 0x85, 0xaf, 0x2d, 0xca, 0x1a, 0x94, 0x08, 0x56, - 0xe0, 0x8a, 0xbe, 0x25, 0x37, 0xbf, 0x9f, 0x36, 0x7c, 0xd2, 0xb4, 0xf2, 0xef, 0xa9, 0x03, 0x62, - 0x80, 0x00, 0x7d, 0x80, 0xe1, 0x61, 0x40, 0xac, 0x07, 0xf6, 0xac, 0x3a, 0x6d, 0xd8, 0xd0, 0xaa, - 0x88, 0x1a, 0x65, 0x5c, 0x37, 0x4f, 0x97, 0x15, 0x61, 0xee, 0x9e, 0x36, 0x4a, 0x23, 0x6a, 0xcf, - 0xec, 0x9a, 0xaa, 0x81, 0x62, 0x45, 0x59, 0x91, 0xc4, 0xbc, 0x8a, 0x18, 0x6f, 0xed, 0x6f, 0x41, - 0x47, 0x62, 0x00, 0x38, 0x07, 0xb7, 0x1f, 0x11, 0x0c, 0x9f, 0x01, 0x4d, 0xc0, 0x84, 0x30, 0x10, - 0x5e, 0x06, 0x96, 0x4c, 0x2a, 0x2f, 0x5f, 0x58, 0x69, 0x83, 0xf7, 0x6c, 0x20, 0x7d, 0xad, 0x80, - 0x88, 0x60, 0x45, 0xd8, 0xe1, 0xf9, 0x5f, 0xae, 0x4e, 0xf5, 0x9c, 0x0d, 0x2c, 0xbe, 0xb0, 0xb8, - 0xf8, 0xa4, 0xd3, 0x13, 0xb1, 0xeb, 0xac, 0x15, 0x06, 0x29, 0xa8, 0x5a, 0xda, 0xc0, 0xf2, 0xee, - 0xf4, 0x5f, 0x7e, 0x53, 0xb9, 0x60, 0xd8, 0x04, 0xec, 0x06, 0xbe, 0x06, 0x66, 0x00, 0xb7, 0x8f, - 0x28, 0x8e, 0x35, 0x05, 0x81, 0x29, 0xb5, 0x21, 0x80, 0x58, 0xc1, 0x88, 0x1c, 0x7c, 0xa7, 0xeb, - 0xd0, 0x74, 0xe0, 0x56, 0x60, 0xd7, 0xf4, 0xd6, 0xf6, 0xc5, 0x2b, 0x93, 0x03, 0xb4, 0x08, 0x37, - 0x5a, 0x2b, 0x4c, 0x29, 0xeb, 0xc7, 0xde, 0x0b, 0x17, 0x92, 0x8e, 0x95, 0xe3, 0x1c, 0xdc, 0xc1, - 0x4f, 0xab, 0xe6, 0xd0, 0xfb, 0xf7, 0xb6, 0xc0, 0x14, 0x60, 0x09, 0x50, 0x77, 0x66, 0x49, 0x62, - 0xd9, 0xa4, 0xd2, 0x92, 0x62, 0x5f, 0x1b, 0x72, 0xdd, 0x33, 0x86, 0x40, 0xdb, 0x07, 0x3e, 0xec, - 0x72, 0xb6, 0x00, 0x0b, 0x81, 0x5f, 0x80, 0xbd, 0x92, 0x28, 0xbb, 0xad, 0xd3, 0x0f, 0xf6, 0xf9, - 0x46, 0x83, 0xef, 0x30, 0xb1, 0x63, 0x23, 0x83, 0x4e, 0xbd, 0x8e, 0x9a, 0x13, 0x27, 0x1c, 0x66, - 0x51, 0x44, 0x29, 0x35, 0x0f, 0x38, 0x00, 0x3c, 0x00, 0x2c, 0x00, 0xa6, 0xcd, 0xaa, 0xea, 0x5f, - 0x1f, 0x18, 0x13, 0x29, 0x04, 0x0a, 0xb4, 0x59, 0x33, 0xfe, 0xf7, 0x3d, 0xcd, 0x80, 0x03, 0x74, - 0x86, 0xbe, 0x0c, 0x26, 0x6e, 0xdd, 0xea, 0x2d, 0x4f, 0x39, 0x4b, 0x3c, 0x6d, 0xf0, 0xb4, 0x26, - 0xf9, 0xe3, 0x32, 0xfa, 0xef, 0x3f, 0xf2, 0xb3, 0x8f, 0x00, 0xab, 0x81, 0x0e, 0xa0, 0x1f, 0x30, - 0x62, 0x6e, 0x65, 0xbf, 0x73, 0xfb, 0x89, 0x8c, 0xf0, 0xb5, 0xc6, 0xd3, 0x1a, 0x3f, 0xec, 0x81, - 0xd1, 0xb3, 0xc3, 0xa7, 0x20, 0x40, 0x37, 0xd0, 0x1d, 0xce, 0xf9, 0xd4, 0x75, 0xb7, 0x7d, 0xee, - 0xd9, 0xec, 0xa5, 0x82, 0x80, 0xe1, 0x9f, 0xcf, 0x40, 0x7b, 0xa9, 0x23, 0x82, 0x61, 0x3d, 0x30, - 0x15, 0x78, 0x58, 0xc1, 0x1d, 0xe7, 0x24, 0xfa, 0xec, 0xf2, 0xb5, 0x21, 0xef, 0x9b, 0xec, 0xb8, - 0x76, 0x4a, 0x7b, 0xe7, 0xb7, 0xf9, 0x14, 0x22, 0x62, 0x7b, 0xdf, 0xf8, 0x6d, 0x27, 0xc5, 0xf0, - 0x78, 0x9c, 0x72, 0xa0, 0x7c, 0xe7, 0x3a, 0xd2, 0xdb, 0xc6, 0x1e, 0x6e, 0x91, 0x88, 0x18, 0xe0, - 0x1b, 0xe0, 0x75, 0x01, 0x3e, 0x4e, 0x39, 0xef, 0xfa, 0xc6, 0x38, 0xbe, 0x09, 0x7d, 0xa3, 0x0d, - 0xbe, 0x35, 0x8f, 0x1f, 0x25, 0xa3, 0x7e, 0x9b, 0x11, 0x9e, 0xfe, 0x28, 0xf0, 0xd7, 0xe7, 0x18, - 0x98, 0x90, 0xa5, 0xf7, 0x03, 0xa0, 0x27, 0x1f, 0x0c, 0x22, 0xe2, 0x00, 0x6d, 0x00, 0xaf, 0xa6, - 0x7a, 0xb6, 0x74, 0x7a, 0x7a, 0x9c, 0xaf, 0xf5, 0x3e, 0xdf, 0x68, 0x7c, 0xad, 0x37, 0xdd, 0xd0, - 0xd1, 0xf5, 0xd9, 0x51, 0x80, 0x36, 0x03, 0xaf, 0xac, 0x33, 0xb2, 0x60, 0xb3, 0x36, 0x3d, 0x81, - 0xb1, 0x54, 0x5b, 0x5b, 0x79, 0x1e, 0xac, 0x03, 0xb6, 0x03, 0xb6, 0xb0, 0x66, 0x30, 0xb9, 0xcc, - 0x7c, 0x47, 0x77, 0xf7, 0xf7, 0x8e, 0xa7, 0xeb, 0x3d, 0x6d, 0x36, 0xf8, 0xd6, 0x3c, 0x79, 0xb4, - 0x02, 0x21, 0xa4, 0xf2, 0x57, 0x60, 0xd5, 0x6a, 0xf8, 0x3d, 0x54, 0x76, 0xe0, 0x7c, 0xd8, 0x04, - 0xac, 0x11, 0x11, 0x53, 0x58, 0x26, 0xd5, 0x86, 0xd9, 0xb0, 0x29, 0x7c, 0x5f, 0x2c, 0x85, 0xd2, - 0x47, 0xc2, 0xf9, 0xbf, 0x28, 0xb7, 0x2e, 0x69, 0x84, 0x15, 0x27, 0xc2, 0xe8, 0xd0, 0x35, 0x59, - 0x79, 0xc1, 0x06, 0x05, 0x24, 0x81, 0xf3, 0x7b, 0xd7, 0x64, 0xff, 0x12, 0x28, 0x1a, 0xea, 0x48, - 0xe6, 0x8a, 0x1f, 0x11, 0xf9, 0xb3, 0x0a, 0x0a, 0xd3, 0x79, 0x51, 0x68, 0x8d, 0xfb, 0x3f, 0x4a, - 0x2d, 0x94, 0x52, 0x09, 0x40, 0x8b, 0x88, 0xce, 0xc9, 0xfe, 0x00, 0xf5, 0x78, 0xba, 0x9d, 0x14, - 0x70, 0xbb, 0x50, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x05, 0x2a, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xad, 0x96, 0x0b, 0x50, 0x94, + 0x55, 0x14, 0xc7, 0xf7, 0xc1, 0xb2, 0x2c, 0xb2, 0x2c, 0xb0, 0xc0, 0x2e, 0xcb, 0xb2, 0x2c, 0x0b, + 0x0b, 0xcb, 0x53, 0x41, 0x40, 0x5e, 0xc2, 0xc6, 0x53, 0x36, 0x59, 0x90, 0x67, 0x42, 0x2a, 0x93, + 0x88, 0xa3, 0x85, 0x62, 0x6a, 0x0f, 0xed, 0x81, 0xf8, 0xc8, 0x50, 0xd2, 0x31, 0xbf, 0x71, 0x12, + 0xb5, 0x87, 0x6f, 0x0c, 0x29, 0xb3, 0x42, 0x63, 0x4c, 0x22, 0x83, 0xc4, 0x50, 0x14, 0x89, 0x44, + 0xc5, 0x0c, 0xad, 0xc8, 0x7c, 0xe4, 0x68, 0x2f, 0xf1, 0x74, 0xae, 0xde, 0xcf, 0x59, 0x16, 0x5c, + 0xb5, 0xfa, 0x66, 0x7e, 0x33, 0xdf, 0x7c, 0xdf, 0x9d, 0xfb, 0x3f, 0x73, 0xee, 0x39, 0xe7, 0x7f, + 0x39, 0x00, 0xc0, 0x21, 0xe0, 0xa3, 0x41, 0x96, 0x23, 0x36, 0xec, 0xb7, 0x7f, 0x03, 0x3e, 0x33, + 0x91, 0x54, 0x84, 0x37, 0xe8, 0xbb, 0xc9, 0x02, 0x5f, 0x84, 0xa1, 0x82, 0xbc, 0xff, 0x20, 0x34, + 0x1f, 0x29, 0x44, 0xec, 0x11, 0xae, 0x25, 0xa1, 0xa8, 0xff, 0x41, 0x68, 0x1a, 0x22, 0x7f, 0x90, + 0x50, 0xdc, 0xa3, 0x0a, 0xd1, 0xe0, 0x98, 0xfb, 0xe0, 0x64, 0x2e, 0xe4, 0x8f, 0xac, 0x42, 0x16, + 0x93, 0xf7, 0x47, 0x14, 0x8a, 0xe6, 0x0b, 0x44, 0x4c, 0x70, 0xfa, 0xea, 0x7b, 0xf8, 0xc4, 0xcd, + 0x67, 0x85, 0x46, 0x91, 0xc0, 0x4d, 0x17, 0x73, 0xe9, 0xf9, 0xcc, 0x42, 0xd6, 0x22, 0x95, 0x88, + 0x78, 0x98, 0x4d, 0x05, 0x88, 0x95, 0xb9, 0x90, 0xc0, 0xc6, 0x81, 0xc9, 0xac, 0x84, 0x7b, 0xe8, + 0x67, 0x1e, 0x63, 0x85, 0x92, 0x10, 0xbe, 0xe9, 0xe2, 0x11, 0x48, 0x36, 0xb2, 0x7a, 0x9c, 0xaf, + 0x86, 0x29, 0x8d, 0x08, 0x7d, 0x01, 0xdf, 0xdd, 0x4c, 0xf3, 0x4c, 0xd7, 0x91, 0x43, 0x4e, 0x1f, + 0x94, 0x7f, 0xcb, 0x42, 0xa9, 0x77, 0x84, 0xa8, 0x40, 0x31, 0x52, 0x8d, 0xcc, 0xd5, 0xba, 0x38, + 0xc4, 0xff, 0xfa, 0xf2, 0xec, 0x73, 0x37, 0x2b, 0xe7, 0x42, 0xff, 0xc2, 0x59, 0x87, 0xaf, 0x55, + 0xcc, 0x99, 0x00, 0x15, 0x15, 0x3c, 0x93, 0x4d, 0x25, 0x24, 0x18, 0xc4, 0x83, 0x15, 0x23, 0x42, + 0x76, 0x7c, 0x6b, 0x66, 0x8f, 0xa3, 0x17, 0x73, 0x40, 0x1b, 0xb2, 0xe5, 0x44, 0x4a, 0x72, 0xeb, + 0xc9, 0xec, 0x8c, 0x33, 0x39, 0xde, 0x9e, 0xf5, 0xa6, 0x42, 0x23, 0x91, 0x95, 0xc8, 0x0a, 0xa4, + 0xa0, 0xab, 0xbc, 0xa4, 0x96, 0x88, 0xb0, 0xdc, 0xa8, 0x98, 0x03, 0x57, 0x17, 0x96, 0x9d, 0xfb, + 0x72, 0x6a, 0x41, 0x09, 0xfe, 0x57, 0x22, 0x5a, 0x1a, 0xe9, 0x5c, 0x92, 0x46, 0x56, 0xc8, 0xa8, + 0x52, 0xee, 0x3c, 0x9d, 0x6d, 0xec, 0xb9, 0x38, 0x25, 0xe7, 0xf6, 0x85, 0x49, 0xd9, 0xd0, 0x57, + 0x68, 0x1c, 0xa8, 0x4d, 0x8c, 0xe9, 0x0e, 0x75, 0x92, 0xe4, 0xb0, 0x42, 0x5c, 0xba, 0x41, 0xbe, + 0x44, 0x28, 0xac, 0x6a, 0x2e, 0x2d, 0xfc, 0xf6, 0xfa, 0x2b, 0xe5, 0x03, 0xd7, 0x5f, 0x2a, 0x83, + 0xdf, 0x5e, 0x7c, 0x1a, 0xae, 0x3d, 0x37, 0x03, 0xae, 0xcc, 0x2b, 0x85, 0xcb, 0x73, 0x4a, 0xa0, + 0x2e, 0x2b, 0xb5, 0xcb, 0x59, 0x24, 0x5c, 0x65, 0x52, 0x51, 0xb1, 0xe7, 0x27, 0xe7, 0xc5, 0x75, + 0x16, 0x64, 0xb4, 0xf6, 0x3d, 0x99, 0x05, 0x3f, 0x4c, 0x34, 0xc2, 0xf9, 0xfc, 0xf1, 0xd0, 0x56, + 0x54, 0x72, 0xb1, 0xb4, 0xa4, 0x7e, 0xdb, 0xa0, 0xd4, 0x99, 0x1c, 0xb0, 0x0c, 0x09, 0x21, 0x9d, + 0x1d, 0xe8, 0x22, 0xdd, 0xb4, 0xd9, 0x98, 0xd2, 0x72, 0x69, 0xf6, 0x53, 0x97, 0x2f, 0x95, 0x15, + 0xc3, 0x2f, 0x33, 0x27, 0x43, 0xff, 0xf4, 0x22, 0xf8, 0x79, 0xda, 0x44, 0xe8, 0x2c, 0xca, 0xbc, + 0x62, 0x50, 0xb9, 0xbf, 0x2f, 0x16, 0x08, 0xde, 0xda, 0xac, 0x8f, 0x6e, 0x3b, 0x5f, 0x90, 0x71, + 0xfb, 0xfb, 0x3c, 0x03, 0x9c, 0xcb, 0x1e, 0x07, 0x67, 0x33, 0x53, 0xfe, 0x6a, 0x8e, 0x4e, 0x6c, + 0xda, 0xea, 0xa5, 0x67, 0x56, 0xba, 0x87, 0x33, 0x43, 0x84, 0xa8, 0x58, 0x00, 0xf2, 0x3c, 0xf2, + 0x06, 0x6d, 0xb8, 0x84, 0xd1, 0x0a, 0xa9, 0x6e, 0x7b, 0x5a, 0x7c, 0x5d, 0x5f, 0x71, 0xee, 0xc0, + 0x85, 0xc9, 0x39, 0xd0, 0x57, 0x74, 0x37, 0xea, 0xde, 0x3c, 0xc3, 0x40, 0x87, 0x31, 0xf9, 0x7a, + 0xef, 0x84, 0x34, 0x38, 0x6b, 0x4c, 0x86, 0x33, 0x8f, 0x27, 0xc2, 0xbe, 0xb1, 0x11, 0x7d, 0x5b, + 0x03, 0xd3, 0xde, 0x5d, 0xaf, 0x1d, 0xc7, 0x10, 0x96, 0xaa, 0x62, 0x86, 0x14, 0x83, 0x0e, 0xa9, + 0xa0, 0x3d, 0x94, 0x4b, 0xfb, 0x69, 0x0c, 0x12, 0x86, 0x28, 0x90, 0x29, 0xd1, 0x2e, 0xce, 0xdb, + 0x9a, 0xd2, 0xf5, 0x3f, 0x91, 0xa8, 0x7b, 0x33, 0x53, 0xe0, 0xcc, 0xf8, 0x24, 0x38, 0x6d, 0xd0, + 0x43, 0x4f, 0x5a, 0x3c, 0x9c, 0x4a, 0x8e, 0x83, 0xa6, 0xd8, 0xd1, 0xfb, 0xc5, 0x22, 0xc7, 0x75, + 0x0f, 0xaa, 0xba, 0x40, 0xe4, 0x55, 0x64, 0x0d, 0xf2, 0x0c, 0xed, 0x72, 0x92, 0x46, 0x21, 0xe9, + 0x17, 0x5a, 0xe2, 0x69, 0xd6, 0x7c, 0x7e, 0x5e, 0xc3, 0xd8, 0x88, 0xa6, 0x53, 0xa9, 0x63, 0xe1, + 0xbb, 0xa4, 0x18, 0xe8, 0xd6, 0x47, 0x41, 0x57, 0x7c, 0x24, 0xb4, 0x45, 0x8d, 0xda, 0x8f, 0x8b, + 0x62, 0xac, 0x84, 0x62, 0x26, 0x69, 0x56, 0xf7, 0x3d, 0x22, 0x27, 0xd6, 0x0f, 0x11, 0x22, 0xc5, + 0xa0, 0x46, 0x0c, 0xc8, 0x02, 0x5a, 0xba, 0x4f, 0x90, 0x7e, 0x31, 0x69, 0x64, 0xf7, 0x9d, 0x61, + 0x41, 0xb3, 0xbb, 0x12, 0x22, 0x07, 0xba, 0xe2, 0xc2, 0xe1, 0x64, 0x74, 0x18, 0x9c, 0x18, 0x33, + 0x12, 0x8e, 0x87, 0x07, 0x43, 0x47, 0x68, 0xe0, 0x8d, 0x19, 0xae, 0xd2, 0x49, 0x16, 0x46, 0xd0, + 0x90, 0x62, 0x70, 0xa0, 0xe7, 0x54, 0x86, 0xbc, 0x89, 0x2c, 0xa3, 0x3d, 0xc6, 0xfd, 0x3a, 0x32, + 0x34, 0xba, 0x33, 0x6a, 0xe4, 0xef, 0x27, 0x22, 0x42, 0xa0, 0x23, 0x2c, 0x08, 0x8e, 0x8d, 0xf2, + 0x87, 0xf6, 0x60, 0xbf, 0xbf, 0xdb, 0x03, 0x7c, 0xe0, 0x88, 0xce, 0x1b, 0x9a, 0x7d, 0xd5, 0x7d, + 0x72, 0x1b, 0xbb, 0x0d, 0xe1, 0xf9, 0x3b, 0x18, 0x96, 0x80, 0x94, 0xe5, 0xc3, 0x0a, 0x91, 0x14, + 0xe9, 0xa9, 0x1f, 0x2d, 0xa2, 0x13, 0x82, 0xa4, 0x50, 0x7b, 0x68, 0x74, 0xa0, 0xaa, 0x23, 0x34, + 0xe0, 0xc7, 0xa3, 0x21, 0x3a, 0x68, 0x0f, 0xd2, 0xc2, 0x37, 0xfe, 0xde, 0xd0, 0xaa, 0xd3, 0xf4, + 0x2c, 0x71, 0x97, 0xe7, 0xb5, 0x68, 0xd5, 0x97, 0x0f, 0xf9, 0x78, 0x42, 0xb3, 0xb7, 0x0a, 0x6a, + 0x3c, 0x14, 0xbd, 0x59, 0x8b, 0x06, 0x2c, 0x9e, 0x91, 0x81, 0x56, 0x1a, 0x19, 0xa6, 0x8f, 0xd1, + 0xe2, 0x20, 0xc5, 0x10, 0x98, 0x2c, 0xb5, 0x55, 0x60, 0xd4, 0x47, 0x8f, 0xe8, 0x34, 0x70, 0xd8, + 0xcf, 0x0b, 0x5a, 0x7d, 0xd5, 0xf0, 0x95, 0xd6, 0xf3, 0xd6, 0x6e, 0x95, 0x1b, 0x99, 0xf0, 0xa2, + 0x46, 0xb5, 0x52, 0x7f, 0x40, 0xed, 0xfe, 0x67, 0xa3, 0x4a, 0x01, 0xfb, 0x3d, 0xdc, 0x60, 0x71, + 0x66, 0x75, 0xa3, 0x25, 0x21, 0x0d, 0x15, 0xa9, 0xa6, 0x86, 0xe5, 0x47, 0xd3, 0x68, 0xdd, 0xe2, + 0xe7, 0xb5, 0x04, 0xa3, 0x06, 0x36, 0xea, 0x26, 0x8d, 0x07, 0x7c, 0xee, 0xa9, 0x5c, 0x41, 0xcf, + 0xed, 0xce, 0xf8, 0x69, 0x50, 0xca, 0x0a, 0x3f, 0x56, 0xb8, 0xde, 0xfe, 0xc8, 0xcd, 0x05, 0x76, + 0xa9, 0xbc, 0x6e, 0x4c, 0x78, 0xb6, 0x77, 0xbd, 0x61, 0xc1, 0x55, 0x26, 0x6e, 0x6a, 0xf3, 0x10, + 0x21, 0x1e, 0x1d, 0x2b, 0xe5, 0xf4, 0x87, 0x33, 0xf9, 0xd6, 0xa4, 0x51, 0x6a, 0xbf, 0xd0, 0x78, + 0xfc, 0x71, 0xd0, 0x4b, 0x09, 0x18, 0x35, 0xdc, 0x8d, 0x5a, 0xde, 0x53, 0xab, 0x54, 0x8a, 0xcc, + 0x27, 0xfa, 0x3a, 0xa9, 0x43, 0x5d, 0x9d, 0x8b, 0x13, 0xec, 0x92, 0x3a, 0x40, 0xb9, 0x9d, 0x6d, + 0xbb, 0xa5, 0x62, 0xb0, 0x46, 0x22, 0xe8, 0x0f, 0xd2, 0x3f, 0x3c, 0xdc, 0xb8, 0xe1, 0x33, 0x95, + 0x1b, 0xec, 0x53, 0xca, 0xe1, 0x53, 0x77, 0x19, 0x60, 0xd4, 0xb0, 0x47, 0x26, 0x4d, 0x1c, 0xce, + 0x8f, 0xc6, 0x08, 0x85, 0xda, 0x4d, 0x12, 0x71, 0xff, 0x16, 0x89, 0x18, 0xde, 0xb1, 0xb7, 0xbb, + 0xe5, 0x6f, 0x65, 0x45, 0x2a, 0xb7, 0x94, 0x92, 0x60, 0x3e, 0x19, 0x74, 0x54, 0x28, 0x66, 0xaf, + 0x52, 0x9e, 0xf3, 0x89, 0x42, 0x06, 0x7b, 0xdd, 0x70, 0x73, 0xb9, 0x0b, 0x7c, 0x20, 0x93, 0xc2, + 0x6e, 0x99, 0xf4, 0xa0, 0x05, 0xe3, 0xe3, 0x56, 0x88, 0x44, 0xb9, 0x1b, 0x47, 0x88, 0xa0, 0x46, + 0x64, 0x03, 0x95, 0x42, 0xeb, 0xe3, 0xf8, 0x2d, 0x92, 0x9a, 0x5e, 0x90, 0xb9, 0xf1, 0xb1, 0x56, + 0x1e, 0x5b, 0xe7, 0x2a, 0xcd, 0xae, 0x77, 0x95, 0xde, 0xbc, 0x93, 0x0e, 0x67, 0x47, 0xd8, 0xe9, + 0xe4, 0x00, 0x3b, 0x9c, 0x24, 0xa9, 0x0f, 0x70, 0x59, 0xfe, 0x5a, 0xa1, 0xa0, 0x66, 0xad, 0xc0, + 0x0a, 0xd6, 0x58, 0xf1, 0x61, 0x3a, 0x87, 0x93, 0x45, 0x9b, 0xde, 0xda, 0xdc, 0xca, 0x89, 0xa1, + 0x25, 0xd3, 0x48, 0x78, 0xdb, 0x9d, 0x25, 0xe1, 0xdb, 0x1c, 0xed, 0x2f, 0x90, 0x74, 0xbc, 0x67, + 0x2f, 0x3e, 0xfc, 0x30, 0x96, 0xfe, 0x3a, 0x3a, 0x72, 0x15, 0x97, 0xd3, 0x8f, 0x9e, 0x03, 0xd8, + 0x84, 0x1f, 0xde, 0xef, 0x72, 0xc2, 0xa5, 0xd5, 0xe6, 0xc3, 0x5e, 0x4e, 0x36, 0xda, 0xda, 0x2a, + 0x30, 0x1d, 0x6d, 0x1b, 0x6c, 0x6d, 0xb3, 0x1e, 0xf6, 0xfe, 0x50, 0xc5, 0xe1, 0xcc, 0x23, 0x42, + 0xaf, 0x71, 0x38, 0xf5, 0xc3, 0x0a, 0x51, 0x31, 0x1e, 0x6b, 0x66, 0x2c, 0x6f, 0x93, 0x0b, 0xa5, + 0x99, 0x9d, 0x5b, 0x02, 0x73, 0x6f, 0xb7, 0xf4, 0x6e, 0xc3, 0x0f, 0xba, 0x49, 0xfd, 0x03, 0xb7, + 0x67, 0x2f, 0x8b, 0xe2, 0xe0, 0xe7, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, + 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE delete_association_xpm[1] = {{ png, sizeof( png ), "delete_association_xpm" }}; diff --git a/bitmaps_png/cpp_26/module_pin_filtered_list.cpp b/bitmaps_png/cpp_26/module_pin_filtered_list.cpp index b2784c5ea7..1e1a96b070 100644 --- a/bitmaps_png/cpp_26/module_pin_filtered_list.cpp +++ b/bitmaps_png/cpp_26/module_pin_filtered_list.cpp @@ -8,55 +8,58 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x02, 0xf2, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x56, 0x4d, 0x4f, 0x1a, - 0x51, 0x14, 0x35, 0xad, 0x35, 0x5d, 0xf6, 0x17, 0xb4, 0xc6, 0xda, 0x8f, 0x5f, 0x81, 0x44, 0x40, - 0x99, 0x81, 0x22, 0xd0, 0x62, 0x44, 0xda, 0xd2, 0x20, 0x20, 0xd1, 0x46, 0x43, 0xc4, 0xa6, 0xff, - 0x80, 0xc4, 0x85, 0xfd, 0x88, 0x6d, 0x8c, 0x49, 0xd3, 0x36, 0x2e, 0x1a, 0x6b, 0x88, 0x24, 0x36, - 0x6d, 0xb4, 0xb8, 0xa0, 0x2b, 0x62, 0x58, 0xe9, 0xc6, 0xa0, 0x15, 0x1b, 0x16, 0x65, 0x61, 0x48, - 0x4c, 0x89, 0xf2, 0xa5, 0xb7, 0x73, 0x6f, 0xe7, 0x4d, 0x06, 0x19, 0x06, 0x6a, 0x5a, 0x27, 0x39, - 0xe1, 0xcc, 0x3b, 0xef, 0x9d, 0x93, 0x79, 0xdc, 0x77, 0x67, 0x5a, 0x00, 0xa0, 0xe5, 0x3c, 0x50, - 0x75, 0x63, 0x33, 0x19, 0x52, 0x3c, 0xd7, 0x5b, 0x66, 0xe8, 0xe3, 0x0d, 0x3f, 0x98, 0x66, 0x37, - 0xe9, 0x37, 0xcd, 0x5c, 0xcf, 0x11, 0x03, 0xce, 0x65, 0x1a, 0xce, 0xab, 0xb7, 0x4e, 0x31, 0x08, - 0x27, 0xe5, 0x27, 0x5b, 0xa1, 0xf8, 0xe4, 0x02, 0xc1, 0x68, 0x34, 0x82, 0x5c, 0xcb, 0x85, 0xda, - 0x20, 0x3f, 0x79, 0x89, 0x20, 0xd7, 0x90, 0xb3, 0x35, 0xa7, 0xd7, 0xd5, 0x0d, 0x8a, 0xfa, 0x3a, - 0xe1, 0xd1, 0x3d, 0x23, 0x44, 0xfc, 0x37, 0x6b, 0x82, 0x96, 0xfc, 0x37, 0x48, 0x5b, 0xf2, 0x77, - 0xd6, 0x04, 0xe1, 0x7c, 0x97, 0x8d, 0x83, 0x45, 0xdf, 0xad, 0xfa, 0x41, 0x76, 0xbb, 0x7d, 0x93, - 0xe7, 0x79, 0x7c, 0x6c, 0x70, 0xdf, 0xe5, 0xe0, 0xfd, 0xec, 0x4b, 0x70, 0xf4, 0x71, 0xb4, 0x80, - 0xc6, 0x45, 0x6d, 0x50, 0x30, 0x7a, 0xfb, 0xfa, 0x39, 0xfd, 0xca, 0x35, 0xe4, 0x2e, 0x3b, 0x07, - 0x6f, 0x5e, 0x3d, 0xab, 0xd2, 0x2c, 0x16, 0xcb, 0x4f, 0xad, 0x56, 0x7b, 0x59, 0x0a, 0x32, 0x9b, - 0xcd, 0x47, 0xb9, 0x5c, 0x0e, 0xee, 0x98, 0x78, 0xf8, 0x3c, 0xdc, 0x0e, 0xfe, 0xfe, 0x5e, 0xf8, - 0x34, 0x7c, 0x9d, 0x16, 0x14, 0x8b, 0x45, 0x02, 0x6a, 0xcb, 0xfe, 0x0e, 0x51, 0xeb, 0xa8, 0xd2, - 0x90, 0x7f, 0x0d, 0x5c, 0x85, 0xc7, 0x03, 0x3d, 0xb0, 0x32, 0x7c, 0x4d, 0xd2, 0x84, 0xa0, 0x82, - 0xd5, 0x6a, 0xbd, 0x52, 0x15, 0x94, 0xcf, 0xe7, 0xc9, 0x0c, 0xf7, 0x18, 0x9e, 0xb6, 0x10, 0xc4, - 0x2d, 0xa0, 0x4b, 0x4d, 0x23, 0x2e, 0x8e, 0xcb, 0xb5, 0xba, 0x41, 0x9e, 0x07, 0x4e, 0xc1, 0x90, - 0x93, 0x70, 0x7f, 0xc0, 0x21, 0x99, 0xa9, 0x69, 0xc8, 0x95, 0x34, 0xa5, 0xa0, 0xc2, 0xfa, 0xfa, - 0x3a, 0x1c, 0x1f, 0x1f, 0x4b, 0xdb, 0x81, 0xa8, 0x54, 0x2a, 0x92, 0x99, 0x9a, 0x86, 0x5c, 0x49, - 0xab, 0x09, 0x32, 0x99, 0x4c, 0xc5, 0xa1, 0xa1, 0x21, 0x98, 0x9b, 0x9b, 0x83, 0x7f, 0x79, 0x29, - 0x6e, 0x5d, 0x26, 0x93, 0x41, 0x01, 0x0e, 0x0f, 0x0f, 0x9b, 0x32, 0x19, 0x1f, 0x1f, 0x07, 0x9d, - 0x4e, 0xa7, 0x0a, 0x8d, 0x46, 0x83, 0xf8, 0x56, 0x15, 0x14, 0x89, 0x44, 0x20, 0x10, 0x08, 0xc0, - 0xc9, 0xc9, 0x49, 0xc3, 0x10, 0xdc, 0x1e, 0xd1, 0xa4, 0x29, 0x60, 0x89, 0xff, 0x39, 0x8c, 0x3c, - 0x5f, 0x0a, 0x85, 0x42, 0x90, 0x4a, 0xa5, 0x9a, 0x7a, 0x1a, 0x79, 0x90, 0xc7, 0xe3, 0x81, 0x60, - 0x30, 0x48, 0xdc, 0xed, 0x76, 0x03, 0xfa, 0xd4, 0x0d, 0x62, 0x55, 0xd7, 0xec, 0x25, 0x0f, 0x5a, - 0x58, 0x58, 0x80, 0xe9, 0xe9, 0x69, 0xe2, 0xf3, 0xf3, 0xf3, 0x30, 0x33, 0x33, 0xd3, 0x38, 0xc8, - 0xeb, 0x76, 0xd1, 0x19, 0x60, 0x78, 0x38, 0xd8, 0x2f, 0x99, 0xa3, 0x86, 0x67, 0x89, 0x81, 0x99, - 0x6c, 0x6c, 0x6c, 0x80, 0xcf, 0xe7, 0x23, 0x9e, 0x4c, 0x26, 0x61, 0x74, 0x74, 0xb4, 0x71, 0x50, - 0xa3, 0x43, 0xc9, 0x9a, 0x66, 0x6e, 0xa2, 0x0d, 0x12, 0x89, 0x04, 0x6c, 0x6f, 0x6f, 0x43, 0xb9, - 0x5c, 0x86, 0xdd, 0xdd, 0x5d, 0xe2, 0xa5, 0x52, 0x09, 0xd2, 0xe9, 0x34, 0x6d, 0x61, 0xc3, 0xa0, - 0x8f, 0x42, 0x53, 0x3c, 0xd5, 0x1c, 0xa5, 0xa0, 0x45, 0x51, 0xfb, 0xe0, 0xbd, 0x4d, 0x15, 0x8a, - 0xff, 0xcd, 0xd6, 0xd6, 0x16, 0x08, 0x25, 0x4c, 0x7c, 0x67, 0x67, 0x87, 0x78, 0x77, 0x77, 0xb7, - 0x72, 0x90, 0xcd, 0x66, 0xfb, 0x2e, 0x9c, 0xa5, 0x0a, 0x36, 0x4e, 0x34, 0x7a, 0x37, 0xfb, 0x42, - 0x6a, 0x8e, 0x38, 0x8e, 0x40, 0x2e, 0x35, 0x55, 0x2b, 0x47, 0x06, 0x53, 0x53, 0x53, 0x80, 0xd5, - 0xca, 0x78, 0x34, 0x1a, 0x55, 0xaf, 0x3a, 0x87, 0xc3, 0x71, 0x11, 0x6f, 0xf0, 0x55, 0xf0, 0x45, - 0x68, 0x8a, 0xf2, 0xe6, 0x88, 0xe3, 0x08, 0xe4, 0x2b, 0xa2, 0xb6, 0xec, 0x6f, 0xa7, 0x80, 0xbd, - 0xbd, 0x3d, 0xaa, 0xd4, 0xb5, 0xb5, 0xb5, 0x2a, 0xee, 0x74, 0x3a, 0x95, 0x83, 0xe4, 0xef, 0x1c, - 0x85, 0xff, 0x48, 0x7a, 0xe7, 0xb0, 0xf1, 0x5f, 0xa1, 0x56, 0x18, 0x1b, 0x1b, 0x83, 0xfd, 0xfd, - 0x7d, 0x08, 0x87, 0xc3, 0x54, 0xd2, 0xd9, 0x6c, 0x56, 0xe2, 0x1c, 0xc7, 0xa9, 0x07, 0xe1, 0x2b, - 0x58, 0x5e, 0x75, 0x16, 0xde, 0x90, 0x65, 0x1a, 0x72, 0xb9, 0x86, 0x66, 0x07, 0x07, 0x07, 0xd0, - 0xd5, 0xd5, 0x05, 0x7a, 0xbd, 0x9e, 0xb8, 0x60, 0xa8, 0xbe, 0x75, 0x7f, 0x0b, 0x5c, 0x38, 0x32, - 0x32, 0x02, 0xb1, 0x58, 0x8c, 0x8c, 0xbc, 0x5e, 0x2f, 0xc4, 0xe3, 0xf1, 0xc6, 0x9d, 0xe1, 0x2c, - 0x41, 0x67, 0x6a, 0x41, 0x67, 0x81, 0x60, 0xb0, 0x2a, 0xa0, 0xd0, 0x04, 0x56, 0x6b, 0x3e, 0x4e, - 0xce, 0xed, 0xbb, 0xee, 0x7f, 0xe2, 0x37, 0x1f, 0x92, 0xd4, 0xd4, 0xbc, 0xf7, 0xa2, 0x44, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x03, 0x25, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x56, 0x5d, 0x4f, 0x13, + 0x41, 0x14, 0x25, 0x8a, 0xc4, 0x47, 0x7f, 0x81, 0x12, 0xc4, 0x8f, 0x5f, 0x01, 0x05, 0x4a, 0xdb, + 0xfd, 0xa0, 0xb4, 0x8b, 0xe5, 0xab, 0x95, 0xaa, 0x40, 0x5b, 0x09, 0x49, 0x1f, 0x2c, 0x44, 0x49, + 0x7c, 0x81, 0xe8, 0x0b, 0x0f, 0xa8, 0x01, 0x83, 0x4d, 0x88, 0x20, 0x31, 0x1a, 0x48, 0x83, 0x09, + 0x44, 0x29, 0x12, 0x4c, 0x80, 0x90, 0x08, 0xf8, 0x22, 0x6f, 0x25, 0x3e, 0x28, 0x21, 0x0a, 0x81, + 0x26, 0x84, 0x52, 0x28, 0xb6, 0xbd, 0xce, 0x1d, 0x77, 0x37, 0x5b, 0xba, 0x5b, 0x9a, 0x88, 0x6c, + 0x72, 0xb2, 0x77, 0xe7, 0xcc, 0x9c, 0xb3, 0x73, 0x77, 0xe6, 0xce, 0xe6, 0x00, 0x40, 0xce, 0x69, + 0x20, 0xe5, 0xc1, 0xca, 0x95, 0x87, 0x58, 0xc6, 0xf8, 0x5b, 0x42, 0x25, 0x5b, 0xfe, 0x5d, 0xe2, + 0x04, 0x4e, 0xbf, 0xc2, 0x33, 0x86, 0x7d, 0x09, 0xd8, 0x57, 0xe2, 0xb0, 0x9f, 0xd6, 0x38, 0x55, + 0x23, 0xec, 0x14, 0x69, 0xcb, 0x85, 0x58, 0xfb, 0x19, 0x0a, 0x93, 0xc9, 0x04, 0x4a, 0x2e, 0xec, + 0xcb, 0x83, 0x48, 0xdb, 0x39, 0x0a, 0x25, 0x87, 0xb1, 0x34, 0xe6, 0xe8, 0x38, 0x4d, 0xa3, 0x77, + 0xcd, 0x85, 0x70, 0xeb, 0x86, 0x09, 0x02, 0xae, 0xab, 0x69, 0x46, 0x63, 0xae, 0x2b, 0x94, 0x1b, + 0x73, 0x15, 0xa6, 0x19, 0x61, 0x7f, 0xbb, 0x95, 0x81, 0xd1, 0xe6, 0x6b, 0xda, 0x46, 0x82, 0x20, + 0xac, 0xb0, 0x2c, 0x8b, 0xd3, 0x06, 0x67, 0x15, 0x03, 0x43, 0xfd, 0xcf, 0xc0, 0x56, 0xc9, 0xd0, + 0x01, 0xb4, 0x5d, 0xe4, 0xea, 0x89, 0xd0, 0xcb, 0xe7, 0x4f, 0xe8, 0x5d, 0xc9, 0x61, 0x6c, 0x17, + 0x18, 0x18, 0xe8, 0xeb, 0x49, 0xe1, 0xcc, 0x66, 0xf3, 0x4f, 0x9d, 0x4e, 0x77, 0x5e, 0x36, 0xe2, + 0x79, 0x7e, 0x3f, 0x1c, 0x0e, 0x43, 0x05, 0xc7, 0xc2, 0x7b, 0x77, 0x3e, 0xb8, 0xaa, 0x8d, 0x30, + 0xe1, 0xbe, 0x4c, 0x07, 0xc4, 0x62, 0x31, 0x0a, 0xe4, 0xc6, 0x5d, 0x05, 0x22, 0x57, 0x90, 0xc2, + 0x61, 0xfc, 0xd1, 0x73, 0x11, 0x5a, 0x6b, 0x0d, 0x10, 0x74, 0x5f, 0x92, 0x39, 0x62, 0x74, 0x60, + 0xb1, 0x58, 0x2e, 0xa4, 0x18, 0x45, 0x22, 0x11, 0x2a, 0x86, 0x39, 0x86, 0xfb, 0x39, 0x14, 0x62, + 0x0a, 0xe8, 0x95, 0x89, 0xa3, 0xb1, 0xd8, 0xae, 0xe4, 0x34, 0x8d, 0xee, 0xdc, 0xac, 0x23, 0x82, + 0x8c, 0x0c, 0x47, 0xad, 0x4d, 0x16, 0xcb, 0xc4, 0x61, 0xac, 0xc6, 0xa9, 0x19, 0x1d, 0x2c, 0x2e, + 0x2e, 0x42, 0x22, 0x91, 0x90, 0xd3, 0x81, 0x88, 0xc7, 0xe3, 0xb2, 0x58, 0x26, 0x0e, 0x63, 0x35, + 0x2e, 0xcd, 0x88, 0xe3, 0xb8, 0x58, 0x63, 0x63, 0x23, 0xf8, 0xfd, 0x7e, 0x38, 0xc9, 0x4b, 0x35, + 0x75, 0x6b, 0x6b, 0x6b, 0x48, 0x40, 0x34, 0x1a, 0xcd, 0x4a, 0xc4, 0xeb, 0xf5, 0x42, 0x59, 0x59, + 0x19, 0xae, 0x2e, 0xa8, 0x12, 0x04, 0x1a, 0x57, 0x92, 0xf1, 0x44, 0x98, 0xc6, 0x88, 0xa2, 0xa2, + 0x22, 0xc4, 0x6c, 0x8a, 0x51, 0x20, 0x10, 0x00, 0x8f, 0xc7, 0x03, 0xc9, 0x64, 0xf2, 0x58, 0x13, + 0x4c, 0x8f, 0x28, 0x02, 0x6f, 0x87, 0x87, 0xe1, 0xc7, 0xea, 0x2a, 0x8d, 0xbf, 0x2e, 0x2d, 0xc1, + 0xcc, 0xe4, 0xa4, 0xcc, 0x49, 0xc0, 0x25, 0xfe, 0x77, 0x33, 0xb2, 0xec, 0xa1, 0xcf, 0xe7, 0x83, + 0x50, 0x28, 0x94, 0xd5, 0x6c, 0x94, 0x46, 0x4b, 0xf3, 0xf3, 0xb2, 0x78, 0x64, 0x6b, 0x0b, 0xfc, + 0x7d, 0x7d, 0xda, 0x46, 0xd2, 0xaa, 0xcb, 0xf6, 0x42, 0xa3, 0x87, 0x1d, 0x1d, 0xf0, 0x82, 0x88, + 0xee, 0x6c, 0x6c, 0xc0, 0x97, 0x85, 0x05, 0x18, 0x1a, 0x18, 0x00, 0x92, 0x77, 0x98, 0x9a, 0x98, + 0x00, 0x9e, 0xe3, 0x32, 0x1b, 0x35, 0x39, 0xed, 0x74, 0x0f, 0x48, 0x68, 0xa8, 0xaf, 0x96, 0xc5, + 0x91, 0xc3, 0xbd, 0x24, 0x61, 0x7e, 0x66, 0x86, 0x0a, 0xab, 0xc1, 0x5e, 0x57, 0x97, 0xd9, 0xe8, + 0xb8, 0x4d, 0x29, 0x15, 0xcd, 0xf0, 0xbd, 0x3c, 0x28, 0x2d, 0x2d, 0x85, 0x07, 0xed, 0xed, 0xb2, + 0xf0, 0x2b, 0x32, 0xa3, 0xf0, 0xfa, 0x3a, 0xe8, 0xf5, 0x7a, 0x28, 0x2e, 0x2e, 0x3e, 0xde, 0x68, + 0x84, 0x14, 0xc5, 0x23, 0xc5, 0x51, 0x36, 0x1a, 0x15, 0xb9, 0x37, 0x4d, 0xd7, 0xa9, 0x40, 0x7f, + 0x6f, 0x2f, 0xec, 0x6e, 0x6e, 0xd2, 0x78, 0x76, 0x7a, 0x1a, 0x3e, 0xcf, 0xcd, 0xa5, 0x7d, 0x9f, + 0x14, 0x23, 0xab, 0xd5, 0xfa, 0x8d, 0xec, 0xa5, 0x38, 0x16, 0x4e, 0x14, 0x1a, 0xec, 0x7f, 0x2a, + 0x17, 0x47, 0x6c, 0x47, 0x60, 0x2c, 0x17, 0x55, 0x0b, 0x03, 0x9f, 0x82, 0x41, 0x48, 0x90, 0x97, + 0x4b, 0xee, 0xed, 0xc1, 0xe1, 0xce, 0x0e, 0xbd, 0xe3, 0x33, 0xc6, 0xf5, 0x5a, 0xa9, 0xb3, 0xd9, + 0x6c, 0x67, 0xf1, 0x01, 0x8f, 0x82, 0x0f, 0xa4, 0x28, 0x2a, 0x8b, 0x23, 0xb6, 0x23, 0x30, 0x0e, + 0x8a, 0xdc, 0xb8, 0x2b, 0x1f, 0x1e, 0x75, 0x76, 0x42, 0x74, 0x7b, 0x1b, 0x56, 0x96, 0x97, 0x61, + 0x6c, 0x64, 0x84, 0xa6, 0x10, 0xcd, 0x5f, 0x0f, 0x0e, 0x42, 0x05, 0xcf, 0xab, 0x1b, 0x29, 0xcf, + 0x1c, 0x95, 0x6f, 0x24, 0x9f, 0x39, 0x52, 0xfb, 0xae, 0x2f, 0x17, 0x0c, 0x06, 0x03, 0x24, 0xc8, + 0x2c, 0x1e, 0x77, 0x75, 0x41, 0x6b, 0x4b, 0x0b, 0x35, 0x6a, 0x70, 0x38, 0x32, 0xa7, 0x4e, 0x79, + 0x24, 0x2b, 0x57, 0x9d, 0x99, 0x2d, 0xff, 0x25, 0x71, 0x18, 0x2b, 0xb9, 0xbb, 0x6e, 0x37, 0x15, + 0xbf, 0xed, 0x74, 0x42, 0x4f, 0x77, 0x37, 0x4d, 0x59, 0x49, 0x49, 0x49, 0x76, 0x46, 0xd9, 0x82, + 0xa6, 0xd2, 0x68, 0x04, 0x87, 0xdd, 0x0e, 0x3a, 0xb2, 0xc2, 0x30, 0x55, 0xb5, 0x35, 0x35, 0xaa, + 0x26, 0xff, 0x6c, 0xa4, 0x25, 0x7a, 0xa2, 0x46, 0x08, 0x22, 0x30, 0x45, 0x70, 0x90, 0x05, 0xa6, + 0xd2, 0x7e, 0x4e, 0x4e, 0xed, 0xbf, 0xee, 0x7f, 0xe2, 0x0f, 0xd1, 0x8f, 0xef, 0xbe, 0x17, 0x6f, + 0x07, 0x74, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE module_pin_filtered_list_xpm[1] = {{ png, sizeof( png ), "module_pin_filtered_list_xpm" }}; diff --git a/bitmaps_png/cpp_26/plot.cpp b/bitmaps_png/cpp_26/plot.cpp index b3b62ec03c..00802ed5f4 100644 --- a/bitmaps_png/cpp_26/plot.cpp +++ b/bitmaps_png/cpp_26/plot.cpp @@ -8,72 +8,72 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x03, 0xfb, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x6d, 0x48, 0x5b, - 0x57, 0x18, 0xc7, 0x83, 0x74, 0x5b, 0x8b, 0x65, 0x2b, 0xa3, 0x94, 0x31, 0xb6, 0x7d, 0x98, 0x1f, - 0xca, 0x86, 0x1f, 0xd4, 0x41, 0xb5, 0xbe, 0xe5, 0xa5, 0xa2, 0xb0, 0x11, 0xcd, 0x5c, 0x92, 0x76, - 0x53, 0x87, 0x0c, 0xec, 0x07, 0xd9, 0xc4, 0x8f, 0x96, 0xc1, 0x10, 0xa6, 0xa2, 0x1f, 0x74, 0xab, - 0x30, 0x47, 0x11, 0xa6, 0xa5, 0x49, 0x37, 0x35, 0xeb, 0x8c, 0xb6, 0xdd, 0x84, 0xb5, 0x79, 0x29, - 0x8a, 0xd1, 0xf8, 0x52, 0x2b, 0xb3, 0xe2, 0x2a, 0x0b, 0xc9, 0x5c, 0xde, 0x6e, 0xee, 0xcd, 0x7b, - 0xd2, 0xc4, 0xfc, 0x77, 0xee, 0xad, 0x89, 0x66, 0xde, 0xb9, 0xb4, 0xc8, 0x02, 0x3f, 0x02, 0x27, - 0xb9, 0xff, 0xdf, 0x7d, 0xce, 0x3d, 0xe7, 0x39, 0x57, 0xc0, 0xf8, 0x3c, 0x13, 0x6e, 0x86, 0xba, - 0x9d, 0xc4, 0xe3, 0xf5, 0x8c, 0x85, 0x83, 0xcc, 0xe5, 0xed, 0x88, 0xf7, 0x12, 0xe1, 0x34, 0x00, - 0xc1, 0x61, 0x20, 0xb0, 0xb8, 0x5c, 0xc1, 0x8b, 0x13, 0x2b, 0x48, 0xf2, 0xd9, 0xad, 0x07, 0x68, - 0xbf, 0xbb, 0x86, 0xef, 0xcc, 0x8f, 0xa2, 0x81, 0x00, 0xed, 0x25, 0xb2, 0xd2, 0x43, 0x11, 0x2d, - 0x5b, 0xed, 0xf4, 0xa9, 0x5e, 0x03, 0xf8, 0x50, 0x8c, 0x2e, 0xc2, 0xe7, 0xa3, 0x60, 0x30, 0xde, - 0x89, 0xfc, 0xfc, 0xcb, 0xcd, 0xf0, 0x5e, 0x0c, 0x06, 0x43, 0x4c, 0x6f, 0xd0, 0xdb, 0xf4, 0x7a, - 0xfd, 0xa5, 0x99, 0x99, 0x99, 0x63, 0x19, 0x8b, 0x6c, 0x6e, 0x77, 0x94, 0xdc, 0x3d, 0xa2, 0x21, - 0x26, 0xe6, 0xa4, 0xa9, 0xe0, 0x27, 0xe3, 0xf7, 0x39, 0xd9, 0xe0, 0xdc, 0xef, 0x08, 0xf8, 0xbd, - 0x44, 0xe8, 0x4b, 0x63, 0x72, 0x72, 0x12, 0x0e, 0x87, 0x03, 0x26, 0x93, 0x69, 0x9b, 0xc8, 0x68, - 0x22, 0x96, 0x64, 0x24, 0x72, 0xd0, 0x94, 0x9f, 0x88, 0xde, 0x26, 0xbc, 0x48, 0xa8, 0x08, 0x06, - 0x3c, 0x38, 0xfd, 0xcd, 0x34, 0xea, 0x7e, 0x5c, 0x02, 0xe5, 0xa5, 0x11, 0x08, 0x04, 0xd2, 0x50, - 0xab, 0x55, 0x48, 0x24, 0x12, 0xf0, 0xfb, 0xfd, 0x58, 0x5c, 0x5c, 0x04, 0x91, 0x85, 0x75, 0x3a, - 0x9d, 0x28, 0x53, 0xd1, 0x5b, 0xec, 0x60, 0x45, 0xc5, 0x3b, 0x2f, 0x59, 0x6c, 0x96, 0xc4, 0xc7, - 0x3f, 0x2d, 0xa3, 0x4a, 0x35, 0x0f, 0x9a, 0x47, 0x74, 0xe5, 0xca, 0xb7, 0xa0, 0x69, 0x1a, 0x0c, - 0xc3, 0xc0, 0x66, 0xb3, 0xc1, 0x68, 0x34, 0x62, 0x6a, 0x6a, 0xea, 0x2f, 0x91, 0x48, 0x74, 0x22, - 0x63, 0x91, 0x48, 0x52, 0x6e, 0x77, 0x53, 0x76, 0xbc, 0xab, 0x36, 0xa3, 0xe1, 0xc6, 0x32, 0x3c, - 0x3c, 0xa2, 0x89, 0x09, 0x2d, 0xae, 0x5d, 0xbb, 0x8a, 0xeb, 0xd7, 0x55, 0xd0, 0x68, 0xc6, 0xa0, - 0xd5, 0x8e, 0x93, 0xb1, 0x71, 0x88, 0xc4, 0xe5, 0x2e, 0x81, 0x40, 0x90, 0x75, 0x90, 0x28, 0x10, - 0x0c, 0xd0, 0x3f, 0x50, 0x8c, 0xe7, 0xc6, 0xfa, 0xc6, 0x43, 0xcc, 0x3c, 0xb2, 0xe1, 0xd5, 0xaf, - 0x8c, 0xf8, 0x52, 0xf7, 0x10, 0xc1, 0x80, 0x77, 0x9f, 0x88, 0x8f, 0x9b, 0xb7, 0xb4, 0x10, 0x4b, - 0x84, 0x11, 0x52, 0xd5, 0xd1, 0x7f, 0x15, 0xb5, 0xdc, 0x7e, 0x80, 0xcf, 0x7f, 0xfd, 0x0d, 0x9f, - 0x92, 0xe5, 0x2d, 0xfd, 0xde, 0x8c, 0x37, 0x2e, 0xdf, 0xc3, 0x9b, 0xfd, 0xf7, 0x40, 0x16, 0x06, - 0x42, 0x41, 0xff, 0xe1, 0x89, 0xf6, 0xf2, 0xda, 0xd7, 0x46, 0x08, 0x87, 0x4d, 0x30, 0xfd, 0xb1, - 0x05, 0x9f, 0x9f, 0xc9, 0x48, 0x92, 0xb1, 0x68, 0xc5, 0x66, 0x0f, 0x93, 0x2e, 0x11, 0x22, 0xd3, - 0x17, 0x89, 0x06, 0x69, 0xf2, 0xa0, 0x5d, 0x64, 0xca, 0x7c, 0x19, 0x4b, 0x32, 0x16, 0xd9, 0x29, - 0x57, 0x54, 0xaf, 0xbb, 0x13, 0xd1, 0x6a, 0xb5, 0xb1, 0x91, 0x91, 0x11, 0x5c, 0xf8, 0x48, 0x89, - 0xf3, 0x1f, 0x2a, 0x52, 0x28, 0x59, 0x2e, 0x24, 0x91, 0xa7, 0x50, 0x24, 0x39, 0x2f, 0xe7, 0x7e, - 0x53, 0xab, 0xd5, 0x18, 0x1d, 0x1d, 0x8d, 0x11, 0x42, 0x1a, 0x8d, 0xe6, 0x8b, 0x7d, 0xa2, 0x2d, - 0x97, 0x13, 0x0c, 0xed, 0x41, 0x38, 0x1c, 0x46, 0x28, 0x14, 0x42, 0xad, 0xa2, 0x16, 0xad, 0xad, - 0xad, 0x68, 0x69, 0x69, 0x41, 0x73, 0x73, 0x33, 0x9a, 0x9a, 0x9a, 0xd0, 0xd8, 0xd8, 0x88, 0x86, - 0x86, 0x06, 0xd4, 0xd7, 0xd7, 0xf3, 0x52, 0xab, 0xf8, 0x00, 0x6e, 0xb7, 0x9b, 0xdb, 0xd0, 0x4e, - 0xa7, 0x13, 0x2a, 0x95, 0xea, 0x31, 0xd9, 0x5b, 0x47, 0xfe, 0x21, 0x72, 0x60, 0x3b, 0x1e, 0x4b, - 0x4d, 0xc3, 0x7b, 0xd5, 0x52, 0xb4, 0xb5, 0xb5, 0x71, 0xe1, 0x75, 0x75, 0x75, 0x50, 0x2a, 0x95, - 0x90, 0xc9, 0x64, 0xa8, 0xae, 0xae, 0xe6, 0x45, 0x2a, 0x95, 0x72, 0xd7, 0xd8, 0xed, 0x76, 0x50, - 0x14, 0xc5, 0x31, 0x3c, 0x3c, 0x1c, 0x1f, 0x1a, 0x1a, 0x3a, 0x9a, 0x26, 0xfa, 0x93, 0x88, 0xa2, - 0x91, 0x30, 0xb6, 0xb6, 0xb6, 0x38, 0xce, 0x55, 0x55, 0x42, 0x2e, 0x97, 0x83, 0xcc, 0xf7, 0x3e, - 0x84, 0x42, 0x21, 0x2f, 0x15, 0x55, 0x55, 0xb0, 0x58, 0x2c, 0xa9, 0x8c, 0xc1, 0xc1, 0x41, 0x7e, - 0x91, 0xdf, 0xe7, 0xc5, 0xe6, 0xe6, 0x26, 0x47, 0xa9, 0x58, 0x8c, 0x82, 0x82, 0x02, 0xe4, 0xe7, - 0xe7, 0x67, 0x44, 0x5e, 0x5e, 0x1e, 0xca, 0xc4, 0x12, 0xac, 0xaf, 0xaf, 0xa7, 0x32, 0x06, 0x06, - 0x06, 0x76, 0x45, 0x6c, 0x23, 0x4d, 0xe2, 0x72, 0x3a, 0xb0, 0xb6, 0xb6, 0xc6, 0x51, 0x50, 0x78, - 0x16, 0x45, 0x65, 0xc2, 0x3d, 0x94, 0xef, 0x52, 0x5a, 0x8e, 0x42, 0x1e, 0xf2, 0xce, 0x14, 0xe2, - 0xfe, 0xca, 0x4a, 0x2a, 0xa3, 0xbf, 0xbf, 0x7f, 0x57, 0x94, 0x5c, 0x15, 0x7d, 0x7d, 0x7d, 0xd8, - 0xd8, 0xd8, 0xc0, 0xd2, 0xd2, 0x12, 0xc7, 0xf4, 0xf4, 0xf4, 0x33, 0xc1, 0x5e, 0x7b, 0xd5, 0xda, - 0xce, 0x7d, 0xf7, 0xf6, 0xf6, 0xc6, 0xdb, 0xdb, 0xdb, 0xd3, 0x45, 0x3d, 0x3d, 0x3d, 0x5c, 0x17, - 0x5e, 0x58, 0x58, 0x80, 0xd9, 0x6c, 0xc6, 0xfc, 0xfc, 0x3c, 0xe6, 0xe6, 0xe6, 0x30, 0x3b, 0x3b, - 0xfb, 0xcc, 0x74, 0x77, 0x77, 0xef, 0x17, 0x75, 0x75, 0x75, 0x79, 0x3a, 0x3b, 0x3b, 0x13, 0x3c, - 0x20, 0x49, 0x47, 0x47, 0xc7, 0x41, 0x24, 0x78, 0xf0, 0x12, 0xd1, 0x91, 0x94, 0x88, 0x7c, 0x9e, - 0xcb, 0xc9, 0xc9, 0x79, 0x5d, 0x24, 0x16, 0x46, 0x6a, 0x6a, 0x6a, 0x20, 0x7b, 0x5f, 0x86, 0xd5, - 0xd5, 0x55, 0x54, 0x56, 0x56, 0x3e, 0x15, 0xec, 0x74, 0xc9, 0x15, 0x72, 0xb2, 0x0d, 0x6a, 0xd8, - 0x2e, 0x1e, 0xcf, 0xcd, 0xcd, 0xcd, 0x21, 0xd9, 0xcf, 0xef, 0x15, 0x65, 0x11, 0x5e, 0x2e, 0x2a, - 0x3e, 0xa3, 0x2a, 0x2d, 0x2b, 0x8e, 0x96, 0x95, 0x97, 0xc4, 0xac, 0x56, 0x2b, 0xf7, 0xcc, 0x9e, - 0x06, 0xf6, 0x5c, 0x92, 0x48, 0x44, 0x51, 0x92, 0xf1, 0xf8, 0x6c, 0x71, 0xe1, 0x18, 0x9b, 0x99, - 0x3c, 0x32, 0xd2, 0xfb, 0x11, 0xa9, 0x2c, 0x3b, 0x3b, 0xfb, 0x95, 0x92, 0x92, 0x22, 0x1d, 0xa9, - 0x2e, 0x2e, 0x96, 0x88, 0xb6, 0x25, 0xe7, 0x9e, 0x40, 0x7a, 0x58, 0xe2, 0x00, 0xd8, 0x1e, 0xc7, - 0x56, 0x81, 0x92, 0xd2, 0xe2, 0x65, 0x36, 0x83, 0xcd, 0x4a, 0xcb, 0x3e, 0xf0, 0x9c, 0x7f, 0x52, - 0xe9, 0x0b, 0x84, 0xe3, 0x84, 0x13, 0x84, 0x93, 0x84, 0x53, 0x3b, 0x9c, 0xdc, 0x19, 0x3b, 0xbe, - 0xf3, 0x9f, 0xac, 0x03, 0xb3, 0x0e, 0xeb, 0xbd, 0xed, 0x3f, 0xdf, 0x82, 0xfe, 0x2f, 0xd1, 0xdf, - 0x06, 0x37, 0x5b, 0xcb, 0x9e, 0x48, 0x90, 0x48, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, - 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x04, 0x05, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x6b, 0x48, 0x5b, + 0x67, 0x18, 0xc7, 0x83, 0x74, 0x5b, 0x87, 0xfd, 0x50, 0x46, 0x19, 0x85, 0x51, 0x18, 0xb8, 0x6f, + 0x73, 0x43, 0x65, 0xab, 0xd6, 0x5b, 0x2e, 0x1d, 0xb1, 0xb0, 0x19, 0x53, 0x4d, 0x74, 0x45, 0xed, + 0x1c, 0xad, 0x1f, 0x74, 0xc3, 0xf9, 0x65, 0xc3, 0x96, 0xb1, 0x39, 0x50, 0x91, 0x82, 0xfd, 0x20, + 0xcc, 0xd1, 0x39, 0x50, 0xd7, 0x18, 0x46, 0x6a, 0x47, 0xad, 0x15, 0x97, 0x16, 0x96, 0x18, 0x50, + 0xd4, 0x78, 0x49, 0x9d, 0xd4, 0x89, 0xe0, 0x16, 0xcd, 0xa2, 0xb9, 0x9f, 0x5c, 0x4f, 0x62, 0x2e, + 0xff, 0xbd, 0xe7, 0x68, 0xa2, 0xd6, 0x33, 0x9b, 0x96, 0xb0, 0xc0, 0x8f, 0xc0, 0x9b, 0x9c, 0xff, + 0x8f, 0xe7, 0xe1, 0x7d, 0x9f, 0xf7, 0xf0, 0xa2, 0x41, 0x77, 0xe7, 0x53, 0x7c, 0x4b, 0x68, 0x20, + 0x54, 0x10, 0xde, 0x00, 0xc0, 0x4b, 0x05, 0x3c, 0xb3, 0xd9, 0x18, 0xea, 0xfe, 0x59, 0x89, 0x38, + 0x3f, 0xa9, 0xee, 0x46, 0x46, 0x7f, 0xd7, 0xf8, 0x17, 0xfe, 0x78, 0xec, 0xa1, 0xbd, 0x8e, 0x00, + 0x91, 0x49, 0x52, 0x22, 0xd2, 0x1b, 0xe6, 0xdd, 0xa7, 0xf9, 0x17, 0xc1, 0x85, 0xbc, 0xf9, 0x6b, + 0xf8, 0x28, 0x2b, 0x34, 0xda, 0x47, 0xc1, 0xb1, 0xdf, 0x1e, 0xd0, 0xfb, 0x19, 0x1f, 0x1f, 0x0f, + 0x6b, 0xc7, 0xb5, 0x26, 0xad, 0x56, 0x7b, 0x6d, 0x72, 0x72, 0xf2, 0xd5, 0xa4, 0x45, 0x77, 0xc7, + 0xd4, 0xa1, 0x09, 0xfd, 0x8c, 0xe7, 0xa1, 0x4e, 0xe7, 0x55, 0x8d, 0x8e, 0x85, 0xdf, 0x91, 0x7e, + 0xc2, 0xca, 0x7e, 0x55, 0x3f, 0x44, 0xc0, 0x47, 0xc1, 0xe3, 0xf1, 0x1c, 0x60, 0x64, 0x64, 0x04, + 0x16, 0x8b, 0x05, 0xd3, 0xd3, 0xd3, 0x51, 0x22, 0x73, 0x11, 0xb1, 0x28, 0x29, 0x91, 0xcd, 0xfa, + 0x8f, 0x3f, 0x16, 0x74, 0xdf, 0x20, 0xad, 0xb2, 0x11, 0x62, 0x01, 0x8f, 0x1d, 0x6f, 0x5d, 0xb8, + 0x84, 0x9a, 0xaf, 0xbe, 0x03, 0xe5, 0xb4, 0xc0, 0xe7, 0xf3, 0x1d, 0x60, 0x70, 0x50, 0x81, 0x58, + 0x2c, 0x06, 0xaf, 0xd7, 0x8b, 0xf9, 0xf9, 0x79, 0x10, 0x19, 0xad, 0xd1, 0x68, 0x04, 0x49, 0x89, + 0xa2, 0x41, 0xaa, 0x8f, 0x48, 0x10, 0xa7, 0xb1, 0xf5, 0x06, 0xf8, 0x97, 0x3f, 0x87, 0x97, 0xb2, + 0x1d, 0x12, 0xdd, 0xba, 0xf5, 0x03, 0x5c, 0x2e, 0x17, 0x28, 0x8a, 0x82, 0xc9, 0x64, 0x82, 0x4e, + 0xa7, 0x83, 0x5a, 0xad, 0xde, 0x14, 0x08, 0x04, 0x27, 0x9f, 0x2d, 0xa2, 0xdd, 0x3f, 0xc6, 0x25, + 0x11, 0x9a, 0xc2, 0xb5, 0x9b, 0xdf, 0xa3, 0xa8, 0xf6, 0x33, 0x4e, 0xd1, 0xfd, 0xfb, 0xc3, 0xb8, + 0x7d, 0x7b, 0x00, 0x4a, 0xa5, 0x02, 0x43, 0x43, 0x77, 0x30, 0x3c, 0x7c, 0x8f, 0xac, 0xdd, 0x83, + 0x40, 0x58, 0x6c, 0xe3, 0xf1, 0x78, 0x69, 0x47, 0xb7, 0x8e, 0xa6, 0x4a, 0xa2, 0x41, 0xcf, 0x62, + 0xc8, 0xe7, 0x40, 0xc8, 0xe7, 0x42, 0x41, 0x75, 0x03, 0x3e, 0xbd, 0xde, 0x06, 0x97, 0xe3, 0x70, + 0xeb, 0xb8, 0x78, 0x30, 0x3a, 0x0c, 0xa1, 0x88, 0x1f, 0x24, 0x55, 0x1d, 0xff, 0x4f, 0xd1, 0xd6, + 0xe6, 0x7a, 0x28, 0xe8, 0x73, 0xd2, 0xa4, 0x92, 0xa8, 0xcd, 0xb2, 0x8e, 0xeb, 0xa4, 0x1a, 0x66, + 0xbd, 0x7b, 0x40, 0x09, 0x9f, 0xc7, 0x99, 0x3a, 0x51, 0x76, 0xc5, 0x15, 0xbc, 0x27, 0xbf, 0x8a, + 0x37, 0xc5, 0x55, 0x89, 0xed, 0x9d, 0x23, 0xbb, 0x02, 0xbf, 0xdb, 0x8e, 0x80, 0xdf, 0x9b, 0x3a, + 0xd1, 0xdb, 0x92, 0xcb, 0x78, 0x57, 0x5a, 0x87, 0xf7, 0x2b, 0xeb, 0xf1, 0x51, 0xc3, 0x97, 0xf8, + 0xa2, 0xfd, 0x26, 0xac, 0x16, 0x13, 0xa9, 0xc6, 0x95, 0x94, 0x24, 0x69, 0xd1, 0xa6, 0x79, 0x3d, + 0xb2, 0xed, 0x77, 0x92, 0x0a, 0x6c, 0xb0, 0x6c, 0xae, 0xc3, 0x30, 0x3f, 0x8d, 0xae, 0xae, 0x4e, + 0x54, 0x5d, 0x92, 0xb3, 0x54, 0x32, 0x7c, 0x1c, 0x47, 0x96, 0x40, 0x1e, 0xa7, 0x4a, 0xc6, 0xfe, + 0x36, 0x38, 0x38, 0x08, 0x95, 0x4a, 0x15, 0x26, 0x04, 0x86, 0x86, 0x86, 0xbe, 0x39, 0x24, 0x62, + 0xc2, 0x29, 0x97, 0x13, 0x34, 0x4d, 0x23, 0x10, 0x08, 0xa0, 0x5c, 0x5e, 0x8e, 0xe6, 0xe6, 0x66, + 0x34, 0x35, 0x35, 0xa1, 0xb1, 0xb1, 0x11, 0xf5, 0xf5, 0xf5, 0xa8, 0xab, 0xab, 0x43, 0x6d, 0x6d, + 0x2d, 0x6a, 0x6a, 0x6a, 0x38, 0x29, 0x97, 0x57, 0xc0, 0x6e, 0xb7, 0xb3, 0x07, 0xda, 0x6a, 0xb5, + 0x42, 0xa1, 0x50, 0x6c, 0x93, 0xb3, 0x75, 0xec, 0xe9, 0xcd, 0x80, 0x68, 0x24, 0x9c, 0x68, 0xc3, + 0x87, 0x92, 0x52, 0xb4, 0xb4, 0xb4, 0xb0, 0xe1, 0xd5, 0xd5, 0xd5, 0xa8, 0xac, 0xac, 0x84, 0x54, + 0x2a, 0x85, 0x44, 0x22, 0xe1, 0xa4, 0xb4, 0xb4, 0x94, 0x7d, 0x66, 0x6b, 0x6b, 0x0b, 0x0e, 0x87, + 0x83, 0xa5, 0xbf, 0xbf, 0x3f, 0xd2, 0xd7, 0xd7, 0x77, 0xfc, 0x90, 0x28, 0x14, 0xa4, 0x61, 0x36, + 0x9b, 0x59, 0xce, 0x97, 0x88, 0x21, 0x93, 0xc9, 0x40, 0xfa, 0x7d, 0x08, 0x3e, 0x9f, 0xcf, 0xc9, + 0x07, 0x25, 0x25, 0x30, 0x1a, 0x8d, 0x89, 0x8c, 0xde, 0xde, 0x5e, 0x0e, 0x91, 0x79, 0x1d, 0x5e, + 0x8f, 0x1b, 0x6b, 0x6b, 0x6b, 0x2c, 0x85, 0x42, 0x21, 0x72, 0x72, 0x72, 0x90, 0x9d, 0x9d, 0x9d, + 0x14, 0x59, 0x59, 0x59, 0x28, 0x12, 0x8a, 0xb0, 0xb2, 0xb2, 0x92, 0xc8, 0xe8, 0xe9, 0xe9, 0xe1, + 0x12, 0x19, 0xc9, 0xa1, 0xb5, 0x60, 0x79, 0x79, 0x99, 0x25, 0x27, 0xf7, 0x1c, 0xf2, 0x8a, 0xf8, + 0xfb, 0x28, 0xde, 0xa3, 0xb0, 0x18, 0xb9, 0x1c, 0x64, 0x9d, 0xcd, 0xc5, 0xe3, 0xc5, 0xc5, 0x44, + 0x46, 0x77, 0x77, 0xf7, 0x9e, 0xc8, 0xef, 0xb1, 0x87, 0x9e, 0xfc, 0xf9, 0xc4, 0x1d, 0x22, 0x3b, + 0xce, 0xf8, 0xf7, 0x5f, 0x58, 0x58, 0x58, 0x60, 0x99, 0x98, 0x98, 0x78, 0x21, 0x98, 0x67, 0x07, + 0x36, 0x5a, 0xd9, 0xef, 0xae, 0xae, 0xae, 0x48, 0x6b, 0x6b, 0xeb, 0x8e, 0x88, 0xcc, 0xb5, 0x0b, + 0x0c, 0xaa, 0x5f, 0x94, 0x30, 0x18, 0x0c, 0x98, 0x9b, 0x9b, 0xc3, 0xec, 0xec, 0x2c, 0xf4, 0x7a, + 0x3d, 0x66, 0x66, 0x66, 0x30, 0x35, 0x35, 0xf5, 0xc2, 0x74, 0x76, 0x76, 0xee, 0x89, 0xe2, 0xfb, + 0xbc, 0xa3, 0xa3, 0xc3, 0xd9, 0xde, 0xde, 0x1e, 0xe3, 0x00, 0x71, 0xda, 0xda, 0xda, 0x8e, 0x22, + 0xc6, 0x81, 0x9b, 0x88, 0x8e, 0x25, 0x44, 0xe4, 0xf3, 0x52, 0x46, 0x46, 0xc6, 0x19, 0x81, 0x90, + 0x1f, 0x2c, 0x2b, 0x2b, 0x83, 0xf4, 0xa2, 0x14, 0x4b, 0x4b, 0x4b, 0x10, 0x8b, 0xc5, 0xcf, 0x05, + 0xd3, 0x2e, 0x99, 0x5c, 0x46, 0x8e, 0x41, 0x19, 0x33, 0xc5, 0x23, 0x99, 0x99, 0x99, 0x19, 0x24, + 0xfb, 0xe5, 0xfd, 0xa2, 0x34, 0xc2, 0x6b, 0x79, 0xf9, 0x67, 0x15, 0x85, 0x45, 0xf9, 0xa1, 0xa2, + 0xe2, 0x82, 0xf0, 0xc6, 0xc6, 0x06, 0x56, 0x57, 0x57, 0x9f, 0x0b, 0xe6, 0x5e, 0x12, 0x89, 0x04, + 0x21, 0x92, 0xb1, 0x7d, 0x2e, 0x3f, 0xf7, 0x0e, 0x93, 0x19, 0xbf, 0x32, 0x0e, 0xce, 0x23, 0x52, + 0x59, 0x7a, 0x7a, 0xfa, 0xe9, 0x82, 0x82, 0x3c, 0x0d, 0xa9, 0x2e, 0x22, 0x14, 0x09, 0xa2, 0xa2, + 0xf3, 0x3b, 0x90, 0x19, 0x16, 0x3b, 0x02, 0x66, 0xc6, 0x31, 0x55, 0xa0, 0xa0, 0x30, 0xdf, 0xc0, + 0x64, 0x30, 0x59, 0x07, 0xb2, 0x8f, 0xbc, 0xe7, 0x77, 0x2a, 0x7d, 0x85, 0x70, 0x82, 0x70, 0x92, + 0x70, 0x8a, 0xf0, 0xfa, 0x2e, 0xa7, 0x76, 0xd7, 0x4e, 0xec, 0xfe, 0x27, 0xed, 0xc8, 0xac, 0x54, + 0xbd, 0xb7, 0x3d, 0xf3, 0x2d, 0xe8, 0xff, 0x12, 0xfd, 0x0b, 0x30, 0xe4, 0x44, 0x25, 0xea, 0x06, + 0x0c, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE plot_xpm[1] = {{ png, sizeof( png ), "plot_xpm" }}; diff --git a/bitmaps_png/sources/add_component.svg b/bitmaps_png/sources/add_component.svg index ab96ac6f2b..42e0dda5b3 100644 --- a/bitmaps_png/sources/add_component.svg +++ b/bitmaps_png/sources/add_component.svg @@ -7,23 +7,27 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - height="48" - width="48" + height="26" + width="26" version="1.1" + viewBox="0 0 26 26" id="svg2" - inkscape:version="0.48.1 " + inkscape:version="0.48.2 r9819" sodipodi:docname="add_component.svg"> + id="metadata56"> image/svg+xml + + - - - - - - - - - - - - - - - - - - - - - - - - - - - G - D - S - + inkscape:current-layer="svg2" + inkscape:snap-to-guides="false" + inkscape:snap-grids="false"> + + + + + + + + + + + + + + + + + diff --git a/bitmaps_png/sources/delete_association.svg b/bitmaps_png/sources/delete_association.svg index 5dd1d0a3b0..190b44a9ae 100644 --- a/bitmaps_png/sources/delete_association.svg +++ b/bitmaps_png/sources/delete_association.svg @@ -14,7 +14,7 @@ height="26" id="svg3019" version="1.1" - inkscape:version="0.48.1 " + inkscape:version="0.48.2 r9819" sodipodi:docname="delete_association.svg"> @@ -60,6 +60,26 @@ stdDeviation="0.68606254" id="feGaussianBlur3402" /> + + + inkscape:snap-grids="false" + inkscape:snap-center="true"> image/svg+xml - + @@ -107,14 +128,15 @@ id="layer1" transform="translate(0,-1026.3622)"> + id="g3664" + style="opacity:0.584"> + style="opacity:0.44530998999999999;filter:url(#a)"> @@ -352,17 +374,21 @@ - - + + + + diff --git a/bitmaps_png/sources/module_pin_filtered_list.svg b/bitmaps_png/sources/module_pin_filtered_list.svg index 38c7e379c3..3558f53c66 100644 --- a/bitmaps_png/sources/module_pin_filtered_list.svg +++ b/bitmaps_png/sources/module_pin_filtered_list.svg @@ -22,6 +22,7 @@ image/svg+xml + @@ -36,19 +37,19 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="1280" - inkscape:window-height="969" + inkscape:window-width="1600" + inkscape:window-height="841" id="namedview52" showgrid="true" - inkscape:zoom="19.666667" - inkscape:cx="11.227532" - inkscape:cy="11.690902" + inkscape:zoom="25.615385" + inkscape:cx="20.436413" + inkscape:cy="13" inkscape:window-x="0" - inkscape:window-y="26" + inkscape:window-y="28" inkscape:window-maximized="1" inkscape:current-layer="svg2" - inkscape:snap-to-guides="false" - inkscape:snap-grids="false"> + inkscape:snap-to-guides="true" + inkscape:snap-grids="true"> - - - # - + + # diff --git a/bitmaps_png/sources/plot.svg b/bitmaps_png/sources/plot.svg index 05750013ea..a8bb2e86e6 100644 --- a/bitmaps_png/sources/plot.svg +++ b/bitmaps_png/sources/plot.svg @@ -12,7 +12,7 @@ width="26" version="1.0" id="svg2" - inkscape:version="0.47 r22583" + inkscape:version="0.48.2 r9819" sodipodi:docname="plot.svg"> @@ -22,7 +22,7 @@ image/svg+xml - + @@ -35,17 +35,17 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="1280" - inkscape:window-height="949" + inkscape:window-width="1600" + inkscape:window-height="841" id="namedview247" showgrid="true" inkscape:snap-grids="false" inkscape:snap-to-guides="false" - inkscape:zoom="6.6666668" - inkscape:cx="7.4854788" - inkscape:cy="4.8205635" + inkscape:zoom="19.416417" + inkscape:cx="-5.9009344" + inkscape:cy="15.933751" inkscape:window-x="0" - inkscape:window-y="25" + inkscape:window-y="28" inkscape:window-maximized="1" inkscape:current-layer="svg2"> P + x="-1.193442" + y="14.883414" + style="font-weight:bold;fill:#183f51;fill-opacity:1;stroke:#fdf8f1;stroke-width:1.06046307;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Sans Bold">P + From 40d78f97e65400e8c6ab4ae7b434bf344e066b5e Mon Sep 17 00:00:00 2001 From: Alexander Zakamaldin Date: Mon, 26 Mar 2012 16:45:05 -0500 Subject: [PATCH 35/68] Alexander's patches, with refinements --- AUTHORS.txt | 1 + common/class_page_info.cpp | 165 ++++-- common/common.cpp | 13 + common/common_plotPS_functions.cpp | 19 + common/dialogs/dialog_page_settings.cpp | 559 ++++++++++++++---- common/dialogs/dialog_page_settings.h | 85 ++- common/dialogs/dialog_page_settings_base.cpp | 195 ++++-- common/dialogs/dialog_page_settings_base.fbp | 511 ++++++++++------ common/dialogs/dialog_page_settings_base.h | 77 ++- common/worksheet.cpp | 516 ++++++++-------- eeschema/dialogs/dialog_plot_schematic_PS.cpp | 2 + .../dialogs/dialog_print_using_printer.cpp | 23 + eeschema/eeschema_config.cpp | 4 +- eeschema/load_one_schematic_file.cpp | 8 +- eeschema/sch_screen.cpp | 2 +- eeschema/schframe.cpp | 12 +- include/common.h | 137 ++++- include/plot_common.h | 2 + include/worksheet.h | 126 ++-- include/wxstruct.h | 29 +- pcbnew/CMakeLists.txt | 4 +- pcbnew/class_board.cpp | 1 + pcbnew/dialogs/dialog_print_using_printer.cpp | 63 +- pcbnew/plot_rtn.cpp | 14 +- 24 files changed, 1732 insertions(+), 836 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index a672e3242f..bb57f39e50 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -17,6 +17,7 @@ Marco Serantoni (OSX maintener) Rok Markovic Tim Hanson Vesa Solonen +Alexander Zakamaldin See also CHANGELOG.txt for contributors. diff --git a/common/class_page_info.cpp b/common/class_page_info.cpp index edd6749355..ad3665bdae 100644 --- a/common/class_page_info.cpp +++ b/common/class_page_info.cpp @@ -25,34 +25,60 @@ #include - -const wxString PAGE_INFO::Custom( wxT( "User" ) ); - -// Standard page sizes in mils, all constants - -// A4 see: https://lists.launchpad.net/kicad-developers/msg07389.html -#if defined(KICAD_GOST) -const PAGE_INFO PAGE_INFO::pageA4( wxSize( 8268, 11693 ), wxT( "A4" ) ); +// late arriving wxPAPER_A0, wxPAPER_A1 +#if wxABI_VERSION >= 20999 + #define PAPER_A0 wxPAPER_A0 + #define PAPER_A1 wxPAPER_A1 #else -const PAGE_INFO PAGE_INFO::pageA4( wxSize( 11693, 8268 ), wxT( "A4" ) ); + #define PAPER_A0 wxPAPER_A2 + #define PAPER_A1 wxPAPER_A2 #endif -const PAGE_INFO PAGE_INFO::pageA3( wxSize( 16535, 11700 ), wxT( "A3" ) ); -const PAGE_INFO PAGE_INFO::pageA2( wxSize( 23400, 16535 ), wxT( "A2" ) ); -const PAGE_INFO PAGE_INFO::pageA1( wxSize( 33070, 23400 ), wxT( "A1" ) ); -const PAGE_INFO PAGE_INFO::pageA0( wxSize( 46800, 33070 ), wxT( "A0" ) ); -const PAGE_INFO PAGE_INFO::pageA( wxSize( 11000, 8500 ), wxT( "A" ) ); -const PAGE_INFO PAGE_INFO::pageB( wxSize( 17000, 11000 ), wxT( "B" ) ); -const PAGE_INFO PAGE_INFO::pageC( wxSize( 22000, 17000 ), wxT( "C" ) ); -const PAGE_INFO PAGE_INFO::pageD( wxSize( 34000, 22000 ), wxT( "D" ) ); -const PAGE_INFO PAGE_INFO::pageE( wxSize( 44000, 34000 ), wxT( "E" ) ); -const PAGE_INFO PAGE_INFO::pageGERBER( wxSize( 32000, 32000 ), wxT( "GERBER" ) ); -const PAGE_INFO PAGE_INFO::pageUser( wxSize( 17000, 11000 ), Custom ); +// Standard paper sizes nicknames. +const wxString PAGE_INFO::A4( wxT( "A4" ) ); +const wxString PAGE_INFO::A3( wxT( "A3" ) ); +const wxString PAGE_INFO::A2( wxT( "A2" ) ); +const wxString PAGE_INFO::A1( wxT( "A1" ) ); +const wxString PAGE_INFO::A0( wxT( "A0" ) ); +const wxString PAGE_INFO::A( wxT( "A" ) ); +const wxString PAGE_INFO::B( wxT( "B" ) ); +const wxString PAGE_INFO::C( wxT( "C" ) ); +const wxString PAGE_INFO::D( wxT( "D" ) ); +const wxString PAGE_INFO::E( wxT( "E" ) ); +const wxString PAGE_INFO::GERBER( wxT( "GERBER" ) ); +const wxString PAGE_INFO::USLetter( wxT( "USLetter" ) ); +const wxString PAGE_INFO::USLegal( wxT( "USLegal" ) ); +const wxString PAGE_INFO::USLedger( wxT( "USLedger" ) ); +const wxString PAGE_INFO::Custom( wxT( "User" ) ); + + +// Standard page sizes in mils, all constants +// see: https://lists.launchpad.net/kicad-developers/msg07389.html +// also see: wx/defs.h + +// local readability macro for millimeter wxSize +#define MMsize( x, y ) wxSize( Mm2mils( x ), Mm2mils( y ) ) + +// All MUST be defined as landscape. If IsGOST() is true, A4 is dynamically rotated later. +const PAGE_INFO PAGE_INFO::pageA4( MMsize( 297, 210 ), wxT( "A4" ), wxPAPER_A4 ); +const PAGE_INFO PAGE_INFO::pageA3( MMsize( 420, 297 ), wxT( "A3" ), wxPAPER_A3 ); +const PAGE_INFO PAGE_INFO::pageA2( MMsize( 594, 420 ), wxT( "A2" ), wxPAPER_A2 ); +const PAGE_INFO PAGE_INFO::pageA1( MMsize( 841, 594 ), wxT( "A1" ), PAPER_A1 ); +const PAGE_INFO PAGE_INFO::pageA0( MMsize( 1189, 841 ), wxT( "A0" ), PAPER_A0 ); + +const PAGE_INFO PAGE_INFO::pageA( wxSize( 11000, 8500 ), wxT( "A" ), wxPAPER_LETTER ); +const PAGE_INFO PAGE_INFO::pageB( wxSize( 17000, 11000 ), wxT( "B" ), wxPAPER_TABLOID ); +const PAGE_INFO PAGE_INFO::pageC( wxSize( 22000, 17000 ), wxT( "C" ), wxPAPER_CSHEET ); +const PAGE_INFO PAGE_INFO::pageD( wxSize( 34000, 22000 ), wxT( "D" ), wxPAPER_DSHEET ); +const PAGE_INFO PAGE_INFO::pageE( wxSize( 44000, 34000 ), wxT( "E" ), wxPAPER_ESHEET ); + +const PAGE_INFO PAGE_INFO::pageGERBER( wxSize( 32000, 32000 ), wxT( "GERBER" ), wxPAPER_NONE ); +const PAGE_INFO PAGE_INFO::pageUser( wxSize( 17000, 11000 ), Custom, wxPAPER_NONE ); // US paper sizes -const PAGE_INFO PAGE_INFO::pageUSLetter( wxSize( 11000, 8500 ), wxT( "USLetter" ) ); -const PAGE_INFO PAGE_INFO::pageUSLegal( wxSize( 14000, 8500 ), wxT( "USLegal" ) ); -const PAGE_INFO PAGE_INFO::pageUSLedger( wxSize( 17000, 11000 ), wxT( "USLedger" ) ); +const PAGE_INFO PAGE_INFO::pageUSLetter( wxSize( 11000, 8500 ), wxT( "USLetter" ), wxPAPER_LETTER ); +const PAGE_INFO PAGE_INFO::pageUSLegal( wxSize( 14000, 8500 ), wxT( "USLegal" ), wxPAPER_LEGAL ); +const PAGE_INFO PAGE_INFO::pageUSLedger( wxSize( 17000, 11000 ), wxT( "USLedger" ), wxPAPER_TABLOID ); // Custom paper size for next instantiation of type "User" int PAGE_INFO::s_user_width = 17000; @@ -96,45 +122,52 @@ inline void PAGE_INFO::updatePortrait() } +void PAGE_INFO::setMargins() +{ + if( IsGOST() ) + { + m_left_margin = Mm2mils( 20 ); // 20mm + m_right_margin = // 5mm + m_top_margin = // 5mm + m_bottom_margin = Mm2mils( 5 ); // 5mm + } + else + { + m_left_margin = + m_right_margin = + m_top_margin = + m_bottom_margin = 400; + } +} -PAGE_INFO::PAGE_INFO( const wxSize& aSizeMils, const wxString& aType ) : + +PAGE_INFO::PAGE_INFO( const wxSize& aSizeMils, const wxString& aType, wxPaperSize aPaperId ) : m_type( aType ), - m_size( aSizeMils ) + m_size( aSizeMils ), + m_paper_id( aPaperId ) { - -#if defined(KICAD_GOST) -/* -#define GOST_LEFTMARGIN 800 // 20mm -#define GOST_RIGHTMARGIN 200 // 5mm -#define GOST_TOPMARGIN 200 // 5mm -#define GOST_BOTTOMMARGIN 200 // 5mm -*/ - - m_left_margin = 800; // 20mm - m_right_margin = 200; // 5mm - m_top_margin = 200; // 5mm - m_bottom_margin = 200; // 5mm -#else - m_left_margin = - m_right_margin = - m_top_margin = - m_bottom_margin = 400; -#endif - updatePortrait(); + + setMargins(); + + // This constructor is protected, and only used by const PAGE_INFO's known + // only to class implementation, so no further changes to "this" object are + // expected. Therefore we should also setMargin() again when copying this + // object in SetType() so that a runtime IsGOST() change does not break. } -PAGE_INFO::PAGE_INFO( const wxString& aType ) +PAGE_INFO::PAGE_INFO( const wxString& aType, bool IsPortrait ) { - SetType( aType ); + SetType( aType, IsPortrait ); } -bool PAGE_INFO::SetType( const wxString& aType ) +bool PAGE_INFO::SetType( const wxString& aType, bool IsPortrait ) { bool rc = true; + // all are landscape initially if( aType == pageA4.GetType() ) *this = pageA4; else if( aType == pageA3.GetType() ) @@ -178,6 +211,15 @@ bool PAGE_INFO::SetType( const wxString& aType ) else rc = false; + if( IsPortrait ) + { + // all private PAGE_INFOs are landscape, must swap x and y + m_size = wxSize( m_size.y, m_size.x ); + updatePortrait(); + } + + setMargins(); + return rc; } @@ -218,6 +260,7 @@ static int clampWidth( int aWidthInMils ) static int clampHeight( int aHeightInMils ) { /* was giving EESCHEMA single component SVG plotter grief + clamping is best done at the UI, i.e. dialog, levels if( aHeightInMils < 4000 ) aHeightInMils = 4000; else if( aHeightInMils > 44000 ) @@ -227,13 +270,13 @@ static int clampHeight( int aHeightInMils ) } -void PAGE_INFO::SetUserWidthMils( int aWidthInMils ) +void PAGE_INFO::SetCustomWidthMils( int aWidthInMils ) { s_user_width = clampWidth( aWidthInMils ); } -void PAGE_INFO::SetUserHeightMils( int aHeightInMils ) +void PAGE_INFO::SetCustomHeightMils( int aHeightInMils ) { s_user_height = clampHeight( aHeightInMils ); } @@ -241,14 +284,28 @@ void PAGE_INFO::SetUserHeightMils( int aHeightInMils ) void PAGE_INFO::SetWidthMils( int aWidthInMils ) { - m_size.x = clampWidth( aWidthInMils ); - updatePortrait(); + if( m_size.x != aWidthInMils ) + { + m_size.x = clampWidth( aWidthInMils ); + + m_type = Custom; + m_paper_id = wxPAPER_NONE; + + updatePortrait(); + } } void PAGE_INFO::SetHeightMils( int aHeightInMils ) { - m_size.y = clampHeight( aHeightInMils ); - updatePortrait(); + if( m_size.y != aHeightInMils ) + { + m_size.y = clampHeight( aHeightInMils ); + + m_type = Custom; + m_paper_id = wxPAPER_NONE; + + updatePortrait(); + } } diff --git a/common/common.cpp b/common/common.cpp index 573e2ecf86..db77f54ab3 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -57,6 +57,19 @@ EDA_UNITS_T g_UserUnit; int g_GhostColor; + +#if defined(KICAD_GOST) +static bool s_gost = true; +#else +static bool s_gost = false; +#endif + +bool IsGOST() +{ + return s_gost; +} + + /** * The predefined colors used in KiCad. * Please: if you change a value, remember these values are carefully chosen diff --git a/common/common_plotPS_functions.cpp b/common/common_plotPS_functions.cpp index 0aee2ce25d..8a6ab009b4 100644 --- a/common/common_plotPS_functions.cpp +++ b/common/common_plotPS_functions.cpp @@ -604,3 +604,22 @@ void PS_PLOTTER::flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], cornerList.push_back( cornerList[0] ); PlotPoly( cornerList, ( aTrace_Mode == FILLED ) ? FILLED_SHAPE : NO_FILL ); } + + +void PS_PLOTTER::user_to_device_coordinates( wxPoint& pos ) +{ + if( pageInfo.IsPortrait() ) + { + pos.y = (int) ( ( paper_size.y - ( pos.y - plot_offset.y ) + * plot_scale ) * device_scale ); + + if( plotMirror ) + pos.x = (int) ( ( paper_size.x - ( pos.x - plot_offset.x ) + * plot_scale ) * device_scale ); + else + pos.x = (int) ( (pos.x - plot_offset.x) * plot_scale * device_scale ); + } + else + PLOTTER::user_to_device_coordinates( pos ); +} + diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp index 00dd68bc0a..052e675c8b 100644 --- a/common/dialogs/dialog_page_settings.cpp +++ b/common/dialogs/dialog_page_settings.cpp @@ -1,15 +1,34 @@ +/* + * This program source code file is part of KICAD, a free EDA CAD application. + * + * Copyright (C) 1992-2010 Kicad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + /** * @file dialog_page_settings.cpp */ -/* The "Page Settings" dialog box created by this file (and setpage.h) - * contains seven checkboxes which *are* shown when that dialog box is - * invoked in Eeschema, but which are *not* shown when that dialog box is - * invoked in Pcbnew instead. - */ - #include +#include // DIM() #include +#include #include #include #include @@ -43,11 +62,13 @@ void EDA_DRAW_FRAME::Process_PageSettings( wxCommandEvent& event ) DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS( EDA_DRAW_FRAME* parent ) : DIALOG_PAGES_SETTINGS_BASE( parent ), - m_user_size( PAGE_INFO::Custom ) + m_initialized( false ) { m_Parent = parent; m_Screen = m_Parent->GetScreen(); m_modified = false; + m_page_bitmap = NULL; + m_tb = m_Parent->GetTitleBlock(); initDialog(); @@ -58,14 +79,16 @@ DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS( EDA_DRAW_FRAME* parent ) : DIALOG_PAGES_SETTINGS::~DIALOG_PAGES_SETTINGS() { + if( m_page_bitmap ) + delete m_page_bitmap; } void DIALOG_PAGES_SETTINGS::initDialog() { wxString msg; - double userSizeX; - double userSizeY; + double customSizeX; + double customSizeY; SetFocus(); @@ -83,52 +106,38 @@ void DIALOG_PAGES_SETTINGS::initDialog() m_TextSheetNumber->Show(false); #endif - const PAGE_INFO& pageInfo = m_Parent->GetPageSettings(); - - if( !pageInfo.IsCustom() ) - m_orientationComboBox->SetSelection( pageInfo.IsPortrait() ); - - setCurrentPageSizeSelection( pageInfo.GetType() ); + m_pageInfo = m_Parent->GetPageSettings(); + SetCurrentPageSizeSelection( m_pageInfo.GetType() ); + m_orientationComboBox->SetSelection( m_pageInfo.IsPortrait() ); // only a click fires the "selection changed" event, so have to fabricate this check wxCommandEvent dummy; - onPaperSizeChoice( dummy ); + OnPaperSizeChoice( dummy ); switch( g_UserUnit ) { case MILLIMETRES: - userSizeX = m_user_size.GetWidthMils() * 25.4e-3; - userSizeY = m_user_size.GetHeightMils() * 25.4e-3; + customSizeX = m_pageInfo.GetCustomWidthMils() * 25.4e-3; + customSizeY = m_pageInfo.GetCustomHeightMils()* 25.4e-3; - msg.Printf( wxT( "%.2f" ), userSizeX ); + msg.Printf( wxT( "%.2f" ), customSizeX ); m_TextUserSizeX->SetValue( msg ); - msg.Printf( wxT( "%.2f" ), userSizeY ); + msg.Printf( wxT( "%.2f" ), customSizeY ); m_TextUserSizeY->SetValue( msg ); break; default: case INCHES: - userSizeX = m_user_size.GetWidthMils() / 1000.0; - userSizeY = m_user_size.GetHeightMils() / 1000.0; + customSizeX = m_pageInfo.GetCustomWidthMils() / 1000.0; + customSizeY = m_pageInfo.GetCustomHeightMils() / 1000.0; - msg.Printf( wxT( "%.3f" ), userSizeX ); + msg.Printf( wxT( "%.3f" ), customSizeX ); m_TextUserSizeX->SetValue( msg ); - msg.Printf( wxT( "%.3f" ), userSizeY ); + msg.Printf( wxT( "%.3f" ), customSizeY ); m_TextUserSizeY->SetValue( msg ); break; - -/* // you want it in mils, why? - case UNSCALED_UNITS: - userSizeX = m_user_size.GetWidthMils(); - userSizeY = m_user_size.GetHeightMils(); - msg.Printf( wxT( "%f" ), m_userSizeX ); - m_TextUserSizeX->SetValue( msg ); - msg.Printf( wxT( "%f" ), m_userSizeY ); - m_TextUserSizeY->SetValue( msg ); - break; -*/ } #if 0 @@ -140,16 +149,13 @@ void DIALOG_PAGES_SETTINGS::initDialog() m_TextComment3->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Commentaire3 ) ); m_TextComment4->SetValidator( wxTextValidator( wxFILTER_NONE, &m_Screen->m_Commentaire4 ) ); #else - - TITLE_BLOCK tb = m_Parent->GetTitleBlock(); - - m_TextRevision->SetValue( tb.GetRevision() ); - m_TextTitle->SetValue( tb.GetTitle() ); - m_TextCompany->SetValue( tb.GetCompany() ); - m_TextComment1->SetValue( tb.GetComment1() ); - m_TextComment2->SetValue( tb.GetComment2() ); - m_TextComment3->SetValue( tb.GetComment3() ); - m_TextComment4->SetValue( tb.GetComment4() ); + m_TextRevision->SetValue( m_tb.GetRevision() ); + m_TextTitle->SetValue( m_tb.GetTitle() ); + m_TextCompany->SetValue( m_tb.GetCompany() ); + m_TextComment1->SetValue( m_tb.GetComment1() ); + m_TextComment2->SetValue( m_tb.GetComment2() ); + m_TextComment3->SetValue( m_tb.GetComment3() ); + m_TextComment4->SetValue( m_tb.GetComment4() ); #endif #ifndef EESCHEMA @@ -162,8 +168,12 @@ void DIALOG_PAGES_SETTINGS::initDialog() m_Comment4Export->Show( false ); #endif + GetPageLayoutInfoFromDialog(); + UpdatePageLayoutExample(); + // Make the OK button the default. m_sdbSizer1OK->SetDefault(); + m_initialized = true; } @@ -204,9 +214,13 @@ void DIALOG_PAGES_SETTINGS::OnCloseWindow( wxCloseEvent& event ) void DIALOG_PAGES_SETTINGS::OnOkClick( wxCommandEvent& event ) { + m_save_flag = false; SavePageSettings( event ); + if( m_save_flag ) + { m_modified = true; Close( true ); + } } @@ -216,88 +230,233 @@ void DIALOG_PAGES_SETTINGS::OnCancelClick( wxCommandEvent& event ) } -void DIALOG_PAGES_SETTINGS::onPaperSizeChoice( wxCommandEvent& event ) +void DIALOG_PAGES_SETTINGS::OnPaperSizeChoice( wxCommandEvent& event ) { - if( m_paperSizeComboBox->GetStringSelection().Contains( PAGE_INFO::Custom ) ) + wxString paperType = m_paperSizeComboBox->GetStringSelection(); + if( paperType.Contains( PAGE_INFO::Custom ) ) { m_orientationComboBox->Enable( false ); + m_TextUserSizeX->Enable( true ); + m_TextUserSizeY->Enable( true ); } else { m_orientationComboBox->Enable( true ); + if( paperType.Contains( wxT( "A4" ) ) && IsGOST() ) + { + m_orientationComboBox->SetStringSelection( _( "Portrait" ) ); + m_orientationComboBox->Enable( false ); + } + m_TextUserSizeX->Enable( false ); + m_TextUserSizeY->Enable( false ); + } + GetPageLayoutInfoFromDialog(); + UpdatePageLayoutExample(); +} + + +void DIALOG_PAGES_SETTINGS::OnUserPageSizeXTextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextUserSizeX->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnUserPageSizeYTextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextUserSizeY->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnPageOrientationChoice( wxCommandEvent& event ) +{ + if( m_initialized ) + { + GetPageLayoutInfoFromDialog(); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnRevisionTextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextRevision->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + m_tb.SetRevision( m_TextRevision->GetValue() ); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnTitleTextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextTitle->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + m_tb.SetTitle( m_TextTitle->GetValue() ); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnCompanyTextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextCompany->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + m_tb.SetCompany( m_TextCompany->GetValue() ); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnComment1TextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextComment1->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + m_tb.SetComment1( m_TextComment1->GetValue() ); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnComment2TextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextComment2->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + m_tb.SetComment2( m_TextComment2->GetValue() ); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnComment3TextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextComment3->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + m_tb.SetComment3( m_TextComment3->GetValue() ); + UpdatePageLayoutExample(); + } +} + + +void DIALOG_PAGES_SETTINGS::OnComment4TextUpdated( wxCommandEvent& event ) +{ + if( m_initialized && m_TextComment4->IsModified() ) + { + GetPageLayoutInfoFromDialog(); + m_tb.SetComment4( m_TextComment4->GetValue() ); + UpdatePageLayoutExample(); } } void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event ) { - wxString msg; - double userSizeX; - double userSizeY; - TITLE_BLOCK tb; + bool retSuccess; - tb.SetRevision( m_TextRevision->GetValue() ); - tb.SetCompany( m_TextCompany->GetValue() ); - tb.SetTitle( m_TextTitle->GetValue() ); - tb.SetComment1( m_TextComment1->GetValue() ); - tb.SetComment2( m_TextComment2->GetValue() ); - tb.SetComment3( m_TextComment3->GetValue() ); - tb.SetComment4( m_TextComment4->GetValue() ); - - m_Parent->SetTitleBlock( tb ); - - msg = m_TextUserSizeX->GetValue(); - msg.ToDouble( &userSizeX ); - - msg = m_TextUserSizeY->GetValue(); - msg.ToDouble( &userSizeY ); - - switch( g_UserUnit ) - { - case MILLIMETRES: - PAGE_INFO::SetUserWidthMils( int( userSizeX * 1000.0 / 25.4 ) ); - PAGE_INFO::SetUserHeightMils( int( userSizeY * 1000.0 / 25.4 ) ); - break; - - default: - case INCHES: - PAGE_INFO::SetUserWidthMils( int( 1000 * userSizeX ) ); - PAGE_INFO::SetUserHeightMils( int( 1000 * userSizeY ) ); - break; - -/* // set in 1/1000ths of an inch, but why? - case UNSCALED_UNITS: - PAGE_INFO::SetUserWidthMils( (int) userSizeX ); - PAGE_INFO::SetUserHeightMils( (int) userSizeY ); - break; -*/ - } + m_save_flag = true; // wxFormBuilder must use "A4", "A3", etc for choices, in all languages/translations - wxString paperType = m_paperSizeComboBox->GetStringSelection(); - - // construct pageInfo _after_ user settings have been established in case the - // paperType is custom, otherwise User width and height will not go into effect right away. - PAGE_INFO pageInfo; + const wxString paperType = m_paperSizeComboBox->GetStringSelection(); + // here we assume translators will keep original paper size spellings if( paperType.Contains( PAGE_INFO::Custom ) ) { - pageInfo.SetType( PAGE_INFO::Custom ); + GetCustomSizeMilsFromDialog(); + + retSuccess = m_pageInfo.SetType( PAGE_INFO::Custom ); + if( retSuccess ) + { + if( m_layout_size.x < MIN_PAGE_SIZE || m_layout_size.y < MIN_PAGE_SIZE || + m_layout_size.x > MAX_PAGE_SIZE || m_layout_size.y > MAX_PAGE_SIZE ) + { + wxString msg = wxString::Format( _( "Selected custom paper size\nis out of the permissible \ +limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ), + g_UserUnit == INCHES ? MIN_PAGE_SIZE / 1000. : MIN_PAGE_SIZE * 25.4 / 1000, + g_UserUnit == INCHES ? MAX_PAGE_SIZE / 1000. : MAX_PAGE_SIZE * 25.4 / 1000, + g_UserUnit == INCHES ? _( "inches" ) : _( "mm" ) ); + + if( wxMessageBox( msg, _( "Warning!" ), wxYES_NO | wxICON_EXCLAMATION, this ) == wxYES ) + { + m_save_flag = false; + return; + } + m_layout_size.x = Clamp( MIN_PAGE_SIZE, m_layout_size.x, MAX_PAGE_SIZE ); + m_layout_size.y = Clamp( MIN_PAGE_SIZE, m_layout_size.y, MAX_PAGE_SIZE ); + } + + PAGE_INFO::SetCustomWidthMils( m_layout_size.x ); + PAGE_INFO::SetCustomHeightMils( m_layout_size.y ); + } } else { - // here we assume translators will keep original paper size spellings - if( !pageInfo.SetType( paperType ) ) - { - wxASSERT_MSG( false, wxT( "the translation for paper size must preserve original spellings" ) ); - } + // search for longest common string first, e.g. A4 before A + if( paperType.Contains( PAGE_INFO::USLetter ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::USLetter ); + else if( paperType.Contains( PAGE_INFO::USLegal ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::USLegal ); + else if( paperType.Contains( PAGE_INFO::USLedger ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::USLedger ); + else if( paperType.Contains( PAGE_INFO::GERBER ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::GERBER ); + else if( paperType.Contains( PAGE_INFO::A4 ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::A4 ); + else if( paperType.Contains( PAGE_INFO::A3 ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::A3 ); + else if( paperType.Contains( PAGE_INFO::A2 ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::A2 ); + else if( paperType.Contains( PAGE_INFO::A1 ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::A1 ); + else if( paperType.Contains( PAGE_INFO::A0 ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::A0 ); + else if( paperType.Contains( PAGE_INFO::A ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::A ); + else if( paperType.Contains( PAGE_INFO::B ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::B ); + else if( paperType.Contains( PAGE_INFO::C ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::C ); + else if( paperType.Contains( PAGE_INFO::D ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::D ); + else if( paperType.Contains( PAGE_INFO::E ) ) + retSuccess = m_pageInfo.SetType( PAGE_INFO::E ); - // set portrait _after_ setting size/type above - int choice = m_orientationComboBox->GetSelection(); - pageInfo.SetPortrait( choice ); + if( retSuccess ) + { + int choice = m_orientationComboBox->GetSelection(); + m_pageInfo.SetPortrait( choice != 0 ); + } } - m_Parent->SetPageSettings( pageInfo ); + if( !retSuccess ) + { + wxASSERT_MSG( false, wxT( "the translation for paper size must preserve original spellings" ) ); + m_pageInfo.SetType( PAGE_INFO::A4 ); + } + + m_Parent->SetPageSettings( m_pageInfo ); + + m_tb.SetRevision( m_TextRevision->GetValue() ); + m_tb.SetCompany( m_TextCompany->GetValue() ); + m_tb.SetTitle( m_TextTitle->GetValue() ); + m_tb.SetComment1( m_TextComment1->GetValue() ); + m_tb.SetComment2( m_TextComment2->GetValue() ); + m_tb.SetComment3( m_TextComment3->GetValue() ); + m_tb.SetComment4( m_TextComment4->GetValue() ); + + m_Parent->SetTitleBlock( m_tb ); #ifdef EESCHEMA // Exports settings to other sheets if requested: @@ -315,25 +474,25 @@ void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event ) TITLE_BLOCK tb2 = screen->GetTitleBlock(); if( m_RevisionExport->IsChecked() ) - tb2.SetRevision( tb.GetRevision() ); + tb2.SetRevision( m_tb.GetRevision() ); if( m_TitleExport->IsChecked() ) - tb2.SetTitle( tb.GetTitle() ); + tb2.SetTitle( m_tb.GetTitle() ); if( m_CompanyExport->IsChecked() ) - tb2.SetCompany( tb.GetCompany() ); + tb2.SetCompany( m_tb.GetCompany() ); if( m_Comment1Export->IsChecked() ) - tb2.SetComment1( tb.GetComment1() ); + tb2.SetComment1( m_tb.GetComment1() ); if( m_Comment2Export->IsChecked() ) - tb2.SetComment2( tb.GetComment2() ); + tb2.SetComment2( m_tb.GetComment2() ); if( m_Comment3Export->IsChecked() ) - tb2.SetComment3( tb.GetComment3() ); + tb2.SetComment3( m_tb.GetComment3() ); if( m_Comment4Export->IsChecked() ) - tb2.SetComment4( tb.GetComment4() ); + tb2.SetComment4( m_tb.GetComment4() ); screen->SetTitleBlock( tb2 ); } @@ -345,12 +504,11 @@ void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event ) } -void DIALOG_PAGES_SETTINGS::setCurrentPageSizeSelection( const wxString& aPaperSize ) +void DIALOG_PAGES_SETTINGS::SetCurrentPageSizeSelection( const wxString& aPaperSize ) { - // use wxFormBuilder to store the sheet type in the wxRadioButton's label + // use wxChoice to store the sheet type in the wxChoice's choice // i.e. "A4", "A3", etc, anywhere within the text of the label. - - D(printf("m_paperSizeComboBox->GetCount() = %d\n", (int) m_paperSizeComboBox->GetCount() );) + // D(printf("m_paperSizeComboBox->GetCount() = %d\n", (int) m_paperSizeComboBox->GetCount() );) // search all the child wxRadioButtons for a label containing our paper type for( unsigned i = 0; i < m_paperSizeComboBox->GetCount(); ++i ) @@ -369,3 +527,178 @@ void DIALOG_PAGES_SETTINGS::setCurrentPageSizeSelection( const wxString& aPaperS } } + +void DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample() +{ + int lyWidth, lyHeight; + + wxSize clamped_layout_size( Clamp( MIN_PAGE_SIZE, m_layout_size.x, MAX_PAGE_SIZE ), + Clamp( MIN_PAGE_SIZE, m_layout_size.y, MAX_PAGE_SIZE ) ); + + double lyRatio = clamped_layout_size.x < clamped_layout_size.y ? + (double) clamped_layout_size.y / clamped_layout_size.x : + (double) clamped_layout_size.x / clamped_layout_size.y; + + if( clamped_layout_size.x < clamped_layout_size.y ) + { + lyHeight = MAX_PAGE_EXAMPLE_SIZE; + lyWidth = wxRound( (double) lyHeight / lyRatio ); + } + else + { + lyWidth = MAX_PAGE_EXAMPLE_SIZE; + lyHeight = wxRound( (double) lyWidth / lyRatio ); + } + + if( m_page_bitmap ) + { + m_PageLayoutExampleBitmap->SetBitmap( wxNullBitmap ); + delete m_page_bitmap; + } + + m_page_bitmap = new wxBitmap( lyWidth + 1, lyHeight + 1 ); + if( m_page_bitmap->IsOk() ) + { + // Save current clip box and temporary expand it. + EDA_RECT save_clip_box = *m_Parent->GetCanvas()->GetClipBox(); + m_Parent->GetCanvas()->SetClipBox( EDA_RECT( wxPoint( 0, 0 ), + wxSize( INT_MAX / 2, INT_MAX / 2 ) ) ); + // Calculate layout preview scale. + int appScale = m_Parent->GetInternalUnits() / 1000; + double scaleW = (double) lyWidth / clamped_layout_size.x / appScale; + double scaleH = (double) lyHeight / clamped_layout_size.y / appScale; + + // Prepare DC. + wxSize example_size( lyWidth, lyHeight ); + wxMemoryDC memDC; + memDC.SetClippingRegion( wxPoint( 0, 0 ), example_size ); + memDC.SelectObject( *m_page_bitmap ); + memDC.Clear(); + memDC.SetUserScale( scaleW, scaleH ); + + // Get logical page size and margins. + PAGE_INFO pageDUMMY; + + pageDUMMY.SetWidthMils( clamped_layout_size.x ); + pageDUMMY.SetHeightMils( clamped_layout_size.y ); + + wxSize dummySize = pageDUMMY.GetSizeMils(); + wxPoint pointLeftTop( pageDUMMY.GetLeftMarginMils(), pageDUMMY.GetTopMarginMils() ); + wxPoint pointRightBottom( pageDUMMY.GetRightMarginMils(), pageDUMMY.GetBottomMarginMils() ); + + // Draw layout preview. + wxString emptyString; + GRResetPenAndBrush( ( wxDC* ) &memDC ); + + m_Parent->TraceWorkSheet( (wxDC*) &memDC, dummySize, pointLeftTop, pointRightBottom, + emptyString, emptyString, m_tb, m_Screen->m_NumberOfScreen, + m_Screen->m_ScreenNumber, 1, LIGHTGRAY, RED ); + + memDC.SelectObject( wxNullBitmap ); + m_PageLayoutExampleBitmap->SetBitmap( *m_page_bitmap ); + + // Restore current clip box. + m_Parent->GetCanvas()->SetClipBox( save_clip_box ); + + // Refresh the dialog. + Layout(); + Refresh(); + } +} + + +void DIALOG_PAGES_SETTINGS::GetPageLayoutInfoFromDialog() +{ + // wxFormBuilder must use "A4", "A3", etc for choices, in all languages/translations + const wxString paperType = m_paperSizeComboBox->GetStringSelection(); + + // here we assume translators will keep original paper size spellings + if( paperType.Contains( PAGE_INFO::Custom ) ) + { + GetCustomSizeMilsFromDialog(); + if( m_layout_size.x && m_layout_size.y ) + { + if( m_layout_size.x < m_layout_size.y ) + m_orientationComboBox->SetStringSelection( _( "Portrait" ) ); + else + m_orientationComboBox->SetStringSelection( _( "Landscape" ) ); + } + } + else + { + PAGE_INFO pageInfo; // SetType() later to lookup size + + static const wxString* papers[] = { + // longest common string first, since sequential search below + &PAGE_INFO::A4, + &PAGE_INFO::A3, + &PAGE_INFO::A2, + &PAGE_INFO::A1, + &PAGE_INFO::A0, + &PAGE_INFO::A, + &PAGE_INFO::B, + &PAGE_INFO::C, + &PAGE_INFO::D, + &PAGE_INFO::E, + //&PAGE_INFO::GERBER, + &PAGE_INFO::USLetter, + &PAGE_INFO::USLegal, + &PAGE_INFO::USLedger, + }; + + unsigned i; + for( i=0; i < DIM( papers ); ++i ) + { + if( paperType.Contains( *papers[i] ) ) + { + pageInfo.SetType( *papers[i] ); + break; + } + } + + wxASSERT( i != DIM(papers) ); // dialog UI match the above list? + + m_layout_size = pageInfo.GetSizeMils(); + + // swap sizes to match orientation + bool isPortrait = (bool) m_orientationComboBox->GetSelection(); + + if( ( isPortrait && m_layout_size.x >= m_layout_size.y ) || + ( !isPortrait && m_layout_size.x < m_layout_size.y ) ) + { + m_layout_size.Set( m_layout_size.y, m_layout_size.x ); + } + } +} + + +void DIALOG_PAGES_SETTINGS::GetCustomSizeMilsFromDialog() +{ + double customSizeX; + double customSizeY; + wxString msg; + + msg = m_TextUserSizeX->GetValue(); + msg.ToDouble( &customSizeX ); + + msg = m_TextUserSizeY->GetValue(); + msg.ToDouble( &customSizeY ); + + switch( g_UserUnit ) + { + case MILLIMETRES: + customSizeX *= 1000. / 25.4; + customSizeY *= 1000. / 25.4; + break; + + default: + case INCHES: + customSizeX *= 1000.; + customSizeY *= 1000.; + } + + // Prepare to painless double -> int conversion. + customSizeX = Clamp( double( INT_MIN ), customSizeX, double( INT_MAX ) ); + customSizeY = Clamp( double( INT_MIN ), customSizeY, double( INT_MAX ) ); + m_layout_size = wxSize( wxRound( customSizeX ), wxRound( customSizeY ) ); +} diff --git a/common/dialogs/dialog_page_settings.h b/common/dialogs/dialog_page_settings.h index 08439556df..a397589bc5 100644 --- a/common/dialogs/dialog_page_settings.h +++ b/common/dialogs/dialog_page_settings.h @@ -1,12 +1,34 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: setpage.h -///////////////////////////////////////////////////////////////////////////// +/* + * This program source code file is part of KICAD, a free EDA CAD application. + * + * Copyright (C) 1992-2010 + * Copyright (C) 1992-2010 Kicad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ #ifndef _DIALOG_PAGES_SETTINGS_H_ #define _DIALOG_PAGES_SETTINGS_H_ #include +#define MAX_PAGE_EXAMPLE_SIZE 200 + /*! * DIALOG_PAGES_SETTINGS class declaration */ @@ -16,10 +38,15 @@ class DIALOG_PAGES_SETTINGS: public DIALOG_PAGES_SETTINGS_BASE private: EDA_DRAW_FRAME* m_Parent; BASE_SCREEN* m_Screen; + bool m_initialized; bool m_modified; - PAGE_INFO m_user_size; ///< instantiated just to get the size + bool m_save_flag; + wxBitmap* m_page_bitmap; /// Temporary bitmap for the page layout example. + wxSize m_layout_size; /// Logical page layout size. + PAGE_INFO m_pageInfo; /// Temporary page info. + TITLE_BLOCK m_tb; /// Temporary title block (basic inscriptions). - static wxSize s_LastSize; ///< last position and size + static wxSize s_LastSize; /// Last position and size. static wxPoint s_LastPos; public: @@ -47,11 +74,51 @@ private: /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL void OnCancelClick( wxCommandEvent& event ); - void setCurrentPageSizeSelection( const wxString& aPaperSize ); - void SavePageSettings(wxCommandEvent& event); - void ReturnSizeSelected(wxCommandEvent& event); + /// exEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHICE_PAGE_SIZE + void OnPaperSizeChoice( wxCommandEvent& event ); - void onPaperSizeChoice( wxCommandEvent& event ); + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_USER_PAGE_SIZE_X + void OnUserPageSizeXTextUpdated( wxCommandEvent& event ); + + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_USER_PAGE_SIZE_Y + void OnUserPageSizeYTextUpdated( wxCommandEvent& event ); + + /// exEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE_PAGE_ORIENTATION + void OnPageOrientationChoice( wxCommandEvent& event ); + + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_REVISION + void OnRevisionTextUpdated( wxCommandEvent& event ); + + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_TITLE + void OnTitleTextUpdated( wxCommandEvent& event ); + + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMPANY + void OnCompanyTextUpdated( wxCommandEvent& event ); + + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT1 + void OnComment1TextUpdated( wxCommandEvent& event ); + + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT2 + void OnComment2TextUpdated( wxCommandEvent& event ); + + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT3 + void OnComment3TextUpdated( wxCommandEvent& event ); + + /// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT4 + void OnComment4TextUpdated( wxCommandEvent& event ); + + void SetCurrentPageSizeSelection( const wxString& aPaperSize ); + + void SavePageSettings( wxCommandEvent& event ); + + /// Update page layout example + void UpdatePageLayoutExample(); + + /// Get page layout info from selected dialog items + void GetPageLayoutInfoFromDialog(); + + /// Get custom page size in mils from dialog + void GetCustomSizeMilsFromDialog(); }; #endif // _DIALOG_PAGES_SETTINGS_H_ diff --git a/common/dialogs/dialog_page_settings_base.cpp b/common/dialogs/dialog_page_settings_base.cpp index 2bce494be9..776d0d85ef 100644 --- a/common/dialogs/dialog_page_settings_base.cpp +++ b/common/dialogs/dialog_page_settings_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 6 2011) +// C++ code generated with wxFormBuilder (version Feb 9 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -20,65 +20,99 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind bUpperSizerH = new wxBoxSizer( wxHORIZONTAL ); wxFlexGridSizer* LeftColumnSizer; - LeftColumnSizer = new wxFlexGridSizer( 6, 1, 0, 0 ); + LeftColumnSizer = new wxFlexGridSizer( 3, 1, 0, 0 ); LeftColumnSizer->AddGrowableRow( 0 ); LeftColumnSizer->AddGrowableRow( 1 ); LeftColumnSizer->AddGrowableRow( 2 ); LeftColumnSizer->SetFlexibleDirection( wxBOTH ); LeftColumnSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - wxStaticBoxSizer* sbSizer9; - sbSizer9 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Paper Size:") ), wxVERTICAL ); + wxStaticBoxSizer* PaperSizer; + PaperSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Paper") ), wxVERTICAL ); - wxString m_paperSizeComboBoxChoices[] = { _("A4"), _("A3"), _("A2"), _("A1"), _("A0"), _("A"), _("B"), _("C"), _("D"), _("E"), _("USLetter"), _("USLegal"), _("USLedger"), _("User (Custom)") }; + m_staticText5 = new wxStaticText( this, wxID_ANY, _("Size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText5->Wrap( -1 ); + PaperSizer->Add( m_staticText5, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxString m_paperSizeComboBoxChoices[] = { _("A4 210x297mm"), _("A3 297x420mm"), _("A2 420x594mm"), _("A1 594x841mm"), _("A0 841x1189mm"), _("A 8.5x11in"), _("B 11x17in"), _("C 17x22in"), _("D 22x34in"), _("E 34x44in"), _("USLetter 8.5x11in"), _("USLegal 8.5x14in"), _("USLedger 11x17in"), _("User (Custom)") }; int m_paperSizeComboBoxNChoices = sizeof( m_paperSizeComboBoxChoices ) / sizeof( wxString ); - m_paperSizeComboBox = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_paperSizeComboBoxNChoices, m_paperSizeComboBoxChoices, 0 ); + m_paperSizeComboBox = new wxChoice( this, ID_CHICE_PAGE_SIZE, wxDefaultPosition, wxDefaultSize, m_paperSizeComboBoxNChoices, m_paperSizeComboBoxChoices, 0 ); m_paperSizeComboBox->SetSelection( 0 ); - sbSizer9->Add( m_paperSizeComboBox, 0, wxALL|wxEXPAND, 5 ); + PaperSizer->Add( m_paperSizeComboBox, 0, wxALL|wxEXPAND, 5 ); - LeftColumnSizer->Add( sbSizer9, 0, wxALL|wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizer8; - sbSizer8 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Orientation:") ), wxVERTICAL ); + m_staticText6 = new wxStaticText( this, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6->Wrap( -1 ); + PaperSizer->Add( m_staticText6, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); wxString m_orientationComboBoxChoices[] = { _("Landscape"), _("Portrait") }; int m_orientationComboBoxNChoices = sizeof( m_orientationComboBoxChoices ) / sizeof( wxString ); - m_orientationComboBox = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_orientationComboBoxNChoices, m_orientationComboBoxChoices, 0 ); + m_orientationComboBox = new wxChoice( this, ID_CHOICE_PAGE_ORIENTATION, wxDefaultPosition, wxDefaultSize, m_orientationComboBoxNChoices, m_orientationComboBoxChoices, 0 ); m_orientationComboBox->SetSelection( 0 ); - sbSizer8->Add( m_orientationComboBox, 0, wxALL|wxEXPAND, 5 ); + PaperSizer->Add( m_orientationComboBox, 0, wxEXPAND|wxALL, 5 ); + + + PaperSizer->Add( 0, 10, 0, 0, 5 ); + + wxStaticBoxSizer* CustomPaperSizer; + CustomPaperSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Custom Size") ), wxHORIZONTAL ); + + + CustomPaperSizer->Add( 5, 0, 1, wxEXPAND, 5 ); + + wxStaticBoxSizer* CustomPaperWidth; + CustomPaperWidth = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Width:") ), wxVERTICAL ); + + m_TextUserSizeX = new wxTextCtrl( this, ID_TEXTCTRL_USER_PAGE_SIZE_X, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_LEFT ); + m_TextUserSizeX->SetMaxLength( 6 ); + m_TextUserSizeX->SetToolTip( _("Custom paper width.") ); + + CustomPaperWidth->Add( m_TextUserSizeX, 0, wxALIGN_LEFT|wxALIGN_TOP|wxALL|wxEXPAND, 5 ); + + + CustomPaperSizer->Add( CustomPaperWidth, 0, wxEXPAND, 5 ); + + + CustomPaperSizer->Add( 10, 0, 1, wxEXPAND, 5 ); + + wxStaticBoxSizer* CustomPaperHeight; + CustomPaperHeight = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Height:") ), wxVERTICAL ); + + m_TextUserSizeY = new wxTextCtrl( this, ID_TEXTCTRL_USER_PAGE_SIZE_Y, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_LEFT ); + m_TextUserSizeY->SetMaxLength( 6 ); + m_TextUserSizeY->SetToolTip( _("Custom paper height.") ); + + CustomPaperHeight->Add( m_TextUserSizeY, 0, wxALIGN_TOP|wxALL|wxEXPAND, 5 ); + + + CustomPaperSizer->Add( CustomPaperHeight, 0, wxEXPAND, 5 ); - LeftColumnSizer->Add( sbSizer8, 0, wxALL|wxEXPAND, 5 ); - wxStaticBoxSizer* sbSizer10; - sbSizer10 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Custom Page Size:") ), wxVERTICAL ); + CustomPaperSizer->Add( 5, 50, 0, 0, 5 ); - wxBoxSizer* bSizerXsize; - bSizerXsize = new wxBoxSizer( wxVERTICAL ); - UserPageSizeX = new wxStaticText( this, wxID_ANY, _("Width:"), wxDefaultPosition, wxDefaultSize, 0 ); - UserPageSizeX->Wrap( -1 ); - bSizerXsize->Add( UserPageSizeX, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + PaperSizer->Add( CustomPaperSizer, 1, wxEXPAND, 5 ); - m_TextUserSizeX = new wxTextCtrl( this, ID_TEXTCTRL_USER_PAGE_SIZE_X, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizerXsize->Add( m_TextUserSizeX, 0, wxALIGN_LEFT|wxALIGN_TOP|wxALL|wxEXPAND, 5 ); - sbSizer10->Add( bSizerXsize, 1, wxALIGN_TOP|wxALL|wxEXPAND, 5 ); + LeftColumnSizer->Add( PaperSizer, 1, wxALL, 5 ); - wxBoxSizer* bSizerYsize; - bSizerYsize = new wxBoxSizer( wxVERTICAL ); + wxStaticBoxSizer* PageLayoutExampleSizer; + PageLayoutExampleSizer = new wxStaticBoxSizer( new wxStaticBox( this, ID_PAGE_LAYOUT_EXAMPLE_SIZER, _("Layout Preview") ), wxVERTICAL ); - UserPageSizeY = new wxStaticText( this, wxID_ANY, _("Height:"), wxDefaultPosition, wxDefaultSize, 0 ); - UserPageSizeY->Wrap( -1 ); - bSizerYsize->Add( UserPageSizeY, 0, wxALIGN_TOP|wxALL, 5 ); + PageLayoutExampleSizer->SetMinSize( wxSize( 240,-1 ) ); + m_PageLayoutExampleBitmap = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER ); + m_PageLayoutExampleBitmap->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ); + m_PageLayoutExampleBitmap->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ); - m_TextUserSizeY = new wxTextCtrl( this, ID_TEXTCTRL_USER_PAGE_SIZE_Y, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizerYsize->Add( m_TextUserSizeY, 0, wxALIGN_TOP|wxALL|wxEXPAND, 5 ); + PageLayoutExampleSizer->Add( m_PageLayoutExampleBitmap, 0, wxALIGN_CENTER|wxALL, 5 ); - sbSizer10->Add( bSizerYsize, 1, wxALIGN_TOP|wxALL|wxEXPAND, 5 ); - LeftColumnSizer->Add( sbSizer10, 1, wxALL|wxEXPAND, 5 ); + LeftColumnSizer->Add( PageLayoutExampleSizer, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 5 ); - bUpperSizerH->Add( LeftColumnSizer, 0, wxEXPAND, 5 ); + + LeftColumnSizer->Add( 0, 1, 1, wxEXPAND, 5 ); + + + bUpperSizerH->Add( LeftColumnSizer, 0, wxALL|wxEXPAND, 5 ); wxFlexGridSizer* RightColumnSizer; RightColumnSizer = new wxFlexGridSizer( 8, 1, 0, 0 ); @@ -94,6 +128,10 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind RightColumnSizer->SetFlexibleDirection( wxBOTH ); RightColumnSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxStaticBoxSizer* BasicInscriptionsSizer; + BasicInscriptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Basic Inscriptions") ), wxVERTICAL ); + + BasicInscriptionsSizer->SetMinSize( wxSize( -1,452 ) ); wxBoxSizer* SheetInfoSizer; SheetInfoSizer = new wxBoxSizer( wxHORIZONTAL ); @@ -108,10 +146,11 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind m_TextSheetNumber->Wrap( -1 ); SheetInfoSizer->Add( m_TextSheetNumber, 0, wxALL, 5 ); - RightColumnSizer->Add( SheetInfoSizer, 1, 0, 5 ); + + BasicInscriptionsSizer->Add( SheetInfoSizer, 0, 0, 5 ); wxStaticBoxSizer* RevisionSizer; - RevisionSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Revision:") ), wxHORIZONTAL ); + RevisionSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Revision") ), wxHORIZONTAL ); m_TextRevision = new wxTextCtrl( this, ID_TEXTCTRL_REVISION, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_TextRevision->SetMinSize( wxSize( 100,-1 ) ); @@ -119,87 +158,98 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind RevisionSizer->Add( m_TextRevision, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_RevisionExport = new wxCheckBox( this, ID_CHECKBOX_REVISION, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); - RevisionSizer->Add( m_RevisionExport, 0, wxALL, 5 ); + RevisionSizer->Add( m_RevisionExport, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - RightColumnSizer->Add( RevisionSizer, 1, wxEXPAND, 5 ); + + BasicInscriptionsSizer->Add( RevisionSizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* TitleSizer; - TitleSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Title:") ), wxHORIZONTAL ); + TitleSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Title") ), wxHORIZONTAL ); m_TextTitle = new wxTextCtrl( this, ID_TEXTCTRL_TITLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_TextTitle->SetMinSize( wxSize( 400,-1 ) ); + m_TextTitle->SetMinSize( wxSize( 360,-1 ) ); TitleSizer->Add( m_TextTitle, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_TitleExport = new wxCheckBox( this, wxID_ANY, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); TitleSizer->Add( m_TitleExport, 0, wxALL, 5 ); - RightColumnSizer->Add( TitleSizer, 1, wxEXPAND, 5 ); + + BasicInscriptionsSizer->Add( TitleSizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* CompanySizer; - CompanySizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Company:") ), wxHORIZONTAL ); + CompanySizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Company") ), wxHORIZONTAL ); m_TextCompany = new wxTextCtrl( this, ID_TEXTCTRL_COMPANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_TextCompany->SetMinSize( wxSize( 400,-1 ) ); + m_TextCompany->SetMinSize( wxSize( 360,-1 ) ); CompanySizer->Add( m_TextCompany, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_CompanyExport = new wxCheckBox( this, ID_CHECKBOX_COMPANY, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); CompanySizer->Add( m_CompanyExport, 0, wxALL, 5 ); - RightColumnSizer->Add( CompanySizer, 1, wxEXPAND, 5 ); + + BasicInscriptionsSizer->Add( CompanySizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* Comment1Sizer; - Comment1Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment1:") ), wxHORIZONTAL ); + Comment1Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment1") ), wxHORIZONTAL ); m_TextComment1 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_TextComment1->SetMinSize( wxSize( 400,-1 ) ); + m_TextComment1->SetMinSize( wxSize( 360,-1 ) ); Comment1Sizer->Add( m_TextComment1, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_Comment1Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT1, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); Comment1Sizer->Add( m_Comment1Export, 0, wxALL, 5 ); - RightColumnSizer->Add( Comment1Sizer, 1, wxEXPAND, 5 ); + + BasicInscriptionsSizer->Add( Comment1Sizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* Comment2Sizer; - Comment2Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment2:") ), wxHORIZONTAL ); + Comment2Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment2") ), wxHORIZONTAL ); m_TextComment2 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_TextComment2->SetMinSize( wxSize( 400,-1 ) ); + m_TextComment2->SetMinSize( wxSize( 360,-1 ) ); Comment2Sizer->Add( m_TextComment2, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_Comment2Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT2, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); Comment2Sizer->Add( m_Comment2Export, 0, wxALL, 5 ); - RightColumnSizer->Add( Comment2Sizer, 1, wxEXPAND, 5 ); + + BasicInscriptionsSizer->Add( Comment2Sizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* Comment3Sizer; - Comment3Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment3:") ), wxHORIZONTAL ); + Comment3Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment3") ), wxHORIZONTAL ); m_TextComment3 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_TextComment3->SetMinSize( wxSize( 400,-1 ) ); + m_TextComment3->SetMinSize( wxSize( 360,-1 ) ); Comment3Sizer->Add( m_TextComment3, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_Comment3Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT3, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); Comment3Sizer->Add( m_Comment3Export, 0, wxALL, 5 ); - RightColumnSizer->Add( Comment3Sizer, 1, wxEXPAND, 5 ); + + BasicInscriptionsSizer->Add( Comment3Sizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* Comment4Sizer; - Comment4Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment4:") ), wxHORIZONTAL ); + Comment4Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment4") ), wxHORIZONTAL ); m_TextComment4 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT4, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_TextComment4->SetMinSize( wxSize( 400,-1 ) ); + m_TextComment4->SetMinSize( wxSize( 360,-1 ) ); Comment4Sizer->Add( m_TextComment4, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_Comment4Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT4, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); Comment4Sizer->Add( m_Comment4Export, 0, wxALL, 5 ); - RightColumnSizer->Add( Comment4Sizer, 1, wxEXPAND, 5 ); + + BasicInscriptionsSizer->Add( Comment4Sizer, 1, wxEXPAND, 5 ); + + + RightColumnSizer->Add( BasicInscriptionsSizer, 1, wxALL|wxEXPAND, 5 ); + bUpperSizerH->Add( RightColumnSizer, 1, wxALL|wxEXPAND, 5 ); @@ -211,18 +261,27 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); m_sdbSizer1->Realize(); - bMainSizer->Add( m_sdbSizer1, 0, wxEXPAND|wxALIGN_RIGHT|wxALL, 5 ); + + bMainSizer->Add( m_sdbSizer1, 0, wxALIGN_RIGHT|wxALL, 5 ); + this->SetSizer( bMainSizer ); this->Layout(); - bMainSizer->Fit( this ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCloseWindow ) ); - m_paperSizeComboBox->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::onPaperSizeChoice ), NULL, this ); - m_TextUserSizeX->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnTextctrlUserPageSizeXTextUpdated ), NULL, this ); - m_TextUserSizeY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnTextctrlUserPageSizeYTextUpdated ), NULL, this ); + m_paperSizeComboBox->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPaperSizeChoice ), NULL, this ); + m_orientationComboBox->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPageOrientationChoice ), NULL, this ); + m_TextUserSizeX->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeXTextUpdated ), NULL, this ); + m_TextUserSizeY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeYTextUpdated ), NULL, this ); + m_TextRevision->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnRevisionTextUpdated ), NULL, this ); + m_TextTitle->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnTitleTextUpdated ), NULL, this ); m_TitleExport->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCheckboxTitleClick ), NULL, this ); + m_TextCompany->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCompanyTextUpdated ), NULL, this ); + m_TextComment1->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment1TextUpdated ), NULL, this ); + m_TextComment2->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment2TextUpdated ), NULL, this ); + m_TextComment3->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment3TextUpdated ), NULL, this ); + m_TextComment4->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment4TextUpdated ), NULL, this ); m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCancelClick ), NULL, this ); m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnOkClick ), NULL, this ); } @@ -231,10 +290,18 @@ DIALOG_PAGES_SETTINGS_BASE::~DIALOG_PAGES_SETTINGS_BASE() { // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCloseWindow ) ); - m_paperSizeComboBox->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::onPaperSizeChoice ), NULL, this ); - m_TextUserSizeX->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnTextctrlUserPageSizeXTextUpdated ), NULL, this ); - m_TextUserSizeY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnTextctrlUserPageSizeYTextUpdated ), NULL, this ); + m_paperSizeComboBox->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPaperSizeChoice ), NULL, this ); + m_orientationComboBox->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPageOrientationChoice ), NULL, this ); + m_TextUserSizeX->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeXTextUpdated ), NULL, this ); + m_TextUserSizeY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeYTextUpdated ), NULL, this ); + m_TextRevision->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnRevisionTextUpdated ), NULL, this ); + m_TextTitle->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnTitleTextUpdated ), NULL, this ); m_TitleExport->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCheckboxTitleClick ), NULL, this ); + m_TextCompany->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCompanyTextUpdated ), NULL, this ); + m_TextComment1->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment1TextUpdated ), NULL, this ); + m_TextComment2->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment2TextUpdated ), NULL, this ); + m_TextComment3->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment3TextUpdated ), NULL, this ); + m_TextComment4->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment4TextUpdated ), NULL, this ); m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCancelClick ), NULL, this ); m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnOkClick ), NULL, this ); diff --git a/common/dialogs/dialog_page_settings_base.fbp b/common/dialogs/dialog_page_settings_base.fbp index b491921113..4ff5659e2b 100644 --- a/common/dialogs/dialog_page_settings_base.fbp +++ b/common/dialogs/dialog_page_settings_base.fbp @@ -1,11 +1,12 @@ - + C++ 1 source_name + 0 0 res UTF-8 @@ -19,6 +20,7 @@ . 1 + 1 1 0 0 @@ -27,8 +29,11 @@ 1 1 1 + 0 + + @@ -51,7 +56,6 @@ 0 0 wxID_ANY - 0 @@ -65,11 +69,9 @@ 1 - Resizable - 1 - -1,-1 + 748,495 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Page Settings @@ -119,7 +121,7 @@ - + -1,-1 bMainSizer wxVERTICAL none @@ -134,7 +136,7 @@ none 5 - wxEXPAND + wxALL|wxEXPAND 0 1 @@ -146,36 +148,38 @@ LeftColumnSizer wxFLEX_GROWMODE_SPECIFIED none - 6 + 3 0 5 - wxALL|wxEXPAND - 0 + wxALL + 1 wxID_ANY - Paper Size: + Paper - sbSizer9 + PaperSizer wxVERTICAL none 5 - wxALL|wxEXPAND + wxTOP|wxRIGHT|wxLEFT 0 - + 1 1 1 1 + + + 1 0 - "A4" "A3" "A2" "A1" "A0" "A" "B" "C" "D" "E" "USLetter" "USLegal" "USLedger" "User (Custom)" 1 1 @@ -190,7 +194,7 @@ 0 0 wxID_ANY - + Size: 0 @@ -198,19 +202,17 @@ 0 1 - m_paperSizeComboBox + m_staticText5 1 protected 1 - Resizable - - 0 1 + 0 @@ -221,8 +223,8 @@ + -1 - onPaperSizeChoice @@ -247,20 +249,6 @@ - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Orientation: - - sbSizer8 - wxVERTICAL - none - 5 wxALL|wxEXPAND @@ -270,13 +258,16 @@ 1 1 1 + + + 1 0 - "Landscape" "Portrait" + "A4 210x297mm" "A3 297x420mm" "A2 420x594mm" "A1 594x841mm" "A0 841x1189mm" "A 8.5x11in" "B 11x17in" "C 17x22in" "D 22x34in" "E 34x44in" "USLetter 8.5x11in" "USLegal 8.5x14in" "USLedger 11x17in" "User (Custom)" 1 1 @@ -290,8 +281,7 @@ 0 0 - wxID_ANY - + ID_CHICE_PAGE_SIZE 0 @@ -299,19 +289,18 @@ 0 1 - m_orientationComboBox + m_paperSizeComboBox 1 protected 1 - Resizable - 0 1 + 0 @@ -323,7 +312,7 @@ - + OnPaperSizeChoice @@ -348,29 +337,6 @@ - - - - 5 - wxALL|wxEXPAND - 1 - - wxID_ANY - Custom Page Size: - - sbSizer10 - wxVERTICAL - none - - - 5 - wxALIGN_TOP|wxALL|wxEXPAND - 1 - - - bSizerXsize - wxVERTICAL - none 5 wxTOP|wxRIGHT|wxLEFT @@ -380,7 +346,10 @@ 1 1 1 + + + @@ -400,8 +369,7 @@ 0 0 wxID_ANY - Width: - + Orientation: 0 @@ -409,16 +377,14 @@ 0 1 - UserPageSizeX + m_staticText6 1 protected 1 - Resizable - 1 @@ -460,19 +426,23 @@ 5 - wxALIGN_LEFT|wxALIGN_TOP|wxALL|wxEXPAND + wxEXPAND|wxALL 0 - + 1 1 1 1 + + + 1 0 + "Landscape" "Portrait" 1 1 @@ -486,26 +456,23 @@ 0 0 - ID_TEXTCTRL_USER_PAGE_SIZE_X - + ID_CHOICE_PAGE_ORIENTATION 0 - 0 0 1 - m_TextUserSizeX + m_orientationComboBox 1 protected 1 - Resizable - + 0 1 @@ -516,11 +483,11 @@ wxFILTER_NONE wxDefaultValidator - + OnPageOrientationChoice @@ -542,34 +509,66 @@ - OnTextctrlUserPageSizeXTextUpdated - - - + + 5 + + 0 + + 10 + protected + 0 5 - wxALIGN_TOP|wxALL|wxEXPAND + wxEXPAND 1 - + + wxID_ANY + Custom Size + + CustomPaperSizer + wxHORIZONTAL + none + + + 5 + wxEXPAND + 1 + + 0 + protected + 5 + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Width: - bSizerYsize + CustomPaperWidth wxVERTICAL none + 5 - wxALIGN_TOP|wxALL + wxALIGN_LEFT|wxALIGN_TOP|wxALL|wxEXPAND 0 - + 1 1 1 1 + + + @@ -588,40 +587,37 @@ 0 0 - wxID_ANY - Height: - + ID_TEXTCTRL_USER_PAGE_SIZE_X 0 + 6 0 1 - UserPageSizeY + m_TextUserSizeX 1 protected 1 - Resizable - 1 - + wxTE_LEFT 0 - + Custom paper width. wxFILTER_NONE - wxDefaultValidator + wxTextValidator + - -1 @@ -644,9 +640,37 @@ + OnUserPageSizeXTextUpdated + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 10 + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Height: + + CustomPaperHeight + wxVERTICAL + none + 5 wxALIGN_TOP|wxALL|wxEXPAND @@ -656,7 +680,10 @@ 1 1 1 + + + @@ -676,11 +703,10 @@ 0 0 ID_TEXTCTRL_USER_PAGE_SIZE_Y - 0 - 0 + 6 0 @@ -692,15 +718,13 @@ protected 1 - Resizable - 1 - + wxTE_LEFT 0 - + Custom paper height. wxFILTER_NONE wxDefaultValidator @@ -731,7 +755,7 @@ - OnTextctrlUserPageSizeYTextUpdated + OnUserPageSizeYTextUpdated @@ -740,6 +764,127 @@ + + 5 + + 0 + + 50 + protected + 5 + + + + + + + + 5 + wxALIGN_CENTER|wxALL|wxEXPAND + 0 + + ID_PAGE_LAYOUT_EXAMPLE_SIZER + Layout Preview + 240,-1 + PageLayoutExampleSizer + wxVERTICAL + none + + + 5 + wxALIGN_CENTER|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + wxSYS_COLOUR_WINDOW + Load From Icon Resource; + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + wxSYS_COLOUR_WINDOW + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + m_PageLayoutExampleBitmap + 1 + + + protected + 1 + + Resizable + 1 + -1,-1 + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 1 + protected + 0 @@ -762,8 +907,20 @@ 0 5 - + wxALL|wxEXPAND 1 + + wxID_ANY + Basic Inscriptions + -1,452 + BasicInscriptionsSizer + wxVERTICAL + none + + + 5 + + 0 SheetInfoSizer @@ -778,7 +935,10 @@ 1 1 1 + + + @@ -799,7 +959,6 @@ 0 wxID_ANY Number of sheets: %d - 0 @@ -814,9 +973,7 @@ protected 1 - Resizable - 1 @@ -875,7 +1032,10 @@ 1 1 1 + + + @@ -896,7 +1056,6 @@ 0 wxID_ANY Sheet number: %d - 0 @@ -911,9 +1070,7 @@ protected 1 - Resizable - 1 @@ -961,7 +1118,7 @@ 1 wxID_ANY - Revision: + Revision RevisionSizer wxHORIZONTAL @@ -976,7 +1133,10 @@ 1 1 1 + + + @@ -996,7 +1156,6 @@ 0 0 ID_TEXTCTRL_REVISION - 0 @@ -1012,9 +1171,7 @@ protected 1 - Resizable - 1 @@ -1051,7 +1208,7 @@ - + OnRevisionTextUpdated @@ -1060,14 +1217,17 @@ 5 - wxALL + wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 + + + @@ -1089,7 +1249,6 @@ 0 ID_CHECKBOX_REVISION Export to other sheets - 0 @@ -1104,9 +1263,7 @@ protected 1 - Resizable - 1 @@ -1154,7 +1311,7 @@ 1 wxID_ANY - Title: + Title TitleSizer wxHORIZONTAL @@ -1169,7 +1326,10 @@ 1 1 1 + + + @@ -1189,14 +1349,13 @@ 0 0 ID_TEXTCTRL_TITLE - 0 0 0 - 400,-1 + 360,-1 1 m_TextTitle 1 @@ -1205,9 +1364,7 @@ protected 1 - Resizable - 1 @@ -1244,7 +1401,7 @@ - + OnTitleTextUpdated @@ -1260,7 +1417,10 @@ 1 1 1 + + + @@ -1282,7 +1442,6 @@ 0 wxID_ANY Export to other sheets - 0 @@ -1297,9 +1456,7 @@ protected 1 - Resizable - 1 @@ -1347,7 +1504,7 @@ 1 wxID_ANY - Company: + Company CompanySizer wxHORIZONTAL @@ -1362,7 +1519,10 @@ 1 1 1 + + + @@ -1382,14 +1542,13 @@ 0 0 ID_TEXTCTRL_COMPANY - 0 0 0 - 400,-1 + 360,-1 1 m_TextCompany 1 @@ -1398,9 +1557,7 @@ protected 1 - Resizable - 1 @@ -1437,7 +1594,7 @@ - + OnCompanyTextUpdated @@ -1453,7 +1610,10 @@ 1 1 1 + + + @@ -1475,7 +1635,6 @@ 0 ID_CHECKBOX_COMPANY Export to other sheets - 0 @@ -1490,9 +1649,7 @@ protected 1 - Resizable - 1 @@ -1540,7 +1697,7 @@ 1 wxID_ANY - Comment1: + Comment1 Comment1Sizer wxHORIZONTAL @@ -1555,7 +1712,10 @@ 1 1 1 + + + @@ -1575,14 +1735,13 @@ 0 0 ID_TEXTCTRL_COMMENT1 - 0 0 0 - 400,-1 + 360,-1 1 m_TextComment1 1 @@ -1591,9 +1750,7 @@ protected 1 - Resizable - 1 @@ -1630,7 +1787,7 @@ - + OnComment1TextUpdated @@ -1646,7 +1803,10 @@ 1 1 1 + + + @@ -1668,7 +1828,6 @@ 0 ID_CHECKBOX_COMMENT1 Export to other sheets - 0 @@ -1683,9 +1842,7 @@ protected 1 - Resizable - 1 @@ -1733,7 +1890,7 @@ 1 wxID_ANY - Comment2: + Comment2 Comment2Sizer wxHORIZONTAL @@ -1748,7 +1905,10 @@ 1 1 1 + + + @@ -1768,14 +1928,13 @@ 0 0 ID_TEXTCTRL_COMMENT2 - 0 0 0 - 400,-1 + 360,-1 1 m_TextComment2 1 @@ -1784,9 +1943,7 @@ protected 1 - Resizable - 1 @@ -1823,7 +1980,7 @@ - + OnComment2TextUpdated @@ -1839,7 +1996,10 @@ 1 1 1 + + + @@ -1861,7 +2021,6 @@ 0 ID_CHECKBOX_COMMENT2 Export to other sheets - 0 @@ -1876,9 +2035,7 @@ protected 1 - Resizable - 1 @@ -1926,7 +2083,7 @@ 1 wxID_ANY - Comment3: + Comment3 Comment3Sizer wxHORIZONTAL @@ -1941,7 +2098,10 @@ 1 1 1 + + + @@ -1961,14 +2121,13 @@ 0 0 ID_TEXTCTRL_COMMENT3 - 0 0 0 - 400,-1 + 360,-1 1 m_TextComment3 1 @@ -1977,9 +2136,7 @@ protected 1 - Resizable - 1 @@ -2016,7 +2173,7 @@ - + OnComment3TextUpdated @@ -2032,7 +2189,10 @@ 1 1 1 + + + @@ -2054,7 +2214,6 @@ 0 ID_CHECKBOX_COMMENT3 Export to other sheets - 0 @@ -2069,9 +2228,7 @@ protected 1 - Resizable - 1 @@ -2119,7 +2276,7 @@ 1 wxID_ANY - Comment4: + Comment4 Comment4Sizer wxHORIZONTAL @@ -2134,7 +2291,10 @@ 1 1 1 + + + @@ -2154,14 +2314,13 @@ 0 0 ID_TEXTCTRL_COMMENT4 - 0 0 0 - 400,-1 + 360,-1 1 m_TextComment4 1 @@ -2170,9 +2329,7 @@ protected 1 - Resizable - 1 @@ -2209,7 +2366,7 @@ - + OnComment4TextUpdated @@ -2225,7 +2382,10 @@ 1 1 1 + + + @@ -2247,7 +2407,6 @@ 0 ID_CHECKBOX_COMMENT4 Export to other sheets - 0 @@ -2262,9 +2421,7 @@ protected 1 - Resizable - 1 @@ -2310,9 +2467,11 @@ + + 5 - wxEXPAND|wxALIGN_RIGHT|wxALL + wxALIGN_RIGHT|wxALL 0 0 diff --git a/common/dialogs/dialog_page_settings_base.h b/common/dialogs/dialog_page_settings_base.h index 610269c5f5..a5299e8c2c 100644 --- a/common/dialogs/dialog_page_settings_base.h +++ b/common/dialogs/dialog_page_settings_base.h @@ -1,46 +1,55 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 6 2011) +// C++ code generated with wxFormBuilder (version Feb 9 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// -#ifndef __dialog_page_settings_base__ -#define __dialog_page_settings_base__ +#ifndef __DIALOG_PAGE_SETTINGS_BASE_H__ +#define __DIALOG_PAGE_SETTINGS_BASE_H__ +#include +#include #include - #include -#include +#include #include #include #include #include +#include +#include +#include #include #include -#include -#include +#include +#include +#include +#include #include #include #include /////////////////////////////////////////////////////////////////////////// -#define ID_TEXTCTRL_USER_PAGE_SIZE_X 1000 -#define ID_TEXTCTRL_USER_PAGE_SIZE_Y 1001 -#define ID_TEXTCTRL_REVISION 1002 -#define ID_CHECKBOX_REVISION 1003 -#define ID_TEXTCTRL_TITLE 1004 -#define ID_TEXTCTRL_COMPANY 1005 -#define ID_CHECKBOX_COMPANY 1006 -#define ID_TEXTCTRL_COMMENT1 1007 -#define ID_CHECKBOX_COMMENT1 1008 -#define ID_TEXTCTRL_COMMENT2 1009 -#define ID_CHECKBOX_COMMENT2 1010 -#define ID_TEXTCTRL_COMMENT3 1011 -#define ID_CHECKBOX_COMMENT3 1012 -#define ID_TEXTCTRL_COMMENT4 1013 -#define ID_CHECKBOX_COMMENT4 1014 +#define ID_CHICE_PAGE_SIZE 1000 +#define ID_CHOICE_PAGE_ORIENTATION 1001 +#define ID_TEXTCTRL_USER_PAGE_SIZE_X 1002 +#define ID_TEXTCTRL_USER_PAGE_SIZE_Y 1003 +#define ID_PAGE_LAYOUT_EXAMPLE_SIZER 1004 +#define ID_TEXTCTRL_REVISION 1005 +#define ID_CHECKBOX_REVISION 1006 +#define ID_TEXTCTRL_TITLE 1007 +#define ID_TEXTCTRL_COMPANY 1008 +#define ID_CHECKBOX_COMPANY 1009 +#define ID_TEXTCTRL_COMMENT1 1010 +#define ID_CHECKBOX_COMMENT1 1011 +#define ID_TEXTCTRL_COMMENT2 1012 +#define ID_CHECKBOX_COMMENT2 1013 +#define ID_TEXTCTRL_COMMENT3 1014 +#define ID_CHECKBOX_COMMENT3 1015 +#define ID_TEXTCTRL_COMMENT4 1016 +#define ID_CHECKBOX_COMMENT4 1017 /////////////////////////////////////////////////////////////////////////////// /// Class DIALOG_PAGES_SETTINGS_BASE @@ -50,14 +59,14 @@ class DIALOG_PAGES_SETTINGS_BASE : public wxDialog private: protected: + wxStaticText* m_staticText5; wxChoice* m_paperSizeComboBox; + wxStaticText* m_staticText6; wxChoice* m_orientationComboBox; - wxStaticText* UserPageSizeX; wxTextCtrl* m_TextUserSizeX; - wxStaticText* UserPageSizeY; wxTextCtrl* m_TextUserSizeY; + wxStaticBitmap* m_PageLayoutExampleBitmap; wxStaticText* m_TextSheetCount; - wxStaticText* m_TextSheetNumber; wxTextCtrl* m_TextRevision; wxCheckBox* m_RevisionExport; @@ -79,19 +88,27 @@ class DIALOG_PAGES_SETTINGS_BASE : public wxDialog // Virtual event handlers, overide them in your derived class virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); } - virtual void onPaperSizeChoice( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTextctrlUserPageSizeXTextUpdated( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTextctrlUserPageSizeYTextUpdated( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPaperSizeChoice( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPageOrientationChoice( wxCommandEvent& event ) { event.Skip(); } + virtual void OnUserPageSizeXTextUpdated( wxCommandEvent& event ) { event.Skip(); } + virtual void OnUserPageSizeYTextUpdated( wxCommandEvent& event ) { event.Skip(); } + virtual void OnRevisionTextUpdated( wxCommandEvent& event ) { event.Skip(); } + virtual void OnTitleTextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckboxTitleClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCompanyTextUpdated( wxCommandEvent& event ) { event.Skip(); } + virtual void OnComment1TextUpdated( wxCommandEvent& event ) { event.Skip(); } + virtual void OnComment2TextUpdated( wxCommandEvent& event ) { event.Skip(); } + virtual void OnComment3TextUpdated( wxCommandEvent& event ) { event.Skip(); } + virtual void OnComment4TextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } public: - DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Page Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Page Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 748,495 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_PAGES_SETTINGS_BASE(); }; -#endif //__dialog_page_settings_base__ +#endif //__DIALOG_PAGE_SETTINGS_BASE_H__ diff --git a/common/worksheet.cpp b/common/worksheet.cpp index a992fc1afe..95ccb19872 100644 --- a/common/worksheet.cpp +++ b/common/worksheet.cpp @@ -1010,69 +1010,62 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid const PAGE_INFO& pageInfo = GetPageSettings(); wxSize pageSize = pageInfo.GetSizeMils(); - int ii, jj, xg, yg, ipas, gxpas, gypas; + // if not printing, draw the page limits: + if( !screen->m_IsPrinting && g_ShowPageLimits ) + { + int scale = m_internalUnits / 1000; + GRSetDrawMode( DC, GR_COPY ); + GRRect( m_canvas->GetClipBox(), DC, 0, 0, + pageSize.x * scale, pageSize.y * scale, line_width, + g_DrawBgColor == WHITE ? LIGHTGRAY : DARKDARKGRAY ); + } + + wxPoint margin_left_top( pageInfo.GetLeftMarginMils(), pageInfo.GetTopMarginMils() ); + wxPoint margin_right_bottom( pageInfo.GetRightMarginMils(), pageInfo.GetBottomMarginMils() ); + wxString paper = pageInfo.GetType(); + wxString file = screen->GetFileName(); + TITLE_BLOCK t_block = GetTitleBlock(); + int number_of_screens = screen->m_NumberOfScreen; + int screen_to_draw = screen->m_ScreenNumber; + + TraceWorkSheet( ( wxDC* )DC, pageSize, margin_left_top, margin_right_bottom, + paper, file, t_block, number_of_screens, screen_to_draw, + ( int )line_width ); +} + + +void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* aDC, wxSize& aSz, wxPoint& aLT, wxPoint& aRB, + wxString& aType, wxString& aFlNm, TITLE_BLOCK& aTb, + int aNScr, int aScr, int aLnW, EDA_Colors aClr1, + EDA_Colors aClr2 ) +{ wxPoint pos; int refx, refy; - EDA_Colors Color; wxString Line; Ki_WorkSheetData* WsItem; int scale = m_internalUnits / 1000; wxSize size( SIZETEXT * scale, SIZETEXT * scale ); -#if defined(KICAD_GOST) - wxSize size2( SIZETEXT * scale * 2, SIZETEXT * scale * 2); - wxSize size3( SIZETEXT * scale * 3, SIZETEXT * scale * 3); - wxSize size1_5( SIZETEXT * scale * 1.5, SIZETEXT * scale * 1.5); -#endif wxSize size_ref( SIZETEXT_REF * scale, SIZETEXT_REF * scale ); - wxString msg; - int UpperLimit = VARIABLE_BLOCK_START_POSITION; - int width = line_width; - Color = RED; - - // if not printing, draw the page limits: - if( !screen->m_IsPrinting && g_ShowPageLimits ) - { - GRSetDrawMode( DC, GR_COPY ); - GRRect( m_canvas->GetClipBox(), DC, 0, 0, - pageSize.x * scale, pageSize.y * scale, width, - g_DrawBgColor == WHITE ? LIGHTGRAY : DARKDARKGRAY ); - } - - GRSetDrawMode( DC, GR_COPY ); - - // Draw the border. + GRSetDrawMode( aDC, GR_COPY ); // Upper left corner - refx = pageInfo.GetLeftMarginMils(); - refy = pageInfo.GetTopMarginMils(); + refx = aLT.x; + refy = aLT.y; // lower right corner - xg = pageSize.x - pageInfo.GetRightMarginMils(); - yg = pageSize.y - pageInfo.GetBottomMarginMils(); + int xg, yg; + xg = aSz.x - aRB.x; + yg = aSz.y - aRB.y; #if defined(KICAD_GOST) - GRRect( m_canvas->GetClipBox(), DC, refx * scale, refy * scale, - xg * scale, yg * scale, width, Color ); + // Draw the border. + GRRect( m_canvas->GetClipBox(), aDC, refx * scale, refy * scale, + xg * scale, yg * scale, aLnW, aClr1 ); -#else - for( ii = 0; ii < 2; ii++ ) - { - GRRect( m_canvas->GetClipBox(), DC, refx * scale, refy * scale, - xg * scale, yg * scale, width, Color ); - - refx += GRID_REF_W; refy += GRID_REF_W; - xg -= GRID_REF_W; yg -= GRID_REF_W; - } - -#endif - - // Draw the reference legends. - refx = pageInfo.GetLeftMarginMils(); - -#if defined(KICAD_GOST) - refy = pageSize.y - pageInfo.GetBottomMarginMils(); // Lower left corner + refx = aLT.x; + refy = aSz.y - aRB.y; // Lower left corner for( WsItem = &WS_Segm1_LU; WsItem != NULL; WsItem = WsItem->Pnext ) { pos.x = ( refx - WsItem->m_Posx ) * scale; @@ -1086,22 +1079,22 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_PODPIS_LU: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_VERT, size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, - width, false, false ); + aLnW, false, false ); break; case WS_SEGMENT_LU: - xg = pageInfo.GetLeftMarginMils() - WsItem->m_Endx; - yg = pageSize.y - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; - GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, - xg * scale, yg * scale, width, Color ); + xg = aLT.x - WsItem->m_Endx; + yg = aSz.y - aRB.y - WsItem->m_Endy; + GRLine( m_canvas->GetClipBox(), aDC, pos.x, pos.y, + xg * scale, yg * scale, aLnW, aClr1 ); break; } } - refy = pageInfo.GetBottomMarginMils(); // Left Top corner + refy = aRB.y; // Left Top corner for( WsItem = &WS_Segm1_LT; WsItem != NULL; WsItem = WsItem->Pnext ) { pos.x = ( refx + WsItem->m_Posx ) * scale; @@ -1110,98 +1103,22 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid switch( WsItem->m_Type ) { case WS_SEGMENT_LT: - xg = pageInfo.GetLeftMarginMils() + WsItem->m_Endx; - yg = pageInfo.GetBottomMarginMils() + WsItem->m_Endy; - GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, - xg * scale, yg * scale, width, Color ); + xg = aLT.x + WsItem->m_Endx; + yg = aRB.y + WsItem->m_Endy; + GRLine( m_canvas->GetClipBox(), aDC, pos.x, pos.y, + xg * scale, yg * scale, aLnW, aClr1 ); break; } } -#else - - // Upper left corner - refy = pageInfo.GetTopMarginMils(); - + wxSize size2( SIZETEXT * scale * 2, SIZETEXT * scale * 2); + wxSize size3( SIZETEXT * scale * 3, SIZETEXT * scale * 3); + wxSize size1_5( SIZETEXT * scale * 1.5, SIZETEXT * scale * 1.5); // lower right corner - xg = pageSize.x - pageInfo.GetRightMarginMils(); - yg = pageSize.y - pageInfo.GetBottomMarginMils(); + refx = aSz.x - aRB.x; + refy = aSz.y - aRB.y; - ipas = ( xg - refx ) / PAS_REF; - gxpas = ( xg - refx ) / ipas; - for( ii = refx + gxpas, jj = 1; ipas > 0; ii += gxpas, jj++, ipas-- ) - { - Line.Printf( wxT( "%d" ), jj ); - - if( ii < xg - PAS_REF / 2 ) - { - GRLine( m_canvas->GetClipBox(), DC, ii * scale, refy * scale, - ii * scale, ( refy + GRID_REF_W ) * scale, width, Color ); - } - DrawGraphicText( m_canvas, DC, - wxPoint( ( ii - gxpas / 2 ) * scale, - ( refy + GRID_REF_W / 2 ) * scale ), - Color, Line, TEXT_ORIENT_HORIZ, size_ref, - GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); - - if( ii < xg - PAS_REF / 2 ) - { - GRLine( m_canvas->GetClipBox(), DC, ii * scale, yg * scale, - ii * scale, ( yg - GRID_REF_W ) * scale, width, Color ); - } - DrawGraphicText( m_canvas, DC, - wxPoint( ( ii - gxpas / 2 ) * scale, - ( yg - GRID_REF_W / 2) * scale ), - Color, Line, TEXT_ORIENT_HORIZ, size_ref, - GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); - } - - ipas = ( yg - refy ) / PAS_REF; - gypas = ( yg - refy ) / ipas; - - for( ii = refy + gypas, jj = 0; ipas > 0; ii += gypas, jj++, ipas-- ) - { - if( jj < 26 ) - Line.Printf( wxT( "%c" ), jj + 'A' ); - else // I hope 52 identifiers are enought... - Line.Printf( wxT( "%c" ), 'a' + jj - 26 ); - - if( ii < yg - PAS_REF / 2 ) - { - GRLine( m_canvas->GetClipBox(), DC, refx * scale, ii * scale, - ( refx + GRID_REF_W ) * scale, ii * scale, width, Color ); - } - - DrawGraphicText( m_canvas, DC, - wxPoint( ( refx + GRID_REF_W / 2 ) * scale, - ( ii - gypas / 2 ) * scale ), - Color, Line, TEXT_ORIENT_HORIZ, size_ref, - GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); - - if( ii < yg - PAS_REF / 2 ) - { - GRLine( m_canvas->GetClipBox(), DC, xg * scale, ii * scale, - ( xg - GRID_REF_W ) * scale, ii * scale, width, Color ); - } - DrawGraphicText( m_canvas, DC, - wxPoint( ( xg - GRID_REF_W / 2 ) * scale, - ( ii - gxpas / 2 ) * scale ), - Color, Line, TEXT_ORIENT_HORIZ, size_ref, - GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); - } - -#endif - -#if defined(KICAD_GOST) - // lower right corner - refx = pageSize.x - pageInfo.GetRightMarginMils(); - refy = pageSize.y - pageInfo.GetBottomMarginMils(); - - if( screen->m_ScreenNumber == 1 ) + if( aScr == 1 ) { for( WsItem = &WS_Date; WsItem != NULL; WsItem = WsItem->Pnext ) { @@ -1222,10 +1139,10 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_PODPIS: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); break; case WS_SIZESHEET: @@ -1234,95 +1151,91 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_IDENTSHEET: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - if( screen->m_NumberOfScreen > 1 ) - msg << screen->m_ScreenNumber; - DrawGraphicText( m_canvas, DC, pos, Color, msg, + if( aNScr > 1 ) + msg << aScr; + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, - GR_TEXT_VJUSTIFY_CENTER, width, false, false ); + GR_TEXT_VJUSTIFY_CENTER, aLnW, false, false ); break; case WS_SHEETS: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg << screen->m_NumberOfScreen; - DrawGraphicText( m_canvas, DC, pos, Color, msg, + msg << aNScr; + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, - GR_TEXT_VJUSTIFY_CENTER, width, false, false ); + GR_TEXT_VJUSTIFY_CENTER, aLnW, false, false ); break; case WS_COMPANY_NAME: - msg = GetTitleBlock().GetCompany(); + msg = aTb.GetCompany(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size1_5, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, - false, false ); + aLnW, false, false ); } break; case WS_TITLE: - msg = GetTitleBlock().GetTitle(); + msg = aTb.GetTitle(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size1_5, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, - false, false ); + aLnW, false, false ); } break; case WS_COMMENT1: - msg = GetTitleBlock().GetComment1(); + msg = aTb.GetComment1(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size3, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, - false, false ); - pos.x = (pageInfo.GetLeftMarginMils() + 1260) * scale; - pos.y = (pageInfo.GetTopMarginMils() + 270) * scale; - DrawGraphicText( m_canvas, DC, pos, Color, + aLnW, false, false ); + pos.x = (aLT.x + 1260) * scale; + pos.y = (aLT.y + 270) * scale; + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, 1800, size2, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, - false, false ); + aLnW, false, false ); } break; case WS_COMMENT2: - msg = GetTitleBlock().GetComment2(); + msg = aTb.GetComment2(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); } break; case WS_COMMENT3: - msg = GetTitleBlock().GetComment3(); + msg = aTb.GetComment3(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); } break; case WS_COMMENT4: - msg = GetTitleBlock().GetComment4(); + msg = aTb.GetComment4(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); } break; @@ -1333,12 +1246,10 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid pos.y = ( refy - WsItem->m_Posy ) * scale; case WS_SEGMENT: - xg = pageSize.x - - pageInfo.GetRightMarginMils() - WsItem->m_Endx; - yg = pageSize.y - - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; - GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, - xg * scale, yg * scale, width, Color ); + xg = aSz.x - aRB.x - WsItem->m_Endx; + yg = aSz.y - aRB.y - WsItem->m_Endy; + GRLine( m_canvas->GetClipBox(), aDC, pos.x, pos.y, + xg * scale, yg * scale, aLnW, aClr1 ); break; } } @@ -1355,63 +1266,144 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid { case WS_CADRE: // Begin list number > 1 - msg = GetTitleBlock().GetComment1(); + msg = aTb.GetComment1(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size3, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, - false, false ); - pos.x = (pageInfo.GetLeftMarginMils() + 1260) * scale; - pos.y = (pageInfo.GetTopMarginMils() + 270) * scale; - DrawGraphicText( m_canvas, DC, pos, Color, + aLnW, false, false ); + pos.x = (aLT.x + 1260) * scale; + pos.y = (aLT.y + 270) * scale; + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, 1800, size2, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, - width, - false, false ); + aLnW, false, false ); } break; case WS_PODPIS_D: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, - false, false ); + aLnW, false, false ); break; case WS_IDENTSHEET_D: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg << screen->m_ScreenNumber; - DrawGraphicText( m_canvas, DC, pos, Color, + msg << aScr; + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); break; case WS_LEFT_SEGMENT_D: pos.y = ( refy - WsItem->m_Posy ) * scale; case WS_SEGMENT_D: - xg = pageSize.x - - pageInfo.GetRightMarginMils() - WsItem->m_Endx; - yg = pageSize.y - - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; - GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, - xg * scale, yg * scale, width, Color ); + xg = aSz.x - aRB.x - WsItem->m_Endx; + yg = aSz.y - aRB.y - WsItem->m_Endy; + GRLine( m_canvas->GetClipBox(), aDC, pos.x, pos.y, + xg * scale, yg * scale, aLnW, aClr1 ); break; } } } #else + // Draw the border. + int ii, jj, ipas, gxpas, gypas; + for( ii = 0; ii < 2; ii++ ) + { + GRRect( m_canvas->GetClipBox(), aDC, refx * scale, refy * scale, + xg * scale, yg * scale, aLnW, aClr1 ); - refx = pageSize.x - pageInfo.GetRightMarginMils() - GRID_REF_W; - refy = pageSize.y - pageInfo.GetBottomMarginMils() - GRID_REF_W; + refx += GRID_REF_W; refy += GRID_REF_W; + xg -= GRID_REF_W; yg -= GRID_REF_W; + } + + // Upper left corner + refx = aLT.x; + refy = aLT.y; + + // lower right corner + xg = aSz.x - aRB.x; + yg = aSz.y - aRB.y; + + ipas = ( xg - refx ) / PAS_REF; + gxpas = ( xg - refx ) / ipas; + for( ii = refx + gxpas, jj = 1; ipas > 0; ii += gxpas, jj++, ipas-- ) + { + Line.Printf( wxT( "%d" ), jj ); + + if( ii < xg - PAS_REF / 2 ) + { + GRLine( m_canvas->GetClipBox(), aDC, ii * scale, refy * scale, + ii * scale, ( refy + GRID_REF_W ) * scale, aLnW, aClr1 ); + } + DrawGraphicText( m_canvas, aDC, + wxPoint( ( ii - gxpas / 2 ) * scale, + ( refy + GRID_REF_W / 2 ) * scale ), + aClr1, Line, TEXT_ORIENT_HORIZ, size_ref, + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, + aLnW, false, false ); + + if( ii < xg - PAS_REF / 2 ) + { + GRLine( m_canvas->GetClipBox(), aDC, ii * scale, yg * scale, + ii * scale, ( yg - GRID_REF_W ) * scale, aLnW, aClr1 ); + } + DrawGraphicText( m_canvas, aDC, + wxPoint( ( ii - gxpas / 2 ) * scale, + ( yg - GRID_REF_W / 2) * scale ), + aClr1, Line, TEXT_ORIENT_HORIZ, size_ref, + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, + aLnW, false, false ); + } + + ipas = ( yg - refy ) / PAS_REF; + gypas = ( yg - refy ) / ipas; + + for( ii = refy + gypas, jj = 0; ipas > 0; ii += gypas, jj++, ipas-- ) + { + if( jj < 26 ) + Line.Printf( wxT( "%c" ), jj + 'A' ); + else // I hope 52 identifiers are enought... + Line.Printf( wxT( "%c" ), 'a' + jj - 26 ); + + if( ii < yg - PAS_REF / 2 ) + { + GRLine( m_canvas->GetClipBox(), aDC, refx * scale, ii * scale, + ( refx + GRID_REF_W ) * scale, ii * scale, aLnW, aClr1 ); + } + + DrawGraphicText( m_canvas, aDC, + wxPoint( ( refx + GRID_REF_W / 2 ) * scale, + ( ii - gypas / 2 ) * scale ), + aClr1, Line, TEXT_ORIENT_HORIZ, size_ref, + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, + aLnW, false, false ); + + if( ii < yg - PAS_REF / 2 ) + { + GRLine( m_canvas->GetClipBox(), aDC, xg * scale, ii * scale, + ( xg - GRID_REF_W ) * scale, ii * scale, aLnW, aClr1 ); + } + DrawGraphicText( m_canvas, aDC, + wxPoint( ( xg - GRID_REF_W / 2 ) * scale, + ( ii - gxpas / 2 ) * scale ), + aClr1, Line, TEXT_ORIENT_HORIZ, size_ref, + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, + aLnW, false, false ); + } + + int UpperLimit = VARIABLE_BLOCK_START_POSITION; + refx = aSz.x - aRB.x - GRID_REF_W; + refy = aSz.y - aRB.y - GRID_REF_W; for( WsItem = &WS_Date; WsItem != NULL; WsItem = WsItem->Pnext ) { @@ -1424,22 +1416,26 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_DATE: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg += GetTitleBlock().GetDate(); - DrawGraphicText( m_canvas, DC, pos, Color, + msg += aTb.GetDate(); + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, true ); + aLnW, false, true ); break; case WS_REV: if( WsItem->m_Legende ) + { msg = WsItem->m_Legende; - msg += GetTitleBlock().GetRevision(); - DrawGraphicText( m_canvas, DC, pos, Color, - msg, TEXT_ORIENT_HORIZ, size, + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - GetPenSizeForBold( MIN( size.x, size.y ) ), - false, true ); + GetPenSizeForBold( MIN( size.x, size.y ) ), false, true ); + pos.x += ReturnGraphicTextWidth( msg, size.x, false, false ); + } + msg = aTb.GetRevision(); + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, + GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, + GetPenSizeForBold( MIN( size.x, size.y ) ), false, true ); break; case WS_KICAD_VERSION: @@ -1447,67 +1443,67 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid msg = WsItem->m_Legende; msg += g_ProductName + wxGetApp().GetAppName(); msg += wxT( " " ) + GetBuildVersion(); - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); break; case WS_SIZESHEET: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg += pageInfo.GetType(); - DrawGraphicText( m_canvas, DC, pos, Color, + msg += aType; + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); break; case WS_IDENTSHEET: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg << screen->m_ScreenNumber << wxT( "/" ) << screen->m_NumberOfScreen; - DrawGraphicText( m_canvas, DC, pos, Color, + msg << aScr << wxT( "/" ) << aNScr; + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); break; case WS_FILENAME: - { - wxString fname, fext; - wxFileName::SplitPath( screen->GetFileName(), (wxString*) NULL, &fname, &fext ); + { + wxString fname, fext; + wxFileName::SplitPath( aFlNm, (wxString*) NULL, &fname, &fext ); - if( WsItem->m_Legende ) - msg = WsItem->m_Legende; + if( WsItem->m_Legende ) + msg = WsItem->m_Legende; - msg << fname << wxT( "." ) << fext; - DrawGraphicText( m_canvas, DC, pos, Color, - msg, TEXT_ORIENT_HORIZ, size, - GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); - } - break; + msg << fname << wxT( "." ) << fext; + DrawGraphicText( m_canvas, aDC, pos, aClr1, + msg, TEXT_ORIENT_HORIZ, size, + GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, + aLnW, false, false ); + } + break; case WS_FULLSHEETNAME: if( WsItem->m_Legende ) msg = WsItem->m_Legende; msg += GetScreenDesc(); - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); break; case WS_COMPANY_NAME: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg += GetTitleBlock().GetCompany(); + msg += aTb.GetCompany(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, GetPenSizeForBold( MIN( size.x, size.y ) ), @@ -1518,25 +1514,29 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_TITLE: if( WsItem->m_Legende ) + { msg = WsItem->m_Legende; - msg += GetTitleBlock().GetTitle(); - DrawGraphicText( m_canvas, DC, pos, Color, - msg, TEXT_ORIENT_HORIZ, size, + DrawGraphicText( m_canvas, aDC, pos, aClr1, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - GetPenSizeForBold( MIN( size.x, size.y ) ), - false, true ); + GetPenSizeForBold( MIN( size.x, size.y ) ), false, true ); + pos.x += ReturnGraphicTextWidth( msg, size.x, false, false ); + } + msg = aTb.GetTitle(); + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, + GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, + GetPenSizeForBold( MIN( size.x, size.y ) ), false, true ); break; case WS_COMMENT1: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg += GetTitleBlock().GetComment1(); + msg += aTb.GetComment1(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; @@ -1544,13 +1544,13 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_COMMENT2: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg += GetTitleBlock().GetComment2(); + msg += aTb.GetComment2(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; @@ -1558,13 +1558,13 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_COMMENT3: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg += GetTitleBlock().GetComment3(); + msg += aTb.GetComment3(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; @@ -1572,13 +1572,13 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid case WS_COMMENT4: if( WsItem->m_Legende ) msg = WsItem->m_Legende; - msg += GetTitleBlock().GetComment4(); + msg += aTb.GetComment4(); if( !msg.IsEmpty() ) { - DrawGraphicText( m_canvas, DC, pos, Color, + DrawGraphicText( m_canvas, aDC, pos, aClr2, msg, TEXT_ORIENT_HORIZ, size, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, - width, false, false ); + aLnW, false, false ); UpperLimit = MAX( UpperLimit, WsItem->m_Posy + SIZETEXT ); } break; @@ -1594,12 +1594,10 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid pos.y = (refy - WsItem->m_Posy) * scale; case WS_SEGMENT: - xg = pageSize.x - - GRID_REF_W - pageInfo.GetRightMarginMils() - WsItem->m_Endx; - yg = pageSize.y - - GRID_REF_W - pageInfo.GetBottomMarginMils() - WsItem->m_Endy; - GRLine( m_canvas->GetClipBox(), DC, pos.x, pos.y, - xg * scale, yg * scale, width, Color ); + xg = aSz.x - GRID_REF_W - aRB.x - WsItem->m_Endx; + yg = aSz.y - GRID_REF_W - aRB.y - WsItem->m_Endy; + GRLine( m_canvas->GetClipBox(), aDC, pos.x, pos.y, + xg * scale, yg * scale, aLnW, aClr1 ); break; } } diff --git a/eeschema/dialogs/dialog_plot_schematic_PS.cpp b/eeschema/dialogs/dialog_plot_schematic_PS.cpp index d932fffe38..b47487756d 100644 --- a/eeschema/dialogs/dialog_plot_schematic_PS.cpp +++ b/eeschema/dialogs/dialog_plot_schematic_PS.cpp @@ -220,10 +220,12 @@ void DIALOG_PLOT_SCHEMATIC_PS::createPSFile() { case PAGE_SIZE_A: plotPage.SetType( wxT( "A" ) ); + plotPage.SetPortrait( actualPage.IsPortrait() ); break; case PAGE_SIZE_A4: plotPage.SetType( wxT( "A4" ) ); + plotPage.SetPortrait( actualPage.IsPortrait() ); break; case PAGE_SIZE_AUTO: diff --git a/eeschema/dialogs/dialog_print_using_printer.cpp b/eeschema/dialogs/dialog_print_using_printer.cpp index a0fc480a29..21c85a7eab 100644 --- a/eeschema/dialogs/dialog_print_using_printer.cpp +++ b/eeschema/dialogs/dialog_print_using_printer.cpp @@ -111,6 +111,24 @@ void DIALOG_PRINT_USING_PRINTER::OnInitDialog( wxInitDialogEvent& event ) { SCH_EDIT_FRAME* parent = GetParent(); + // Initialize page specific print setup dialog settings. + const PAGE_INFO& pageInfo = parent->GetScreen()->GetPageSettings(); + wxPageSetupDialogData& pageSetupDialogData = parent->GetPageSetupData(); + + pageSetupDialogData.SetPaperId( pageInfo.GetPaperId() ); + + if( pageInfo.IsCustom() ) + { + if( pageInfo.IsPortrait() ) + pageSetupDialogData.SetPaperSize( wxSize( Mils2mm( pageInfo.GetWidthMils() ), + Mils2mm( pageInfo.GetHeightMils() ) ) ); + else + pageSetupDialogData.SetPaperSize( wxSize( Mils2mm( pageInfo.GetHeightMils() ), + Mils2mm( pageInfo.GetWidthMils() ) ) ); + } + + pageSetupDialogData.GetPrintData().SetOrientation( pageInfo.GetWxOrientation() ); + if ( GetSizer() ) GetSizer()->SetSizeHints( this ); @@ -342,6 +360,11 @@ void SCH_PRINTOUT::DrawPage( SCH_SCREEN* aScreen ) wxLogDebug( wxT( "Fit rectangle: %d, %d, %d, %d" ), fitRect.x, fitRect.y, fitRect.width, fitRect.height ); + int xoffset = ( fitRect.width - pageSizeIU.x ) / 2; + int yoffset = ( fitRect.height - pageSizeIU.y ) / 2; + + OffsetLogicalOrigin( xoffset, yoffset ); + GRResetPenAndBrush( dc ); if( parent->GetPrintMonochrome() ) diff --git a/eeschema/eeschema_config.cpp b/eeschema/eeschema_config.cpp index 1ce4b12561..3394abbc83 100644 --- a/eeschema/eeschema_config.cpp +++ b/eeschema/eeschema_config.cpp @@ -447,8 +447,8 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetConfigurationSettings( void ) if( !m_configSettings.empty() ) return m_configSettings; - m_configSettings.push_back( new PARAM_CFG_INT( wxT( "Unite" ), - (int*)&g_UserUnit, 0 ) ); + m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "Units" ), + (int*)&g_UserUnit, MILLIMETRES ) ); m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "ColWire" ), &g_LayerDescr.LayerColor[LAYER_WIRE], GREEN ) ); diff --git a/eeschema/load_one_schematic_file.cpp b/eeschema/load_one_schematic_file.cpp index a8a2bfa4ce..70b8cd660d 100644 --- a/eeschema/load_one_schematic_file.cpp +++ b/eeschema/load_one_schematic_file.cpp @@ -195,7 +195,7 @@ again." ); case 'T': // It is a text item. if( sscanf( sline, "%s", Name1 ) != 1 ) { - MsgDiag.Printf( wxT( "Eeschema file text load error at line %d" ), + MsgDiag.Printf( _( "Eeschema file text load error at line %d" ), reader.LineNumber() ); itemLoaded = false; } @@ -211,7 +211,7 @@ again." ); default: itemLoaded = false; - MsgDiag.Printf( wxT( "Eeschema file undefined object at line %d, aborted" ), + MsgDiag.Printf( _( "Eeschema file undefined object at line %d, aborted" ), reader.LineNumber() ); MsgDiag << wxT( "\n" ) << FROM_UTF8( line ); } @@ -304,7 +304,7 @@ bool ReadSchemaDescr( LINE_READER* aLine, wxString& aMsgDiag, SCH_SCREEN* aScree if( !pageInfo.SetType( pagename ) ) { - aMsgDiag.Printf( wxT( "Eeschema file dimension definition error \ + aMsgDiag.Printf( _( "Eeschema file dimension definition error \ line %d, \aAbort reading file.\n" ), aLine->LineNumber() ); aMsgDiag << FROM_UTF8( line ); @@ -322,7 +322,7 @@ line %d, \aAbort reading file.\n" ), } } - // portrait only supported in non custom sizes + // non custom size, set portrait if its present else if( orient && !strcmp( orient, "portrait" ) ) { pageInfo.SetPortrait( true ); diff --git a/eeschema/sch_screen.cpp b/eeschema/sch_screen.cpp index e4ae8eb9ab..72afa485a3 100644 --- a/eeschema/sch_screen.cpp +++ b/eeschema/sch_screen.cpp @@ -98,7 +98,7 @@ static GRID_TYPE SchematicGridList[] = { SCH_SCREEN::SCH_SCREEN() : BASE_SCREEN( SCH_SCREEN_T ), - m_paper( wxT( "A4" ) ) + m_paper( wxT( "A4" ), IsGOST() ) { size_t i; diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index 8c75d3dad4..0b9f8364a0 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -229,9 +229,11 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( wxWindow* father, ReCreateVToolbar(); ReCreateOptToolbar(); - /* Initialize print and page setup dialog settings. */ - m_pageSetupData.GetPrintData().SetQuality( wxPRINT_QUALITY_HIGH ); - m_pageSetupData.GetPrintData().SetOrientation( wxLANDSCAPE ); + // Initialize common print setup dialog settings. + m_pageSetupData.GetPrintData().SetPrintMode( wxPRINT_MODE_PRINTER ); + m_pageSetupData.GetPrintData().SetQuality( wxPRINT_QUALITY_MEDIUM ); + m_pageSetupData.GetPrintData().SetBin( wxPRINTBIN_AUTO ); + m_pageSetupData.GetPrintData().SetNoCopies( 1 ); m_auimgr.SetManagedWindow( this ); @@ -529,7 +531,9 @@ wxString SCH_EDIT_FRAME::GetUniqueFilenameForCurrentSheet() filename.RemoveLast(); #if defined(KICAD_GOST) #ifndef __WINDOWS__ - filename.Remove( 0, 1 ); + wxString newfn; + if( filename.StartsWith( wxT( "-" ), &newfn ) ) + filename = newfn; #endif #endif } diff --git a/include/common.h b/include/common.h index cfb9abd940..4017956a4c 100644 --- a/include/common.h +++ b/include/common.h @@ -39,6 +39,17 @@ #include +#if !wxUSE_PRINTING_ARCHITECTURE +# error "You must use '--enable-printarch' in your wx library configuration." +#endif + +#if defined( __WXGTK__ ) +# if !wxUSE_LIBGNOMEPRINT && !wxUSE_GTKPRINT +# error "You must use '--with-gnomeprint' or '--with-gtkprint' in your wx library configuration." +# endif +#endif + + class wxAboutDialogInfo; // Flag for special keys @@ -106,6 +117,16 @@ enum pseudokeys { #define OFF 0 +/// Convert mm to mils. +inline int Mm2mils( double x ) { return wxRound( x * 1000./25.4 ); } + +/// Convert mils to mm. +inline int Mils2mm( double x ) { return wxRound( x * 25.4 / 1000. ); } + +/// Return whether GOST is in play +bool IsGOST(); + + enum EDA_UNITS_T { INCHES = 0, MILLIMETRES = 1, @@ -131,10 +152,27 @@ class PAGE_INFO { public: - static const wxString Custom; /// "User" defined page type + PAGE_INFO( const wxString& aType = PAGE_INFO::A3, bool IsPortrait = false ); + + // paper size names which are part of the public API, pass to SetType() or + // above constructor. + + static const wxString A4; + static const wxString A3; + static const wxString A2; + static const wxString A1; + static const wxString A0; + static const wxString A; + static const wxString B; + static const wxString C; + static const wxString D; + static const wxString E; + static const wxString GERBER; + static const wxString USLetter; + static const wxString USLegal; + static const wxString USLedger; + static const wxString Custom; ///< "User" defined page type - PAGE_INFO( const wxString& aType = wxT( "A3" ) ); - PAGE_INFO( const wxSize& aSizeMils, const wxString& aName ); /** * Function SetType @@ -150,7 +188,7 @@ public: * * @return bool - true iff @a aStandarePageDescription was a recognized type. */ - bool SetType( const wxString& aStandardPageDescriptionName ); + bool SetType( const wxString& aStandardPageDescriptionName, bool IsPortrait = false ); const wxString& GetType() const { return m_type; } /** @@ -171,6 +209,19 @@ public: void SetPortrait( bool isPortrait ); bool IsPortrait() const { return m_portrait; } + /** + * Function GetWxOrientation. + * @return int - ws' style printing orientation. + */ + int GetWxOrientation() const { return IsPortrait() ? wxPORTRAIT : wxLANDSCAPE; } + + /** + * Function GetPaperId + * @return wxPaperSize - wxPrintData's style paper id associated with + * page type name. + */ + wxPaperSize GetPaperId() const { return m_paper_id; } + void SetWidthMils( int aWidthInMils ); int GetWidthMils() const { return m_size.x; } @@ -196,29 +247,79 @@ public: const wxSize GetSizeIU() const { return wxSize( GetWidthIU(), GetHeightIU() ); } #endif + /** + * Function GetLeftMarginMils. + * @return int - logical page left margin in mils. + */ int GetLeftMarginMils() const { return m_left_margin; } + + /** + * Function GetLeftMarginMils. + * @return int - logical page right margin in mils. + */ int GetRightMarginMils() const { return m_right_margin; } + + /** + * Function GetLeftMarginMils. + * @return int - logical page top margin in mils. + */ int GetTopMarginMils() const { return m_top_margin; } + + /** + * Function GetBottomMarginMils. + * @return int - logical page bottom margin in mils. + */ int GetBottomMarginMils() const { return m_bottom_margin; } + /** + * Function SetLeftMarginMils + * sets left page margin to @a aMargin in mils. + */ void SetLeftMarginMils( int aMargin ) { m_left_margin = aMargin; } + + /** + * Function SetRightMarginMils + * sets right page margin to @a aMargin in mils. + */ void SetRightMarginMils( int aMargin ) { m_right_margin = aMargin; } + + /** + * Function SetTopMarginMils + * sets top page margin to @a aMargin in mils. + */ void SetTopMarginMils( int aMargin ) { m_top_margin = aMargin; } + + /** + * Function SetBottomMarginMils + * sets bottom page margin to @a aMargin in mils. + */ void SetBottomMarginMils( int aMargin ) { m_bottom_margin = aMargin; } /** - * Function SetUserWidthMils - * sets the width of type "User" page in mils, for any type "User" page + * Function SetCustomWidthMils + * sets the width of Custom page in mils, for any custom page * constructed or made via SetType() after making this call. */ - static void SetUserWidthMils( int aWidthInMils ); + static void SetCustomWidthMils( int aWidthInMils ); /** - * Function SetUserHeightMils - * sets the height type "User" page in mils, for any type "User" page + * Function SetCustomHeightMils + * sets the height of Custom page in mils, for any custom page * constructed or made via SetType() after making this call. */ - static void SetUserHeightMils( int aHeightInMils ); + static void SetCustomHeightMils( int aHeightInMils ); + + /** + * Function GetCustomWidthMils. + * @return int - custom paper width in mils. + */ + static int GetCustomWidthMils() { return s_user_width; } + + /** + * Function GetCustomHeightMils. + * @return int - custom paper height in mils. + */ + static int GetCustomHeightMils() { return s_user_height; } /** * Function GetStandardSizes @@ -226,6 +327,11 @@ public: static wxArrayString GetStandardSizes(); */ +protected: + // only the class implementation(s) may use this constructor + PAGE_INFO( const wxSize& aSizeMils, const wxString& aName, wxPaperSize aPaperId ); + + private: // standard pre-defined sizes @@ -252,6 +358,11 @@ private: wxString m_type; ///< paper type: A4, A3, etc. wxSize m_size; ///< mils +/// Min and max page sizes for clamping. +#define MIN_PAGE_SIZE 4000 +#define MAX_PAGE_SIZE 48000 + + int m_left_margin; int m_right_margin; int m_top_margin; @@ -259,10 +370,14 @@ private: bool m_portrait; ///< true if portrait, false if landscape + wxPaperSize m_paper_id; ///< wx' style paper id. + static int s_user_height; static int s_user_width; - void updatePortrait(); + void updatePortrait(); + + void setMargins(); }; diff --git a/include/plot_common.h b/include/plot_common.h index dca0c8c2fe..3da459e1f5 100644 --- a/include/plot_common.h +++ b/include/plot_common.h @@ -412,6 +412,8 @@ public: virtual void SetLayerPolarity( bool aPositive ) {} + void user_to_device_coordinates( wxPoint& pos ); // overload + protected: double plot_scale_adjX, plot_scale_adjY; double plot_width_adj; diff --git a/include/worksheet.h b/include/worksheet.h index 6e7d3ed514..9ed0081f97 100644 --- a/include/worksheet.h +++ b/include/worksheet.h @@ -2,77 +2,79 @@ /* worksheet.h */ /***************/ -/* Values are in 1/1000 inch */ +// Values are in 1/1000 inch -#ifndef __WORKSHEET_H__ -#define __WORKSHEET_H__ +#ifndef WORKSHEET_H_ +#define WORKSHEET_H_ -#define GRID_REF_W 70 /* height of the band reference grid */ -#define SIZETEXT 60 /* worksheet text size */ -#define SIZETEXT_REF 50 /* worksheet frame reference text size */ -#define PAS_REF 2000 /* no reference markings on worksheet frame */ -#define TEXT_VTAB_HEIGHT SIZETEXT * 2 +#include // Mm2mils() + +#define GRID_REF_W 70 // height of the band reference grid +#define SIZETEXT 60 // worksheet text size +#define SIZETEXT_REF 50 // worksheet frame reference text size +#define PAS_REF 2000 // no reference markings on worksheet frame +#define TEXT_VTAB_HEIGHT (SIZETEXT * 2) #if defined(KICAD_GOST) -#define STAMP_OX 185 * 10000 / 254 -#define STAMP_OY 55 * 10000 / 254 +#define STAMP_OX Mm2mils( 185 ) +#define STAMP_OY Mm2mils( 55 ) -#define STAMP_Y_0 0 -#define STAMP_Y_5 5 * 10000 / 254 -#define STAMP_Y_8 8 * 10000 / 254 -#define STAMP_Y_7 7 * 10000 / 254 -#define STAMP_Y_10 10 * 10000 / 254 -#define STAMP_Y_14 14 * 10000 / 254 -#define STAMP_Y_15 15 * 10000 / 254 -#define STAMP_Y_20 20 * 10000 / 254 -#define STAMP_Y_25 25 * 10000 / 254 -#define STAMP_Y_30 30 * 10000 / 254 -#define STAMP_Y_35 35 * 10000 / 254 -#define STAMP_Y_40 40 * 10000 / 254 -#define STAMP_Y_45 45 * 10000 / 254 -#define STAMP_Y_50 50 * 10000 / 254 -#define STAMP_Y_55 55 * 10000 / 254 +#define STAMP_Y_0 0 +#define STAMP_Y_5 Mm2mils( 5 ) +#define STAMP_Y_8 Mm2mils( 8 ) +#define STAMP_Y_7 Mm2mils( 7 ) +#define STAMP_Y_10 Mm2mils( 10 ) +#define STAMP_Y_14 Mm2mils( 14 ) +#define STAMP_Y_15 Mm2mils( 15 ) +#define STAMP_Y_20 Mm2mils( 20 ) +#define STAMP_Y_25 Mm2mils( 25 ) +#define STAMP_Y_30 Mm2mils( 30 ) +#define STAMP_Y_35 Mm2mils( 35 ) +#define STAMP_Y_40 Mm2mils( 40 ) +#define STAMP_Y_45 Mm2mils( 45 ) +#define STAMP_Y_50 Mm2mils( 50 ) +#define STAMP_Y_55 Mm2mils( 55 ) #define STAMP_X_0 0 -#define STAMP_X_10 10 * 10000 / 254 -#define STAMP_X_14 14 * 10000 / 254 -#define STAMP_X_18 18 * 10000 / 254 -#define STAMP_X_30 30 * 10000 / 254 -#define STAMP_X_35 35 * 10000 / 254 -#define STAMP_X_40 40 * 10000 / 254 -#define STAMP_X_45 45 * 10000 / 254 -#define STAMP_X_50 50 * 10000 / 254 -#define STAMP_X_53 53 * 10000 / 254 -#define STAMP_X_65 65 * 10000 / 254 -#define STAMP_X_70 70 * 10000 / 254 -#define STAMP_X_84 84 * 10000 / 254 -#define STAMP_X_85 85 * 10000 / 254 -#define STAMP_X_120 120 * 10000 / 254 -#define STAMP_X_130 130 * 10000 / 254 -#define STAMP_X_137 137 * 10000 / 254 -#define STAMP_X_145 145 * 10000 / 254 -#define STAMP_X_168 168 * 10000 / 254 -#define STAMP_X_178 178 * 10000 / 254 -#define STAMP_X_185 185 * 10000 / 254 +#define STAMP_X_10 Mm2mils( 10 ) +#define STAMP_X_14 Mm2mils( 14 ) +#define STAMP_X_18 Mm2mils( 18 ) +#define STAMP_X_30 Mm2mils( 30 ) +#define STAMP_X_35 Mm2mils( 35 ) +#define STAMP_X_40 Mm2mils( 40 ) +#define STAMP_X_45 Mm2mils( 45 ) +#define STAMP_X_50 Mm2mils( 50 ) +#define STAMP_X_53 Mm2mils( 53 ) +#define STAMP_X_65 Mm2mils( 65 ) +#define STAMP_X_70 Mm2mils( 70 ) +#define STAMP_X_84 Mm2mils( 84 ) +#define STAMP_X_85 Mm2mils( 85 ) +#define STAMP_X_120 Mm2mils( 120 ) +#define STAMP_X_130 Mm2mils( 130 ) +#define STAMP_X_137 Mm2mils( 137 ) +#define STAMP_X_145 Mm2mils( 145 ) +#define STAMP_X_168 Mm2mils( 168 ) +#define STAMP_X_178 Mm2mils( 178 ) +#define STAMP_X_185 Mm2mils( 185 ) -#define STAMP_5 5 * 10000 / 254 -#define STAMP_7 7 * 10000 / 254 -#define STAMP_12 12 * 10000 / 254 +#define STAMP_5 Mm2mils( 5 ) +#define STAMP_7 Mm2mils( 7 ) +#define STAMP_12 Mm2mils( 12 ) -#define STAMP_145 145 * 10000 / 254 -#define STAMP_110 110 * 10000 / 254 -#define STAMP_85 85 * 10000 / 254 -#define STAMP_60 60 * 10000 / 254 -#define STAMP_25 25 * 10000 / 254 +#define STAMP_145 Mm2mils( 145 ) +#define STAMP_110 Mm2mils( 110 ) +#define STAMP_85 Mm2mils( 85 ) +#define STAMP_60 Mm2mils( 60 ) +#define STAMP_25 Mm2mils( 25 ) -#define STAMP_287 287 * 10000 / 254 -#define STAMP_227 227 * 10000 / 254 -#define STAMP_167 167 * 10000 / 254 +#define STAMP_287 Mm2mils( 287 ) +#define STAMP_227 Mm2mils( 227 ) +#define STAMP_167 Mm2mils( 167 ) #endif -/* The coordinates below are relative to the bottom right corner of page and - * will be subtracted from this origin. - */ + +// The coordinates below are relative to the bottom right corner of page and +// will be subtracted from this origin. #define BLOCK_OX 4200 #define BLOCK_KICAD_VERSION_X BLOCK_OX - SIZETEXT #define BLOCK_KICAD_VERSION_Y SIZETEXT @@ -98,6 +100,7 @@ #define BLOCK_COMMENT3_Y (SIZETEXT * 17) #define BLOCK_COMMENT4_Y (SIZETEXT * 19) + struct Ki_WorkSheetData { public: @@ -109,7 +112,8 @@ public: const wxChar* m_Text; }; -/* Work sheet structure type definitions. */ + +/// Work sheet structure type definitions. enum TypeKi_WorkSheetData { WS_DATE, WS_REV, @@ -249,4 +253,4 @@ extern Ki_WorkSheetData WS_Segm4_LT; extern Ki_WorkSheetData WS_Segm5_LT; #endif -#endif /* __WORKSHEET_H__ */ +#endif // WORKSHEET_H_ diff --git a/include/wxstruct.h b/include/wxstruct.h index f2f63d25be..9d84072058 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -447,7 +447,6 @@ protected: */ virtual void unitsChangeRefresh(); - public: EDA_DRAW_FRAME( wxWindow* father, int idtype, const wxString& title, const wxPoint& pos, const wxSize& size, @@ -667,10 +666,32 @@ public: * Function GetZoom * @return The current zoom level. */ - double GetZoom( void ); + double GetZoom(); - void TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_width ); - void PlotWorkSheet( PLOTTER *plotter, BASE_SCREEN* screen ); + void TraceWorkSheet( wxDC* aDC, BASE_SCREEN* aScreen, int aLineWidth ); + + /** + * Function TraceWorkSheet is a core function for drawing of the page layout with + * the frame and the basic inscriptions. + * @param aDC The device context. + * @param aSz The size of the page layout. + * @param aLT The left top margin of the page layout. + * @param aRB The right bottom margin of the page layout. + * @param aType The paper size type (for basic inscriptions). + * @param aFlNm The file name (for basic inscriptions). + * @param aTb The block of titles (for basic inscriptions). + * @param aNScr The number of screens (for basic inscriptions). + * @param aScr The screen number (for basic inscriptions). + * @param aLnW The line width for drawing. + * @param aClr1 The color for drawing. + * @param aClr2 The colr for inscriptions. + */ + void TraceWorkSheet( wxDC* aDC, wxSize& aSz, wxPoint& aLT, wxPoint& aRB, + wxString& aType, wxString& aFlNm, TITLE_BLOCK& aTb, + int aNScr, int aScr, int aLnW, EDA_Colors aClr1 = RED, + EDA_Colors aClr2 = RED ); + + void PlotWorkSheet( PLOTTER* aPlotter, BASE_SCREEN* aScreen ); /** * Function GetXYSheetReferences diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt index 92140becdc..55b0ca2bd8 100644 --- a/pcbnew/CMakeLists.txt +++ b/pcbnew/CMakeLists.txt @@ -205,9 +205,7 @@ set(PCBNEW_SRCS ### # We need some extra sources from common ### -set(PCBNEW_COMMON_SRCS - ../common/dialogs/dialog_page_settings.cpp -) +#set(PCBNEW_COMMON_SRCS ../common/dialogs/dialog_page_settings.cpp ) ### diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 1026464c9a..1d07f19b8a 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -30,6 +30,7 @@ wxPoint BOARD_ITEM::ZeroOffset( 0, 0 ); BOARD::BOARD() : BOARD_ITEM( (BOARD_ITEM*) NULL, PCB_T ), m_NetInfo( this ), + m_paper( IsGOST() ? PAGE_INFO::A4 : PAGE_INFO::A3, IsGOST() ), m_NetClasses( this ) { // we have not loaded a board yet, assume latest until then. diff --git a/pcbnew/dialogs/dialog_print_using_printer.cpp b/pcbnew/dialogs/dialog_print_using_printer.cpp index 10fa3d12a6..e4985b19ad 100644 --- a/pcbnew/dialogs/dialog_print_using_printer.cpp +++ b/pcbnew/dialogs/dialog_print_using_printer.cpp @@ -96,6 +96,8 @@ void PCB_EDIT_FRAME::ToPrinter( wxCommandEvent& event ) * Display the print dialog */ { + const PAGE_INFO& pageInfo = GetPageSettings(); + if( s_PrintData == NULL ) // First print { s_PrintData = new wxPrintData(); @@ -104,14 +106,33 @@ void PCB_EDIT_FRAME::ToPrinter( wxCommandEvent& event ) { DisplayError( this, _( "Error Init Printer info" ) ); } - s_PrintData->SetQuality( wxPRINT_QUALITY_HIGH ); // Default resolution = HIGHT; + s_PrintData->SetQuality( wxPRINT_QUALITY_HIGH ); // Default resolution = HIGH; } - s_PrintData->SetOrientation( GetPageSettings().IsPortrait() ? wxPORTRAIT : wxLANDSCAPE ); + if( s_pageSetupData == NULL ) + s_pageSetupData = new wxPageSetupDialogData( *s_PrintData ); - DIALOG_PRINT_USING_PRINTER* frame = new DIALOG_PRINT_USING_PRINTER( this ); + s_pageSetupData->SetPaperId( pageInfo.GetPaperId() ); - frame->ShowModal(); frame->Destroy(); + if( pageInfo.IsCustom() ) + { + if( pageInfo.IsPortrait() ) + s_pageSetupData->SetPaperSize( wxSize( Mils2mm( pageInfo.GetWidthMils() ), + Mils2mm( pageInfo.GetHeightMils() ) ) ); + else + s_pageSetupData->SetPaperSize( wxSize( Mils2mm( pageInfo.GetHeightMils() ), + Mils2mm( pageInfo.GetWidthMils() ) ) ); + } + + s_pageSetupData->SetMarginTopLeft( wxPoint( 0, 0 ) ); + s_pageSetupData->SetMarginBottomRight( wxPoint( 0, 0 ) ); + s_pageSetupData->GetPrintData().SetOrientation( pageInfo.GetWxOrientation() ); + + *s_PrintData = s_pageSetupData->GetPrintData(); + + DIALOG_PRINT_USING_PRINTER dlg( this ); + + dlg.ShowModal(); } @@ -147,14 +168,6 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) int layer_max = NB_LAYERS; wxString msg; BOARD* board = m_Parent->GetBoard(); - if( s_pageSetupData == NULL ) - { - s_pageSetupData = new wxPageSetupDialogData; - // Set initial page margins. - // Margins are already set in Pcbnew, so we cans use 0 - s_pageSetupData->SetMarginTopLeft(wxPoint(0, 0)); - s_pageSetupData->SetMarginBottomRight(wxPoint(0, 0)); - } s_Parameters.m_PageSetupData = s_pageSetupData; @@ -203,7 +216,6 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) } } - // Option for excluding contents of "Edges Pcb" layer m_Exclude_Edges_Pcb->Show( true ); @@ -269,10 +281,10 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) m_DialogPenWidth->SetValue( ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, m_Parent->GetInternalUnits() ) ); - // Create scale adjust option msg.Printf( wxT( "%f" ), s_Parameters.m_XScaleAdjust ); m_FineAdjustXscaleOpt->SetValue( msg ); + msg.Printf( wxT( "%f" ), s_Parameters.m_YScaleAdjust ); m_FineAdjustYscaleOpt->SetValue( msg ); @@ -416,11 +428,10 @@ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( ) /**********************************************/ void DIALOG_PRINT_USING_PRINTER::SetPenWidth() /***********************************************/ - -/* Get the new pen width value, and verify min et max value - * NOTE: s_Parameters.m_PenDefaultSize is in internal units - */ { + // Get the new pen width value, and verify min et max value + // NOTE: s_Parameters.m_PenDefaultSize is in internal units + s_Parameters.m_PenDefaultSize = ReturnValueFromTextCtrl( *m_DialogPenWidth, m_Parent->GetInternalUnits() ); if( s_Parameters.m_PenDefaultSize > WIDTH_MAX_VALUE ) @@ -443,6 +454,7 @@ void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event ) { double scale = s_ScaleList[m_ScaleOption->GetSelection()]; bool enable = (scale == 1.0); + if( m_FineAdjustXscaleOpt ) m_FineAdjustXscaleOpt->Enable(enable); if( m_FineAdjustYscaleOpt ) @@ -453,12 +465,7 @@ void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event ) /**********************************************************/ void DIALOG_PRINT_USING_PRINTER::OnPageSetup( wxCommandEvent& event ) /**********************************************************/ - -/* Open a dialog box for printer setup (printer options, page size ...) - */ { - *s_pageSetupData = *s_PrintData; - wxPageSetupDialog pageSetupDialog(this, s_pageSetupData); pageSetupDialog.ShowModal(); @@ -470,9 +477,6 @@ void DIALOG_PRINT_USING_PRINTER::OnPageSetup( wxCommandEvent& event ) /************************************************************/ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event ) /************************************************************/ - -/* Open and display a previewer frame for printing - */ { SetPrintParameters( ); @@ -499,7 +503,6 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event ) return; } - // Uses the parent position and size. // @todo uses last position and size ans store them when exit in m_Config wxPoint WPos = m_Parent->GetPosition(); @@ -515,9 +518,6 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event ) /***************************************************************************/ void DIALOG_PRINT_USING_PRINTER::OnPrintButtonClick( wxCommandEvent& event ) /***************************************************************************/ - -/* Called on activate Print button - */ { SetPrintParameters( ); @@ -536,7 +536,8 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintButtonClick( wxCommandEvent& event ) wxString title = _( "Print" ); BOARD_PRINTOUT_CONTROLER printout( s_Parameters, m_Parent, title ); -#if !defined(__WINDOWS__) && !wxCHECK_VERSION(2,9,0) + // Alexander's patch had this removed altogether, waiting for testing. +#if 0 && !defined(__WINDOWS__) && !wxCHECK_VERSION(2,9,0) wxDC* dc = printout.GetDC(); ( (wxPostScriptDC*) dc )->SetResolution( 600 ); // Postscript DC resolution is 600 ppi #endif diff --git a/pcbnew/plot_rtn.cpp b/pcbnew/plot_rtn.cpp index 0d3f0ca685..70197e6d06 100644 --- a/pcbnew/plot_rtn.cpp +++ b/pcbnew/plot_rtn.cpp @@ -32,12 +32,6 @@ static void Plot_Edges_Modules( PLOTTER* plotter, BOARD* pcb, int aLayerMask, static void PlotTextModule( PLOTTER* plotter, TEXTE_MODULE* pt_texte, EDA_DRAW_MODE_T trace_mode ); -static int doIntValueFitToBand( int aInt, int aMin, int aMax ) -{ - if( aInt < aMin ) return aMin; - if( aInt > aMax ) return aMax; - return aInt; -} /* Creates the plot for silkscreen layers */ @@ -1024,7 +1018,7 @@ void PCB_BASE_FRAME::PlotDrillMark( PLOTTER* aPlotter, diam.x = diam.y = pts->GetDrillValue(); diam.x -= aPlotter->get_plot_width_adj(); - diam.x = doIntValueFitToBand( diam.x, 1, pts->m_Width - 1 ); + diam.x = Clamp( 1, diam.x, pts->m_Width - 1 ); aPlotter->flash_pad_circle( pos, diam.x, aTraceMode ); } @@ -1042,9 +1036,9 @@ void PCB_BASE_FRAME::PlotDrillMark( PLOTTER* aPlotter, { diam = pad->GetDrillSize(); diam.x -= aPlotter->get_plot_width_adj(); - diam.x = doIntValueFitToBand( diam.x, 1, pad->GetSize().x - 1 ); + diam.x = Clamp( 1, diam.x, pad->GetSize().x - 1 ); diam.y -= aPlotter->get_plot_width_adj(); - diam.y = doIntValueFitToBand( diam.y, 1, pad->GetSize().y - 1 ); + diam.y = Clamp( 1, diam.y, pad->GetSize().y - 1 ); aPlotter->flash_pad_oval( pos, diam, pad->GetOrientation(), aTraceMode ); } else @@ -1052,7 +1046,7 @@ void PCB_BASE_FRAME::PlotDrillMark( PLOTTER* aPlotter, // It is quite possible that the real pad drill value is less then small drill value. diam.x = aSmallDrillShape ? MIN( SMALL_DRILL, pad->GetDrillSize().x ) : pad->GetDrillSize().x; diam.x -= aPlotter->get_plot_width_adj(); - diam.x = doIntValueFitToBand( diam.x, 1, pad->GetSize().x - 1 ); + diam.x = Clamp( 1, diam.x, pad->GetSize().x - 1 ); aPlotter->flash_pad_circle( pos, diam.x, aTraceMode ); } } From 12a5a2da4183c9e6c87b1de8baf6f58c8c0df5b2 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Mon, 26 Mar 2012 19:47:08 -0400 Subject: [PATCH 36/68] Minor code improvements and coding policy fixes. * BLOCK_SELECTOR class is not longer derived from EDA_ITEM. * Encapsulate BLOCK_SELECTOR class member variables and add access methods. * Move HandleBlockBegin() function from block_commande.cpp to drawframe.cpp. * Remove virtual methods from top level derived objects per future coding policy change. * Remove Doxygen copydoc statement from objects derived from EDA_ITEM since the comments are automatically copied to the derived object. * Removed copy and pasted Doxygen comments from objects derived from EDA_ITEM. --- 3d-viewer/3d_draw.cpp | 4 +- common/base_struct.cpp | 14 +- common/block_commande.cpp | 180 +++--------- common/common_plot_functions.cpp | 2 +- common/drawframe.cpp | 71 +++++ common/drawpanel.cpp | 19 +- common/drawtxt.cpp | 10 +- common/gr_basic.cpp | 2 +- common/worksheet.cpp | 4 +- eeschema/block.cpp | 106 +++---- eeschema/block_libedit.cpp | 50 ++-- eeschema/dialogs/dialog_color_config.cpp | 6 +- eeschema/hotkeys.cpp | 2 +- eeschema/lib_arc.h | 118 ++------ eeschema/lib_bezier.h | 112 ++------ eeschema/lib_circle.h | 125 ++------- eeschema/lib_draw_item.h | 102 ++++--- eeschema/lib_field.cpp | 2 +- eeschema/lib_field.h | 136 ++------- eeschema/lib_pin.cpp | 30 +- eeschema/lib_pin.h | 144 +++------- eeschema/lib_polyline.h | 128 ++------- eeschema/lib_rectangle.h | 125 ++------- eeschema/lib_text.cpp | 4 +- eeschema/lib_text.h | 139 ++------- eeschema/libedit_onrightclick.cpp | 67 +++-- eeschema/libeditframe.cpp | 14 +- eeschema/onrightclick.cpp | 4 +- eeschema/protos.h | 2 +- eeschema/sch_bitmap.h | 70 ++--- eeschema/sch_bus_entry.h | 88 ++---- eeschema/sch_component.h | 101 ++----- eeschema/sch_field.cpp | 4 +- eeschema/sch_field.h | 81 ++---- eeschema/sch_junction.h | 84 ++---- eeschema/sch_line.h | 96 ++----- eeschema/sch_marker.cpp | 10 +- eeschema/sch_marker.h | 61 ++-- eeschema/sch_no_connect.h | 88 ++---- eeschema/sch_polyline.h | 62 ++--- eeschema/sch_screen.cpp | 10 +- eeschema/sch_sheet.cpp | 16 +- eeschema/sch_sheet.h | 194 ++++--------- eeschema/sch_text.cpp | 30 +- eeschema/sch_text.h | 340 +++++------------------ eeschema/schedit.cpp | 8 +- eeschema/schframe.cpp | 2 +- gerbview/block.cpp | 36 +-- gerbview/draw_gerber_screen.cpp | 2 +- gerbview/events_called_functions.cpp | 12 +- gerbview/onrightclick.cpp | 2 +- include/base_struct.h | 27 +- include/block_commande.h | 144 ++++++---- include/class_marker_base.h | 4 +- include/colors.h | 4 +- include/drawtxt.h | 4 +- include/gr_basic.h | 4 +- include/plot_common.h | 2 +- include/wxstruct.h | 19 +- pcbnew/block.cpp | 60 ++-- pcbnew/block_module_editor.cpp | 47 ++-- pcbnew/class_dimension.h | 51 +--- pcbnew/class_drawsegment.h | 44 --- pcbnew/class_edge_mod.h | 27 +- pcbnew/class_marker_pcb.h | 60 +--- pcbnew/class_mire.h | 41 +-- pcbnew/class_module.h | 88 +----- pcbnew/class_pad.h | 67 +---- pcbnew/class_pcb_text.cpp | 7 +- pcbnew/class_pcb_text.h | 57 +--- pcbnew/class_text_mod.cpp | 2 +- pcbnew/class_text_mod.h | 46 +-- pcbnew/class_track.h | 80 +----- pcbnew/controle.cpp | 2 +- pcbnew/edit.cpp | 19 +- pcbnew/export_vrml.cpp | 6 +- pcbnew/hotkeys_module_editor.cpp | 10 +- pcbnew/modedit.cpp | 12 +- pcbnew/modedit_onclick.cpp | 2 +- pcbnew/onrightclick.cpp | 2 +- 80 files changed, 1223 insertions(+), 2834 deletions(-) diff --git a/3d-viewer/3d_draw.cpp b/3d-viewer/3d_draw.cpp index 074ad03e44..02f77d724d 100644 --- a/3d-viewer/3d_draw.cpp +++ b/3d-viewer/3d_draw.cpp @@ -668,7 +668,7 @@ void EDA_3D_CANVAS::Draw3D_DrawText( TEXTE_PCB* text ) for( unsigned i = 0; iCount(); i++ ) { wxString txt = list->Item( i ); - DrawGraphicText( NULL, NULL, pos, (EDA_Colors) color, + DrawGraphicText( NULL, NULL, pos, (EDA_COLOR_T) color, txt, text->GetOrientation(), size, text->m_HJustify, text->m_VJustify, text->GetThickness(), text->m_Italic, @@ -680,7 +680,7 @@ void EDA_3D_CANVAS::Draw3D_DrawText( TEXTE_PCB* text ) } else { - DrawGraphicText( NULL, NULL, text->m_Pos, (EDA_Colors) color, + DrawGraphicText( NULL, NULL, text->m_Pos, (EDA_COLOR_T) color, text->m_Text, text->GetOrientation(), size, text->m_HJustify, text->m_VJustify, text->GetThickness(), text->m_Italic, diff --git a/common/base_struct.cpp b/common/base_struct.cpp index a2119ab66b..bc75190dee 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -437,8 +437,8 @@ bool EDA_TEXT::TextHitTest( const EDA_RECT& aRect, bool aContains, int aAccuracy void EDA_TEXT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - EDA_Colors aColor, int aDrawMode, - EDA_DRAW_MODE_T aFillMode, EDA_Colors aAnchor_color ) + EDA_COLOR_T aColor, int aDrawMode, + EDA_DRAW_MODE_T aFillMode, EDA_COLOR_T aAnchor_color ) { if( m_MultilineAllowed ) { @@ -459,7 +459,7 @@ void EDA_TEXT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, aColor, aDrawMode, aFillMode, - i ? UNSPECIFIED_COLOR : aAnchor_color, + i ? UNSPECIFIED : aAnchor_color, txt, pos ); pos += offset; @@ -481,9 +481,9 @@ void EDA_TEXT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, void EDA_TEXT::DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, - const wxPoint& aOffset, EDA_Colors aColor, + const wxPoint& aOffset, EDA_COLOR_T aColor, int aDrawMode, EDA_DRAW_MODE_T aFillMode, - EDA_Colors aAnchor_color, + EDA_COLOR_T aAnchor_color, wxString& aText, wxPoint aPos ) { int width = m_Thickness; @@ -495,12 +495,12 @@ void EDA_TEXT::DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, GRSetDrawMode( aDC, aDrawMode ); /* Draw text anchor, if allowed */ - if( aAnchor_color != UNSPECIFIED_COLOR ) + if( aAnchor_color != UNSPECIFIED ) { int anchor_size = aDC->DeviceToLogicalXRel( 2 ); - aAnchor_color = (EDA_Colors) ( aAnchor_color & MASKCOLOR ); + aAnchor_color = (EDA_COLOR_T) ( aAnchor_color & MASKCOLOR ); int cX = aPos.x + aOffset.x; int cY = aPos.y + aOffset.y; diff --git a/common/block_commande.cpp b/common/block_commande.cpp index 47c98ef117..fd6746fbcf 100644 --- a/common/block_commande.cpp +++ b/common/block_commande.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -40,11 +39,12 @@ #include -BLOCK_SELECTOR::BLOCK_SELECTOR() : EDA_RECT() +BLOCK_SELECTOR::BLOCK_SELECTOR() : + EDA_RECT() { - m_State = STATE_NO_BLOCK; /* State (enum BlockState) of block. */ - m_Command = BLOCK_IDLE; /* Type (enum CmdBlockType) of operation. */ - m_Color = BROWN; + m_state = STATE_NO_BLOCK; /* State (enum BLOCK_STATE_T) of block. */ + m_command = BLOCK_IDLE; /* Type (enum BLOCK_COMMAND_T) of operation. */ + m_color = BROWN; } @@ -53,14 +53,11 @@ BLOCK_SELECTOR::~BLOCK_SELECTOR() } -/* - * Print block command message (Block move, Block copy ...) in status bar - */ void BLOCK_SELECTOR::SetMessageBlock( EDA_DRAW_FRAME* frame ) { wxString msg; - switch( m_Command ) + switch( m_command ) { case BLOCK_IDLE: break; @@ -137,193 +134,92 @@ void BLOCK_SELECTOR::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf } -/** - * Function InitData - * Init the initial values of a BLOCK_SELECTOR, before starting a block command - */ void BLOCK_SELECTOR::InitData( EDA_DRAW_PANEL* aPanel, const wxPoint& startpos ) { - m_State = STATE_BLOCK_INIT; + m_state = STATE_BLOCK_INIT; SetOrigin( startpos ); SetSize( wxSize( 0, 0 ) ); - m_ItemsSelection.ClearItemsList(); + m_items.ClearItemsList(); aPanel->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); } -/** - * Function ClearItemsList - * delete only the list of EDA_ITEM * pointers, NOT the pointed data - * itself - */ void BLOCK_SELECTOR::ClearItemsList() { - m_ItemsSelection.ClearItemsList(); + m_items.ClearItemsList(); } -/** - * Function ClearListAndDeleteItems - * delete only the list of EDA_ITEM * pointers, AND the data pinted - * by m_Item - */ + void BLOCK_SELECTOR::ClearListAndDeleteItems() { - m_ItemsSelection.ClearListAndDeleteItems(); + m_items.ClearListAndDeleteItems(); } -/** - * Function PushItem - * Add aItem to the list of items - * @param aItem = an ITEM_PICKER to add to the list - */ + void BLOCK_SELECTOR::PushItem( ITEM_PICKER& aItem ) { - m_ItemsSelection.PushItem( aItem ); + m_items.PushItem( aItem ); } void BLOCK_SELECTOR::Clear() { - if( m_Command != BLOCK_IDLE ) + if( m_command != BLOCK_IDLE ) { - m_Command = BLOCK_IDLE; - m_State = STATE_NO_BLOCK; + m_command = BLOCK_IDLE; + m_state = STATE_NO_BLOCK; ClearItemsList(); } } -/* First command block function: - * Init the Block infos: command type, initial position, and other variables.. - */ -bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* DC, int key, const wxPoint& startpos ) -{ - BLOCK_SELECTOR* Block = &GetScreen()->m_BlockLocate; - - if( ( Block->m_Command != BLOCK_IDLE ) || ( Block->m_State != STATE_NO_BLOCK ) ) - return false; - - Block->m_Command = (CmdBlockType) ReturnBlockCommand( key ); - - if( Block->m_Command == 0 ) - return false; - - switch( Block->m_Command ) - { - case BLOCK_IDLE: - break; - - case BLOCK_MOVE: /* Move */ - case BLOCK_DRAG: /* Drag */ - case BLOCK_COPY: /* Copy */ - case BLOCK_DELETE: /* Delete */ - case BLOCK_SAVE: /* Save */ - case BLOCK_ROTATE: /* Rotate 90 deg */ - case BLOCK_FLIP: /* Flip */ - case BLOCK_ZOOM: /* Window Zoom */ - case BLOCK_MIRROR_X: - case BLOCK_MIRROR_Y: /* mirror */ - case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ - Block->InitData( m_canvas, startpos ); - break; - - case BLOCK_PASTE: - Block->InitData( m_canvas, startpos ); - Block->m_BlockLastCursorPosition.x = 0; - Block->m_BlockLastCursorPosition.y = 0; - InitBlockPasteInfos(); - - if( Block->m_ItemsSelection.GetCount() == 0 ) /* No data to paste */ - { - DisplayError( this, wxT( "No Block to paste" ), 20 ); - GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; - m_canvas->SetMouseCaptureCallback( NULL ); - return true; - } - - if( !m_canvas->IsMouseCaptured() ) - { - Block->m_ItemsSelection.ClearItemsList(); - DisplayError( this, - wxT( "EDA_DRAW_FRAME::HandleBlockBegin() Err: m_mouseCaptureCallback NULL" ) ); - return true; - } - - Block->m_State = STATE_BLOCK_MOVE; - m_canvas->CallMouseCapture( DC, startpos, false ); - break; - - default: - { - wxString msg; - msg << wxT( "EDA_DRAW_FRAME::HandleBlockBegin() error: Unknown command " ) << - Block->m_Command; - DisplayError( this, msg ); - } - break; - } - - Block->SetMessageBlock( this ); - return true; -} - - -/* Redraw the outlines of the block which shows the search area for block - * commands - * The first point of the rectangle showing the area is initialised - * by Initm_BlockLocateDatas(). - * The other point of the rectangle is the mouse cursor - */ void DrawAndSizingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition, bool aErase ) { - BLOCK_SELECTOR* PtBlock; + BLOCK_SELECTOR* block; - PtBlock = &aPanel->GetScreen()->m_BlockLocate; + block = &aPanel->GetScreen()->m_BlockLocate; - PtBlock->m_MoveVector = wxPoint( 0, 0 ); + block->SetMoveVector( wxPoint( 0, 0 ) ); if( aErase ) - PtBlock->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, PtBlock->m_Color ); + block->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, block->GetColor() ); - PtBlock->m_BlockLastCursorPosition = aPanel->GetScreen()->GetCrossHairPosition(); - PtBlock->SetEnd( aPanel->GetScreen()->GetCrossHairPosition() ); + block->SetLastCursorPosition( aPanel->GetScreen()->GetCrossHairPosition() ); + block->SetEnd( aPanel->GetScreen()->GetCrossHairPosition() ); - PtBlock->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, PtBlock->m_Color ); + block->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, block->GetColor() ); - if( PtBlock->m_State == STATE_BLOCK_INIT ) + if( block->GetState() == STATE_BLOCK_INIT ) { - if( PtBlock->GetWidth() || PtBlock->GetHeight() ) + if( block->GetWidth() || block->GetHeight() ) /* 2nd point exists: the rectangle is not surface anywhere */ - PtBlock->m_State = STATE_BLOCK_END; + block->SetState( STATE_BLOCK_END ); } } -/* - * Cancel Current block operation. - */ -void AbortBlockCurrentCommand( EDA_DRAW_PANEL* Panel, wxDC* DC ) +void AbortBlockCurrentCommand( EDA_DRAW_PANEL* aPanel, wxDC* aDC ) { - BASE_SCREEN* screen = Panel->GetScreen(); + BASE_SCREEN* screen = aPanel->GetScreen(); - if( Panel->IsMouseCaptured() ) /* Erase current drawing on screen */ + if( aPanel->IsMouseCaptured() ) /* Erase current drawing on screen */ { /* Clear block outline. */ - Panel->CallMouseCapture( DC, wxDefaultPosition, false ); - Panel->SetMouseCapture( NULL, NULL ); + aPanel->CallMouseCapture( aDC, wxDefaultPosition, false ); + aPanel->SetMouseCapture( NULL, NULL ); screen->SetCurItem( NULL ); /* Delete the picked wrapper if this is a picked list. */ - if( screen->m_BlockLocate.m_Command != BLOCK_PASTE ) + if( screen->m_BlockLocate.GetCommand() != BLOCK_PASTE ) screen->m_BlockLocate.ClearItemsList(); } - screen->m_BlockLocate.m_State = STATE_NO_BLOCK; - screen->m_BlockLocate.m_Command = BLOCK_ABORT; - Panel->GetParent()->HandleBlockEnd( DC ); + screen->m_BlockLocate.SetState( STATE_NO_BLOCK ); + screen->m_BlockLocate.SetCommand( BLOCK_ABORT ); + aPanel->GetParent()->HandleBlockEnd( aDC ); - screen->m_BlockLocate.m_Command = BLOCK_IDLE; - Panel->GetParent()->DisplayToolMsg( wxEmptyString ); - Panel->SetCursor( (wxStockCursor) Panel->GetCurrentCursor() ); + screen->m_BlockLocate.SetCommand( BLOCK_IDLE ); + aPanel->GetParent()->DisplayToolMsg( wxEmptyString ); + aPanel->SetCursor( (wxStockCursor) aPanel->GetCurrentCursor() ); } diff --git a/common/common_plot_functions.cpp b/common/common_plot_functions.cpp index 0638cb15eb..cd140a1ae7 100644 --- a/common/common_plot_functions.cpp +++ b/common/common_plot_functions.cpp @@ -28,7 +28,7 @@ void EDA_DRAW_FRAME::PlotWorkSheet( PLOTTER* plotter, BASE_SCREEN* screen ) int xg, yg; wxPoint pos, ref; - EDA_Colors color; + EDA_COLOR_T color; // paper is sized in mils. Here is a conversion factor to // scale mils to internal units. diff --git a/common/drawframe.cpp b/common/drawframe.cpp index 333e00acf4..9378ca26d0 100644 --- a/common/drawframe.cpp +++ b/common/drawframe.cpp @@ -883,3 +883,74 @@ wxString EDA_DRAW_FRAME::CoordinateToString( int aValue, bool aConvertToMils ) { return ::CoordinateToString( aValue, m_internalUnits, aConvertToMils ); } + + +bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* aDC, int aKey, const wxPoint& aPosition ) +{ + BLOCK_SELECTOR* Block = &GetScreen()->m_BlockLocate; + + if( ( Block->GetCommand() != BLOCK_IDLE ) || ( Block->GetState() != STATE_NO_BLOCK ) ) + return false; + + Block->SetCommand( (BLOCK_COMMAND_T) ReturnBlockCommand( aKey ) ); + + if( Block->GetCommand() == 0 ) + return false; + + switch( Block->GetCommand() ) + { + case BLOCK_IDLE: + break; + + case BLOCK_MOVE: /* Move */ + case BLOCK_DRAG: /* Drag */ + case BLOCK_COPY: /* Copy */ + case BLOCK_DELETE: /* Delete */ + case BLOCK_SAVE: /* Save */ + case BLOCK_ROTATE: /* Rotate 90 deg */ + case BLOCK_FLIP: /* Flip */ + case BLOCK_ZOOM: /* Window Zoom */ + case BLOCK_MIRROR_X: + case BLOCK_MIRROR_Y: /* mirror */ + case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ + Block->InitData( m_canvas, aPosition ); + break; + + case BLOCK_PASTE: + Block->InitData( m_canvas, aPosition ); + Block->SetLastCursorPosition( wxPoint( 0, 0 ) ); + InitBlockPasteInfos(); + + if( Block->GetCount() == 0 ) /* No data to paste */ + { + DisplayError( this, wxT( "No Block to paste" ), 20 ); + GetScreen()->m_BlockLocate.SetCommand( BLOCK_IDLE ); + m_canvas->SetMouseCaptureCallback( NULL ); + return true; + } + + if( !m_canvas->IsMouseCaptured() ) + { + Block->ClearItemsList(); + DisplayError( this, + wxT( "EDA_DRAW_FRAME::HandleBlockBegin() Err: m_mouseCaptureCallback NULL" ) ); + return true; + } + + Block->SetState( STATE_BLOCK_MOVE ); + m_canvas->CallMouseCapture( aDC, aPosition, false ); + break; + + default: + { + wxString msg; + msg << wxT( "EDA_DRAW_FRAME::HandleBlockBegin() error: Unknown command " ) << + Block->GetCommand(); + DisplayError( this, msg ); + } + break; + } + + Block->SetMessageBlock( this ); + return true; +} diff --git a/common/drawpanel.cpp b/common/drawpanel.cpp index b4ff7f47e0..c222e18d20 100644 --- a/common/drawpanel.cpp +++ b/common/drawpanel.cpp @@ -942,7 +942,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) { // A block command is in progress: a left up is the end of block // or this is the end of a double click, already seen - if( screen->m_BlockLocate.m_State == STATE_NO_BLOCK && !ignoreNextLeftButtonRelease ) + if( screen->m_BlockLocate.GetState() == STATE_NO_BLOCK && !ignoreNextLeftButtonRelease ) GetParent()->OnLeftClick( &DC, screen->RefPos( true ) ); ignoreNextLeftButtonRelease = false; @@ -958,7 +958,8 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) ignoreNextLeftButtonRelease = false; } - if( event.ButtonUp( wxMOUSE_BTN_MIDDLE ) && (screen->m_BlockLocate.m_State == STATE_NO_BLOCK) ) + if( event.ButtonUp( wxMOUSE_BTN_MIDDLE ) + && (screen->m_BlockLocate.GetState() == STATE_NO_BLOCK) ) { // The middle button has been released, with no block command: // We use it for a zoom center at cursor position command @@ -1011,7 +1012,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) if( event.LeftDown() || event.MiddleDown() ) { - if( screen->m_BlockLocate.m_State == STATE_BLOCK_MOVE ) + if( screen->m_BlockLocate.GetState() == STATE_BLOCK_MOVE ) { m_requestAutoPan = false; GetParent()->HandleBlockPlace( &DC ); @@ -1023,7 +1024,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) && !IsMouseCaptured() ) { // Mouse is dragging: if no block in progress, start a block command. - if( screen->m_BlockLocate.m_State == STATE_NO_BLOCK ) + if( screen->m_BlockLocate.GetState() == STATE_NO_BLOCK ) { // Start a block command int cmd_type = kbstat; @@ -1068,7 +1069,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) ( ABS( screen->m_BlockLocate.GetWidth() ) < BLOCK_MINSIZE_LIMIT ) && ( ABS( screen->m_BlockLocate.GetHeight() ) < BLOCK_MINSIZE_LIMIT ); - if( (screen->m_BlockLocate.m_State != STATE_NO_BLOCK) && BlockIsSmall ) + if( (screen->m_BlockLocate.GetState() != STATE_NO_BLOCK) && BlockIsSmall ) { if( m_endMouseCaptureCallback ) { @@ -1078,12 +1079,12 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) SetCursor( (wxStockCursor) m_currentCursor ); } - else if( screen->m_BlockLocate.m_State == STATE_BLOCK_END ) + else if( screen->m_BlockLocate.GetState() == STATE_BLOCK_END ) { m_requestAutoPan = false; GetParent()->HandleBlockEnd( &DC ); SetCursor( (wxStockCursor) m_currentCursor ); - if( screen->m_BlockLocate.m_State == STATE_BLOCK_MOVE ) + if( screen->m_BlockLocate.GetState() == STATE_BLOCK_MOVE ) { m_requestAutoPan = true; SetCursor( wxCURSOR_HAND ); @@ -1105,8 +1106,8 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) #if 0 wxString msg_debug; msg_debug.Printf( " block state %d, cmd %d", - screen->m_BlockLocate.m_State, - screen->m_BlockLocate.m_Command ); + screen->m_BlockLocate.GetState(), + screen->m_BlockLocate.GetCommand() ); GetParent()->PrintMsg( msg_debug ); #endif diff --git a/common/drawtxt.cpp b/common/drawtxt.cpp index e811050bba..36887666a4 100644 --- a/common/drawtxt.cpp +++ b/common/drawtxt.cpp @@ -155,7 +155,7 @@ int ReturnGraphicTextWidth( const wxString& aText, int aXSize, bool aItalic, boo static void DrawGraphicTextPline( EDA_RECT* aClipBox, wxDC* aDC, - EDA_Colors aColor, + EDA_COLOR_T aColor, int aWidth, bool aSketchMode, int point_count, @@ -207,7 +207,7 @@ static int overbar_position( int size_v, int thickness ) * @param aPanel = the current m_canvas. NULL if draw within a 3D GL Canvas * @param aDC = the current Device Context. NULL if draw within a 3D GL Canvas * @param aPos = text position (according to h_justify, v_justify) - * @param aColor (enum EDA_Colors) = text color + * @param aColor (enum EDA_COLOR_T) = text color * @param aText = text to draw * @param aOrient = angle in 0.1 degree * @param aSize = text size (size.x or size.y can be < 0 for mirrored texts) @@ -226,7 +226,7 @@ static int overbar_position( int size_v, int thickness ) void DrawGraphicText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPos, - EDA_Colors aColor, + EDA_COLOR_T aColor, const wxString& aText, int aOrient, const wxSize& aSize, @@ -504,7 +504,7 @@ void DrawGraphicText( EDA_DRAW_PANEL* aPanel, * Function PlotGraphicText * same as DrawGraphicText, but plot graphic text insteed of draw it * @param aPos = text position (according to aH_justify, aV_justify) - * @param aColor (enum EDA_Colors) = text color + * @param aColor (enum EDA_COLOR_T) = text color * @param aText = text to draw * @param aOrient = angle in 0.1 degree * @param aSize = text size (size.x or size.y can be < 0 for mirrored texts) @@ -517,7 +517,7 @@ void DrawGraphicText( EDA_DRAW_PANEL* aPanel, * @param aBold = true to use a bold font Useful only with default width value (aWidth = 0) */ void PLOTTER::text( const wxPoint& aPos, - enum EDA_Colors aColor, + enum EDA_COLOR_T aColor, const wxString& aText, int aOrient, const wxSize& aSize, diff --git a/common/gr_basic.cpp b/common/gr_basic.cpp index 569f5852ab..98126bf5cd 100644 --- a/common/gr_basic.cpp +++ b/common/gr_basic.cpp @@ -596,7 +596,7 @@ void GRMixedLine( EDA_RECT* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2, * @param aLines = a list of pair of coordinate in user space: a pair for each line. * @param aWidth = the width of each line. * @param aColor = an index into our color table of RGB colors. - * @see EDA_Colors and colors.h + * @see EDA_COLOR_T and colors.h */ void GRLineArray( EDA_RECT* aClipBox, wxDC* aDC, std::vector& aLines, int aWidth, int aColor ) diff --git a/common/worksheet.cpp b/common/worksheet.cpp index 95ccb19872..17515b2963 100644 --- a/common/worksheet.cpp +++ b/common/worksheet.cpp @@ -1036,8 +1036,8 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_wid void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* aDC, wxSize& aSz, wxPoint& aLT, wxPoint& aRB, wxString& aType, wxString& aFlNm, TITLE_BLOCK& aTb, - int aNScr, int aScr, int aLnW, EDA_Colors aClr1, - EDA_Colors aClr2 ) + int aNScr, int aScr, int aLnW, EDA_COLOR_T aClr1, + EDA_COLOR_T aClr2 ) { wxPoint pos; int refx, refy; diff --git a/eeschema/block.cpp b/eeschema/block.cpp index 7b0f5dc1a0..117eadda04 100644 --- a/eeschema/block.cpp +++ b/eeschema/block.cpp @@ -104,7 +104,7 @@ void SCH_EDIT_FRAME::InitBlockPasteInfos() { BLOCK_SELECTOR* block = &GetScreen()->m_BlockLocate; - block->m_ItemsSelection.CopyList( m_blockItems.m_ItemsSelection ); + block->GetItems().CopyList( m_blockItems.GetItems() ); m_canvas->SetMouseCaptureCallback( DrawMovingBlockOutlines ); } @@ -122,13 +122,13 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) { wxString msg; msg.Printf( wxT( "HandleBlockPLace() error : no items to place (cmd %d, state %d)" ), - block->m_Command, block->m_State ); + block->GetCommand(), block->GetState() ); DisplayError( this, msg ); } - block->m_State = STATE_BLOCK_STOP; + block->SetState( STATE_BLOCK_STOP ); - switch( block->m_Command ) + switch( block->GetCommand() ) { case BLOCK_IDLE: break; @@ -141,8 +141,8 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) if( m_canvas->IsMouseCaptured() ) m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); - SaveCopyInUndoList( block->m_ItemsSelection, UR_MOVED, block->m_MoveVector ); - MoveItemsInList( block->m_ItemsSelection, block->m_MoveVector ); + SaveCopyInUndoList( block->GetItems(), UR_MOVED, block->GetMoveVector() ); + MoveItemsInList( block->GetItems(), block->GetMoveVector() ); block->ClearItemsList(); break; @@ -151,10 +151,10 @@ void SCH_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) if( m_canvas->IsMouseCaptured() ) m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); - DuplicateItemsInList( GetScreen(), block->m_ItemsSelection, block->m_MoveVector ); + DuplicateItemsInList( GetScreen(), block->GetItems(), block->GetMoveVector() ); - SaveCopyInUndoList( block->m_ItemsSelection, - ( block->m_Command == BLOCK_PRESELECT_MOVE ) ? UR_CHANGED : UR_NEW ); + SaveCopyInUndoList( block->GetItems(), + ( block->GetCommand() == BLOCK_PRESELECT_MOVE ) ? UR_CHANGED : UR_NEW ); block->ClearItemsList(); break; @@ -203,23 +203,23 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( block->GetCount() ) { - BlockState state = block->m_State; - CmdBlockType command = block->m_Command; + BLOCK_STATE_T state = block->GetState(); + BLOCK_COMMAND_T command = block->GetCommand(); m_canvas->CallEndMouseCapture( DC ); - block->m_State = state; - block->m_Command = command; + block->SetState( state ); + block->SetCommand( command ); m_canvas->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); GetScreen()->SetCrossHairPosition( block->GetEnd() ); - if( block->m_Command != BLOCK_ABORT ) + if( block->GetCommand() != BLOCK_ABORT ) m_canvas->MoveCursorToCrossHair(); } if( m_canvas->IsMouseCaptured() ) { - switch( block->m_Command ) + switch( block->GetCommand() ) { case BLOCK_IDLE: DisplayError( this, wxT( "Error in HandleBlockPLace()" ) ); @@ -245,7 +245,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); m_canvas->SetMouseCaptureCallback( DrawMovingBlockOutlines ); m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); - block->m_State = STATE_BLOCK_MOVE; + block->SetState( STATE_BLOCK_MOVE ); } else { @@ -260,7 +260,7 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( block->GetCount() ) { - DeleteItemsInList( m_canvas, block->m_ItemsSelection ); + DeleteItemsInList( m_canvas, block->GetItems() ); OnModify(); } @@ -275,32 +275,30 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( block->GetCount() ) { - wxPoint move_vector = -GetScreen()->m_BlockLocate.m_BlockLastCursorPosition; - copyBlockItems( block->m_ItemsSelection ); - MoveItemsInList( m_blockItems.m_ItemsSelection, move_vector ); + wxPoint move_vector = -GetScreen()->m_BlockLocate.GetLastCursorPosition(); + copyBlockItems( block->GetItems() ); + MoveItemsInList( m_blockItems.GetItems(), move_vector ); } block->ClearItemsList(); break; case BLOCK_PASTE: - block->m_State = STATE_BLOCK_MOVE; - break; - - case BLOCK_FLIP: /* Pcbnew only! */ + block->SetState( STATE_BLOCK_MOVE ); break; case BLOCK_ZOOM: /* Window Zoom */ zoom_command = true; break; + case BLOCK_FLIP: /* Pcbnew only! */ case BLOCK_SELECT_ITEMS_ONLY: /* Not used */ case BLOCK_ABORT: /* not executed here */ break; } } - if( block->m_Command == BLOCK_ABORT ) + if( block->GetCommand() == BLOCK_ABORT ) { GetScreen()->ClearDrawingState(); m_canvas->Refresh(); @@ -308,11 +306,11 @@ bool SCH_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( ! nextcmd ) { - block->m_State = STATE_NO_BLOCK; - block->m_Command = BLOCK_IDLE; + block->SetState( STATE_NO_BLOCK ); + block->SetCommand( BLOCK_IDLE ); GetScreen()->SetCurItem( NULL ); m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, - false ); + false ); } if( zoom_command ) @@ -331,20 +329,20 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) BLOCK_SELECTOR* block = &GetScreen()->m_BlockLocate; // can convert only a block move command to an other command - if( block->m_Command != BLOCK_MOVE ) + if( block->GetCommand() != BLOCK_MOVE ) return; // Useless if the new command is block move because we are already in block move. if( Command == BLOCK_MOVE ) return; - block->m_Command = (CmdBlockType) Command; + block->SetCommand( (BLOCK_COMMAND_T) Command ); block->SetMessageBlock( this ); - switch( block->m_Command ) + switch( block->GetCommand() ) { case BLOCK_COPY: /* move to copy */ - block->m_State = STATE_BLOCK_MOVE; + block->SetState( STATE_BLOCK_MOVE ); blockCmdFinished = false; break; @@ -366,7 +364,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) if( m_canvas->IsMouseCaptured() ) m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); - block->m_State = STATE_BLOCK_MOVE; + block->SetState( STATE_BLOCK_MOVE ); } break; @@ -376,7 +374,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) if( block->GetCount() ) { - DeleteItemsInList( m_canvas, block->m_ItemsSelection ); + DeleteItemsInList( m_canvas, block->GetItems() ); OnModify(); } @@ -390,9 +388,9 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) if( block->GetCount() ) { - wxPoint move_vector = -GetScreen()->m_BlockLocate.m_BlockLastCursorPosition; - copyBlockItems( block->m_ItemsSelection ); - MoveItemsInList( m_blockItems.m_ItemsSelection, move_vector ); + wxPoint move_vector = -GetScreen()->m_BlockLocate.GetLastCursorPosition(); + copyBlockItems( block->GetItems() ); + MoveItemsInList( m_blockItems.GetItems(), move_vector ); } break; @@ -413,8 +411,8 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) wxPoint rotationPoint = block->Centre(); rotationPoint = GetScreen()->GetNearestGridPosition( rotationPoint ); GetScreen()->SetCrossHairPosition( rotationPoint ); - SaveCopyInUndoList( block->m_ItemsSelection, UR_ROTATED, rotationPoint ); - RotateListOfItems( block->m_ItemsSelection, rotationPoint ); + SaveCopyInUndoList( block->GetItems(), UR_ROTATED, rotationPoint ); + RotateListOfItems( block->GetItems(), rotationPoint ); OnModify(); } @@ -432,10 +430,11 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) wxPoint mirrorPoint = block->Centre(); mirrorPoint = GetScreen()->GetNearestGridPosition( mirrorPoint ); GetScreen()->SetCrossHairPosition( mirrorPoint ); - SaveCopyInUndoList( block->m_ItemsSelection, UR_MIRRORED_X, mirrorPoint ); - MirrorX( block->m_ItemsSelection, mirrorPoint ); + SaveCopyInUndoList( block->GetItems(), UR_MIRRORED_X, mirrorPoint ); + MirrorX( block->GetItems(), mirrorPoint ); OnModify(); } + GetScreen()->TestDanglingEnds( m_canvas, DC ); m_canvas->Refresh(); break; @@ -450,8 +449,8 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) wxPoint mirrorPoint = block->Centre(); mirrorPoint = GetScreen()->GetNearestGridPosition( mirrorPoint ); GetScreen()->SetCrossHairPosition( mirrorPoint ); - SaveCopyInUndoList( block->m_ItemsSelection, UR_MIRRORED_Y, mirrorPoint ); - MirrorY( block->m_ItemsSelection, mirrorPoint ); + SaveCopyInUndoList( block->GetItems(), UR_MIRRORED_Y, mirrorPoint ); + MirrorY( block->GetItems(), mirrorPoint ); OnModify(); } @@ -468,7 +467,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) block->Clear(); GetScreen()->SetCurItem( NULL ); m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, - false ); + false ); } } @@ -486,23 +485,23 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx /* Erase old block contents. */ if( aErase ) { - block->Draw( aPanel, aDC, block->m_MoveVector, g_XorMode, block->m_Color ); + block->Draw( aPanel, aDC, block->GetMoveVector(), g_XorMode, block->GetColor() ); for( unsigned ii = 0; ii < block->GetCount(); ii++ ) { - schitem = (SCH_ITEM*) block->m_ItemsSelection.GetPickedItem( ii ); - schitem->Draw( aPanel, aDC, block->m_MoveVector, g_XorMode, g_GhostColor ); + schitem = (SCH_ITEM*) block->GetItem( ii ); + schitem->Draw( aPanel, aDC, block->GetMoveVector(), g_XorMode, g_GhostColor ); } } /* Repaint new view. */ - block->m_MoveVector = screen->GetCrossHairPosition() - block->m_BlockLastCursorPosition; - block->Draw( aPanel, aDC, block->m_MoveVector, g_XorMode, block->m_Color ); + block->SetMoveVector( screen->GetCrossHairPosition() - block->GetLastCursorPosition() ); + block->Draw( aPanel, aDC, block->GetMoveVector(), g_XorMode, block->GetColor() ); for( unsigned ii = 0; ii < block->GetCount(); ii++ ) { - schitem = (SCH_ITEM*) block->m_ItemsSelection.GetPickedItem( ii ); - schitem->Draw( aPanel, aDC, block->m_MoveVector, g_XorMode, g_GhostColor ); + schitem = (SCH_ITEM*) block->GetItem( ii ); + schitem->Draw( aPanel, aDC, block->GetMoveVector(), g_XorMode, g_GhostColor ); } } @@ -515,6 +514,7 @@ void SCH_EDIT_FRAME::copyBlockItems( PICKED_ITEMS_LIST& aItemsList ) { // Clear m_Flag member of selected items: aItemsList.GetPickedItem( ii )->ClearFlags(); + /* Make a copy of the original picked item. */ SCH_ITEM* copy = DuplicateStruct( (SCH_ITEM*) aItemsList.GetPickedItem( ii ) ); copy->SetParent( NULL ); @@ -543,7 +543,7 @@ void SCH_EDIT_FRAME::PasteListOfItems( wxDC* DC ) for( unsigned ii = 0; ii < m_blockItems.GetCount(); ii++ ) { - Struct = DuplicateStruct( (SCH_ITEM*) m_blockItems.m_ItemsSelection.GetPickedItem( ii ) ); + Struct = DuplicateStruct( (SCH_ITEM*) m_blockItems.GetItem( ii ) ); // Creates data, and push it as new data in undo item list buffer ITEM_PICKER picker( Struct, UR_NEW ); @@ -563,7 +563,7 @@ void SCH_EDIT_FRAME::PasteListOfItems( wxDC* DC ) SaveCopyInUndoList( picklist, UR_NEW ); - MoveItemsInList( picklist, GetScreen()->m_BlockLocate.m_MoveVector ); + MoveItemsInList( picklist, GetScreen()->m_BlockLocate.GetMoveVector() ); // Clear flags for all items. GetScreen()->ClearDrawingState(); diff --git a/eeschema/block_libedit.cpp b/eeschema/block_libedit.cpp index c86eabc9ba..8432863830 100644 --- a/eeschema/block_libedit.cpp +++ b/eeschema/block_libedit.cpp @@ -90,18 +90,18 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( GetScreen()->m_BlockLocate.GetCount() ) { - BlockState state = GetScreen()->m_BlockLocate.m_State; - CmdBlockType command = GetScreen()->m_BlockLocate.m_Command; + BLOCK_STATE_T state = GetScreen()->m_BlockLocate.GetState(); + BLOCK_COMMAND_T command = GetScreen()->m_BlockLocate.GetCommand(); m_canvas->CallEndMouseCapture( DC ); - GetScreen()->m_BlockLocate.m_State = state; - GetScreen()->m_BlockLocate.m_Command = command; + GetScreen()->m_BlockLocate.SetState( state ); + GetScreen()->m_BlockLocate.SetCommand( command ); m_canvas->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); GetScreen()->SetCrossHairPosition( wxPoint( GetScreen()->m_BlockLocate.GetRight(), GetScreen()->m_BlockLocate.GetBottom() ) ); m_canvas->MoveCursorToCrossHair(); } - switch( GetScreen()->m_BlockLocate.m_Command ) + switch( GetScreen()->m_BlockLocate.GetCommand() ) { case BLOCK_IDLE: DisplayError( this, wxT( "Error in HandleBlockPLace" ) ); @@ -125,7 +125,7 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); } - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE ); m_canvas->Refresh( true ); } break; @@ -133,7 +133,7 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ nextCmd = true; m_canvas->SetMouseCaptureCallback( DrawMovingBlockOutlines ); - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE ); break; case BLOCK_DELETE: /* Delete */ @@ -173,7 +173,7 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if ( m_component ) { OnModify(); - int block_cmd = GetScreen()->m_BlockLocate.m_Command; + int block_cmd = GetScreen()->m_BlockLocate.GetCommand(); if( block_cmd == BLOCK_MIRROR_Y) m_component->MirrorSelectedItemsH( pt ); @@ -198,11 +198,11 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( ! nextCmd ) { - if( GetScreen()->m_BlockLocate.m_Command != BLOCK_SELECT_ITEMS_ONLY && m_component ) + if( GetScreen()->m_BlockLocate.GetCommand() != BLOCK_SELECT_ITEMS_ONLY && m_component ) m_component->ClearSelectedItems(); - GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; - GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; + GetScreen()->m_BlockLocate.SetState( STATE_NO_BLOCK ); + GetScreen()->m_BlockLocate.SetCommand( BLOCK_IDLE ); GetScreen()->SetCurItem( NULL ); m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); @@ -222,9 +222,9 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) DisplayError( this, wxT( "HandleBlockPLace : m_mouseCaptureCallback = NULL" ) ); } - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); - switch( GetScreen()->m_BlockLocate.m_Command ) + switch( GetScreen()->m_BlockLocate.GetCommand() ) { case BLOCK_IDLE: break; @@ -237,7 +237,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) if ( m_component ) SaveCopyInUndoList( m_component ); - pt = GetScreen()->m_BlockLocate.m_MoveVector; + pt = GetScreen()->m_BlockLocate.GetMoveVector(); pt.y *= -1; if ( m_component ) @@ -252,7 +252,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) if ( m_component ) SaveCopyInUndoList( m_component ); - pt = GetScreen()->m_BlockLocate.m_MoveVector; + pt = GetScreen()->m_BlockLocate.GetMoveVector(); pt.y *= -1; if ( m_component ) @@ -275,7 +275,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) if ( m_component ) { - int block_cmd = GetScreen()->m_BlockLocate.m_Command; + int block_cmd = GetScreen()->m_BlockLocate.GetCommand(); if( block_cmd == BLOCK_MIRROR_Y) m_component->MirrorSelectedItemsH( pt ); @@ -297,8 +297,8 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) OnModify(); - GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; - GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; + GetScreen()->m_BlockLocate.SetState( STATE_NO_BLOCK ); + GetScreen()->m_BlockLocate.SetCommand( BLOCK_IDLE ); GetScreen()->SetCurItem( NULL ); m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); m_canvas->Refresh( true ); @@ -312,10 +312,10 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition, bool aErase ) { - BLOCK_SELECTOR* PtBlock; + BLOCK_SELECTOR* block; BASE_SCREEN* screen = aPanel->GetScreen(); wxPoint move_offset; - PtBlock = &screen->m_BlockLocate; + block = &screen->m_BlockLocate; LIB_EDIT_FRAME* parent = ( LIB_EDIT_FRAME* ) aPanel->GetParent(); wxASSERT( parent != NULL ); @@ -330,18 +330,18 @@ void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& if( aErase ) { - PtBlock->Draw( aPanel, aDC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color ); + block->Draw( aPanel, aDC, block->GetMoveVector(), g_XorMode, block->GetColor() ); - component->Draw( aPanel, aDC, PtBlock->m_MoveVector, unit, convert, + component->Draw( aPanel, aDC, block->GetMoveVector(), unit, convert, g_XorMode, -1, DefaultTransform, true, true, true ); } /* Repaint new view */ - PtBlock->m_MoveVector = screen->GetCrossHairPosition() - PtBlock->m_BlockLastCursorPosition; + block->SetMoveVector( screen->GetCrossHairPosition() - block->GetLastCursorPosition() ); GRSetDrawMode( aDC, g_XorMode ); - PtBlock->Draw( aPanel, aDC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color ); + block->Draw( aPanel, aDC, block->GetMoveVector(), g_XorMode, block->GetColor() ); - component->Draw( aPanel, aDC, PtBlock->m_MoveVector, unit, convert, + component->Draw( aPanel, aDC, block->GetMoveVector(), unit, convert, g_XorMode, -1, DefaultTransform, true, true, true ); } diff --git a/eeschema/dialogs/dialog_color_config.cpp b/eeschema/dialogs/dialog_color_config.cpp index 72acba448d..38a239d03f 100644 --- a/eeschema/dialogs/dialog_color_config.cpp +++ b/eeschema/dialogs/dialog_color_config.cpp @@ -357,10 +357,10 @@ void SeedLayers() } -EDA_Colors ReturnLayerColor( int Layer ) +EDA_COLOR_T ReturnLayerColor( int Layer ) { if( g_LayerDescr.Flags == 0 ) - return (EDA_Colors) g_LayerDescr.LayerColor[Layer]; + return (EDA_COLOR_T) g_LayerDescr.LayerColor[Layer]; else - return (EDA_Colors) g_LayerDescr.CommonColor; + return (EDA_COLOR_T) g_LayerDescr.CommonColor; } diff --git a/eeschema/hotkeys.cpp b/eeschema/hotkeys.cpp index 957584604a..a2368ec290 100644 --- a/eeschema/hotkeys.cpp +++ b/eeschema/hotkeys.cpp @@ -316,7 +316,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition, // notBusy == true means no item currently edited and no other command in progress // We can change active tool and ask for editing a new item - bool notBusy = (!itemInEdit) && (screen->m_BlockLocate.m_State == STATE_NO_BLOCK); + bool notBusy = (!itemInEdit) && (screen->m_BlockLocate.GetState() == STATE_NO_BLOCK); /* Convert lower to upper case (the usual toupper function has problem * with non ascii codes like function keys */ diff --git a/eeschema/lib_arc.h b/eeschema/lib_arc.h index a5a1e74986..ab179a98ef 100644 --- a/eeschema/lib_arc.h +++ b/eeschema/lib_arc.h @@ -89,137 +89,71 @@ public: ~LIB_ARC() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "LIB_ARC" ); } - /** - * Save arc object to a FILE in "*.lib" format. - * - * @param aFormatter A reference to an OUTPUTFORMATTER to write the component library - * arc to. - * @return True if success writing else false. - */ - virtual bool Save( OUTPUTFORMATTER& aFormatter ); + bool Save( OUTPUTFORMATTER& aFormatter ); - virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); + bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * @param aPosition - a wxPoint to test - * @param aThreshold - max distance to this object (usually the half - * thickness of a line) - * @param aTransform - the transform matrix - * @return - True if the point \a aPosition is near this object - */ - virtual bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ); + bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ); - virtual EDA_RECT GetBoundingBox() const; - virtual void DisplayInfo( EDA_DRAW_FRAME* frame ); + EDA_RECT GetBoundingBox() const; - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize( ) const; + void DisplayInfo( EDA_DRAW_FRAME* frame ); + + int GetPenSize() const; - /** - * See LIB_ITEM::BeginEdit(). - */ void BeginEdit( int aEditMode, const wxPoint aStartPoint = wxPoint( 0, 0 ) ); - /** - * See LIB_ITEM::ContinueEdit(). - */ bool ContinueEdit( const wxPoint aNextPoint ); - /** - * See LIB_ITEM::AbortEdit(). - */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); - /** - * @copydoc LIB_ITEM::SetOffset(const wxPoint&) - */ - virtual void SetOffset( const wxPoint& aOffset ); + void SetOffset( const wxPoint& aOffset ); - /** - * @copydoc LIB_ITEM::Inside() - */ - virtual bool Inside( EDA_RECT& aRect ) const; + bool Inside( EDA_RECT& aRect ) const; - /** - * @copydoc LIB_ITEM::Move() - */ - virtual void Move( const wxPoint& aPosition ); + void Move( const wxPoint& aPosition ); - /** - * @copydoc LIB_ITEM::GetPosition() - */ - virtual wxPoint GetPosition() const { return m_Pos; } + wxPoint GetPosition() const { return m_Pos; } - /** - * @copydoc LIB_ITEM::MirrorHorizontal() - */ - virtual void MirrorHorizontal( const wxPoint& aCenter ); + void MirrorHorizontal( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::MirrorVertical() - */ - virtual void MirrorVertical( const wxPoint& aCenter ); + void MirrorVertical( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) - */ - virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); - /** - * @copydoc LIB_ITEM::Plot() - */ - virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); + void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); - /** - * @copydoc LIB_ITEM::GetWidth() - */ - virtual int GetWidth() const { return m_Width; } + int GetWidth() const { return m_Width; } - /** - * @copydoc LIB_ITEM::SetWidth() - */ - virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + void SetWidth( int aWidth ) { m_Width = aWidth; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_arc_xpm; } + BITMAP_DEF GetMenuImage() const { return add_arc_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: /** - * Function compare - * provides the arc draw object specific comparison. + * @copydoc LIB_ITEM::compare() * - * The sort order is as follows: + * The arc specific sort order is as follows: * - Arc horizontal (X) position. * - Arc vertical (Y) position. * - Arc start angle. * - Arc end angle. - * - * @param aOther A reference to the other #LIB_ITEM to compare the arc against. - * @return An integer value less than 0 if the arc is less than \a aOther, zero - * if the arc is equal to \a aOther, or greater than 0 if the arc is - * greater than \a aOther. */ - virtual int compare( const LIB_ITEM& aOther ) const; + int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_bezier.h b/eeschema/lib_bezier.h index 084b4918cd..e5d49cbfd1 100644 --- a/eeschema/lib_bezier.h +++ b/eeschema/lib_bezier.h @@ -42,9 +42,6 @@ class LIB_BEZIER : public LIB_ITEM std::vector m_BezierPoints; // list of parameter (3|4) std::vector m_PolyPoints; // list of points (>= 2) - /** - * Draw the bezier curve. - */ void drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aColor, int aDrawMode, void* aData, const TRANSFORM& aTransform ); @@ -55,125 +52,66 @@ public: ~LIB_BEZIER() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "LIB_BEZIER" ); } - /** - * Write bezier curve object out to a FILE in "*.lib" format. - * - * @param aFormatter A reference to an OUTPUTFORMATTER to write the component library - * bezier curve to. - * @return True if success writing else false. - */ - virtual bool Save( OUTPUTFORMATTER& aFormatter ); + bool Save( OUTPUTFORMATTER& aFormatter ); - virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); + bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); void AddPoint( const wxPoint& aPoint ); - /** - * @copydoc LIB_ITEM::SetOffset(const wxPoint&) - */ - virtual void SetOffset( const wxPoint& aOffset ); + void SetOffset( const wxPoint& aOffset ); /** * @return the number of corners */ unsigned GetCornerCount() const { return m_PolyPoints.size(); } - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * @param aPosRef = a wxPoint to test - * @param aThreshold = max distance to a segment - * @param aTransform = the transform matrix - * @return true if the point aPosRef is near a segment - */ - virtual bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform ); + bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform ); - /** - * Function GetBoundingBox - * @return the boundary box for this, in library coordinates - */ - virtual EDA_RECT GetBoundingBox() const; + EDA_RECT GetBoundingBox() const; - /** - * @copydoc LIB_ITEM::Inside() - */ - virtual bool Inside( EDA_RECT& aRect ) const; + bool Inside( EDA_RECT& aRect ) const; - /** - * @copydoc LIB_ITEM::Move() - */ - virtual void Move( const wxPoint& aPosition ); + void Move( const wxPoint& aPosition ); - /** - * @copydoc LIB_ITEM::GetPosition() - */ - virtual wxPoint GetPosition() const { return m_PolyPoints[0]; } + wxPoint GetPosition() const { return m_PolyPoints[0]; } - /** - * @copydoc LIB_ITEM::MirrorHorizontal() - */ - virtual void MirrorHorizontal( const wxPoint& aCenter ); + void MirrorHorizontal( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::MirrorVertical() - */ - virtual void MirrorVertical( const wxPoint& aCenter ); + void MirrorVertical( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) - */ - virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); - /** - * @copydoc LIB_ITEM::Plot() - */ - virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); + void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); - /** - * @copydoc LIB_ITEM::GetWidth() - */ - virtual int GetWidth() const { return m_Width; } + int GetWidth() const { return m_Width; } - /** - * @copydoc LIB_ITEM::SetWidth() - */ - virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + void SetWidth( int aWidth ) { m_Width = aWidth; } - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize( ) const; + int GetPenSize( ) const; - virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + void DisplayInfo( EDA_DRAW_FRAME* aFrame ); - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: /** - * Function compare - * provides the bezier curve draw object specific comparison. + * @copydoc LIB_ITEM::compare() * - * The sort order for each bezier curve segment point is as follows: - * - Bezier point horizontal (X) point position. - * - Bezier point vertical (Y) point position. - * - * @param aOther A reference to the other #LIB_ITEM to compare the bezier curve against. - * @return An integer value less than 0 if the bezier curve is less than \a aOther, zero - * if the bezier curve is equal to \a aOther, or greater than 0 if the bezier - * curve is greater than \a aOther. + * The bezier curve specific sort order for each curve segment point is as follows: + * - Bezier horizontal (X) point position. + * - Bezier vertical (Y) point position. */ - virtual int compare( const LIB_ITEM& aOther ) const; + int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_circle.h b/eeschema/lib_circle.h index 854aa9e385..673651485e 100644 --- a/eeschema/lib_circle.h +++ b/eeschema/lib_circle.h @@ -38,17 +38,9 @@ class LIB_CIRCLE : public LIB_ITEM wxPoint m_Pos; // Position or centre (Arc and Circle) or start point (segments). int m_Width; // Line width. - /** - * Draws the arc. - */ void drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aColor, int aDrawMode, void* aData, const TRANSFORM& aTransform ); - /** - * Calculate the new circle at \a aPosition when editing. - * - * @param aPosition - The position to edit the circle in drawing coordinates. - */ void calcEdit( const wxPoint& aPosition ); public: @@ -58,137 +50,70 @@ public: ~LIB_CIRCLE() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "LIB_CIRCLE" ); } - /** - * Write circle object to a FILE in "*.lib" format. - * - * @param aFormatter A reference to an OUTPUTFORMATTER to write the component library - * circle to. - * @return True if success writing else false. - */ - virtual bool Save( OUTPUTFORMATTER& aFormatter ); + bool Save( OUTPUTFORMATTER& aFormatter ); - virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); + bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * @param aPosRef - a wxPoint to test - * @param aThreshold - max distance to this object (usually the half - * thickness of a line) - * @param aTransform - the transform matrix - * @return true if the point aPosRef is near this object - */ - virtual bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform ); + bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform ); - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize( ) const; + int GetPenSize( ) const; - virtual EDA_RECT GetBoundingBox() const; + EDA_RECT GetBoundingBox() const; - virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + void DisplayInfo( EDA_DRAW_FRAME* aFrame ); - /** - * See LIB_ITEM::BeginEdit(). - */ void BeginEdit( int aEditMode, const wxPoint aStartPoint = wxPoint( 0, 0 ) ); - /** - * See LIB_ITEM::ContinueEdit(). - */ bool ContinueEdit( const wxPoint aNextPoint ); - /** - * See LIB_ITEM::AbortEdit(). - */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); - /** - * @copydoc LIB_ITEM::SetOffset(const wxPoint&) - */ - virtual void SetOffset( const wxPoint& aOffset ); + void SetOffset( const wxPoint& aOffset ); - /** - * @copydoc LIB_ITEM::Inside() - */ - virtual bool Inside( EDA_RECT& aRect ) const; + bool Inside( EDA_RECT& aRect ) const; - /** - * @copydoc LIB_ITEM::Move() - */ - virtual void Move( const wxPoint& aPosition ); + void Move( const wxPoint& aPosition ); - /** - * @copydoc LIB_ITEM::GetPosition() - */ - virtual wxPoint GetPosition() const { return m_Pos; } + wxPoint GetPosition() const { return m_Pos; } - /** - * @copydoc LIB_ITEM::MirrorHorizontal() - */ - virtual void MirrorHorizontal( const wxPoint& aCenter ); + void MirrorHorizontal( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::MirrorVertical() - */ - virtual void MirrorVertical( const wxPoint& aCenter ); + void MirrorVertical( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) - */ - virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); - /** - * @copydoc LIB_ITEM::Plot() - */ - virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); + void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); - /** - * @copydoc LIB_ITEM::GetWidth() - */ - virtual int GetWidth() const { return m_Width; } + int GetWidth() const { return m_Width; } - /** - * @copydoc LIB_ITEM::SetWidth() - */ - virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + void SetWidth( int aWidth ) { m_Width = aWidth; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_circle_xpm; } + BITMAP_DEF GetMenuImage() const { return add_circle_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: /** - * Function compare - * provides the circle draw object specific comparison. + * @copydoc LIB_ITEM::compare() * - * The sort order is as follows: + * The circle specific sort order is as follows: * - Circle horizontal (X) position. * - Circle vertical (Y) position. * - Circle radius. - * - * @param aOther A reference to the other #LIB_ITEM to compare the circle against. - * @return An integer value less than 0 if the circle is less than \a aOther, zero - * if the circle is equal to \a aOther, or greater than 0 if the circle is - * greater than \a aOther. */ - virtual int compare( const LIB_ITEM& aOther ) const; + int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_draw_item.h b/eeschema/lib_draw_item.h index 930547464c..adfc34ef26 100644 --- a/eeschema/lib_draw_item.h +++ b/eeschema/lib_draw_item.h @@ -73,7 +73,19 @@ typedef std::vector< LIB_PIN* > LIB_PINS; class LIB_ITEM : public EDA_ITEM { /** - * Draws the item. + * Function drawGraphic + * + * draws the item on \a aPanel. + * + * @param aPanel A pointer to the panel to draw the object upon. + * @param aDC A pointer to the device context used to draw the object. + * @param aOffset A reference to a wxPoint object containing the offset where to draw + * from the object's current position. + * @param aColor An #EDA_COLOR_T to draw the object or -1 to draw the object in it's + * default color. + * @param aDrawMode The mode used to perform the draw (#GR_OR, #GR_COPY, etc.). + * @param aDate A pointer to any object specific data required to perform the draw. + * @param aTransform A reference to a #TRANSFORM object containing drawing transform. */ virtual void drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aColor, @@ -82,20 +94,20 @@ class LIB_ITEM : public EDA_ITEM /** * Draw any editing specific graphics when the item is being edited. * - * @param aClipBox - Clip box of the current device context. - * @param aDC - The device context to draw on. - * @param aColor - The index of the color to draw. + * @param aClipBox Clip box of the current device context. + * @param aDC The device context to draw on. + * @param aColor The index of the color to draw. */ virtual void drawEditGraphics( EDA_RECT* aClipBox, wxDC* aDC, int aColor ) {} /** - * Calculates the attributes of an item at \a aPosition when it is being edited. + * Calculates the attributes of an item at \a aPosition when it is being edited. * * This method gets called by the Draw() method when the item is being edited. This * probably should be a pure virtual method but bezier curves are not yet editable in * the component library editor. Therefore, the default method does nothing. * - * @param aPosition - The current mouse position in drawing coordinates. + * @param aPosition The current mouse position in drawing coordinates. */ virtual void calcEdit( const wxPoint& aPosition ) {} @@ -155,11 +167,11 @@ public: * allows the draw item to maintain it's own internal state while it is being * edited. Call AbortEdit() to quit the editing mode. * - * @param aEditMode - The editing mode being performed. See base_struct.h for a list - * of mode flags. - * @param aPosition - The position in drawing coordinates where the editing mode was - * started. This may or may not be required depending on the item - * being edited and the edit mode. + * @param aEditMode The editing mode being performed. See base_struct.h for a list + * of mode flags. + * @param aPosition The position in drawing coordinates where the editing mode was + * started. This may or may not be required depending on the item + * being edited and the edit mode. */ virtual void BeginEdit( int aEditMode, const wxPoint aPosition = wxPoint( 0, 0 ) ) {} @@ -170,7 +182,7 @@ public: * called for each additional left click when the mouse is captured while the item * is being edited. * - * @param aPosition - The position of the mouse left click in drawing coordinates. + * @param aPosition The position of the mouse left click in drawing coordinates. * @return True if additional mouse clicks are required to complete the edit in progress. */ virtual bool ContinueEdit( const wxPoint aPosition ) { return false; } @@ -180,32 +192,31 @@ public: * * This is used to end or abort an edit action in progress initiated by BeginEdit(). * - * @param aPosition - The position of the last edit event in drawing coordinates. - * @param aAbort - Set to true to abort the current edit in progress. + * @param aPosition The position of the last edit event in drawing coordinates. + * @param aAbort Set to true to abort the current edit in progress. */ virtual void EndEdit( const wxPoint& aPosition, bool aAbort = false ) { m_Flags = 0; } /** * Draw an item * - * @param aPanel - DrawPanel to use (can be null) mainly used for clipping - * purposes - * @param aDC - Device Context (can be null) - * @param aOffset - offset to draw - * @param aColor - -1 to use the normal body item color, or use this color - * if >= 0 - * @param aDrawMode - GR_OR, GR_XOR, ... - * @param aData - value or pointer used to pass others parameters, - * depending on body items. used for some items to force - * to force no fill mode ( has meaning only for items what - * can be filled ). used in printing or moving objects mode - * or to pass reference to the lib component for pins - * @param aTransform - Transform Matrix (rotation, mirror ..) + * @param aPanel DrawPanel to use (can be null) mainly used for clipping purposes. + * @param aDC Device Context (can be null) + * @param aOffset Offset to draw + * @param aColor -1 to use the normal body item color, or use this color if >= 0 + * @param aDrawMode GR_OR, GR_XOR, ... + * @param aData Value or pointer used to pass others parameters, depending on body items. + * Used for some items to force to force no fill mode ( has meaning only for + * items what can be filled ). used in printing or moving objects mode or to + * pass reference to the lib component for pins. + * @param aTransform Transform Matrix (rotation, mirror ..) */ virtual void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint &aOffset, int aColor, int aDrawMode, void* aData, const TRANSFORM& aTransform ); /** + * Function GetPenSize + * * @return the size of the "pen" that be used to draw or plot this item */ virtual int GetPenSize() const = 0; @@ -227,21 +238,18 @@ public: return (LIB_COMPONENT *)m_Parent; } - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ) { - return false; + return EDA_ITEM::HitTest( aPosition ); } /** - * @param aPosition - a wxPoint to test - * @param aThreshold - max distance to this object (usually the half - * thickness of a line) - * if < 0, it will be automatically set to half - * pen size when locating lines or arcs - * and set to 0 for other items - * @param aTransform - the transform matrix - * @return - true if the point \a aPosition is near this object + * @param aPosition A wxPoint to test. + * @param aThreshold Maximum distance to this object (usually the half thickness of a line) + * if < 0, it will be automatically set to half pen size when locating + * lines or arcs and set to 0 for other items. + * @param aTransform The transform matrix. + * @return True if the point \a aPosition is near this object */ virtual bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ) = 0; @@ -266,8 +274,8 @@ public: /** * Test LIB_ITEM objects for equivalence. * - * @param aOther - Object to test against. - * @return - True if object is identical to this object. + * @param aOther Object to test against. + * @return True if object is identical to this object. */ bool operator==( const LIB_ITEM& aOther ) const; bool operator==( const LIB_ITEM* aOther ) const @@ -379,14 +387,14 @@ public: * The default setting is false. If the derived object support filling, * set the m_isFillable member to true. * - * @return - True if draw object can be fill. Default is false. + * @return True if draw object can be filled. Default is false. */ bool IsFillable() const { return m_isFillable; } /** * Return the draw item editing mode status. * - * @return - True if the item is being edited. + * @return True if the item is being edited. */ bool InEditMode() const { return ( m_Flags & ( IS_NEW | IS_MOVED | IS_RESIZED ) ) != 0; } @@ -414,15 +422,19 @@ private: /** * Function compare - * provides the draw object specific comparison. + * provides the draw object specific comparison called by the == and < operators. * - * This is called by the == and < operators. - * - * The sort order is as follows: + * The base object sort order which always proceeds the derived object sort order + * is as follows: * - Component alternate part (DeMorgan) number. * - Component part number. * - KICAD_T enum value. * - Result of derived classes comparison. + * + * @param aOther A reference to the other #LIB_ITEM to compare the arc against. + * @return An integer value less than 0 if the object is less than \a aOther ojbect, + * zero if the object is equal to \a aOther object, or greater than 0 if the + * object is greater than \a aOther object. */ virtual int compare( const LIB_ITEM& aOther ) const = 0; }; diff --git a/eeschema/lib_field.cpp b/eeschema/lib_field.cpp index 0e6228eb39..f8cb98ee6c 100644 --- a/eeschema/lib_field.cpp +++ b/eeschema/lib_field.cpp @@ -296,7 +296,7 @@ void LIB_FIELD::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& a text = m_Text; GRSetDrawMode( aDC, aDrawMode ); - DrawGraphicText( aPanel, aDC, text_pos, (EDA_Colors) color, text, m_Orient, m_Size, + DrawGraphicText( aPanel, aDC, text_pos, (EDA_COLOR_T) color, text, m_Orient, m_Size, m_HJustify, m_VJustify, linewidth, m_Italic, m_Bold ); /* Set to one (1) to draw bounding box around field text to validate diff --git a/eeschema/lib_field.h b/eeschema/lib_field.h index 1bcfa2ddb9..df3dc0ee38 100644 --- a/eeschema/lib_field.h +++ b/eeschema/lib_field.h @@ -89,7 +89,7 @@ public: ~LIB_FIELD(); - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "LIB_FIELD" ); } @@ -106,12 +106,12 @@ public: * names. The user definable fields will return FieldN where N is the ID of the field * when the m_name member is empty. * - * @param aTranslate = true to return translated field name (default) - * false to return the english name - * (useful when the name is used as keyword in netlists ...) + * @param aTranslate True to return translated field name (default). False to return + * the english name (useful when the name is used as keyword in + * netlists ...) * @return Name of the field. */ - wxString GetName(bool aTranslate = true) const; + wxString GetName( bool aTranslate = true ) const; /** * Function SetName @@ -130,27 +130,16 @@ public: void SetId( int aId ) { m_id = aId; } - /** - * Function GetPenSize virtual - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize( ) const; + int GetPenSize( ) const; - /** - * Writes field object out to a FILE in "*.lib" format. - * - * @param aFormatter A reference to an OUTPUTFORMATTER to write the component library - * field to. - * @return True if success writing else false. - */ - virtual bool Save( OUTPUTFORMATTER& aFormatter ); + bool Save( OUTPUTFORMATTER& aFormatter ); - virtual bool Load( LINE_READER& aLineReader, wxString& errorMsg ); + bool Load( LINE_READER& aLineReader, wxString& errorMsg ); /** * Copy parameters of this field to another field. Pointers are not copied. * - * @param aTarget = Target field to copy values to. + * @param aTarget Target field to copy values to. */ void Copy( LIB_FIELD* aTarget ) const; @@ -174,30 +163,13 @@ public: return (m_Attributs & TEXT_NO_VISIBLE) == 0 ? true : false; } - /** - * Return the bounding rectangle of the field text. - * @return Bounding rectangle. - */ - virtual EDA_RECT GetBoundingBox() const; + EDA_RECT GetBoundingBox() const; - /** - * Displays info (type, part convert filed name and value) - * in msg panel - * @param aFrame = main frame where the message panel info is. - */ - virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + void DisplayInfo( EDA_DRAW_FRAME* aFrame ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * @param aPosition = a wxPoint to test - * @param aThreshold = max distance to this object (usually the half - * thickness of a line) - * @param aTransform = the transform matrix - * @return True if the point \a aPosition is near this object - */ - virtual bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ); + bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ); void operator=( const LIB_FIELD& field ) { @@ -233,19 +205,10 @@ public: int GetDefaultColor(); - /** - * See LIB_ITEM::BeginEdit(). - */ void BeginEdit( int aEditMode, const wxPoint aStartPoint = wxPoint( 0, 0 ) ); - /** - * See LIB_ITEM::ContinueEdit(). - */ bool ContinueEdit( const wxPoint aNextPoint ); - /** - * See LIB_ITEM::AbortEdit(). - */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); void Rotate(); @@ -263,73 +226,39 @@ public: */ void SetText( const wxString& aText ); - /** - * @copydoc LIB_ITEM::SetOffset(const wxPoint&) - */ - virtual void SetOffset( const wxPoint& aOffset ); + void SetOffset( const wxPoint& aOffset ); - /** - * @copydoc LIB_ITEM::Inside() - */ - virtual bool Inside( EDA_RECT& aRect ) const; + bool Inside( EDA_RECT& aRect ) const; - /** - * @copydoc LIB_ITEM::Move() - */ - virtual void Move( const wxPoint& aPosition ); + void Move( const wxPoint& aPosition ); - /** - * @copydoc LIB_ITEM::GetPosition() - */ - virtual wxPoint GetPosition() const { return m_Pos; } + wxPoint GetPosition() const { return m_Pos; } - /** - * @copydoc LIB_ITEM::MirrorHorizontal() - */ - virtual void MirrorHorizontal( const wxPoint& aCenter ); + void MirrorHorizontal( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::MirrorVertical() - */ - virtual void MirrorVertical( const wxPoint& aCenter ); + void MirrorVertical( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) - */ - virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); - /** - * @copydoc LIB_ITEM::Plot() - */ - virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); + void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); - /** - * @copydoc LIB_ITEM::GetWidth() - */ - virtual int GetWidth() const { return m_Thickness; } + int GetWidth() const { return m_Thickness; } - /** - * @copydoc LIB_ITEM::SetWidth() - */ - virtual void SetWidth( int aWidth ) { m_Thickness = aWidth; } + void SetWidth( int aWidth ) { m_Thickness = aWidth; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return move_field_xpm; } + BITMAP_DEF GetMenuImage() const { return move_field_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: /** - * Function compare - * provides the field draw object specific comparison. + * @copydoc LIB_ITEM::compare() * - * The sort order for field is as follows: + * The field specific sort order is as follows: * * - Field ID, REFERENCE, VALUE, etc. * - Field string, case insensitive compare. @@ -337,13 +266,8 @@ private: * - Field vertical (Y) position. * - Field width. * - Field height. - * - * @param aOther A reference to the other #LIB_ITEM to compare the field against. - * @return An integer value less than 0 if the field is less than \a aOther, zero - * if the field is equal to \a aOther, or greater than 0 if the field is - * greater than \a aOther. */ - virtual int compare( const LIB_ITEM& aOther ) const; + int compare( const LIB_ITEM& aOther ) const; }; typedef std::vector< LIB_FIELD > LIB_FIELDS; diff --git a/eeschema/lib_pin.cpp b/eeschema/lib_pin.cpp index 9034ec0e59..6e56c01f7d 100644 --- a/eeschema/lib_pin.cpp +++ b/eeschema/lib_pin.cpp @@ -1071,14 +1071,14 @@ void LIB_PIN::DrawPinTexts( EDA_DRAW_PANEL* panel, int Color, int DrawMode ) { - int x, y, x1, y1; - wxString StringPinNum; - EDA_Colors NameColor, NumColor; + int x, y, x1, y1; + wxString StringPinNum; + EDA_COLOR_T NameColor, NumColor; - wxSize PinNameSize( m_nameTextSize, m_nameTextSize ); - wxSize PinNumSize( m_numTextSize, m_numTextSize ); + wxSize PinNameSize( m_nameTextSize, m_nameTextSize ); + wxSize PinNumSize( m_numTextSize, m_numTextSize ); - int nameLineWidth = GetPenSize(); + int nameLineWidth = GetPenSize(); nameLineWidth = Clamp_Text_PenSize( nameLineWidth, m_nameTextSize, false ); int numLineWidth = GetPenSize(); @@ -1090,8 +1090,8 @@ void LIB_PIN::DrawPinTexts( EDA_DRAW_PANEL* panel, if( (Color < 0) && IsSelected() ) Color = g_ItemSelectetColor; - NameColor = (EDA_Colors) ( Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color ); - NumColor = (EDA_Colors) ( Color == -1 ? ReturnLayerColor( LAYER_PINNUM ) : Color ); + NameColor = (EDA_COLOR_T) ( Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color ); + NumColor = (EDA_COLOR_T) ( Color == -1 ? ReturnLayerColor( LAYER_PINNUM ) : Color ); /* Create the pin num string */ ReturnPinStringNum( StringPinNum ); @@ -1269,8 +1269,8 @@ void LIB_PIN::DrawPinTexts( EDA_DRAW_PANEL* panel, void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrientation ) { - int MapX1, MapY1, x1, y1; - EDA_Colors color = UNSPECIFIED_COLOR; + int MapX1, MapY1, x1, y1; + EDA_COLOR_T color = UNSPECIFIED; color = ReturnLayerColor( LAYER_PIN ); @@ -1379,11 +1379,11 @@ void LIB_PIN::PlotPinTexts( PLOTTER* plotter, bool DrawPinName, int aWidth ) { - int x, y, x1, y1; - wxString StringPinNum; - EDA_Colors NameColor, NumColor; - wxSize PinNameSize = wxSize( m_nameTextSize, m_nameTextSize ); - wxSize PinNumSize = wxSize( m_numTextSize, m_numTextSize ); + int x, y, x1, y1; + wxString StringPinNum; + EDA_COLOR_T NameColor, NumColor; + wxSize PinNameSize = wxSize( m_nameTextSize, m_nameTextSize ); + wxSize PinNumSize = wxSize( m_numTextSize, m_numTextSize ); /* Get the num and name colors */ NameColor = ReturnLayerColor( LAYER_PINNAM ); diff --git a/eeschema/lib_pin.h b/eeschema/lib_pin.h index 993ea559fa..7025ff7d5b 100644 --- a/eeschema/lib_pin.h +++ b/eeschema/lib_pin.h @@ -116,9 +116,6 @@ class LIB_PIN : public LIB_ITEM int m_numTextSize; int m_nameTextSize; /* Pin num and Pin name sizes */ - /** - * Draw the pin. - */ void drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aColor, int aDrawMode, void* aData, const TRANSFORM& aTransform ); @@ -129,7 +126,7 @@ public: ~LIB_PIN() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "LIB_PIN" ); } @@ -138,47 +135,19 @@ public: void Show( int nestLevel, std::ostream& os ) const; // virtual override #endif - /** - * Write pin object to a FILE in "*.lib" format. - * - * @param aFormatter A reference to an OUTPUTFORMATTER to write the component library - * pin to. - * @return True if success writing else false. - */ - virtual bool Save( OUTPUTFORMATTER& aFormatter ); + bool Save( OUTPUTFORMATTER& aFormatter ); - virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); + bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * @param aPosRef - a wxPoint to test - * @param aThreshold - max distance to this object (usually the half - * thickness of a line) - * @param aTransform - the transform matrix - * @return - true if the point aPosRef is near this object - */ - virtual bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform ); + bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform ); - /** - * Function DisplayInfo - * displays the pin information in the message panel attached to \a aFrame. - */ - virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + void DisplayInfo( EDA_DRAW_FRAME* aFrame ); - /** - * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) - */ - virtual bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); + bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); - /** - * Function GetBoundingBox - * @return the boundary box for the pin in schematic coordinates. - * - * Uses DefaultTransform as transform matrix - */ - virtual EDA_RECT GetBoundingBox() const; + EDA_RECT GetBoundingBox() const; /** * Function ReturnPinEndPoint @@ -191,7 +160,8 @@ public: * Function ReturnPinDrawOrient * returns the pin real orientation (PIN_UP, PIN_DOWN, PIN_RIGHT, PIN_LEFT), * according to its orientation and the matrix transform (rot, mirror) \a aTransform - * @param aTransform = transform matrix + * + * @param aTransform Transform matrix */ int ReturnPinDrawOrient( const TRANSFORM& aTransform ) const; @@ -231,7 +201,7 @@ public: * * This will also all of the pin names marked by EnableEditMode(). * - * @param aName - New pin name. + * @param aName New pin name. */ void SetName( const wxString& aName ); @@ -241,7 +211,7 @@ public: * This will also update the text size of the name of the pins marked * by EnableEditMode(). * - * @param aSize - The text size of the pin name in schematic units ( mils ). + * @param aSize The text size of the pin name in schematic units ( mils ). */ void SetNameTextSize( int aSize ); @@ -252,7 +222,7 @@ public: * * Others pin numbers marked by EnableEditMode() are not modified * because each pin has its own number - * @param aNumber - New pin number. + * @param aNumber New pin number. */ void SetNumber( const wxString& aNumber ); @@ -262,8 +232,7 @@ public: * This will also update the text size of the number of the pins marked * by EnableEditMode(). * - * @param aSize - The text size of the pin number in schematic - * units ( mils ). + * @param aSize The text size of the pin number in schematic units ( mils ). */ void SetNumberTextSize( int aSize ); @@ -371,9 +340,9 @@ public: * parts or body styles in the component. See SetCommonToAllParts() * and SetCommonToAllBodyStyles() for more information. * - * @param aEnable - True marks all common pins for editing mode. False - * clears the editing mode. - * @param aEditPinByPin - Enables the edit pin by pin mode. + * @param aEnable True marks all common pins for editing mode. False + * clears the editing mode. + * @param aEditPinByPin Enables the edit pin by pin mode. */ void EnableEditMode( bool aEnable, bool aEditPinByPin = false ); @@ -384,11 +353,7 @@ public: */ bool IsVisible() { return ( m_attributes & PIN_INVISIBLE ) == 0; } - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize() const; + int GetPenSize() const; /** * Function DrawPinSymbol @@ -509,84 +474,45 @@ public: */ static const BITMAP_DEF* GetElectricalTypeSymbols(); - /** - * @copydoc LIB_ITEM::SetOffset(const wxPoint&) - */ - virtual void SetOffset( const wxPoint& aOffset ); + void SetOffset( const wxPoint& aOffset ); - /** - * @copydoc LIB_ITEM::Inside() - */ - virtual bool Inside( EDA_RECT& aRect ) const; + bool Inside( EDA_RECT& aRect ) const; - /** - * @copydoc LIB_ITEM::Move() - */ - virtual void Move( const wxPoint& aPosition ); + void Move( const wxPoint& aPosition ); - /** - * @copydoc LIB_ITEM::GetPosition() - */ - virtual wxPoint GetPosition() const { return m_position; } + wxPoint GetPosition() const { return m_position; } - /** - * @copydoc LIB_ITEM::MirrorHorizontal() - */ - virtual void MirrorHorizontal( const wxPoint& aCenter ); + void MirrorHorizontal( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::MirrorVertical() - */ - virtual void MirrorVertical( const wxPoint& aCenter ); + void MirrorVertical( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) - */ - virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); - /** - * @copydoc LIB_ITEM::Plot() - */ - virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); + void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); - /** - * @copydoc LIB_ITEM::GetWidth() - */ - virtual int GetWidth() const { return m_width; } + int GetWidth() const { return m_width; } - /** - * @copydoc LIB_ITEM::SetWidth() - */ - virtual void SetWidth( int aWidth ); + void SetWidth( int aWidth ); - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const; + BITMAP_DEF GetMenuImage() const; - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: /** - * Function compare - * provides the pin draw object specific comparison. + * @copydoc LIB_ITEM::compare() * - * The sort order is as follows: + * The pin specific sort order is as follows: * - Pin number. * - Pin name, case insensitive compare. * - Pin horizontal (X) position. * - Pin vertical (Y) position. - * - * @param aOther A reference to the other #LIB_ITEM to compare the pin against. - * @return An integer value less than 0 if the pin is less than \a aOther, zero - * if the pin is equal to \a aOther, or greater than 0 if the pin is - * greater than \a aOther. */ - virtual int compare( const LIB_ITEM& aOther ) const; + int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_polyline.h b/eeschema/lib_polyline.h index d56156af31..5c0aff33c5 100644 --- a/eeschema/lib_polyline.h +++ b/eeschema/lib_polyline.h @@ -39,17 +39,9 @@ class LIB_POLYLINE : public LIB_ITEM int m_ModifyIndex; // Index of the polyline point to modify - /** - * Draw the polyline. - */ void drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aColor, int aDrawMode, void* aData, const TRANSFORM& aTransform ); - /** - * Calculate the polyline attributes relative to \a aPosition while editing. - * - * @param aPosition - Edit position in drawing units. - */ void calcEdit( const wxPoint& aPosition ); public: @@ -59,22 +51,15 @@ public: ~LIB_POLYLINE() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "LIB_POLYLINE" ); } - /** - * Write polyline object out to a FILE in "*.lib" format. - * - * @param aFormatter A reference to an OUTPUTFORMATTER to write the component library - * polyline to. - * @return True if success writing else false. - */ - virtual bool Save( OUTPUTFORMATTER& aFormatter ); + bool Save( OUTPUTFORMATTER& aFormatter ); - virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); + bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); void AddPoint( const wxPoint& aPoint ); @@ -88,122 +73,59 @@ public: */ unsigned GetCornerCount() const { return m_PolyPoints.size(); } - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * @param aPosition = a wxPoint to test - * @param aThreshold = max distance to a segment - * @param aTransform = the transform matrix - * @return true if the point \a aPosition is near a segment - */ - virtual bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ); + bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ); - /** - * Function GetBoundingBox - * @return the boundary box for this, in library coordinates - */ - virtual EDA_RECT GetBoundingBox() const; + EDA_RECT GetBoundingBox() const; - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize( ) const; + int GetPenSize( ) const; - virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + void DisplayInfo( EDA_DRAW_FRAME* aFrame ); - /** - * See LIB_ITEM::BeginEdit(). - */ void BeginEdit( int aEditMode, const wxPoint aStartPoint = wxPoint( 0, 0 ) ); - /** - * See LIB_ITEM::ContinueEdit(). - */ bool ContinueEdit( const wxPoint aNextPoint ); - /** - * See LIB_ITEM::AbortEdit(). - */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); - /** - * @copydoc LIB_ITEM::SetOffset(const wxPoint&) - */ - virtual void SetOffset( const wxPoint& aOffset ); + void SetOffset( const wxPoint& aOffset ); - /** - * @copydoc LIB_ITEM::Inside() - */ - virtual bool Inside( EDA_RECT& aRect ) const; + bool Inside( EDA_RECT& aRect ) const; - /** - * @copydoc LIB_ITEM::Move() - */ - virtual void Move( const wxPoint& aPosition ); + void Move( const wxPoint& aPosition ); - /** - * @copydoc LIB_ITEM::GetPosition() - */ - virtual wxPoint GetPosition() const { return m_PolyPoints[0]; } + wxPoint GetPosition() const { return m_PolyPoints[0]; } - /** - * @copydoc LIB_ITEM::MirrorHorizontal() - */ - virtual void MirrorHorizontal( const wxPoint& aCenter ); + void MirrorHorizontal( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::MirrorVertical() - */ - virtual void MirrorVertical( const wxPoint& aCenter ); + void MirrorVertical( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) - */ - virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); - /** - * @copydoc LIB_ITEM::Plot() - */ - virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); + void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); - /** - * @copydoc LIB_ITEM::GetWidth() - */ - virtual int GetWidth() const { return m_Width; } + int GetWidth() const { return m_Width; } - /** - * @copydoc LIB_ITEM::SetWidth() - */ - virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + void SetWidth( int aWidth ) { m_Width = aWidth; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_polygon_xpm; } + BITMAP_DEF GetMenuImage() const { return add_polygon_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: /** - * Function compare - * provides the polyline segment draw object specific comparison. + * @copydoc LIB_ITEM::compare() * - * The sort order for each polyline segment point is as follows: + * The sort order for specific to each polyline segment point is as follows: * - Line segment point horizontal (X) position. * - Line segment point vertical (Y) position. - * - * @param aOther A reference to the other #LIB_ITEM to compare the polyline against. - * @return An integer value less than 0 if the polyline is less than \a aOther, zero - * if the polyline is equal to \a aOther, or greater than 0 if the polyline - * is greater than \a aOther. */ - virtual int compare( const LIB_ITEM& aOther ) const; + int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_rectangle.h b/eeschema/lib_rectangle.h index 5f1dd6c090..4a44757ad5 100644 --- a/eeschema/lib_rectangle.h +++ b/eeschema/lib_rectangle.h @@ -41,17 +41,9 @@ class LIB_RECTANGLE : public LIB_ITEM bool m_isHeightLocked; // Flag: Keep height locked bool m_isStartPointSelected; // Flag: is the upper left edge selected? - /** - * Draw the rectangle. - */ void drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aColor, int aDrawMode, void* aData, const TRANSFORM& aTransform ); - /** - * Calculate the rectangle attributes relative to \a aPosition while editing. - * - * @param aPosition - Edit position in drawing units. - */ void calcEdit( const wxPoint& aPosition ); public: @@ -61,139 +53,72 @@ public: ~LIB_RECTANGLE() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "LIB_RECTANGLE" ); } void SetEndPosition( const wxPoint& aPosition ) { m_End = aPosition; } - /** - * Write rectangle object out to a FILE in "*.lib" format. - * - * @param aFormatter A reference to an OUTPUTFORMATTER to write the component library - * rectangle to. - * @return True if success writing else false. - */ - virtual bool Save( OUTPUTFORMATTER& aFormatter ); + bool Save( OUTPUTFORMATTER& aFormatter ); - virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); + bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * @param aPosRef - a wxPoint to test - * @param aThreshold - max distance to this object (usually the half - * thickness of a line) - * @param aTransform - the transform matrix - * @return true if the point aPosRef is near this object - */ - virtual bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform ); + bool HitTest( wxPoint aPosRef, int aThreshold, const TRANSFORM& aTransform ); - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize( ) const; + int GetPenSize( ) const; - virtual EDA_RECT GetBoundingBox() const; + EDA_RECT GetBoundingBox() const; - virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + void DisplayInfo( EDA_DRAW_FRAME* aFrame ); - /** - * See LIB_ITEM::BeginEdit(). - */ void BeginEdit( int aEditMode, const wxPoint aStartPoint = wxPoint( 0, 0 ) ); - /** - * See LIB_ITEM::ContinueEdit(). - */ bool ContinueEdit( const wxPoint aNextPoint ); - /** - * See LIB_ITEM::AbortEdit(). - */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); - /** - * @copydoc LIB_ITEM::SetOffset(const wxPoint&) - */ - virtual void SetOffset( const wxPoint& aOffset ); + void SetOffset( const wxPoint& aOffset ); - /** - * @copydoc LIB_ITEM::Inside() - */ - virtual bool Inside( EDA_RECT& aRect ) const; + bool Inside( EDA_RECT& aRect ) const; - /** - * @copydoc LIB_ITEM::Move() - */ - virtual void Move( const wxPoint& aPosition ); + void Move( const wxPoint& aPosition ); - /** - * @copydoc LIB_ITEM::GetPosition() - */ - virtual wxPoint GetPosition() const { return m_Pos; } + wxPoint GetPosition() const { return m_Pos; } - /** - * @copydoc LIB_ITEM::MirrorHorizontal() - */ - virtual void MirrorHorizontal( const wxPoint& aCenter ); + void MirrorHorizontal( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::MirrorVertical() - */ - virtual void MirrorVertical( const wxPoint& aCenter ); + void MirrorVertical( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) - */ - virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); - /** - * @copydoc LIB_ITEM::Plot() - */ - virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); + void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); - /** - * @copydoc LIB_ITEM::GetWidth() - */ - virtual int GetWidth() const { return m_Width; } + int GetWidth() const { return m_Width; } - /** - * @copydoc LIB_ITEM::SetWidth() - */ - virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + void SetWidth( int aWidth ) { m_Width = aWidth; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_rectangle_xpm; } + BITMAP_DEF GetMenuImage() const { return add_rectangle_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: /** - * Function compare - * provides the rectangle draw object specific comparison. + * @copydoc LIB_ITEM::compare() * - * The sort order is as follows: + * The rectangle specific sort order is as follows: * - Rectangle horizontal (X) start position. * - Rectangle vertical (Y) start position. * - Rectangle horizontal (X) end position. * - Rectangle vertical (Y) end position. - * - * @param aOther A reference to the other #LIB_ITEM to compare the rectangle against. - * @return An integer value less than 0 if the rectangle is less than \a aOther, zero - * if the rectangle is equal to \a aOther, or greater than 0 if the rectangle - * is greater than \a aOther. */ - virtual int compare( const LIB_ITEM& aOther ) const; + int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/lib_text.cpp b/eeschema/lib_text.cpp index 2d34bfff6e..349dc09889 100644 --- a/eeschema/lib_text.cpp +++ b/eeschema/lib_text.cpp @@ -317,7 +317,7 @@ void LIB_TEXT::Plot( PLOTTER* plotter, const wxPoint& offset, bool fill, int t1 = ( aTransform.x1 != 0 ) ^ ( m_Orient != 0 ); wxPoint pos = aTransform.TransformCoordinate( m_Pos ) + offset; - plotter->text( pos, UNSPECIFIED_COLOR, m_Text, + plotter->text( pos, UNSPECIFIED, m_Text, t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT, m_Size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, GetPenSize(), m_Italic, m_Bold ); @@ -389,7 +389,7 @@ void LIB_TEXT::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aO // Calculate pos accordint to mirror/rotation. txtpos = aTransform.TransformCoordinate( txtpos ) + aOffset; - DrawGraphicText( aPanel, aDC, txtpos, (EDA_Colors) color, m_Text, orient, m_Size, + DrawGraphicText( aPanel, aDC, txtpos, (EDA_COLOR_T) color, m_Text, orient, m_Size, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, GetPenSize(), m_Italic, m_Bold ); diff --git a/eeschema/lib_text.h b/eeschema/lib_text.h index 86eeba4905..10ef15582b 100644 --- a/eeschema/lib_text.h +++ b/eeschema/lib_text.h @@ -39,6 +39,7 @@ * This is only a graphical text item. Field text like the reference designator, * component value, etc. are not LIB_TEXT items. See the #LIB_FIELD class for the * field item definition. + *

*/ class LIB_TEXT : public LIB_ITEM, public EDA_TEXT { @@ -46,17 +47,9 @@ class LIB_TEXT : public LIB_ITEM, public EDA_TEXT bool m_rotate; ///< Flag to indicate a rotation occurred while editing. bool m_updateText; ///< Flag to indicate text change occurred while editing. - /** - * Draw the polyline. - */ void drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aColor, int aDrawMode, void* aData, const TRANSFORM& aTransform ); - /** - * Calculate the text attributes relative to \a aPosition while editing. - * - * @param aPosition - Edit position in drawing units. - */ void calcEdit( const wxPoint& aPosition ); public: @@ -66,7 +59,7 @@ public: ~LIB_TEXT() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "LIB_TEXT" ); } @@ -83,150 +76,74 @@ public: */ void SetText( const wxString& aText ); - /** - * Write text object out to a FILE in "*.lib" format. - * - * @param aFormatter A reference to an OUTPUTFORMATTER to write the component library - * text to. - * @return True if success writing else false. - */ - virtual bool Save( OUTPUTFORMATTER& aFormatter ); + bool Save( OUTPUTFORMATTER& aFormatter ); - virtual bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); + bool Load( LINE_READER& aLineReader, wxString& aErrorMsg ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * @param aPosition = a wxPoint to test, in Eeschema coordinates - * @param aThreshold = max distance to a segment - * @param aTransform = the transform matrix - * @return true if the point \a aPosition is near a segment - */ - virtual bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ); + bool HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& aTransform ); - /** - * Test if the given rectangle intersects this object. - * - * For now, an ending point must be inside this rect. - * - * @param aRect - the given EDA_RECT - * @return - true if a hit, else false - */ - virtual bool HitTest( EDA_RECT& aRect ) + bool HitTest( EDA_RECT& aRect ) { return TextHitTest( aRect ); } - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize( ) const; - virtual void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + int GetPenSize( ) const; - /** - * @return the boundary box for this, in schematic coordinates - */ - virtual EDA_RECT GetBoundingBox() const; + void DisplayInfo( EDA_DRAW_FRAME* aFrame ); + + EDA_RECT GetBoundingBox() const; void Rotate(); - /** - * See LIB_ITEM::BeginEdit(). - */ void BeginEdit( int aEditMode, const wxPoint aStartPoint = wxPoint( 0, 0 ) ); - /** - * See LIB_ITEM::ContinueEdit(). - */ bool ContinueEdit( const wxPoint aNextPoint ); - /** - * See LIB_ITEM::AbortEdit(). - */ void EndEdit( const wxPoint& aPosition, bool aAbort = false ); - /** - * @copydoc LIB_ITEM::SetOffset(const wxPoint&) - */ - virtual void SetOffset( const wxPoint& aOffset ); + void SetOffset( const wxPoint& aOffset ); - /** - * @copydoc LIB_ITEM::Inside() - */ - virtual bool Inside( EDA_RECT& aRect ) const; + bool Inside( EDA_RECT& aRect ) const; - /** - * @copydoc LIB_ITEM::Move() - */ - virtual void Move( const wxPoint& aPosition ); + void Move( const wxPoint& aPosition ); - /** - * @copydoc LIB_ITEM::GetPosition() - */ - virtual wxPoint GetPosition() const { return m_Pos; } + wxPoint GetPosition() const { return m_Pos; } - /** - * @copydoc LIB_ITEM::MirrorHorizontal() - */ - virtual void MirrorHorizontal( const wxPoint& aCenter ); + void MirrorHorizontal( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::MirrorVertical() - */ - virtual void MirrorVertical( const wxPoint& aCenter ); + void MirrorVertical( const wxPoint& aCenter ); - /** - * @copydoc LIB_ITEM::Rotate(const wxPoint&,bool) - */ - virtual void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); + void Rotate( const wxPoint& aCenter, bool aRotateCCW = true ); - /** - * @copydoc LIB_ITEM::Plot() - */ - virtual void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, - const TRANSFORM& aTransform ); + void Plot( PLOTTER* aPlotter, const wxPoint& aOffset, bool aFill, + const TRANSFORM& aTransform ); - /** - * @copydoc LIB_ITEM::GetWidth() - */ - virtual int GetWidth() const { return m_Thickness; } + int GetWidth() const { return m_Thickness; } - /** - * @copydoc LIB_ITEM::SetWidth() - */ - virtual void SetWidth( int aWidth ) { m_Thickness = aWidth; } + void SetWidth( int aWidth ) { m_Thickness = aWidth; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } + BITMAP_DEF GetMenuImage() const { return add_text_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: /** - * Function compare - * provides the text draw object specific comparison. + * @copydoc LIB_ITEM::compare() * - * The sort order is as follows: + * The text specific sort order is as follows: * - Text string, case insensitive compare. * - Text horizontal (X) position. * - Text vertical (Y) position. * - Text width. * - Text height. - * - * @param aOther A reference to the other #LIB_ITEM to compare the text against. - * @return An integer value less than 0 if the text is less than \a aOther, zero - * if the text is equal to \a aOther, or greater than 0 if the text is - * greater than \a aOther. */ - virtual int compare( const LIB_ITEM& aOther ) const; + int compare( const LIB_ITEM& aOther ) const; }; diff --git a/eeschema/libedit_onrightclick.cpp b/eeschema/libedit_onrightclick.cpp index ca2f30c0d1..93f011c85e 100644 --- a/eeschema/libedit_onrightclick.cpp +++ b/eeschema/libedit_onrightclick.cpp @@ -43,7 +43,8 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) // If Command in progress, put menu "cancel" if( item && item->GetFlags() ) { - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _( "Cancel" ), KiBitmap( cancel_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _( "Cancel" ), + KiBitmap( cancel_xpm ) ); PopMenu->AppendSeparator(); } else @@ -85,7 +86,8 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) { msg = AddHotkeyName( _( "Move Arc" ), s_Libedit_Hokeys_Descr, HK_LIBEDIT_MOVE_GRAPHIC_ITEM ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, KiBitmap( move_arc_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, + KiBitmap( move_arc_xpm ) ); msg = AddHotkeyName( _( "Drag Arc Size" ), s_Libedit_Hokeys_Descr, HK_DRAG ); AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, KiBitmap( move_arc_xpm ) ); } @@ -105,22 +107,26 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) { msg = AddHotkeyName( _( "Move Circle" ), s_Libedit_Hokeys_Descr, HK_LIBEDIT_MOVE_GRAPHIC_ITEM ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, KiBitmap( move_circle_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, + KiBitmap( move_circle_xpm ) ); } if( item->GetFlags() == 0 ) { msg = AddHotkeyName( _( "Drag Circle Outline" ), s_Libedit_Hokeys_Descr, HK_DRAG ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, KiBitmap( move_rectangle_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, + KiBitmap( move_rectangle_xpm ) ); } msg = AddHotkeyName( _( "Edit Circle Options" ), s_Libedit_Hokeys_Descr, HK_EDIT ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, KiBitmap( options_circle_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, + KiBitmap( options_circle_xpm ) ); if( item->GetFlags() == 0 ) { msg = AddHotkeyName( _( "Delete Circle" ), s_Libedit_Hokeys_Descr, HK_DELETE ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, KiBitmap( delete_circle_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, + KiBitmap( delete_circle_xpm ) ); } break; @@ -129,22 +135,26 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) { msg = AddHotkeyName( _( "Move Rectangle" ), s_Libedit_Hokeys_Descr, HK_LIBEDIT_MOVE_GRAPHIC_ITEM ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, KiBitmap( move_rectangle_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, + KiBitmap( move_rectangle_xpm ) ); } msg = AddHotkeyName( _( "Edit Rectangle Options" ), s_Libedit_Hokeys_Descr, HK_EDIT ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, KiBitmap( options_rectangle_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, + KiBitmap( options_rectangle_xpm ) ); if( item->GetFlags() == 0 ) { msg = AddHotkeyName( _( "Drag Rectangle Edge" ), s_Libedit_Hokeys_Descr, HK_DRAG ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, KiBitmap( move_rectangle_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, + KiBitmap( move_rectangle_xpm ) ); } if( item->GetFlags() == 0 ) { msg = AddHotkeyName( _( "Delete Rectangle" ), s_Libedit_Hokeys_Descr, HK_DELETE ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, KiBitmap( delete_rectangle_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, + KiBitmap( delete_rectangle_xpm ) ); } break; @@ -154,7 +164,8 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) { msg = AddHotkeyName( _( "Move Text" ), s_Libedit_Hokeys_Descr, HK_LIBEDIT_MOVE_GRAPHIC_ITEM ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, KiBitmap( move_text_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, + KiBitmap( move_text_xpm ) ); } msg = AddHotkeyName( _( "Edit Text" ), s_Libedit_Hokeys_Descr, HK_EDIT ); @@ -175,23 +186,27 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) { msg = AddHotkeyName( _( "Move Line" ), s_Libedit_Hokeys_Descr, HK_LIBEDIT_MOVE_GRAPHIC_ITEM ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, KiBitmap( move_line_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, + KiBitmap( move_line_xpm ) ); msg = AddHotkeyName( _( "Drag Edge Point" ), s_Libedit_Hokeys_Descr, HK_DRAG ); AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MODIFY_ITEM, msg, KiBitmap( move_line_xpm ) ); } if( item->IsNew() ) { - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_END_CREATE_ITEM, _( "Line End" ), KiBitmap( apply_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_END_CREATE_ITEM, _( "Line End" ), + KiBitmap( apply_xpm ) ); } msg = AddHotkeyName( _( "Edit Line Options" ), s_Libedit_Hokeys_Descr, HK_EDIT ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, KiBitmap( options_segment_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, msg, + KiBitmap( options_segment_xpm ) ); if( item->GetFlags() == 0 ) { msg = AddHotkeyName( _( "Delete Line " ), s_Libedit_Hokeys_Descr, HK_DELETE ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, KiBitmap( delete_segment_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, + KiBitmap( delete_segment_xpm ) ); } else if( item->IsNew() ) { @@ -210,7 +225,8 @@ bool LIB_EDIT_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) { msg = AddHotkeyName( _( "Move Field" ), s_Libedit_Hokeys_Descr, HK_LIBEDIT_MOVE_GRAPHIC_ITEM ); - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, KiBitmap( move_field_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, + KiBitmap( move_field_xpm ) ); } msg = AddHotkeyName( _( "Field Rotate" ), s_Libedit_Hokeys_Descr, HK_ROTATE ); @@ -280,9 +296,10 @@ void AddMenusForPin( wxMenu* PopMenu, LIB_PIN* Pin, LIB_EDIT_FRAME* frame ) void AddMenusForBlock( wxMenu* PopMenu, LIB_EDIT_FRAME* frame ) { - AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _( "Cancel Block" ), KiBitmap( cancel_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _( "Cancel Block" ), + KiBitmap( cancel_xpm ) ); - if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE ) + if( frame->GetScreen()->m_BlockLocate.GetCommand() == BLOCK_MOVE ) AddMenuItem( PopMenu, ID_POPUP_ZOOM_BLOCK, _( "Zoom Block (drag middle mouse)" ), KiBitmap( zoom_area_xpm ) ); @@ -291,13 +308,17 @@ void AddMenusForBlock( wxMenu* PopMenu, LIB_EDIT_FRAME* frame ) AddMenuItem( PopMenu, ID_POPUP_PLACE_BLOCK, _( "Place Block" ), KiBitmap( apply_xpm ) ); - if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE ) + if( frame->GetScreen()->m_BlockLocate.GetCommand() == BLOCK_MOVE ) { - AddMenuItem( PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK, _( "Select Items" ), KiBitmap( green_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK, _( "Select Items" ), + KiBitmap( green_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_COPY_BLOCK, _( "Copy Block" ), KiBitmap( copyblock_xpm ) ); - AddMenuItem( PopMenu, ID_POPUP_MIRROR_Y_BLOCK, _( "Mirror Block ||" ), KiBitmap( mirror_h_xpm ) ); - AddMenuItem( PopMenu, ID_POPUP_MIRROR_X_BLOCK, _( "Mirror Block --" ), KiBitmap( mirror_v_xpm ) ); - AddMenuItem( PopMenu, ID_POPUP_ROTATE_BLOCK, _( "Rotate Block ccw" ), KiBitmap( rotate_ccw_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_MIRROR_Y_BLOCK, _( "Mirror Block ||" ), + KiBitmap( mirror_h_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_MIRROR_X_BLOCK, _( "Mirror Block --" ), + KiBitmap( mirror_v_xpm ) ); + AddMenuItem( PopMenu, ID_POPUP_ROTATE_BLOCK, _( "Rotate Block ccw" ), + KiBitmap( rotate_ccw_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_DELETE_BLOCK, _( "Delete Block" ), KiBitmap( delete_xpm ) ); } } diff --git a/eeschema/libeditframe.cpp b/eeschema/libeditframe.cpp index 80de764c44..2c0a32ff29 100644 --- a/eeschema/libeditframe.cpp +++ b/eeschema/libeditframe.cpp @@ -795,48 +795,48 @@ void LIB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_ZOOM_BLOCK: m_canvas->SetAutoPanRequest( false ); - GetScreen()->m_BlockLocate.m_Command = BLOCK_ZOOM; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_ZOOM ); HandleBlockEnd( &dc ); break; case ID_POPUP_DELETE_BLOCK: m_canvas->SetAutoPanRequest( false ); - GetScreen()->m_BlockLocate.m_Command = BLOCK_DELETE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_DELETE ); m_canvas->MoveCursorToCrossHair(); HandleBlockEnd( &dc ); break; case ID_POPUP_COPY_BLOCK: m_canvas->SetAutoPanRequest( false ); - GetScreen()->m_BlockLocate.m_Command = BLOCK_COPY; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_COPY ); m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; case ID_POPUP_SELECT_ITEMS_BLOCK: m_canvas->SetAutoPanRequest( false ); - GetScreen()->m_BlockLocate.m_Command = BLOCK_SELECT_ITEMS_ONLY; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_SELECT_ITEMS_ONLY ); m_canvas->MoveCursorToCrossHair(); HandleBlockEnd( &dc ); break; case ID_POPUP_MIRROR_Y_BLOCK: m_canvas->SetAutoPanRequest( false ); - GetScreen()->m_BlockLocate.m_Command = BLOCK_MIRROR_Y; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_MIRROR_Y ); m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; case ID_POPUP_MIRROR_X_BLOCK: m_canvas->SetAutoPanRequest( false ); - GetScreen()->m_BlockLocate.m_Command = BLOCK_MIRROR_X; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_MIRROR_X ); m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; case ID_POPUP_ROTATE_BLOCK: m_canvas->SetAutoPanRequest( false ); - GetScreen()->m_BlockLocate.m_Command = BLOCK_ROTATE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_ROTATE ); m_canvas->MoveCursorToCrossHair(); HandleBlockPlace( &dc ); break; diff --git a/eeschema/onrightclick.cpp b/eeschema/onrightclick.cpp index dcb7e54a44..5b65ee4c40 100644 --- a/eeschema/onrightclick.cpp +++ b/eeschema/onrightclick.cpp @@ -674,14 +674,14 @@ void AddMenusForBlock( wxMenu* PopMenu, SCH_EDIT_FRAME* frame ) PopMenu->AppendSeparator(); - if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE ) + if( frame->GetScreen()->m_BlockLocate.GetCommand() == BLOCK_MOVE ) AddMenuItem( PopMenu, ID_POPUP_ZOOM_BLOCK, _( "Window Zoom" ), KiBitmap( zoom_area_xpm ) ); AddMenuItem( PopMenu, ID_POPUP_PLACE_BLOCK, _( "Place Block" ), KiBitmap( apply_xpm ) ); // After a block move (that is also a block selection) one can reselect // a block function. - if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE ) + if( frame->GetScreen()->m_BlockLocate.GetCommand() == BLOCK_MOVE ) { msg = AddHotkeyName( _( "Save Block" ), s_Schematic_Hokeys_Descr, HK_SAVE_BLOCK ); diff --git a/eeschema/protos.h b/eeschema/protos.h index dd71d59004..38763ffcc3 100644 --- a/eeschema/protos.h +++ b/eeschema/protos.h @@ -55,7 +55,7 @@ void DrawDanglingSymbol( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& pos, in /***********************************/ /* dialogs/dialog_color_config.cpp */ /***********************************/ -EDA_Colors ReturnLayerColor( int Layer ); +EDA_COLOR_T ReturnLayerColor( int Layer ); /***************/ diff --git a/eeschema/sch_bitmap.h b/eeschema/sch_bitmap.h index 1439b24ec6..d778354451 100644 --- a/eeschema/sch_bitmap.h +++ b/eeschema/sch_bitmap.h @@ -78,7 +78,7 @@ public: } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_BITMAP" ); } @@ -90,19 +90,11 @@ public: */ wxSize GetSize() const; - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display - * purposes. This box should be an enclosing perimeter for visible - * components of this object, and the units should be in the pcb or - * schematic coordinate system. It is OK to overestimate the size - * by a few counts. - */ EDA_RECT GetBoundingBox() const; - virtual void SwapData( SCH_ITEM* aItem ); + void SwapData( SCH_ITEM* aItem ); - virtual void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aDrawMode, int aColor = -1 ); /** @@ -114,67 +106,39 @@ public: */ bool ReadImageFile( const wxString& aFullFilename ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic junction entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic junction from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic junction. - * @return True if the schematic junction loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - virtual bool IsSelectStateChanged( const wxRect& aRect ); + bool IsSelectStateChanged( const wxRect& aRect ); - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const { return wxString( _( "Image" ) ); } + wxString GetSelectMenuText() const { return wxString( _( "Image" ) ); } - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return image_xpm; } + BITMAP_DEF GetMenuImage() const { return image_xpm; } - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_Pos; } + wxPoint GetPosition() const { return m_Pos; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } + void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, - int aAccuracy = 0 ) const; + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc SCH_ITEM::Plot() */ - virtual void Plot( PLOTTER* aPlotter ); + void Plot( PLOTTER* aPlotter ); - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override diff --git a/eeschema/sch_bus_entry.h b/eeschema/sch_bus_entry.h index 036dbf0037..3c7fa5ae63 100644 --- a/eeschema/sch_bus_entry.h +++ b/eeschema/sch_bus_entry.h @@ -56,7 +56,7 @@ public: ~SCH_BUS_ENTRY() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_BUS_ENTRY" ); } @@ -83,96 +83,54 @@ public: void SetSize( const wxSize& aSize ) { m_size = aSize; } - virtual void SwapData( SCH_ITEM* aItem ); + void SwapData( SCH_ITEM* aItem ); - virtual void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - int aDrawMode, int aColor = -1 ); + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, + int aDrawMode, int aColor = -1 ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic bus entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic bus entry from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic bus entry. - * @return True if the schematic bus entry loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display - * purposes. This box should be an enclosing perimeter for visible - * components of this object, and the units should be in the pcb or - * schematic coordinate system. It is OK to overestimate the size - * by a few counts. - */ EDA_RECT GetBoundingBox() const; - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize() const; + int GetPenSize() const; - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void MirrorX( int aXaxis_position ); - virtual void GetEndPoints( std::vector & aItemList ); + void Rotate( wxPoint aPosition ); - virtual bool IsSelectStateChanged( const wxRect& aRect ); + void GetEndPoints( std::vector & aItemList ); - /** - * @copydoc SCH_ITEM::IsConnectable() - */ - virtual bool IsConnectable() const { return true; } + bool IsSelectStateChanged( const wxRect& aRect ); - virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + bool IsConnectable() const { return true; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + void GetConnectionPoints( vector< wxPoint >& aPoints ) const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_entry_xpm; } + wxString GetSelectMenuText() const; - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_pos; } + BITMAP_DEF GetMenuImage() const { return add_entry_xpm; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + wxPoint GetPosition() const { return m_pos; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, - int aAccuracy = 0 ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::Plot() */ - virtual void Plot( PLOTTER* aPlotter ); + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + void Plot( PLOTTER* aPlotter ); + + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override diff --git a/eeschema/sch_component.h b/eeschema/sch_component.h index f97da88269..6be67912e4 100644 --- a/eeschema/sch_component.h +++ b/eeschema/sch_component.h @@ -111,7 +111,7 @@ public: ~SCH_COMPONENT() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_COMPONENT" ); } @@ -142,22 +142,9 @@ public: */ int GetPartCount() const; - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic component from \a aLine in a .sch file. - * - * @param aLine Essentially this is file to read the component from. - * @param aErrorMsg Description of the error if an error occurs while loading the component. - * @return True if the component loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); /** * Function SetOrientation @@ -210,14 +197,6 @@ public: */ void SetTimeStamp( long aNewTimeStamp ); - /** - * Function GetBoundingBox - * returns the bounding box of this object for display purposes. This box should be an - * enclosing perimeter for visible components of this object, and the units should be - * in the pcb or schematic coordinate system. It is OK to overestimate the size by a - * few counts. - * @return The bounding rectangle of the component. - */ EDA_RECT GetBoundingBox() const; //---------------------------------------------------------------- @@ -267,11 +246,11 @@ public: */ LIB_PIN* GetPin( const wxString& number ); - virtual void Draw( EDA_DRAW_PANEL* panel, - wxDC* DC, - const wxPoint& offset, - int draw_mode, - int Color = -1 ) + void Draw( EDA_DRAW_PANEL* panel, + wxDC* DC, + const wxPoint& offset, + int draw_mode, + int Color = -1 ) { Draw( panel, DC, offset, draw_mode, Color, true ); } @@ -283,7 +262,7 @@ public: int Color, bool DrawPinText ); - virtual void SwapData( SCH_ITEM* aItem ); + void SwapData( SCH_ITEM* aItem ); // returns a unique ID, in the form of a path. wxString GetPath( const SCH_SHEET_PATH* sheet ) const; @@ -329,8 +308,7 @@ public: // Geometric transforms (used in block operations): - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { if( aMoveVector == wxPoint( 0, 0 ) ) return; @@ -343,31 +321,25 @@ public: SetModified(); } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - /** - * @copydoc EDA_ITEM::Matches() - */ - virtual bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); + bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); - virtual void GetEndPoints( std::vector & aItemList ); + void GetEndPoints( std::vector & aItemList ); wxPoint GetPinPhysicalPosition( LIB_PIN* Pin ); - virtual bool IsSelectStateChanged( const wxRect& aRect ); + bool IsSelectStateChanged( const wxRect& aRect ); - virtual bool IsConnectable() const { return true; } + bool IsConnectable() const { return true; } - virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + void GetConnectionPoints( vector< wxPoint >& aPoints ) const; - virtual SEARCH_RESULT Visit( INSPECTOR* inspector, const void* testData, + SEARCH_RESULT Visit( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); /** @@ -380,53 +352,40 @@ public: */ LIB_ITEM* GetDrawItem( const wxPoint& aPosition, KICAD_T aType = TYPE_NOT_INIT ); - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_component_xpm; } + BITMAP_DEF GetMenuImage() const { return add_component_xpm; } - virtual void GetNetListItem( vector& aNetListItems, + void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); - virtual bool operator <( const SCH_ITEM& aItem ) const; + bool operator <( const SCH_ITEM& aItem ) const; bool operator==( const SCH_COMPONENT& aComponent) const; bool operator!=( const SCH_COMPONENT& aComponent) const; SCH_ITEM& operator=( const SCH_ITEM& aItem ); - /** - * @copydoc EDA_ITEM::IsReplaceable() - */ - virtual bool IsReplaceable() const { return true; } + bool IsReplaceable() const { return true; } - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_Pos; } + wxPoint GetPosition() const { return m_Pos; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ) { Move( aPosition - m_Pos ); } + void SetPosition( const wxPoint& aPosition ) { Move( aPosition - m_Pos ); } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, - int aAccuracy = 0 ) const; + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc SCH_ITEM::Plot() */ - virtual void Plot( PLOTTER* aPlotter ); + void Plot( PLOTTER* aPlotter ); - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - /** @copydoc SCH_ITEM::doIsConnected() */ - virtual bool doIsConnected( const wxPoint& aPosition ) const; + bool doIsConnected( const wxPoint& aPosition ) const; }; diff --git a/eeschema/sch_field.cpp b/eeschema/sch_field.cpp index c32f6e7f29..e4102e6716 100644 --- a/eeschema/sch_field.cpp +++ b/eeschema/sch_field.cpp @@ -133,7 +133,7 @@ void SCH_FIELD::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset, int DrawMode, int Color ) { int orient; - EDA_Colors color; + EDA_COLOR_T color; wxPoint textpos; SCH_COMPONENT* parentComponent = (SCH_COMPONENT*) m_Parent; int LineWidth = m_Thickness; @@ -537,7 +537,7 @@ void SCH_FIELD::Plot( PLOTTER* aPlotter ) wxCHECK_RET( parent != NULL && parent->Type() == SCH_COMPONENT_T, wxT( "Cannot plot field with invalid parent." ) ); - EDA_Colors color = UNSPECIFIED_COLOR; + EDA_COLOR_T color = UNSPECIFIED; color = ReturnLayerColor( GetLayer() ); diff --git a/eeschema/sch_field.h b/eeschema/sch_field.h index eafc76173f..1d7924b963 100644 --- a/eeschema/sch_field.h +++ b/eeschema/sch_field.h @@ -66,7 +66,7 @@ public: ~SCH_FIELD(); - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_FIELD" ); } @@ -94,7 +94,7 @@ public: * * @return a const wxString object containing the field's string. */ - virtual const wxString GetText() const; + const wxString GetText() const; void Place( SCH_EDIT_FRAME* frame, wxDC* DC ); @@ -111,13 +111,7 @@ public: return len == 0 || ( len == 1 && m_Text[0] == wxChar( '~' ) ); } - /** - * Function SwapData - * exchanges the date between the field and \a aItem - * - * @param aItem The field to exchange data with. - */ - virtual void SwapData( SCH_ITEM* aItem ); + void SwapData( SCH_ITEM* aItem ); /** * Function ImportValues @@ -127,10 +121,6 @@ public: */ void ImportValues( const LIB_FIELD& aSource ); - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ int GetPenSize() const; /** @@ -143,44 +133,32 @@ public: } - /** - * Function Draw - */ void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aDrawMode, int aColor = -1 ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; // Geometric transforms (used in block operations): - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); /** * @copydoc SCH_ITEM::MirrorX() * * This overload does nothing. Fields are never mirrored alone. They are moved * when the parent component is mirrored. This function is only needed by the - * virtual pure function of the master class. + * pure function of the master class. */ - virtual void MirrorX( int aXaxis_position ) + void MirrorX( int aXaxis_position ) { } @@ -189,52 +167,33 @@ public: * * This overload does nothing. Fields are never mirrored alone. They are moved * when the parent component is mirrored. This function is only needed by the - * virtual pure function of the master class. + * pure function of the master class. */ - virtual void MirrorY( int aYaxis_position ) + void MirrorY( int aYaxis_position ) { } - /** - * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) - */ - virtual bool Matches( wxFindReplaceData& aSearchData, - void* aAuxData, wxPoint* aFindLocation ); + bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); - /** - * @copydoc EDA_ITEM::Replace(wxFindReplaceData&,void*) - */ - virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ); + bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ); - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const; + BITMAP_DEF GetMenuImage() const; - /** - * @copydoc EDA_ITEM::IsReplaceable() - */ - virtual bool IsReplaceable() const { return true; } + bool IsReplaceable() const { return true; } - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const; + wxPoint GetPosition() const; - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ); + void SetPosition( const wxPoint& aPosition ); - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, - int aAccuracy = 0 ) const; + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc SCH_ITEM::Plot() */ - virtual void Plot( PLOTTER* aPlotter ); + void Plot( PLOTTER* aPlotter ); - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override diff --git a/eeschema/sch_junction.h b/eeschema/sch_junction.h index 5725ed3cbd..d68082b6c8 100644 --- a/eeschema/sch_junction.h +++ b/eeschema/sch_junction.h @@ -45,103 +45,65 @@ public: ~SCH_JUNCTION() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_JUNCTION" ); } - virtual void SwapData( SCH_ITEM* aItem ); + void SwapData( SCH_ITEM* aItem ); - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display - * purposes. This box should be an enclosing perimeter for visible - * components of this object, and the units should be in the pcb or - * schematic coordinate system. It is OK to overestimate the size - * by a few counts. - */ EDA_RECT GetBoundingBox() const; - virtual void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - int aDrawMode, int aColor = -1 ); + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, + int aDrawMode, int aColor = -1 ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic junction entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic junction from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic junction. - * @return True if the schematic junction loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - virtual void GetEndPoints( std::vector & aItemList ); + void GetEndPoints( std::vector & aItemList ); - virtual bool IsSelectStateChanged( const wxRect& aRect ); + bool IsSelectStateChanged( const wxRect& aRect ); - virtual bool IsConnectable() const { return true; } + bool IsConnectable() const { return true; } - virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + void GetConnectionPoints( vector< wxPoint >& aPoints ) const; - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const { return wxString( _( "Junction" ) ); } + wxString GetSelectMenuText() const { return wxString( _( "Junction" ) ); } - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_junction_xpm; } + BITMAP_DEF GetMenuImage() const { return add_junction_xpm; } - virtual void GetNetListItem( vector& aNetListItems, - SCH_SHEET_PATH* aSheetPath ); + void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_pos; } + wxPoint GetPosition() const { return m_pos; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; + void Plot( PLOTTER* aPlotter ); - /** @copydoc SCH_ITEM::Plot() */ - virtual void Plot( PLOTTER* aPlotter ); - - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - /** @copydoc SCH_ITEM::doIsConnected() */ - virtual bool doIsConnected( const wxPoint& aPosition ) const; + bool doIsConnected( const wxPoint& aPosition ) const; }; diff --git a/eeschema/sch_line.h b/eeschema/sch_line.h index 743a51f886..7f5cacf724 100644 --- a/eeschema/sch_line.h +++ b/eeschema/sch_line.h @@ -56,7 +56,7 @@ public: SCH_LINE* Next() const { return (SCH_LINE*) Pnext; } SCH_LINE* Back() const { return (SCH_LINE*) Pback; } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_LINE" ); } @@ -76,13 +76,6 @@ public: void SetEndPoint( const wxPoint& aPosition ) { m_end = aPosition; } - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display purposes. - * This box should be an enclosing perimeter for visible components of this - * object, and the units should be in the pcb or schematic coordinate system. - * It is OK to overestimate the size by a few counts. - */ EDA_RECT GetBoundingBox() const; /** @@ -91,44 +84,22 @@ public: */ double GetLength() const; - virtual void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - int aDrawMode, int aColor = -1 ); + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, + int aDrawMode, int aColor = -1 ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic line from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic line from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic line. - * @return True if the schematic line loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize() const; + int GetPenSize() const; - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ); + void Move( const wxPoint& aMoveVector ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); /** * Check line against \a aLine to see if it overlaps and merge if it does. @@ -142,59 +113,44 @@ public: */ bool MergeOverlap( SCH_LINE* aLine ); - virtual void GetEndPoints( vector & aItemList ); + void GetEndPoints( vector & aItemList ); - virtual bool IsDanglingStateChanged( vector< DANGLING_END_ITEM >& aItemList ); + bool IsDanglingStateChanged( vector< DANGLING_END_ITEM >& aItemList ); - virtual bool IsDangling() const { return m_startIsDangling || m_endIsDangling; } + bool IsDangling() const { return m_startIsDangling || m_endIsDangling; } - virtual bool IsSelectStateChanged( const wxRect& aRect ); + bool IsSelectStateChanged( const wxRect& aRect ); - /** - * Function IsConnectable - * returns true if the schematic item can connect to another schematic item. - */ - virtual bool IsConnectable() const; + bool IsConnectable() const; - virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + void GetConnectionPoints( vector< wxPoint >& aPoints ) const; - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const; + BITMAP_DEF GetMenuImage() const; - virtual void GetNetListItem( vector& aNetListItems, - SCH_SHEET_PATH* aSheetPath ); + void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); - virtual bool operator <( const SCH_ITEM& aItem ) const; + bool operator <( const SCH_ITEM& aItem ) const; - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_start; } + wxPoint GetPosition() const { return m_start; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ); + void SetPosition( const wxPoint& aPosition ); - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, - int aAccuracy = 0 ) const; + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc SCH_ITEM::Plot() */ - virtual void Plot( PLOTTER* aPlotter ); + void Plot( PLOTTER* aPlotter ); - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - /** @copydoc SCH_ITEM::doIsConnected() */ - virtual bool doIsConnected( const wxPoint& aPosition ) const; + bool doIsConnected( const wxPoint& aPosition ) const; }; diff --git a/eeschema/sch_marker.cpp b/eeschema/sch_marker.cpp index 7381c18fb7..650f4a1d19 100644 --- a/eeschema/sch_marker.cpp +++ b/eeschema/sch_marker.cpp @@ -105,20 +105,20 @@ bool SCH_MARKER::Save( FILE* aFile ) const void SCH_MARKER::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aDrawMode, int aColor ) { - EDA_Colors color = (EDA_Colors) m_Color; - EDA_Colors tmp = color; + EDA_COLOR_T color = (EDA_COLOR_T) m_Color; + EDA_COLOR_T tmp = color; if( GetMarkerType() == MARK_ERC ) { color = ( GetErrorLevel() == WAR ) ? - (EDA_Colors) g_LayerDescr.LayerColor[LAYER_ERC_WARN] : - (EDA_Colors) g_LayerDescr.LayerColor[LAYER_ERC_ERR]; + (EDA_COLOR_T) g_LayerDescr.LayerColor[LAYER_ERC_WARN] : + (EDA_COLOR_T) g_LayerDescr.LayerColor[LAYER_ERC_ERR]; } if( aColor < 0 ) m_Color = color; else - m_Color = (EDA_Colors) aColor; + m_Color = (EDA_COLOR_T) aColor; DrawMarker( aPanel, aDC, aDrawMode, aOffset ); m_Color = tmp; diff --git a/eeschema/sch_marker.h b/eeschema/sch_marker.h index 4e66bb7b16..1fd9e748ae 100644 --- a/eeschema/sch_marker.h +++ b/eeschema/sch_marker.h @@ -61,49 +61,31 @@ public: ~SCH_MARKER(); - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_MARKER" ); } - virtual void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - int aDraw_mode, int aColor = -1 ); + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, + int aDraw_mode, int aColor = -1 ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display purposes. - * This box should be an enclosing perimeter for visible components of this - * object, and the units should be in the pcb or schematic coordinate system. - * It is OK to overestimate the size by a few counts. - */ - virtual EDA_RECT GetBoundingBox() const; + EDA_RECT GetBoundingBox() const; // Geometric transforms (used in block operations): - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); /** * Compare DRC marker main and auxiliary text against search string. @@ -112,34 +94,23 @@ public: * @param aFindLocation - a wxPoint where to put the location of matched item. can be NULL. * @return True if the DRC main or auxiliary text matches the search criteria. */ - virtual bool Matches( wxFindReplaceData& aSearchData, wxPoint * aFindLocation ); + bool Matches( wxFindReplaceData& aSearchData, wxPoint* aFindLocation ); - /** - * Show the marker electronics rule check error on the message panel. - * - * @param aFrame - Top window that owns the message panel. - */ void DisplayInfo( EDA_DRAW_FRAME* aFrame ); - virtual bool IsSelectStateChanged( const wxRect& aRect ); + bool IsSelectStateChanged( const wxRect& aRect ); - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const { return wxString( _( "ERC Marker" ) ); } + wxString GetSelectMenuText() const { return wxString( _( "ERC Marker" ) ); } - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return erc_xpm; } + BITMAP_DEF GetMenuImage() const { return erc_xpm; } - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_Pos; } + wxPoint GetPosition() const { return m_Pos; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } + void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override diff --git a/eeschema/sch_no_connect.h b/eeschema/sch_no_connect.h index 8e3813764d..22ab5009e9 100644 --- a/eeschema/sch_no_connect.h +++ b/eeschema/sch_no_connect.h @@ -45,109 +45,67 @@ public: ~SCH_NO_CONNECT() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_NO_CONNECT" ); } - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize() const; + int GetPenSize() const; - virtual void SwapData( SCH_ITEM* aItem ); + void SwapData( SCH_ITEM* aItem ); - virtual void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - int aDrawMode, int aColor = -1 ); + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, + int aDrawMode, int aColor = -1 ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic no connect entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic no connect from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic no connect. - * @return True if the schematic no connect loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display - * purposes. This box should be an enclosing perimeter for visible - * components of this object, and the units should be in the pcb or - * schematic coordinate system. It is OK to overestimate the size - * by a few counts. - */ EDA_RECT GetBoundingBox() const; // Geometric transforms (used in block operations): - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - virtual bool IsSelectStateChanged( const wxRect& aRect ); + bool IsSelectStateChanged( const wxRect& aRect ); - virtual bool IsConnectable() const { return true; } + bool IsConnectable() const { return true; } - virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + void GetConnectionPoints( vector< wxPoint >& aPoints ) const; - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const { return wxString( _( "No Connect" ) ); } + wxString GetSelectMenuText() const { return wxString( _( "No Connect" ) ); } - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return noconn_xpm; } + BITMAP_DEF GetMenuImage() const { return noconn_xpm; } - virtual void GetNetListItem( vector& aNetListItems, - SCH_SHEET_PATH* aSheetPath ); + void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_pos; } + wxPoint GetPosition() const { return m_pos; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, - int aAccuracy = 0 ) const; + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc SCH_ITEM::Plot() */ - virtual void Plot( PLOTTER* aPlotter ); + void Plot( PLOTTER* aPlotter ); - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: - /** @copydoc SCH_ITEM::doIsConnected() */ - virtual bool doIsConnected( const wxPoint& aPosition ) const; + bool doIsConnected( const wxPoint& aPosition ) const; }; diff --git a/eeschema/sch_polyline.h b/eeschema/sch_polyline.h index ecdf0fde2e..1d696376ed 100644 --- a/eeschema/sch_polyline.h +++ b/eeschema/sch_polyline.h @@ -46,32 +46,17 @@ public: ~SCH_POLYLINE(); - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_POLYLINE" ); } - virtual void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - int aDrawMode, int aColor = -1 ); + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, + int aDrawMode, int aColor = -1 ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic poly line entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic poly line from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic poly line. - * @return True if the schematic poly line loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); /** * Function AddPoint @@ -106,33 +91,23 @@ public: */ unsigned GetCornerCount() const { return m_points.size(); } - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize() const; + int GetPenSize() const; - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) m_points[ii] += aMoveVector; } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const; + BITMAP_DEF GetMenuImage() const; /** * Function operator[] @@ -149,21 +124,16 @@ public: return m_points[ aIndex ]; } - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_points[0]; } + wxPoint GetPosition() const { return m_points[0]; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ); + void SetPosition( const wxPoint& aPosition ); - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override diff --git a/eeschema/sch_screen.cpp b/eeschema/sch_screen.cpp index 72afa485a3..63aa90218e 100644 --- a/eeschema/sch_screen.cpp +++ b/eeschema/sch_screen.cpp @@ -732,7 +732,7 @@ void SCH_SCREEN::SelectBlockItems() { SCH_ITEM* item; - PICKED_ITEMS_LIST* pickedlist = &m_BlockLocate.m_ItemsSelection; + PICKED_ITEMS_LIST* pickedlist = &m_BlockLocate.GetItems(); if( pickedlist->GetCount() == 0 ) return; @@ -750,7 +750,7 @@ void SCH_SCREEN::SelectBlockItems() // Select all the items in the screen connected to the items in the block. // be sure end lines that are on the block limits are seen inside this block - m_BlockLocate.Inflate(1); + m_BlockLocate.Inflate( 1 ); unsigned last_select_id = pickedlist->GetCount(); unsigned ii = 0; @@ -789,7 +789,7 @@ void SCH_SCREEN::SelectBlockItems() } } - m_BlockLocate.Inflate(-1); + m_BlockLocate.Inflate( -1 ); } @@ -831,7 +831,7 @@ void SCH_SCREEN::addConnectedItemsToBlock( const wxPoint& position ) if( addinlist ) { picker.SetFlags( item->GetFlags() ); - m_BlockLocate.m_ItemsSelection.PushItem( picker ); + m_BlockLocate.GetItems().PushItem( picker ); } } } @@ -841,7 +841,7 @@ int SCH_SCREEN::UpdatePickList() { ITEM_PICKER picker; EDA_RECT area; - area.SetOrigin( m_BlockLocate.GetOrigin()); + area.SetOrigin( m_BlockLocate.GetOrigin() ); area.SetSize( m_BlockLocate.GetSize() ); area.Normalize(); diff --git a/eeschema/sch_sheet.cpp b/eeschema/sch_sheet.cpp index cfdd28caa9..ab31d80788 100644 --- a/eeschema/sch_sheet.cpp +++ b/eeschema/sch_sheet.cpp @@ -602,7 +602,7 @@ void SCH_SHEET::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, Text = wxT( "Sheet: " ) + m_name; DrawGraphicText( aPanel, aDC, pos_sheetname, - (EDA_Colors) txtcolor, Text, name_orientation, + (EDA_COLOR_T) txtcolor, Text, name_orientation, wxSize( m_sheetNameSize, m_sheetNameSize ), GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_BOTTOM, lineWidth, false, false ); @@ -615,7 +615,7 @@ void SCH_SHEET::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, Text = wxT( "File: " ) + m_fileName; DrawGraphicText( aPanel, aDC, pos_filename, - (EDA_Colors) txtcolor, Text, name_orientation, + (EDA_COLOR_T) txtcolor, Text, name_orientation, wxSize( m_fileNameSize, m_fileNameSize ), GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_TOP, lineWidth, false, false ); @@ -1104,12 +1104,12 @@ void SCH_SHEET::GetNetListItem( vector& aNetListItems, void SCH_SHEET::Plot( PLOTTER* aPlotter ) { - EDA_Colors txtcolor = UNSPECIFIED_COLOR; - wxSize size; - wxString Text; - int name_orientation; - wxPoint pos_sheetname, pos_filename; - wxPoint pos; + EDA_COLOR_T txtcolor = UNSPECIFIED; + wxSize size; + wxString Text; + int name_orientation; + wxPoint pos_sheetname, pos_filename; + wxPoint pos; aPlotter->set_color( ReturnLayerColor( GetLayer() ) ); diff --git a/eeschema/sch_sheet.h b/eeschema/sch_sheet.h index b54328886f..c3fd25f3f2 100644 --- a/eeschema/sch_sheet.h +++ b/eeschema/sch_sheet.h @@ -87,18 +87,18 @@ public: ~SCH_SHEET_PIN() { } - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_SHEET_PIN" ); } bool operator ==( const SCH_SHEET_PIN* aPin ) const; - virtual void Draw( EDA_DRAW_PANEL* aPanel, - wxDC* aDC, - const wxPoint& aOffset, - int aDraw_mode, - int aColor = -1 ); + void Draw( EDA_DRAW_PANEL* aPanel, + wxDC* aDC, + const wxPoint& aOffset, + int aDraw_mode, + int aColor = -1 ); /** * Function CreateGraphicShape (virtual) @@ -106,9 +106,11 @@ public: * @param aPoints = a buffer to fill with polygon corners coordinates * @param aPos = Position of the shape */ - virtual void CreateGraphicShape( std::vector & aPoints, const wxPoint& aPos ); + void CreateGraphicShape( std::vector & aPoints, const wxPoint& aPos ); - virtual void SwapData( SCH_ITEM* aItem ); + void SwapData( SCH_ITEM* aItem ); + + int GetPenSize() const; /** * Get the sheet label number. @@ -143,87 +145,49 @@ public: */ SCH_SHEET* GetParent() const { return (SCH_SHEET*) m_Parent; } - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic sheet hierarchical label from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read the sheet hierarchical label from. - * @param aErrorMsg - Description of the error if an error occurs while loading the sheet - * hierarchical label. - * @return True if the sheet hierarchical label loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize() const; - // Geometric transforms (used in block operations): - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** - * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) - */ - virtual bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); + bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); - /** - * @copydoc EDA_ITEM::Replace(wxFindReplaceData&,void*) - */ - virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ) + bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ) { return EDA_ITEM::Replace( aSearchData, m_Text ); } - /** - * @copydoc EDA_ITEM::IsReplaceable() - */ - virtual bool IsReplaceable() const { return true; } + bool IsReplaceable() const { return true; } - virtual void GetEndPoints( std::vector< DANGLING_END_ITEM >& aItemList ); + void GetEndPoints( std::vector< DANGLING_END_ITEM >& aItemList ); - virtual bool IsConnectable() const { return true; } + bool IsConnectable() const { return true; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_hierar_pin_xpm; } + BITMAP_DEF GetMenuImage() const { return add_hierar_pin_xpm; } - virtual void SetPosition( const wxPoint& aPosition ) { ConstrainOnEdge( aPosition ); } + void SetPosition( const wxPoint& aPosition ) { ConstrainOnEdge( aPosition ); } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; }; @@ -277,7 +241,7 @@ public: ~SCH_SHEET(); - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_SHEET" ); } @@ -322,23 +286,9 @@ public: */ int GetScreenCount() const; - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic sheet from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read the component from. - * @param aErrorMsg - Description of the error if an error occurs while loading the sheet. - * @return True if the sheet loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); void DisplayInfo( EDA_DRAW_FRAME* frame ); @@ -439,32 +389,14 @@ public: */ int GetMinHeight() const; - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - virtual int GetPenSize() const; + int GetPenSize() const; - /** - * Function Draw - * Draw the hierarchical sheet shape - * @param aPanel = the current DrawPanel - * @param aDC = the current Device Context - * @param aOffset = draw offset (usually wxPoint(0,0)) - * @param aDrawMode = draw mode - * @param aColor = color used to draw sheet. Usually -1 to use the normal - * color for sheet items - */ void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, int aDrawMode, int aColor = -1 ); - /** - * Function GetBoundingBox - * @return an EDA_RECT giving the bounding box of the sheet - */ EDA_RECT GetBoundingBox() const; /** @@ -475,7 +407,7 @@ public: */ wxPoint GetResizePosition() const; - virtual void SwapData( SCH_ITEM* aItem ); + void SwapData( SCH_ITEM* aItem ); /** * Function ComponentCount @@ -547,8 +479,7 @@ public: // Geometric transforms (used in block operations): - /** @copydoc SCH_ITEM::Move() */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; @@ -558,29 +489,17 @@ public: } } - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - /** - * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) - */ - virtual bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); + bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); - /** - * @copydoc EDA_ITEM::Replace(wxFindReplaceData&,void*) - */ - virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ); + bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ); - /** - * @copydoc EDA_ITEM::IsReplaceable() - */ - virtual bool IsReplaceable() const { return true; } + bool IsReplaceable() const { return true; } /** * Resize this sheet to aSize and adjust all of the labels accordingly. @@ -601,50 +520,41 @@ public: */ wxPoint GetFileNamePosition(); - virtual void GetEndPoints( std::vector & aItemList ); + void GetEndPoints( std::vector & aItemList ); - virtual bool IsDanglingStateChanged( std::vector< DANGLING_END_ITEM >& aItemList ); + bool IsDanglingStateChanged( std::vector< DANGLING_END_ITEM >& aItemList ); - virtual bool IsDangling() const; + bool IsDangling() const; - virtual bool IsSelectStateChanged( const wxRect& aRect ); + bool IsSelectStateChanged( const wxRect& aRect ); - virtual bool IsConnectable() const { return true; } + bool IsConnectable() const { return true; } - virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + void GetConnectionPoints( vector< wxPoint >& aPoints ) const; - virtual SEARCH_RESULT Visit( INSPECTOR* inspector, const void* testData, + SEARCH_RESULT Visit( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_hierarchical_subsheet_xpm; } + BITMAP_DEF GetMenuImage() const { return add_hierarchical_subsheet_xpm; } - virtual void GetNetListItem( vector& aNetListItems, + void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); SCH_ITEM& operator=( const SCH_ITEM& aSheet ); - /** @copydoc SCH_ITEM::GetPosition() */ - virtual wxPoint GetPosition() const { return m_pos; } + wxPoint GetPosition() const { return m_pos; } - /** @copydoc SCH_ITEM::SetPosition() */ - virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ - virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, - int aAccuracy = 0 ) const; + bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc SCH_ITEM::Plot() */ - virtual void Plot( PLOTTER* aPlotter ); + void Plot( PLOTTER* aPlotter ); - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override diff --git a/eeschema/sch_text.cpp b/eeschema/sch_text.cpp index 5c8dfebbce..c6e6df09c1 100644 --- a/eeschema/sch_text.cpp +++ b/eeschema/sch_text.cpp @@ -372,13 +372,13 @@ int SCH_TEXT::GetPenSize() const void SCH_TEXT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& aOffset, int DrawMode, int Color ) { - EDA_Colors color; - int linewidth = ( m_Thickness == 0 ) ? g_DrawDefaultLineThickness : m_Thickness; + EDA_COLOR_T color; + int linewidth = ( m_Thickness == 0 ) ? g_DrawDefaultLineThickness : m_Thickness; linewidth = Clamp_Text_PenSize( linewidth, m_Size, m_Bold ); if( Color >= 0 ) - color = (EDA_Colors) Color; + color = (EDA_COLOR_T) Color; else color = ReturnLayerColor( m_Layer ); @@ -386,7 +386,7 @@ void SCH_TEXT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& aOffset, wxPoint text_offset = aOffset + GetSchematicTextOffset(); EXCHG( linewidth, m_Thickness ); // Set the minimum width - EDA_TEXT::Draw( panel, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED_COLOR ); + EDA_TEXT::Draw( panel, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED ); EXCHG( linewidth, m_Thickness ); // set initial value if( m_isDangling ) @@ -687,9 +687,9 @@ void SCH_TEXT::Plot( PLOTTER* aPlotter ) { static std::vector Poly; - EDA_Colors color = ReturnLayerColor( GetLayer() ); - wxPoint textpos = m_Pos + GetSchematicTextOffset(); - int thickness = GetPenSize(); + EDA_COLOR_T color = ReturnLayerColor( GetLayer() ); + wxPoint textpos = m_Pos + GetSchematicTextOffset(); + int thickness = GetPenSize(); aPlotter->set_current_line_width( thickness ); @@ -1195,11 +1195,11 @@ void SCH_GLOBALLABEL::Draw( EDA_DRAW_PANEL* panel, int Color ) { static std::vector Poly; - EDA_Colors color; - wxPoint text_offset = aOffset + GetSchematicTextOffset(); + EDA_COLOR_T color; + wxPoint text_offset = aOffset + GetSchematicTextOffset(); if( Color >= 0 ) - color = (EDA_Colors) Color; + color = (EDA_COLOR_T) Color; else color = ReturnLayerColor( m_Layer ); @@ -1208,7 +1208,7 @@ void SCH_GLOBALLABEL::Draw( EDA_DRAW_PANEL* panel, int linewidth = (m_Thickness == 0) ? g_DrawDefaultLineThickness : m_Thickness; linewidth = Clamp_Text_PenSize( linewidth, m_Size, m_Bold ); EXCHG( linewidth, m_Thickness ); // Set the minimum width - EDA_TEXT::Draw( panel, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED_COLOR ); + EDA_TEXT::Draw( panel, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED ); EXCHG( linewidth, m_Thickness ); // set initial value CreateGraphicShape( Poly, m_Pos + aOffset ); @@ -1525,13 +1525,13 @@ void SCH_HIERLABEL::Draw( EDA_DRAW_PANEL* panel, int Color ) { static std::vector Poly; - EDA_Colors color; - int linewidth = ( m_Thickness == 0 ) ? g_DrawDefaultLineThickness : m_Thickness; + EDA_COLOR_T color; + int linewidth = ( m_Thickness == 0 ) ? g_DrawDefaultLineThickness : m_Thickness; linewidth = Clamp_Text_PenSize( linewidth, m_Size, m_Bold ); if( Color >= 0 ) - color = (EDA_Colors) Color; + color = (EDA_COLOR_T) Color; else color = ReturnLayerColor( m_Layer ); @@ -1539,7 +1539,7 @@ void SCH_HIERLABEL::Draw( EDA_DRAW_PANEL* panel, EXCHG( linewidth, m_Thickness ); // Set the minimum width wxPoint text_offset = offset + GetSchematicTextOffset(); - EDA_TEXT::Draw( panel, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED_COLOR ); + EDA_TEXT::Draw( panel, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED ); EXCHG( linewidth, m_Thickness ); // set initial value CreateGraphicShape( Poly, m_Pos + offset ); diff --git a/eeschema/sch_text.h b/eeschema/sch_text.h index c407579c5b..46f3b1ec09 100644 --- a/eeschema/sch_text.h +++ b/eeschema/sch_text.h @@ -109,8 +109,7 @@ public: * @param aSchematicOrientation = * 0 = normal (horizontal, left justified). * 1 = up (vertical) - * 2 = (horizontal, right justified). This can be seen as the mirrored - * position of 0 + * 2 = (horizontal, right justified). This can be seen as the mirrored position of 0 * 3 = bottom . This can be seen as the mirrored position of up */ virtual void SetOrientation( int aSchematicOrientation ); @@ -139,9 +138,8 @@ public: /** * Function CreateGraphicShape * Calculates the graphic shape (a polygon) associated to the text - * @param aPoints = a buffer to fill with polygon corners coordinates - * @param Pos = Postion of the shape - * for texts and labels: do nothing + * @param aPoints A buffer to fill with polygon corners coordinates + * @param Pos Position of the shape, for texts and labels: do nothing * Mainly for derived classes (SCH_SHEET_PIN and Hierarchical labels) */ virtual void CreateGraphicShape( std::vector & aPoints, const wxPoint& Pos ) @@ -151,73 +149,34 @@ public: virtual void SwapData( SCH_ITEM* aItem ); - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display purposes. - * This box should be an enclosing perimeter for visible components of this - * object, and the units should be in the pcb or schematic coordinate system. - * It is OK to overestimate the size by a few counts. - */ - EDA_RECT GetBoundingBox() const; + virtual EDA_RECT GetBoundingBox() const; - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ - bool Save( FILE* aFile ) const; + virtual bool Save( FILE* aFile ) const; - /** - * Load schematic text entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic text from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic text. - * @return True if the schematic text loaded successfully. - */ virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function GetPenSize - * @return the size of the "pen" that be used to draw or plot this item - */ - int GetPenSize() const; + virtual int GetPenSize() const; // Geometric transforms (used in block operations): - /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** @copydoc SCH_ITEM::MirrorY() */ virtual void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ virtual void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ virtual void Rotate( wxPoint aPosition ); - /** - * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) - */ virtual bool Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint* aFindLocation ); - /** - * @copydoc EDA_ITEM::Replace(wxFindReplaceData&,void*) - */ virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ) { return EDA_ITEM::Replace( aSearchData, m_Text ); } - /** - * @copydoc EDA_ITEM::IsReplaceable() - */ virtual bool IsReplaceable() const { return true; } virtual void GetEndPoints( std::vector< DANGLING_END_ITEM >& aItemList ); @@ -232,32 +191,24 @@ public: virtual bool CanIncrementLabel() const { return true; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); - /** @copydoc SCH_ITEM::GetPosition() */ virtual wxPoint GetPosition() const { return m_Pos; } - /** @copydoc SCH_ITEM::SetPosition() */ virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc SCH_ITEM::HitTest(const EDA_RECT&,bool,int)const */ virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const; - /** @copydoc SCH_ITEM::Plot() */ virtual void Plot( PLOTTER* aPlotter ); - /** @copydoc EDA_ITEM::Clone() */ virtual EDA_ITEM* Clone() const; #if defined(DEBUG) @@ -275,98 +226,45 @@ public: ~SCH_LABEL() { } - virtual void Draw( EDA_DRAW_PANEL* panel, - wxDC* DC, - const wxPoint& offset, - int draw_mode, - int Color = -1 ); + void Draw( EDA_DRAW_PANEL* panel, + wxDC* DC, + const wxPoint& offset, + int draw_mode, + int Color = -1 ); - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_LABEL" ); } - /** - * Function SetOrientation - * Set m_schematicOrientation, and initialize - * m_orient,m_HJustified and m_VJustified, according to the value of - * m_schematicOrientation (for a label) - * must be called after changing m_schematicOrientation - * @param aSchematicOrientation = - * 0 = normal (horizontal, left justified). - * 1 = up (vertical) - * 2 = (horizontal, right justified). This can be seen as the mirrored - * position of 0 - * 3 = bottom . This can be seen as the mirrored position of up - */ - virtual void SetOrientation( int aSchematicOrientation ); + void SetOrientation( int aSchematicOrientation ); - /** - * Function GetSchematicTextOffset (virtual) - * @return the offset between the SCH_TEXT position and the text itself - * position - * This offset depend on orientation, and the type of text - * (room to draw an associated graphic symbol, or put the text above a - * wire) - */ - virtual wxPoint GetSchematicTextOffset() const; + wxPoint GetSchematicTextOffset() const; - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display purposes. - * This box should be an enclosing perimeter for visible components of this - * object, and the units should be in the pcb or schematic coordinate system. - * It is OK to overestimate the size by a few counts. - */ EDA_RECT GetBoundingBox() const; - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic label entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic label from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic label. - * @return True if the schematic label loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - virtual bool IsConnectable() const { return true; } + bool IsConnectable() const { return true; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_line_label_xpm; } + BITMAP_DEF GetMenuImage() const { return add_line_label_xpm; } - /** - * @copydoc EDA_ITEM::IsReplaceable() - */ - virtual bool IsReplaceable() const { return true; } + bool IsReplaceable() const { return true; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: - /** @copydoc SCH_ITEM::doIsConnected() */ - virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } }; @@ -379,104 +277,47 @@ public: ~SCH_GLOBALLABEL() { } - virtual void Draw( EDA_DRAW_PANEL* panel, - wxDC* DC, - const wxPoint& offset, - int draw_mode, - int Color = -1 ); + void Draw( EDA_DRAW_PANEL* panel, + wxDC* DC, + const wxPoint& offset, + int draw_mode, + int Color = -1 ); - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_GLOBALLABEL" ); } - /** - * Function SetOrientation - * Set m_schematicOrientation, and initialize - * m_orient,m_HJustified and m_VJustified, according to the value of - * m_schematicOrientation - * must be called after changing m_schematicOrientation - * @param aSchematicOrientation = - * 0 = normal (horizontal, left justified). - * 1 = up (vertical) - * 2 = (horizontal, right justified). This can be seen as the mirrored - * position of 0 - * 3 = bottom . This can be seen as the mirrored position of up - */ - virtual void SetOrientation( int aSchematicOrientation ); + void SetOrientation( int aSchematicOrientation ); - /** - * Function GetSchematicTextOffset (virtual) - * @return the offset between the SCH_TEXT position and the text itself - * position - * This offset depend on orientation, and the type of text - * (room to draw an associated graphic symbol, or put the text above a - * wire) - */ - virtual wxPoint GetSchematicTextOffset() const; + wxPoint GetSchematicTextOffset() const; - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic global label entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic global label from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic global label. - * @return True if the schematic global label loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display purposes. - * This box should be an enclosing perimeter for visible components of this - * object, and the units should be in the pcb or schematic coordinate system. - * It is OK to overestimate the size by a few counts. - */ EDA_RECT GetBoundingBox() const; - /** - * Function CreateGraphicShape (virual) - * Calculates the graphic shape (a polygon) associated to the text - * @param aPoints = a buffer to fill with polygon corners coordinates - * @param aPos = Position of the shape - */ - virtual void CreateGraphicShape( std::vector & aPoints, const wxPoint& aPos ); + void CreateGraphicShape( std::vector & aPoints, const wxPoint& aPos ); - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - virtual bool IsConnectable() const { return true; } + bool IsConnectable() const { return true; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_glabel_xpm; } + BITMAP_DEF GetMenuImage() const { return add_glabel_xpm; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: - /** @copydoc SCH_ITEM::doIsConnected() */ - virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } }; @@ -491,104 +332,47 @@ public: ~SCH_HIERLABEL() { } - virtual void Draw( EDA_DRAW_PANEL* panel, - wxDC* DC, - const wxPoint& offset, - int draw_mode, - int Color = -1 ); + void Draw( EDA_DRAW_PANEL* panel, + wxDC* DC, + const wxPoint& offset, + int draw_mode, + int Color = -1 ); - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "SCH_HIERLABEL" ); } - /** - * Function SetOrientation - * Set m_schematicOrientation, and initialize - * m_orient,m_HJustified and m_VJustified, according to the value of - * m_schematicOrientation - * must be called after changing m_schematicOrientation - * @param aSchematicOrientation = - * 0 = normal (horizontal, left justified). - * 1 = up (vertical) - * 2 = (horizontal, right justified). This can be seen as the mirrored - * position of 0 - * 3 = bottom . This can be seen as the mirrored position of up - */ - virtual void SetOrientation( int aSchematicOrientation ); + void SetOrientation( int aSchematicOrientation ); - /** - * Function GetSchematicTextOffset (virtual) - * @return the offset between the SCH_TEXT position and the text itself - * position - * This offset depend on orientation, and the type of text - * (room to draw an associated graphic symbol, or put the text above a - * wire) - */ - virtual wxPoint GetSchematicTextOffset() const; + wxPoint GetSchematicTextOffset() const; - /** - * Function CreateGraphicShape - * Calculates the graphic shape (a polygon) associated to the text - * @param aPoints = a buffer to fill with polygon corners coordinates - * @param Pos = Postion of the shape - */ - virtual void CreateGraphicShape( std::vector & aPoints, const wxPoint& Pos ); + void CreateGraphicShape( std::vector & aPoints, const wxPoint& Pos ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.sch" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Load schematic hierarchical label entry from \a aLine in a .sch file. - * - * @param aLine - Essentially this is file to read schematic hierarchical label from. - * @param aErrorMsg - Description of the error if an error occurs while loading the - * schematic hierarchical label. - * @return True if the schematic hierarchical label loaded successfully. - */ - virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); + bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display purposes. - * This box should be an enclosing perimeter for visible components of this - * object, and the units should be in the pcb or schematic coordinate system. - * It is OK to overestimate the size by a few counts. - */ EDA_RECT GetBoundingBox() const; - /** @copydoc SCH_ITEM::MirrorY() */ - virtual void MirrorY( int aYaxis_position ); + void MirrorY( int aYaxis_position ); - /** @copydoc SCH_ITEM::MirrorX() */ - virtual void MirrorX( int aXaxis_position ); + void MirrorX( int aXaxis_position ); - /** @copydoc SCH_ITEM::Rotate() */ - virtual void Rotate( wxPoint aPosition ); + void Rotate( wxPoint aPosition ); - virtual bool IsConnectable() const { return true; } + bool IsConnectable() const { return true; } - /** @copydoc EDA_ITEM::GetSelectMenuText() */ - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - /** @copydoc EDA_ITEM::GetMenuImage() */ - virtual BITMAP_DEF GetMenuImage() const { return add_hierarchical_label_xpm; } + BITMAP_DEF GetMenuImage() const { return add_hierarchical_label_xpm; } - /** @copydoc SCH_ITEM::HitTest(const wxPoint&,int)const */ - virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; private: - /** @copydoc SCH_ITEM::doIsConnected() */ - virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } }; #endif /* CLASS_TEXT_LABEL_H */ diff --git a/eeschema/schedit.cpp b/eeschema/schedit.cpp index fefb19b17f..3a95b96d18 100644 --- a/eeschema/schedit.cpp +++ b/eeschema/schedit.cpp @@ -121,7 +121,7 @@ void SCH_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case wxID_CUT: - if( screen->m_BlockLocate.m_Command != BLOCK_MOVE ) + if( screen->m_BlockLocate.GetCommand() != BLOCK_MOVE ) break; HandleBlockEndByPopUp( BLOCK_DELETE, &dc ); @@ -717,7 +717,7 @@ void SCH_EDIT_FRAME::OnRotate( wxCommandEvent& aEvent ) if( item == NULL ) { // Allows block rotate operation on hot key. - if( screen->m_BlockLocate.m_State != STATE_NO_BLOCK ) + if( screen->m_BlockLocate.GetState() != STATE_NO_BLOCK ) { HandleBlockEndByPopUp( BLOCK_ROTATE, &dc ); return; @@ -909,7 +909,7 @@ void SCH_EDIT_FRAME::OnDragItem( wxCommandEvent& aEvent ) // The easiest way to handle a drag component or sheet command // is to simulate a block drag command - if( screen->m_BlockLocate.m_State == STATE_NO_BLOCK ) + if( screen->m_BlockLocate.GetState() == STATE_NO_BLOCK ) { if( !HandleBlockBegin( &dc, BLOCK_DRAG, screen->GetCrossHairPosition() ) ) break; @@ -941,7 +941,7 @@ void SCH_EDIT_FRAME::OnOrient( wxCommandEvent& aEvent ) if( item == NULL ) { // Allows block rotate operation on hot key. - if( screen->m_BlockLocate.m_State != STATE_NO_BLOCK ) + if( screen->m_BlockLocate.GetState() != STATE_NO_BLOCK ) { if( aEvent.GetId() == ID_SCH_MIRROR_X ) HandleBlockEndByPopUp( BLOCK_MIRROR_X, &dc ); diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index 0b9f8364a0..29b495c46b 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -572,7 +572,7 @@ void SCH_EDIT_FRAME::OnModify() void SCH_EDIT_FRAME::OnUpdateBlockSelected( wxUpdateUIEvent& event ) { - bool enable = ( GetScreen() && GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE ); + bool enable = ( GetScreen() && GetScreen()->m_BlockLocate.GetCommand() == BLOCK_MOVE ); event.Enable( enable ); } diff --git a/gerbview/block.cpp b/gerbview/block.cpp index 93bead130c..585a05fc0b 100644 --- a/gerbview/block.cpp +++ b/gerbview/block.cpp @@ -79,9 +79,9 @@ void GERBVIEW_FRAME::HandleBlockPlace( wxDC* DC ) { wxASSERT( m_canvas->IsMouseCaptured() ); - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); - switch( GetScreen()->m_BlockLocate.m_Command ) + switch( GetScreen()->m_BlockLocate.GetCommand() ) { case BLOCK_MOVE: /* Move */ if( m_canvas->IsMouseCaptured() ) @@ -133,11 +133,11 @@ bool GERBVIEW_FRAME::HandleBlockEnd( wxDC* DC ) if( m_canvas->IsMouseCaptured() ) - switch( GetScreen()->m_BlockLocate.m_Command ) + switch( GetScreen()->m_BlockLocate.GetCommand() ) { case BLOCK_MOVE: /* Move */ case BLOCK_COPY: /* Copy */ - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE ); nextcmd = true; m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); m_canvas->SetMouseCaptureCallback( DrawMovingBlockOutlines ); @@ -145,7 +145,7 @@ bool GERBVIEW_FRAME::HandleBlockEnd( wxDC* DC ) break; case BLOCK_DELETE: /* Delete */ - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); Block_Delete( DC ); break; @@ -197,31 +197,31 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx { screen->m_BlockLocate.Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, Color ); - if( screen->m_BlockLocate.m_MoveVector.x|| screen->m_BlockLocate.m_MoveVector.y ) + if( screen->m_BlockLocate.GetMoveVector().x|| screen->m_BlockLocate.GetMoveVector().y ) { screen->m_BlockLocate.Draw( aPanel, aDC, - screen->m_BlockLocate.m_MoveVector, + screen->m_BlockLocate.GetMoveVector(), g_XorMode, Color ); } } - if( screen->m_BlockLocate.m_State != STATE_BLOCK_STOP ) + if( screen->m_BlockLocate.GetState() != STATE_BLOCK_STOP ) { - screen->m_BlockLocate.m_MoveVector.x = screen->GetCrossHairPosition().x - - screen->m_BlockLocate.GetRight(); - screen->m_BlockLocate.m_MoveVector.y = screen->GetCrossHairPosition().y - - screen->m_BlockLocate.GetBottom(); + screen->m_BlockLocate.SetMoveVector( wxPoint( screen->GetCrossHairPosition().x - + screen->m_BlockLocate.GetRight(), + screen->GetCrossHairPosition().y - + screen->m_BlockLocate.GetBottom() ) ); } screen->m_BlockLocate.Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode, Color ); - if( screen->m_BlockLocate.m_MoveVector.x || screen->m_BlockLocate.m_MoveVector.y ) + if( screen->m_BlockLocate.GetMoveVector().x || screen->m_BlockLocate.GetMoveVector().y ) { screen->m_BlockLocate.Draw( aPanel, aDC, - screen->m_BlockLocate.m_MoveVector, + screen->m_BlockLocate.GetMoveVector(), g_XorMode, Color ); } @@ -239,10 +239,12 @@ void GERBVIEW_FRAME::Block_Delete( wxDC* DC ) BOARD_ITEM* item = GetBoard()->m_Drawings; BOARD_ITEM* nextitem; + for( ; item; item = nextitem ) { nextitem = item->Next(); GERBER_DRAW_ITEM* gerb_item = (GERBER_DRAW_ITEM*) item; + if( gerb_item->HitTest( GetScreen()->m_BlockLocate ) ) gerb_item->DeleteStructure(); } @@ -265,13 +267,15 @@ void GERBVIEW_FRAME::Block_Move( wxDC* DC ) GetScreen()->m_BlockLocate.Normalize(); /* Calculate displacement vectors. */ - delta = GetScreen()->m_BlockLocate.m_MoveVector; + delta = GetScreen()->m_BlockLocate.GetMoveVector(); /* Move items in block */ BOARD_ITEM* item = GetBoard()->m_Drawings; + for( ; item; item = item->Next() ) { GERBER_DRAW_ITEM* gerb_item = (GERBER_DRAW_ITEM*) item; + if( gerb_item->HitTest( GetScreen()->m_BlockLocate ) ) gerb_item->MoveAB( delta ); } @@ -293,7 +297,7 @@ void GERBVIEW_FRAME::Block_Duplicate( wxDC* DC ) GetScreen()->SetModify(); GetScreen()->m_BlockLocate.Normalize(); - delta = GetScreen()->m_BlockLocate.m_MoveVector; + delta = GetScreen()->m_BlockLocate.GetMoveVector(); /* Copy items in block */ BOARD_ITEM* item = GetBoard()->m_Drawings; diff --git a/gerbview/draw_gerber_screen.cpp b/gerbview/draw_gerber_screen.cpp index b94aaefac1..4d9c3163d9 100644 --- a/gerbview/draw_gerber_screen.cpp +++ b/gerbview/draw_gerber_screen.cpp @@ -406,7 +406,7 @@ void GERBVIEW_FRAME::DrawItemsDCodeID( wxDC* aDC, int aDrawMode ) int color = g_ColorsSettings.GetItemColor( DCODES_VISIBLE ); - DrawGraphicText( m_canvas, aDC, pos, (EDA_Colors) color, Line, + DrawGraphicText( m_canvas, aDC, pos, (EDA_COLOR_T) color, Line, orient, wxSize( width, width ), GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, 0, false, false ); diff --git a/gerbview/events_called_functions.cpp b/gerbview/events_called_functions.cpp index d284747179..b5146c9390 100644 --- a/gerbview/events_called_functions.cpp +++ b/gerbview/events_called_functions.cpp @@ -129,11 +129,11 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_CANCEL_CURRENT_COMMAND: m_canvas->EndMouseCapture(); - if( GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE ) + if( GetScreen()->m_BlockLocate.GetCommand() != BLOCK_IDLE ) { /* Should not be executed, except bug */ - GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; - GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_IDLE ); + GetScreen()->m_BlockLocate.SetState( STATE_NO_BLOCK ); GetScreen()->m_BlockLocate.ClearItemsList(); } @@ -182,19 +182,19 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PLACE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_MOVE ); m_canvas->SetAutoPanRequest( false ); HandleBlockPlace( &dc ); break; case ID_POPUP_ZOOM_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_ZOOM; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_ZOOM ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; case ID_POPUP_DELETE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_DELETE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_DELETE ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; diff --git a/gerbview/onrightclick.cpp b/gerbview/onrightclick.cpp index 7f100bf1ac..b4f7f7ae21 100644 --- a/gerbview/onrightclick.cpp +++ b/gerbview/onrightclick.cpp @@ -17,7 +17,7 @@ bool GERBVIEW_FRAME::OnRightClick( const wxPoint& aPosition, wxMenu* PopMenu ) { BOARD_ITEM* DrawStruct = GetScreen()->GetCurItem(); wxString msg; - bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE); + bool BlockActive = !GetScreen()->m_BlockLocate.IsIdle(); bool busy = DrawStruct && DrawStruct->GetFlags(); // Do not initiate a start block validation on menu. diff --git a/include/base_struct.h b/include/base_struct.h index 22609085f9..d2d59b0b99 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -95,7 +95,6 @@ enum KICAD_T { // General SCH_SCREEN_T, - BLOCK_LOCATE_STRUCT_TYPE, /* * Draw items in library component. @@ -330,13 +329,13 @@ public: // These define are used for the .m_Flags and .m_UndoRedoStatus member of the // class EDA_ITEM -#define IS_CHANGED (1 << 0) ///< Item was edited, and modified -#define IS_LINKED (1 << 1) ///< Used in calculation to mark linked items (temporary use) -#define IN_EDIT (1 << 2) ///< Item currently edited -#define IS_MOVED (1 << 3) ///< Item being moved -#define IS_NEW (1 << 4) ///< New item, just created -#define IS_RESIZED (1 << 5) ///< Item being resized -#define IS_DRAGGED (1 << 6) ///< Item being dragged +#define IS_CHANGED (1 << 0) ///< Item was edited, and modified +#define IS_LINKED (1 << 1) ///< Used in calculation to mark linked items (temporary use) +#define IN_EDIT (1 << 2) ///< Item currently edited +#define IS_MOVED (1 << 3) ///< Item being moved +#define IS_NEW (1 << 4) ///< New item, just created +#define IS_RESIZED (1 << 5) ///< Item being resized +#define IS_DRAGGED (1 << 6) ///< Item being dragged #define IS_DELETED (1 << 7) #define IS_WIRE_IMAGE (1 << 8) #define STARTPOINT (1 << 9) @@ -881,12 +880,12 @@ public: * @param aColor = text color * @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode. * @param aDisplay_mode = LINE, FILLED or SKETCH - * @param aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do not draw anchor ). + * @param aAnchor_color = anchor color ( UNSPECIFIED = do not draw anchor ). */ void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, - const wxPoint& aOffset, EDA_Colors aColor, + const wxPoint& aOffset, EDA_COLOR_T aColor, int aDrawMode, EDA_DRAW_MODE_T aDisplay_mode = LINE, - EDA_Colors aAnchor_color = UNSPECIFIED_COLOR ); + EDA_COLOR_T aAnchor_color = UNSPECIFIED ); private: @@ -900,14 +899,14 @@ private: * @param aColor = text color * @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode. * @param aFillMode = LINE, FILLED or SKETCH - * @param aAnchor_color = anchor color ( UNSPECIFIED_COLOR = do not draw anchor ). + * @param aAnchor_color = anchor color ( UNSPECIFIED = do not draw anchor ). * @param aText = the single line of text to draw. * @param aPos = the position of this line ). */ void DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, - const wxPoint& aOffset, EDA_Colors aColor, + const wxPoint& aOffset, EDA_COLOR_T aColor, int aDrawMode, EDA_DRAW_MODE_T aFillMode, - EDA_Colors aAnchor_color, wxString& aText, + EDA_COLOR_T aAnchor_color, wxString& aText, wxPoint aPos ); public: diff --git a/include/block_commande.h b/include/block_commande.h index cdc3803950..1f24e1d170 100644 --- a/include/block_commande.h +++ b/include/block_commande.h @@ -1,3 +1,27 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + /** * This file is part of the common library. * @file block_commande.h @@ -5,24 +29,13 @@ */ #ifndef __INCLUDE__BLOCK_COMMANDE_H__ -#define __INCLUDE__BLOCK_COMMANDE_H__ 1 +#define __INCLUDE__BLOCK_COMMANDE_H__ #include #include -// Forward declarations: - - -/**************************/ -/* class BLOCK_SELECTOR */ -/**************************/ - -/** - * class BLOCK_SELECTOR is used to handle block selection and commands - */ - /* Block state codes. */ typedef enum { STATE_NO_BLOCK, @@ -30,7 +43,7 @@ typedef enum { STATE_BLOCK_END, STATE_BLOCK_MOVE, STATE_BLOCK_STOP -} BlockState; +} BLOCK_STATE_T; /* Block command codes. */ @@ -50,32 +63,50 @@ typedef enum { BLOCK_SELECT_ITEMS_ONLY, BLOCK_MIRROR_X, BLOCK_MIRROR_Y -} CmdBlockType; +} BLOCK_COMMAND_T; class BLOCK_SELECTOR : public EDA_RECT { -public: - BlockState m_State; /* State (enum BlockState) - * of the block */ - CmdBlockType m_Command; /* Type (enum CmdBlockType) - * operation */ - PICKED_ITEMS_LIST m_ItemsSelection; /* list of items selected - * in this block */ - int m_Color; /* Block Color (for - * drawings) */ - wxPoint m_MoveVector; /* Move distance in move, - * drag, copy ... command */ - wxPoint m_BlockLastCursorPosition; /* Last Mouse position in - * block command - * = last cursor position in - * move commands - * = 0,0 in block paste */ + BLOCK_STATE_T m_state; //< State (enum BLOCK_STATE_T) of the block. + BLOCK_COMMAND_T m_command; //< Command (enum BLOCK_COMMAND_T) operation. + PICKED_ITEMS_LIST m_items; //< List of items selected in this block. + EDA_COLOR_T m_color; //< Block Color (for drawings). + wxPoint m_moveVector; //< Move distance to move the block. + wxPoint m_lastCursorPosition; //< Last Mouse position in block command + //< last cursor position in move commands + //< 0,0 in paste command. public: BLOCK_SELECTOR(); ~BLOCK_SELECTOR(); + void SetState( BLOCK_STATE_T aState ) { m_state = aState; } + + BLOCK_STATE_T GetState() const { return m_state; } + + void SetCommand( BLOCK_COMMAND_T aCommand ) { m_command = aCommand; } + + BLOCK_COMMAND_T GetCommand() const { return m_command; } + + void SetColor( EDA_COLOR_T aColor ) { m_color = aColor; } + + EDA_COLOR_T GetColor() const { return m_color; } + + /** + * Function SetLastCursorPosition + * sets the last cursor position to \a aPosition. + * + * @param aPosition The current cursor position. + */ + void SetLastCursorPosition( const wxPoint& aPosition ) { m_lastCursorPosition = aPosition; } + + wxPoint GetLastCursorPosition() const { return m_lastCursorPosition; } + + void SetMoveVector( const wxPoint& aMoveVector ) { m_moveVector = aMoveVector; } + + wxPoint GetMoveVector() const { return m_moveVector; } + /** * Function InitData * sets the initial values of a BLOCK_SELECTOR, before starting a block @@ -90,13 +121,14 @@ public: void SetMessageBlock( EDA_DRAW_FRAME* frame ); void Draw( EDA_DRAW_PANEL* aPanel, - wxDC* aDC, const wxPoint& aOffset, - int aDrawMode, - int aColor ); + wxDC* aDC, + const wxPoint& aOffset, + int aDrawMode, + int aColor ); /** * Function PushItem - * adds aItem to the list of items + * adds \a aItem to the list of items. * @param aItem = an ITEM_PICKER to add to the list */ void PushItem( ITEM_PICKER& aItem ); @@ -108,34 +140,39 @@ public: */ void ClearListAndDeleteItems(); + /** + * Function ClearItemsList + * clear only the list of #EDA_ITEM pointers, it does _NOT_ delete the #EDA_ITEM object + * itself + */ void ClearItemsList(); - unsigned GetCount() + unsigned GetCount() { - return m_ItemsSelection.GetCount(); + return m_items.GetCount(); } - /** - * Function SetLastCursorPosition - * sets m_BlockLastCursorPosition - * @param aPosition = new position - **/ - void SetLastCursorPosition( wxPoint aPosition ) + PICKED_ITEMS_LIST& GetItems() { return m_items; } + + EDA_ITEM* GetItem( unsigned aIndex ) { - m_BlockLastCursorPosition = aPosition; + if( aIndex < m_items.GetCount() ) + return m_items.GetPickedItem( aIndex ); + + return NULL; } /** * Function IsDragging * returns true if the current block command is a drag operation. */ - bool IsDragging() const { return m_Command == BLOCK_DRAG; } + bool IsDragging() const { return m_command == BLOCK_DRAG; } /** * Function IsIdle * returns true if there is currently no block operation in progress. */ - inline bool IsIdle() const { return m_Command == BLOCK_IDLE; } + inline bool IsIdle() const { return m_command == BLOCK_IDLE; } /** * Function Clear @@ -146,16 +183,19 @@ public: }; -/* Cancel Current block operation. +/** + * Function AbortBlockCurrentCommand + * cancels the current block operation. */ -void AbortBlockCurrentCommand( EDA_DRAW_PANEL* Panel, wxDC* DC ); +void AbortBlockCurrentCommand( EDA_DRAW_PANEL* aPanel, wxDC* aDC ); -/* Redraw the outlines of the block which shows the search area for block - * commands - * The first point of the rectangle showing the area is initialized - * by InitBlockLocateDatas(). - * The other point of the rectangle is the mouse cursor +/** + * Function DrawAndSizingBlockOutlines + * redraws the outlines of the block which shows the search area for block commands. + * + * The first point of the rectangle showing the area is initialized by InitBlockLocateDatas(). + * The other point of the rectangle is the mouse cursor position. */ void DrawAndSizingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition, bool aErase ); diff --git a/include/class_marker_base.h b/include/class_marker_base.h index 5a81e52fe2..7753fdbea4 100644 --- a/include/class_marker_base.h +++ b/include/class_marker_base.h @@ -14,7 +14,7 @@ public: protected: std::vector m_Corners; ///< Corner list for shape definition (a polygon) int m_MarkerType; ///< Can be used as a flag - EDA_Colors m_Color; ///< color + EDA_COLOR_T m_Color; ///< color EDA_RECT m_ShapeBoundingBox; ///< Bounding box of the graphic symbol, relative ///< to the position of the shape, used for Hit ///< Tests @@ -80,7 +80,7 @@ public: * Function SetColor * Set the color of this marker */ - void SetColor( EDA_Colors aColor ) + void SetColor( EDA_COLOR_T aColor ) { m_Color = aColor; } diff --git a/include/colors.h b/include/colors.h index e413053c6f..7a26ea3baa 100644 --- a/include/colors.h +++ b/include/colors.h @@ -41,9 +41,9 @@ static inline int GetAlpha( int aColor ) } -enum EDA_Colors +enum EDA_COLOR_T { - UNSPECIFIED_COLOR = -1, + UNSPECIFIED = -1, BLACK = 0, BLUE, GREEN, diff --git a/include/drawtxt.h b/include/drawtxt.h index 8974bbd380..c29e2d8a3c 100644 --- a/include/drawtxt.h +++ b/include/drawtxt.h @@ -52,7 +52,7 @@ int NegableTextLength( const wxString& aText ); * @param aPanel = the current DrawPanel. NULL if draw within a 3D GL Canvas * @param aDC = the current Device Context. NULL if draw within a 3D GL Canvas * @param aPos = text position (according to h_justify, v_justify) - * @param aColor (enum EDA_Colors) = text color + * @param aColor (enum EDA_COLOR_T) = text color * @param aText = text to draw * @param aOrient = angle in 0.1 degree * @param aSize = text size (size.x or size.y can be < 0 for mirrored texts) @@ -71,7 +71,7 @@ int NegableTextLength( const wxString& aText ); void DrawGraphicText( EDA_DRAW_PANEL * aPanel, wxDC * aDC, const wxPoint &aPos, - enum EDA_Colors aColor, + enum EDA_COLOR_T aColor, const wxString &aText, int aOrient, const wxSize &aSize, diff --git a/include/gr_basic.h b/include/gr_basic.h index ce0b607669..a666a467ac 100644 --- a/include/gr_basic.h +++ b/include/gr_basic.h @@ -166,7 +166,7 @@ void GRClosedPoly( EDA_RECT* ClipBox, * @param y The y coordinate in user space of the center of the circle. * @param aRadius is the radius of the circle. * @param aColor is an index into our color table of RGB colors. - * @see EDA_Colors and colors.h + * @see EDA_COLOR_T and colors.h */ void GRCircle( EDA_RECT* ClipBox, wxDC* aDC, int x, int y, int aRadius, int aColor ); void GRCircle( EDA_RECT* ClipBox, wxDC* DC, int x, int y, int r, int width, int Color ); @@ -227,7 +227,7 @@ void GRSFilledRect( EDA_RECT* ClipBox, wxDC* DC, int x1, int y1, * @param aLines = a list of pair of coordinate in user space: a pair for each line. * @param aWidth = the width of each line. * @param aColor = an index into our color table of RGB colors. - * @see EDA_Colors and colors.h + * @see EDA_COLOR_T and colors.h */ void GRLineArray( EDA_RECT* aClipBox, wxDC* aDC,std::vector& aLines, int aWidth, int aColor ); diff --git a/include/plot_common.h b/include/plot_common.h index 3da459e1f5..0a239d8c98 100644 --- a/include/plot_common.h +++ b/include/plot_common.h @@ -179,7 +179,7 @@ public: } void text( const wxPoint& aPos, - enum EDA_Colors aColor, + enum EDA_COLOR_T aColor, const wxString& aText, int aOrient, const wxSize& aSize, diff --git a/include/wxstruct.h b/include/wxstruct.h index 9d84072058..f74e5baa7d 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -688,8 +688,8 @@ public: */ void TraceWorkSheet( wxDC* aDC, wxSize& aSz, wxPoint& aLT, wxPoint& aRB, wxString& aType, wxString& aFlNm, TITLE_BLOCK& aTb, - int aNScr, int aScr, int aLnW, EDA_Colors aClr1 = RED, - EDA_Colors aClr2 = RED ); + int aNScr, int aScr, int aLnW, EDA_COLOR_T aClr1 = RED, + EDA_COLOR_T aClr2 = RED ); void PlotWorkSheet( PLOTTER* aPlotter, BASE_SCREEN* aScreen ); @@ -741,13 +741,20 @@ public: /* Handlers for block commands */ virtual void InitBlockPasteInfos(); - virtual bool HandleBlockBegin( wxDC* DC, int cmd_type,const wxPoint& startpos ); + + /** + * Function HandleBlockBegin + * initializes the block command including the command type, initial position, + * and other variables. + */ + virtual bool HandleBlockBegin( wxDC* aDC, int aKey, const wxPoint& aPosition ); /** * Function ReturnBlockCommand - * Returns the block command internat code (BLOCK_MOVE, BLOCK_COPY...) - * corresponding to the keys pressed (ALT, SHIFT, SHIFT ALT ..) when - * block command is started by dragging the mouse. + * Returns the block command code (BLOCK_MOVE, BLOCK_COPY...) corresponding to the + * keys pressed (ALT, SHIFT, SHIFT ALT ..) when block command is started by dragging + * the mouse. + * * @param aKey = the key modifiers (Alt, Shift ...) * @return the block command id (BLOCK_MOVE, BLOCK_COPY...) */ diff --git a/pcbnew/block.cpp b/pcbnew/block.cpp index ed59944793..4caaa7700e 100644 --- a/pcbnew/block.cpp +++ b/pcbnew/block.cpp @@ -224,9 +224,9 @@ void PCB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) DisplayError( this, wxT( "Error in HandleBlockPLace : m_mouseCaptureCallback = NULL" ) ); } - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); - switch( GetScreen()->m_BlockLocate.m_Command ) + switch( GetScreen()->m_BlockLocate.GetCommand() ) { case BLOCK_IDLE: break; @@ -276,7 +276,7 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) bool cancelCmd = false; // If coming here after cancel block, clean up and exit - if( GetScreen()->m_BlockLocate.m_State == STATE_NO_BLOCK ) + if( GetScreen()->m_BlockLocate.GetState() == STATE_NO_BLOCK ) { m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); @@ -286,7 +286,7 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) // Show dialog if there are no selected items and we're not zooming if( !GetScreen()->m_BlockLocate.GetCount() - && GetScreen()->m_BlockLocate.m_Command != BLOCK_ZOOM ) + && GetScreen()->m_BlockLocate.GetCommand() != BLOCK_ZOOM ) { if( InstallBlockCmdFrame( this, _( "Block Operation" ) ) == false ) { @@ -308,7 +308,7 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( !cancelCmd && m_canvas->IsMouseCaptured() ) { - switch( GetScreen()->m_BlockLocate.m_Command ) + switch( GetScreen()->m_BlockLocate.GetCommand() ) { case BLOCK_IDLE: DisplayError( this, wxT( "Error in HandleBlockPLace" ) ); @@ -318,7 +318,7 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) case BLOCK_MOVE: /* Move */ case BLOCK_COPY: /* Copy */ case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE ); nextcmd = true; m_canvas->SetMouseCaptureCallback( drawMovingBlock ); m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); @@ -326,24 +326,25 @@ bool PCB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) case BLOCK_DELETE: /* Delete */ m_canvas->SetMouseCaptureCallback( NULL ); - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); Block_Delete(); break; case BLOCK_ROTATE: /* Rotation */ m_canvas->SetMouseCaptureCallback( NULL ); - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); Block_Rotate(); break; case BLOCK_FLIP: /* Flip */ m_canvas->SetMouseCaptureCallback( NULL ); - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); Block_Flip(); break; case BLOCK_SAVE: /* Save (not used, for future enhancements)*/ - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); + if( GetScreen()->m_BlockLocate.GetCount() ) { // @todo (if useful) Save_Block( ); @@ -383,7 +384,7 @@ void PCB_EDIT_FRAME::Block_SelectItems() GetScreen()->m_BlockLocate.Normalize(); - PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection; + PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.GetItems(); ITEM_PICKER picker( NULL, UR_UNSPECIFIED ); // Add modules @@ -435,7 +436,9 @@ void PCB_EDIT_FRAME::Block_SelectItems() { if( !m_Pcb->IsLayerVisible( PtStruct->GetLayer() ) && ! blockIncludeItemsOnInvisibleLayers) continue; + bool select_me = false; + switch( PtStruct->Type() ) { case PCB_LINE_T: @@ -513,7 +516,7 @@ void PCB_EDIT_FRAME::Block_SelectItems() static void drawPickedItems( EDA_DRAW_PANEL* aPanel, wxDC* aDC, wxPoint aOffset ) { - PICKED_ITEMS_LIST* itemsList = &aPanel->GetScreen()->m_BlockLocate.m_ItemsSelection; + PICKED_ITEMS_LIST* itemsList = &aPanel->GetScreen()->m_BlockLocate.GetItems(); PCB_BASE_FRAME* frame = (PCB_BASE_FRAME*) aPanel->GetParent(); g_Offset_Module = -aOffset; @@ -560,29 +563,30 @@ static void drawMovingBlock( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& a if( aErase ) { - if( screen->m_BlockLocate.m_MoveVector.x || screen->m_BlockLocate.m_MoveVector.y ) + if( screen->m_BlockLocate.GetMoveVector().x || screen->m_BlockLocate.GetMoveVector().y ) { - screen->m_BlockLocate.Draw( aPanel, aDC, screen->m_BlockLocate.m_MoveVector, + screen->m_BlockLocate.Draw( aPanel, aDC, screen->m_BlockLocate.GetMoveVector(), GR_XOR, BLOCK_OUTLINE_COLOR ); if( blockDrawItems ) - drawPickedItems( aPanel, aDC, screen->m_BlockLocate.m_MoveVector ); + drawPickedItems( aPanel, aDC, screen->m_BlockLocate.GetMoveVector() ); } } - if( screen->m_BlockLocate.m_State != STATE_BLOCK_STOP ) + + if( screen->m_BlockLocate.GetState() != STATE_BLOCK_STOP ) { - screen->m_BlockLocate.m_MoveVector = screen->GetCrossHairPosition() - - screen->m_BlockLocate.m_BlockLastCursorPosition; + screen->m_BlockLocate.SetMoveVector( screen->GetCrossHairPosition() - + screen->m_BlockLocate.GetLastCursorPosition() ); } - if( screen->m_BlockLocate.m_MoveVector.x || screen->m_BlockLocate.m_MoveVector.y ) + if( screen->m_BlockLocate.GetMoveVector().x || screen->m_BlockLocate.GetMoveVector().y ) { - screen->m_BlockLocate.Draw( aPanel, aDC, screen->m_BlockLocate.m_MoveVector, + screen->m_BlockLocate.Draw( aPanel, aDC, screen->m_BlockLocate.GetMoveVector(), GR_XOR, BLOCK_OUTLINE_COLOR ); if( blockDrawItems ) - drawPickedItems( aPanel, aDC, screen->m_BlockLocate.m_MoveVector ); + drawPickedItems( aPanel, aDC, screen->m_BlockLocate.GetMoveVector() ); } } @@ -592,7 +596,7 @@ void PCB_EDIT_FRAME::Block_Delete() OnModify(); SetCurItem( NULL ); - PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection; + PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.GetItems(); itemsList->m_Status = UR_DELETED; /* unlink items and clear flags */ @@ -658,7 +662,7 @@ void PCB_EDIT_FRAME::Block_Rotate() OnModify(); - PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection; + PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.GetItems(); itemsList->m_Status = UR_ROTATED; for( unsigned ii = 0; ii < itemsList->GetCount(); ii++ ) @@ -715,7 +719,7 @@ void PCB_EDIT_FRAME::Block_Flip() OnModify(); - PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection; + PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.GetItems(); itemsList->m_Status = UR_FLIPPED; memo = GetScreen()->GetCrossHairPosition(); @@ -772,9 +776,9 @@ void PCB_EDIT_FRAME::Block_Move() { OnModify(); - wxPoint MoveVector = GetScreen()->m_BlockLocate.m_MoveVector; + wxPoint MoveVector = GetScreen()->m_BlockLocate.GetMoveVector(); - PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection; + PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.GetItems(); itemsList->m_Status = UR_MOVED; for( unsigned ii = 0; ii < itemsList->GetCount(); ii++ ) @@ -824,11 +828,11 @@ void PCB_EDIT_FRAME::Block_Move() void PCB_EDIT_FRAME::Block_Duplicate() { - wxPoint MoveVector = GetScreen()->m_BlockLocate.m_MoveVector; + wxPoint MoveVector = GetScreen()->m_BlockLocate.GetMoveVector(); OnModify(); - PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.m_ItemsSelection; + PICKED_ITEMS_LIST* itemsList = &GetScreen()->m_BlockLocate.GetItems(); PICKED_ITEMS_LIST newList; newList.m_Status = UR_NEW; diff --git a/pcbnew/block_module_editor.cpp b/pcbnew/block_module_editor.cpp index 8f542a0bbb..3a6e174b9f 100644 --- a/pcbnew/block_module_editor.cpp +++ b/pcbnew/block_module_editor.cpp @@ -124,18 +124,18 @@ bool FOOTPRINT_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( GetScreen()->m_BlockLocate.GetCount() ) { - BlockState state = GetScreen()->m_BlockLocate.m_State; - CmdBlockType command = GetScreen()->m_BlockLocate.m_Command; + BLOCK_STATE_T state = GetScreen()->m_BlockLocate.GetState(); + BLOCK_COMMAND_T command = GetScreen()->m_BlockLocate.GetCommand(); m_canvas->CallEndMouseCapture( DC ); - GetScreen()->m_BlockLocate.m_State = state; - GetScreen()->m_BlockLocate.m_Command = command; + GetScreen()->m_BlockLocate.SetState( state ); + GetScreen()->m_BlockLocate.SetCommand( command ); m_canvas->SetMouseCapture( DrawAndSizingBlockOutlines, AbortBlockCurrentCommand ); GetScreen()->SetCrossHairPosition( wxPoint( GetScreen()->m_BlockLocate.GetRight(), GetScreen()->m_BlockLocate.GetBottom() ) ); m_canvas->MoveCursorToCrossHair(); } - switch( GetScreen()->m_BlockLocate.m_Command ) + switch( GetScreen()->m_BlockLocate.GetCommand() ) { case BLOCK_IDLE: DisplayError( this, wxT( "Error in HandleBlockPLace" ) ); @@ -157,15 +157,16 @@ bool FOOTPRINT_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) m_canvas->CallMouseCapture( DC, wxDefaultPosition, false ); } - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE ); m_canvas->Refresh( true ); } + break; case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ nextcmd = true; m_canvas->SetMouseCaptureCallback( DrawMovingBlockOutlines ); - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_MOVE ); break; case BLOCK_DELETE: /* Delete */ @@ -215,7 +216,7 @@ bool FOOTPRINT_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) if( !nextcmd ) { - if( GetScreen()->m_BlockLocate.m_Command != BLOCK_SELECT_ITEMS_ONLY ) + if( GetScreen()->m_BlockLocate.GetCommand() != BLOCK_SELECT_ITEMS_ONLY ) { ClearMarkItems( currentModule ); } @@ -223,7 +224,7 @@ bool FOOTPRINT_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) GetScreen()->ClearBlockCommand(); SetCurItem( NULL ); m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, - false ); + false ); m_canvas->Refresh( true ); } @@ -240,9 +241,9 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) DisplayError( this, wxT( "HandleBlockPLace : m_mouseCaptureCallback = NULL" ) ); } - GetScreen()->m_BlockLocate.m_State = STATE_BLOCK_STOP; + GetScreen()->m_BlockLocate.SetState( STATE_BLOCK_STOP ); - switch( GetScreen()->m_BlockLocate.m_Command ) + switch( GetScreen()->m_BlockLocate.GetCommand() ) { case BLOCK_IDLE: break; @@ -252,14 +253,14 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ GetScreen()->m_BlockLocate.ClearItemsList(); SaveCopyInUndoList( currentModule, UR_MODEDIT ); - MoveMarkedItems( currentModule, GetScreen()->m_BlockLocate.m_MoveVector ); + MoveMarkedItems( currentModule, GetScreen()->m_BlockLocate.GetMoveVector() ); m_canvas->Refresh( true ); break; case BLOCK_COPY: /* Copy */ GetScreen()->m_BlockLocate.ClearItemsList(); SaveCopyInUndoList( currentModule, UR_MODEDIT ); - CopyMarkedItems( currentModule, GetScreen()->m_BlockLocate.m_MoveVector ); + CopyMarkedItems( currentModule, GetScreen()->m_BlockLocate.GetMoveVector() ); break; case BLOCK_PASTE: /* Paste */ @@ -288,8 +289,8 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) OnModify(); - GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; - GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; + GetScreen()->m_BlockLocate.SetState( STATE_NO_BLOCK ); + GetScreen()->m_BlockLocate.SetCommand( BLOCK_IDLE ); SetCurItem( NULL ); m_canvas->EndMouseCapture( GetToolId(), m_canvas->GetCurrentCursor(), wxEmptyString, false ); m_canvas->Refresh( true ); @@ -302,24 +303,24 @@ void FOOTPRINT_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition, bool aErase ) { - BLOCK_SELECTOR* PtBlock; + BLOCK_SELECTOR* block; BASE_SCREEN* screen = aPanel->GetScreen(); BOARD_ITEM* item; wxPoint move_offset; MODULE* currentModule = ( (PCB_BASE_FRAME*) wxGetApp().GetTopWindow() )->m_ModuleEditFrame->GetBoard()->m_Modules; - PtBlock = &screen->m_BlockLocate; + block = &screen->m_BlockLocate; GRSetDrawMode( aDC, g_XorMode ); if( aErase ) { - PtBlock->Draw( aPanel, aDC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color ); + block->Draw( aPanel, aDC, block->GetMoveVector(), g_XorMode, block->GetColor() ); if( currentModule ) { - move_offset.x = -PtBlock->m_MoveVector.x; - move_offset.y = -PtBlock->m_MoveVector.y; + move_offset.x = -block->GetMoveVector().x; + move_offset.y = -block->GetMoveVector().y; item = currentModule->m_Drawings; for( ; item != NULL; item = item->Next() ) @@ -352,14 +353,14 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx } /* Repaint new view. */ - PtBlock->m_MoveVector = screen->GetCrossHairPosition() - PtBlock->m_BlockLastCursorPosition; + block->SetMoveVector( screen->GetCrossHairPosition() - block->GetLastCursorPosition() ); - PtBlock->Draw( aPanel, aDC, PtBlock->m_MoveVector, g_XorMode, PtBlock->m_Color ); + block->Draw( aPanel, aDC, block->GetMoveVector(), g_XorMode, block->GetColor() ); if( currentModule ) { item = currentModule->m_Drawings; - move_offset = - PtBlock->m_MoveVector; + move_offset = - block->GetMoveVector(); for( ; item != NULL; item = item->Next() ) { diff --git a/pcbnew/class_dimension.h b/pcbnew/class_dimension.h index 9e311269d2..cf60f5f519 100644 --- a/pcbnew/class_dimension.h +++ b/pcbnew/class_dimension.h @@ -73,11 +73,6 @@ public: m_Text.SetSize( aTextSize ); } - /** - * Function SetLayer - * sets the layer this item is on. - * @param aLayer The layer number. - */ void SetLayer( int aLayer ); void SetShape( int aShape ) { m_Shape = aShape; } @@ -95,12 +90,6 @@ public: bool ReadDimensionDescr( LINE_READER* aReader ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; void SetText( const wxString& NewText ); @@ -117,20 +106,9 @@ public: */ void Move( const wxPoint& offset ); - /** - * Function Rotate - * Rotate this object. - * @param aRotCentre - the rotation point. - * @param aAngle - the rotation angle in 0.1 degree. - */ - virtual void Rotate( const wxPoint& aRotCentre, double aAngle ); + void Rotate( const wxPoint& aRotCentre, double aAngle ); - /** - * Function Flip - * Flip this object, i.e. change the board side for this object - * @param aCentre - the rotation point. - */ - virtual void Flip( const wxPoint& aCentre ); + void Flip( const wxPoint& aCentre ); /** * Function Mirror @@ -141,26 +119,12 @@ public: */ void Mirror( const wxPoint& axis_pos ); - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status information - * about this object into the frame's message panel. - * Is virtual from EDA_ITEM. - * @param frame A EDA_DRAW_FRAME in which to print status information. - */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ - virtual bool HitTest( const EDA_RECT& aRect ) const; + bool HitTest( const EDA_RECT& aRect ) const; - /** - * Function GetClass - * returns the class name. - * @return wxString - */ wxString GetClass() const { return wxT( "DIMENSION" ); @@ -168,12 +132,11 @@ public: EDA_RECT GetBoundingBox() const; - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return add_dimension_xpm; } + BITMAP_DEF GetMenuImage() const { return add_dimension_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override diff --git a/pcbnew/class_drawsegment.h b/pcbnew/class_drawsegment.h index 910394ef06..c53a0caf0a 100644 --- a/pcbnew/class_drawsegment.h +++ b/pcbnew/class_drawsegment.h @@ -152,12 +152,6 @@ public: m_PolyPoints = aPoints; } - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; bool ReadDrawSegmentDescr( LINE_READER* aReader ); @@ -167,35 +161,14 @@ public: void Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int aDrawMode, const wxPoint& aOffset = ZeroOffset ); - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status information - * about this object into the frame's message panel. - * Is virtual from EDA_ITEM. - * @param frame A PCB_BASE_FRAME in which to print status information. - */ virtual void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function GetBoundingBox - * returns the orthogonal, bounding box of this object for display purposes. - * This box should be an enclosing perimeter for visible components of this - * object, and the units should be in the pcb or schematic coordinate system. - * It is OK to overestimate the size by a few counts. - */ virtual EDA_RECT GetBoundingBox() const; - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ virtual bool HitTest( const EDA_RECT& aRect ) const; - /** - * Function GetClass - * returns the class name. - * @return wxString - */ wxString GetClass() const { return wxT( "DRAWSEGMENT" ); @@ -213,30 +186,14 @@ public: return hypot( double( delta.x ), double( delta.y ) ); } - /** - * Function Move - * move this object. - * @param aMoveVector - the move vector for this object. - */ virtual void Move( const wxPoint& aMoveVector ) { m_Start += aMoveVector; m_End += aMoveVector; } - /** - * Function Rotate - * Rotate this object. - * @param aRotCentre - the rotation point. - * @param aAngle - the rotation angle in 0.1 degree. - */ virtual void Rotate( const wxPoint& aRotCentre, double aAngle ); - /** - * Function Flip - * Flip this object, i.e. change the board side for this object - * @param aCentre - the rotation point. - */ virtual void Flip( const wxPoint& aCentre ); /** @@ -260,7 +217,6 @@ public: virtual BITMAP_DEF GetMenuImage() const { return add_dashed_line_xpm; } - /** @copydoc EDA_ITEM::Clone() */ virtual EDA_ITEM* Clone() const; #if defined(DEBUG) diff --git a/pcbnew/class_edge_mod.h b/pcbnew/class_edge_mod.h index 1258b130f5..5c7a351ad0 100644 --- a/pcbnew/class_edge_mod.h +++ b/pcbnew/class_edge_mod.h @@ -64,12 +64,6 @@ public: void SetEnd0( const wxPoint& aPoint ) { m_End0 = aPoint; } const wxPoint& GetEnd0() const { return m_End0; } - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; int ReadDescr( LINE_READER* aReader ); @@ -82,33 +76,20 @@ public: void Draw3D( EDA_3D_CANVAS* glcanvas ); - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status information - * about this object into the frame's message panel. - * Is virtual from EDA_ITEM. - * @param frame A EDA_DRAW_FRAME in which to print status information. - */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function GetClass - * returns the class name. - * @return wxString - */ - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "MGRAPHIC" ); // return wxT( "EDGE" ); ? } - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return show_mod_edge_xpm; } + BITMAP_DEF GetMenuImage() const { return show_mod_edge_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload diff --git a/pcbnew/class_marker_pcb.h b/pcbnew/class_marker_pcb.h index 01278b0de1..a8d6b80129 100644 --- a/pcbnew/class_marker_pcb.h +++ b/pcbnew/class_marker_pcb.h @@ -43,36 +43,17 @@ public: ~MARKER_PCB(); - /** - * Function Move - * move this object. - * @param aMoveVector - the move vector for this object. - */ - virtual void Move(const wxPoint& aMoveVector) + void Move(const wxPoint& aMoveVector) { m_Pos += aMoveVector; } - /** - * Function Rotate - * Rotate this object. - * @param aRotCentre - the rotation point. - * @param aAngle - the rotation angle in 0.1 degree. - */ - virtual void Rotate( const wxPoint& aRotCentre, double aAngle ); + void Rotate( const wxPoint& aRotCentre, double aAngle ); - /** - * Function Flip - * Flip this object, i.e. change the board side for this object - * @param aCentre - the rotation point. - */ - virtual void Flip( const wxPoint& aCentre ); + void Flip( const wxPoint& aCentre ); - /** - * Function Draw - */ - void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, - const wxPoint& aOffset = ZeroOffset ) + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, + const wxPoint& aOffset = ZeroOffset ) { DrawMarker( aPanel, aDC, aDrawMode, aOffset ); } @@ -80,36 +61,15 @@ public: const wxPoint& GetPosition() const { return m_Pos; } void SetPosition( const wxPoint& aPos ) { m_Pos = aPos; } - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ) + bool HitTest( const wxPoint& aPosition ) { return HitTestMarker( aPosition ); } - /** - * Function IsOnLayer - * tests to see if this object is on the given layer. - * DRC markers are not really on a copper layer, but - * IsOnCopperLayer return true if aLayer is a cooper layer - * @param aLayer The layer to test for. - * @return bool - true if on given layer, else false. - */ - virtual bool IsOnLayer( int aLayer ) const; + bool IsOnLayer( int aLayer ) const; - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status information - * about this object into the frame's message panel. - * @param frame A EDA_DRAW_FRAME in which to print status information. - */ - void DisplayInfo( EDA_DRAW_FRAME* frame ); + void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const { // not implemented, this is here to satisfy BOARD_ITEM::Save() @@ -117,9 +77,9 @@ public: return true; } - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return drc_xpm; } + BITMAP_DEF GetMenuImage() const { return drc_xpm; } #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override diff --git a/pcbnew/class_mire.h b/pcbnew/class_mire.h index 186721bf9c..58d82dbb37 100644 --- a/pcbnew/class_mire.h +++ b/pcbnew/class_mire.h @@ -77,37 +77,15 @@ public: */ void Exchg( PCB_TARGET* aTarget ); - /** - * Function Move - * move this object. - * @param aMoveVector - the move vector for this object. - */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** - * Function Rotate - * Rotate this object. - * @param aRotCentre - the rotation point. - * @param aAngle - the rotation angle in 0.1 degree. - */ - virtual void Rotate( const wxPoint& aRotCentre, double aAngle ); + void Rotate( const wxPoint& aRotCentre, double aAngle ); - /** - * Function Flip - * Flip this object, i.e. change the board side for this object - * @param aCentre - the rotation point. - */ - virtual void Flip( const wxPoint& aCentre ); + void Flip( const wxPoint& aCentre ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; bool ReadMirePcbDescr( LINE_READER* aReader ); @@ -117,20 +95,17 @@ public: void Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int aDrawMode, const wxPoint& offset = ZeroOffset ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ - virtual bool HitTest( const EDA_RECT& aRect ) const; + bool HitTest( const EDA_RECT& aRect ) const; EDA_RECT GetBoundingBox() const; - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return add_mires_xpm; } + BITMAP_DEF GetMenuImage() const { return add_mires_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index 954f9924c6..008b3fd972 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -156,13 +156,6 @@ public: */ EDA_RECT GetFootPrintRect() const; - /** - * Function GetBoundingBox - * returns the bounding box of this - * footprint. Mainly used to redraw the screen area occupied by - * the footprint. - * @return EDA_RECT - The rectangle containing the footprint and texts. - */ EDA_RECT GetBoundingBox() const; void SetPosition( const wxPoint& aPos ); // was overload @@ -207,33 +200,12 @@ public: int GetAttributes() const { return m_Attributs; } void SetAttributes( int aAttributes ) { m_Attributs = aAttributes; } - /** - * Function Move - * move this object. - * @param aMoveVector - the move vector for this object. - */ - virtual void Move( const wxPoint& aMoveVector ); + void Move( const wxPoint& aMoveVector ); - /** - * Function Rotate - * Rotate this object. - * @param aRotCentre - the rotation point. - * @param aAngle - the rotation angle in 0.1 degree. - */ - virtual void Rotate( const wxPoint& aRotCentre, double aAngle ); + void Rotate( const wxPoint& aRotCentre, double aAngle ); - /** - * Function Flip - * Flip this object, i.e. change the board side for this object - * @param aCentre - the rotation point. - */ - virtual void Flip( const wxPoint& aCentre ); + void Flip( const wxPoint& aCentre ); - /** - * Function IsLocked - * (virtual from BOARD_ITEM ) - * @return bool - true if the MODULE is locked, else false - */ bool IsLocked() const { return (m_ModuleStatus & MODULE_is_LOCKED) != 0; @@ -266,13 +238,6 @@ public: /* Reading and writing data on files */ - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; int Write_3D_Descr( FILE* File ) const; @@ -292,14 +257,6 @@ public: /* drawing functions */ - /** - * Function Draw - * Draw the text according to the footprint pos and orient - * @param aPanel = draw panel, Used to know the clip box - * @param aDC = Current Device Context - * @param aDrawMode = GR_OR, GR_XOR.. - * @param aOffset = draw offset (usually wxPoint(0,0) - */ void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, @@ -312,19 +269,11 @@ public: void DrawAncre( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset, int dim_ancre, int draw_mode ); - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status information - * about this object into the frame's message panel. - * @param frame A EDA_DRAW_FRAME in which to print status information. - */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ - virtual bool HitTest( const EDA_RECT& aRect ) const; + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetReference @@ -383,38 +332,19 @@ public: */ D_PAD* GetPad( const wxPoint& aPosition, int aLayerMask = ALL_LAYERS ); - /** - * Function Visit - * should be re-implemented for each derived class in order to handle - * all the types given by its member data. Implementations should call - * inspector->Inspect() on types in scanTypes[], and may use IterateForward() - * to do so on lists of such data. - * @param inspector An INSPECTOR instance to use in the inspection. - * @param testData Arbitrary data used by the inspector. - * @param scanTypes Which KICAD_T types are of interest and the order - * is significant too, terminated by EOT. - * @return SEARCH_RESULT - SEARCH_QUIT if the Iterator is to stop the scan, - * else SCAN_CONTINUE; - */ SEARCH_RESULT Visit( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); - /** - * Function GetClass - * returns the class name. - * @return wxString - */ - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "MODULE" ); } - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return module_xpm; } + BITMAP_DEF GetMenuImage() const { return module_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload diff --git a/pcbnew/class_pad.h b/pcbnew/class_pad.h index b60bcbd9bf..339ab23ef2 100644 --- a/pcbnew/class_pad.h +++ b/pcbnew/class_pad.h @@ -164,14 +164,6 @@ public: void SetOffset( const wxPoint& aOffset ) { m_Offset = aOffset; } const wxPoint& GetOffset() const { return m_Offset; } - /** - * Function Flip - * flips this pad to the other outter most copper layer, back to front or - * vice versa, and does this vertically, so the x coordinate is not affected. - * - * @param aTranslationY is the contribution of my 'y' position provided by - * my parent module. - */ void Flip( int aTranslationY ); /** @@ -239,7 +231,7 @@ public: * @param aItem is another BOARD_CONNECTED_ITEM or NULL * @return int - the clearance in internal units. */ - virtual int GetClearance( BOARD_CONNECTED_ITEM* aItem = NULL ) const; + int GetClearance( BOARD_CONNECTED_ITEM* aItem = NULL ) const; // Mask margins handling: @@ -278,23 +270,10 @@ public: /* Reading and writing data on files */ int ReadDescr( LINE_READER* aReader ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; /* drawing functions */ - /** - * Draw a pad: - * @param aPanel = the EDA_DRAW_PANEL panel - * @param aDC = the current device context - * @param aDrawMode = mode: GR_OR, GR_XOR, GR_AND... - * @param aOffset = draw offset - */ void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, int aDrawMode, const wxPoint& aOffset = ZeroOffset ); @@ -367,43 +346,17 @@ public: void SetSubRatsnest( int aSubRatsnest ) { m_SubRatsnest = aSubRatsnest; } - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status information - * about this object into the frame's message panel. - * Is virtual from EDA_ITEM. - * @param frame A EDA_DRAW_FRAME in which to print status information. - */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function IsOnLayer - * tests to see if this object is on the given layer. Is virtual so - * objects like D_PAD, which reside on multiple layers can do their own - * form of testing. - * @param aLayer The layer to test for. - * @return bool - true if on given layer, else false. - */ bool IsOnLayer( int aLayer ) const; - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); + bool HitTest( const wxPoint& aPosition ); - /** - * Function GetClass - * returns the class name. - * @return wxString - */ - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "PAD" ); } - /** - * Function GetBoundingBox - * returns the bounding box of this pad - * Mainly used to redraw the screen area occupied by the pad - */ EDA_RECT GetBoundingBox() const; /** @@ -413,20 +366,15 @@ public: */ static int Compare( const D_PAD* padref, const D_PAD* padcmp ); - /** - * Function Move - * move this object. - * @param aMoveVector - the move vector for this object. - */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return pad_xpm; } + BITMAP_DEF GetMenuImage() const { return pad_xpm; } /** * Function ShowPadShape @@ -448,8 +396,7 @@ public: */ void AppendConfigs( PARAM_CFG_ARRAY* aResult ); - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload diff --git a/pcbnew/class_pcb_text.cpp b/pcbnew/class_pcb_text.cpp index 5cd1d094ce..263cb38f9b 100644 --- a/pcbnew/class_pcb_text.cpp +++ b/pcbnew/class_pcb_text.cpp @@ -95,12 +95,13 @@ void TEXTE_PCB::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, if( DisplayOpt.DisplayDrawItems == SKETCH ) fillmode = SKETCH; - int anchor_color = UNSPECIFIED_COLOR; + int anchor_color = UNSPECIFIED; + if( brd->IsElementVisible( ANCHOR_VISIBLE ) ) anchor_color = brd->GetVisibleElementColor( ANCHOR_VISIBLE ); - EDA_TEXT::Draw( panel, DC, offset, (EDA_Colors) color, - DrawMode, fillmode, (EDA_Colors) anchor_color ); + EDA_TEXT::Draw( panel, DC, offset, (EDA_COLOR_T) color, + DrawMode, fillmode, (EDA_COLOR_T) anchor_color ); } diff --git a/pcbnew/class_pcb_text.h b/pcbnew/class_pcb_text.h index 2cbae04f39..067373e859 100644 --- a/pcbnew/class_pcb_text.h +++ b/pcbnew/class_pcb_text.h @@ -57,30 +57,14 @@ public: m_Pos = aPos; // within EDA_TEXT } - /** - * Function Move - * move this object. - * @param aMoveVector - the move vector for this object. - */ - virtual void Move( const wxPoint& aMoveVector ) + void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** - * Function Rotate - * Rotate this object. - * @param aRotCentre - the rotation point. - * @param aAngle - the rotation angle in 0.1 degree. - */ - virtual void Rotate( const wxPoint& aRotCentre, double aAngle ); + void Rotate( const wxPoint& aRotCentre, double aAngle ); - /** - * Function Flip - * Flip this object, i.e. change the board side for this object - * @param aCentre - the rotation point. - */ - virtual void Flip( const wxPoint& aCentre ); + void Flip( const wxPoint& aCentre ); /* duplicate structure */ void Copy( TEXTE_PCB* source ); @@ -91,41 +75,21 @@ public: // File Operations: int ReadTextePcbDescr( LINE_READER* aReader ); - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status information - * about this object into the frame's message panel. - * Is virtual from EDA_ITEM. - * @param frame A EDA_DRAW_FRAME in which to print status information. - */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ) + bool HitTest( const wxPoint& aPosition ) { return TextHitTest( aPosition ); } - /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ - virtual bool HitTest( const EDA_RECT& aRect ) const + bool HitTest( const EDA_RECT& aRect ) const { return TextHitTest( aRect ); } - /** - * Function GetClass - * returns the class name. - * @return wxString - */ - virtual wxString GetClass() const + wxString GetClass() const { return wxT("PTEXT"); } @@ -147,14 +111,13 @@ public: int aCircleToSegmentsCount, double aCorrectionFactor ); - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } + BITMAP_DEF GetMenuImage() const { return add_text_xpm; } - virtual EDA_RECT GetBoundingBox() const { return GetTextBox(); }; + EDA_RECT GetBoundingBox() const { return GetTextBox(); }; - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; diff --git a/pcbnew/class_text_mod.cpp b/pcbnew/class_text_mod.cpp index 81b69dad9c..279489a06f 100644 --- a/pcbnew/class_text_mod.cpp +++ b/pcbnew/class_text_mod.cpp @@ -309,7 +309,7 @@ void TEXTE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const w if( m_Mirror ) size.x = -size.x; - DrawGraphicText( panel, DC, pos, (enum EDA_Colors) color, m_Text, orient, + DrawGraphicText( panel, DC, pos, (enum EDA_COLOR_T) color, m_Text, orient, size, m_HJustify, m_VJustify, width, m_Italic, m_Bold ); } diff --git a/pcbnew/class_text_mod.h b/pcbnew/class_text_mod.h index bbbefd3b8a..3ace4bf961 100644 --- a/pcbnew/class_text_mod.h +++ b/pcbnew/class_text_mod.h @@ -109,24 +109,12 @@ public: */ EDA_RECT GetTextRect( void ) const; - /** - * Function GetBoundingBox - * returns the bounding box of this Text (according to text and footprint - * orientation) - */ EDA_RECT GetBoundingBox() const; void SetDrawCoord(); // Set absolute coordinates. void SetLocalCoord(); // Set relative coordinates. - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" - * format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; /** @@ -157,28 +145,10 @@ public: int aDrawMode, const wxPoint& aOffset = ZeroOffset ); - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status - * information about this object into the frame's message panel. - * Is virtual from EDA_ITEM. - * @param frame A EDA_DRAW_FRAME in which to print status information. - */ void DisplayInfo( EDA_DRAW_FRAME* frame ); + bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ - virtual bool HitTest( const wxPoint& aPosition ); - - /** - * Function IsOnLayer - * tests to see if this object is on the given layer. Is virtual so - * objects like D_PAD, which reside on multiple layers can do their own - * form of testing. - * virtual inheritance from BOARD_ITEM. - * @param aLayer The layer to test for. - * @return bool - true if on given layer, else false. - */ bool IsOnLayer( int aLayer ) const; /* @@ -193,23 +163,17 @@ public: */ - /** - * Function GetClass - * returns the class name. - * @return wxString = "MTEXT" - */ - virtual wxString GetClass() const + wxString GetClass() const { return wxT( "MTEXT" ); } - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return footprint_text_xpm; } + BITMAP_DEF GetMenuImage() const { return footprint_text_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload diff --git a/pcbnew/class_track.h b/pcbnew/class_track.h index 2fd58553d8..05e61b07d5 100644 --- a/pcbnew/class_track.h +++ b/pcbnew/class_track.h @@ -99,30 +99,14 @@ public: TRACK* Next() const { return (TRACK*) Pnext; } TRACK* Back() const { return (TRACK*) Pback; } - /** - * Function Move - * move this object. - * @param aMoveVector - the move vector for this object. - */ virtual void Move( const wxPoint& aMoveVector ) { m_Start += aMoveVector; m_End += aMoveVector; } - /** - * Function Rotate - * Rotate this object. - * @param aRotCentre - the rotation point. - * @param aAngle - the rotation angle in 0.1 degree. - */ virtual void Rotate( const wxPoint& aRotCentre, double aAngle ); - /** - * Function Flip - * Flip this object, i.e. change the board side for this object - * @param aCentre - the rotation point. - */ virtual void Flip( const wxPoint& aCentre ); void SetPosition( const wxPoint& aPos ) { m_Start = aPos; } // was overload @@ -139,12 +123,6 @@ public: EDA_RECT GetBoundingBox() const; - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; /** @@ -261,14 +239,6 @@ public: */ bool IsNull(); - /** - * Function DisplayInfo - * has knowledge about the frame and how and where to put status information - * about this object into the frame's message panel. - * Is virtual from EDA_ITEM. - * Display info about the track segment and the full track length - * @param frame A EDA_DRAW_FRAME in which to print status information. - */ void DisplayInfo( EDA_DRAW_FRAME* frame ); /** @@ -286,27 +256,12 @@ public: */ wxString ShowWidth() const; - /** - * Function Visit - * is re-implemented here because TRACKs and SEGVIAs are in the same list - * within BOARD. If that were not true, then we could inherit the - * version from EDA_ITEM. This one does not iterate through scanTypes - * but only looks at the first item in the list. - * @param inspector An INSPECTOR instance to use in the inspection. - * @param testData Arbitrary data used by the inspector. - * @param scanTypes Which KICAD_T types are of interest and the order - * is significant too, terminated by EOT. - * @return SEARCH_RESULT - SEARCH_QUIT if the Iterator is to stop the scan, - * else SCAN_CONTINUE, and determined by the inspector. - */ SEARCH_RESULT Visit( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); - /** @copydoc EDA_ITEM::HitTest(const wxPoint&) */ virtual bool HitTest( const wxPoint& aPosition ); - /** @copydoc EDA_ITEM::HitTest(const EDA_RECT&)const */ virtual bool HitTest( const EDA_RECT& aRect ) const; /** @@ -356,11 +311,6 @@ public: */ int GetEndSegments( int NbSegm, TRACK** StartTrack, TRACK** EndTrack ); - /** - * Function GetClass - * returns the class name. - * @return wxString - */ wxString GetClass() const { return wxT( "TRACK" ); @@ -405,11 +355,6 @@ public: // Do not create a copy constructor. The one generated by the compiler is adequate. - /** - * Function GetClass - * returns the class name. - * @return wxString - */ wxString GetClass() const { return wxT( "ZONE" ); @@ -418,11 +363,11 @@ public: SEGZONE* Next() const { return (SEGZONE*) Pnext; } - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return add_zone_xpm; } + BITMAP_DEF GetMenuImage() const { return add_zone_xpm; } - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; }; @@ -436,13 +381,6 @@ public: void Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int aDrawMode, const wxPoint& aOffset = ZeroOffset ); - /** - * Function IsOnLayer - * tests to see if this object is on the given layer. Is virtual - * from BOARD_ITEM. Tests the starting and ending range of layers for the via. - * @param aLayer the layer to test for. - * @return bool - true if on given layer, else false. - */ bool IsOnLayer( int aLayer ) const; /** @@ -469,22 +407,16 @@ public: const wxPoint& GetPosition() const { return m_Start; } // was overload void SetPosition( const wxPoint& aPoint ) { m_Start = aPoint; m_End = aPoint; } // was overload - /** - * Function GetClass - * returns the class name. - * @return wxString - */ wxString GetClass() const { return wxT( "VIA" ); } - virtual wxString GetSelectMenuText() const; + wxString GetSelectMenuText() const; - virtual BITMAP_DEF GetMenuImage() const { return via_sketch_xpm; } + BITMAP_DEF GetMenuImage() const { return via_sketch_xpm; } - /** @copydoc EDA_ITEM::Clone() */ - virtual EDA_ITEM* Clone() const; + EDA_ITEM* Clone() const; #if defined (DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload diff --git a/pcbnew/controle.cpp b/pcbnew/controle.cpp index 945b10587c..f2b3ce617c 100644 --- a/pcbnew/controle.cpp +++ b/pcbnew/controle.cpp @@ -307,7 +307,7 @@ void PCB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH keep_on_grid = false; /* Cursor is left off grid if no block in progress and no moving object */ - if( GetScreen()->m_BlockLocate.m_State != STATE_NO_BLOCK ) + if( GetScreen()->m_BlockLocate.GetState() != STATE_NO_BLOCK ) keep_on_grid = true; EDA_ITEM* DrawStruct = GetScreen()->GetCurItem(); diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp index 8190d503d2..f6b966a5c4 100644 --- a/pcbnew/edit.cpp +++ b/pcbnew/edit.cpp @@ -150,10 +150,10 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } /* Should not be executed, just in case */ - if( GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE ) + if( GetScreen()->m_BlockLocate.GetCommand() != BLOCK_IDLE ) { - GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; - GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_IDLE ); + GetScreen()->m_BlockLocate.SetState( STATE_NO_BLOCK ); GetScreen()->m_BlockLocate.ClearItemsList(); } @@ -235,39 +235,38 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PLACE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_MOVE ); m_canvas->SetAutoPanRequest( false ); HandleBlockPlace( &dc ); break; case ID_POPUP_COPY_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_COPY; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_COPY ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); m_canvas->SetAutoPanRequest( false ); HandleBlockPlace( &dc ); break; case ID_POPUP_ZOOM_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_ZOOM; - GetScreen()->m_BlockLocate.SetMessageBlock( this ); + GetScreen()->m_BlockLocate.SetCommand( BLOCK_ZOOM ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; case ID_POPUP_DELETE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_DELETE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_DELETE ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; case ID_POPUP_ROTATE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_ROTATE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_ROTATE ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; case ID_POPUP_FLIP_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_FLIP; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_FLIP ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; diff --git a/pcbnew/export_vrml.cpp b/pcbnew/export_vrml.cpp index 4b4f70fdf2..27abfa0a4c 100644 --- a/pcbnew/export_vrml.cpp +++ b/pcbnew/export_vrml.cpp @@ -681,7 +681,7 @@ static void export_vrml_pcbtext( TEXTE_PCB* text ) for( unsigned i = 0; iCount(); i++ ) { wxString txt = list->Item( i ); - DrawGraphicText( NULL, NULL, pos, (EDA_Colors) 0, + DrawGraphicText( NULL, NULL, pos, (EDA_COLOR_T) 0, txt, text->GetOrientation(), size, text->m_HJustify, text->m_VJustify, text->m_Thickness, text->m_Italic, @@ -694,7 +694,7 @@ static void export_vrml_pcbtext( TEXTE_PCB* text ) } else { - DrawGraphicText( NULL, NULL, text->m_Pos, (EDA_Colors) 0, + DrawGraphicText( NULL, NULL, text->m_Pos, (EDA_COLOR_T) 0, text->m_Text, text->GetOrientation(), size, text->m_HJustify, text->m_VJustify, text->m_Thickness, text->m_Italic, @@ -843,7 +843,7 @@ static void export_vrml_text_module( TEXTE_MODULE* module ) //{{{ s_text_layer = module->GetLayer(); s_text_width = module->m_Thickness; - DrawGraphicText( NULL, NULL, module->m_Pos, (EDA_Colors) 0, + DrawGraphicText( NULL, NULL, module->m_Pos, (EDA_COLOR_T) 0, module->m_Text, module->GetDrawRotation(), size, module->m_HJustify, module->m_VJustify, module->m_Thickness, module->m_Italic, diff --git a/pcbnew/hotkeys_module_editor.cpp b/pcbnew/hotkeys_module_editor.cpp index 88529c24ee..da21afd108 100644 --- a/pcbnew/hotkeys_module_editor.cpp +++ b/pcbnew/hotkeys_module_editor.cpp @@ -25,7 +25,7 @@ void FOOTPRINT_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPos if( aHotKey == 0 ) return; - bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; + bool blockActive = GetScreen()->m_BlockLocate.GetCommand() != BLOCK_IDLE; BOARD_ITEM* item = GetCurItem(); bool ItemFree = (item == 0) || (item->GetFlags() == 0); wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); @@ -122,7 +122,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyEditItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); bool itemCurrentlyEdited = item && item->GetFlags(); - bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; + bool blockActive = GetScreen()->m_BlockLocate.GetCommand() != BLOCK_IDLE; if( itemCurrentlyEdited || blockActive ) return false; @@ -177,7 +177,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyDeleteItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); bool itemCurrentlyEdited = item && item->GetFlags(); - bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; + bool blockActive = GetScreen()->m_BlockLocate.GetCommand() != BLOCK_IDLE; if( itemCurrentlyEdited || blockActive ) return false; @@ -232,7 +232,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItem( int aIdCommand ) { BOARD_ITEM* item = GetCurItem(); bool itemCurrentlyEdited = item && item->GetFlags(); - bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; + bool blockActive = GetScreen()->m_BlockLocate.GetCommand() != BLOCK_IDLE; if( itemCurrentlyEdited || blockActive ) return false; @@ -288,7 +288,7 @@ bool FOOTPRINT_EDIT_FRAME::OnHotkeyRotateItem( int aIdCommand ) BOARD_ITEM* item = GetCurItem(); bool itemCurrentlyEdited = item && item->GetFlags(); int evt_type = 0; // Used to post a wxCommandEvent on demand - bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; + bool blockActive = GetScreen()->m_BlockLocate.GetCommand() != BLOCK_IDLE; if( blockActive ) return false; diff --git a/pcbnew/modedit.cpp b/pcbnew/modedit.cpp index 809311a386..b9acd991d9 100644 --- a/pcbnew/modedit.cpp +++ b/pcbnew/modedit.cpp @@ -682,38 +682,38 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PLACE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_MOVE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_MOVE ); m_canvas->SetAutoPanRequest( false ); HandleBlockPlace( &dc ); break; case ID_POPUP_COPY_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_COPY; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_COPY ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); m_canvas->SetAutoPanRequest( false ); HandleBlockPlace( &dc ); break; case ID_POPUP_ZOOM_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_ZOOM; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_ZOOM ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; case ID_POPUP_DELETE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_DELETE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_DELETE ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; case ID_POPUP_ROTATE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_ROTATE; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_ROTATE ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; case ID_POPUP_MIRROR_X_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_MIRROR_X; + GetScreen()->m_BlockLocate.SetCommand( BLOCK_MIRROR_X ); GetScreen()->m_BlockLocate.SetMessageBlock( this ); HandleBlockEnd( &dc ); break; diff --git a/pcbnew/modedit_onclick.cpp b/pcbnew/modedit_onclick.cpp index d89e04092b..2d4cbfd7c0 100644 --- a/pcbnew/modedit_onclick.cpp +++ b/pcbnew/modedit_onclick.cpp @@ -187,7 +187,7 @@ bool FOOTPRINT_EDIT_FRAME::OnRightClick( const wxPoint& MousePos, wxMenu* PopMen { BOARD_ITEM* item = GetCurItem(); wxString msg; - bool blockActive = GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE; + bool blockActive = !GetScreen()->m_BlockLocate.IsIdle(); // Simple location of elements where possible. if( ( item == NULL ) || ( item->GetFlags() == 0 ) ) diff --git a/pcbnew/onrightclick.cpp b/pcbnew/onrightclick.cpp index dc5f5361b0..e48080de6f 100644 --- a/pcbnew/onrightclick.cpp +++ b/pcbnew/onrightclick.cpp @@ -53,7 +53,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) wxString msg; int flags = 0; bool locate_track = false; - bool blockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE); + bool blockActive = !GetScreen()->m_BlockLocate.IsIdle(); wxClientDC dc( m_canvas ); From 0f83413a8f40b158e48e942c833976a1f7dd7ac3 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 27 Mar 2012 18:41:13 +0200 Subject: [PATCH 37/68] Fix issues about translations: Eeschema: one string with a bad char (\a, not useable in internationalized strings). Dialog_page_settings: use not translated strings in code, so strings can be freely translated for the UI. (Initial code was not working with existing translations) Update 2 icons. --- bitmaps_png/cpp_26/find.cpp | 161 +- .../cpp_26/module_pin_filtered_list.cpp | 103 +- bitmaps_png/sources/find.svg | 752 +-- .../sources/module_pin_filtered_list.svg | 20 +- common/dialogs/dialog_page_settings.cpp | 65 +- common/dialogs/dialog_page_settings.h | 1 + common/dialogs/dialog_page_settings_base.cpp | 359 +- common/dialogs/dialog_page_settings_base.fbp | 4374 +++++++-------- common/dialogs/dialog_page_settings_base.h | 136 +- eeschema/dialogs/dialog_lib_edit_pin_base.fbp | 4766 ++++++++--------- eeschema/load_one_schematic_file.cpp | 4 +- 11 files changed, 5126 insertions(+), 5615 deletions(-) diff --git a/bitmaps_png/cpp_26/find.cpp b/bitmaps_png/cpp_26/find.cpp index 623013654f..d223aedacc 100644 --- a/bitmaps_png/cpp_26/find.cpp +++ b/bitmaps_png/cpp_26/find.cpp @@ -8,89 +8,84 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x05, 0x17, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0xdf, 0x6f, 0x14, - 0x55, 0x14, 0xc7, 0x3f, 0xf7, 0xce, 0xce, 0xee, 0x4e, 0x77, 0xbb, 0x3b, 0x4a, 0x2b, 0x5d, 0x37, - 0x82, 0xd0, 0x2e, 0x5b, 0xf9, 0xb5, 0x12, 0xe8, 0x83, 0x18, 0xa8, 0xc6, 0x44, 0x94, 0x84, 0xa4, - 0x2f, 0x18, 0x63, 0x24, 0x06, 0x49, 0x34, 0xf2, 0xa2, 0x89, 0xf2, 0xe0, 0x9b, 0x89, 0x7f, 0x00, - 0x09, 0xd1, 0xc4, 0x12, 0xab, 0x31, 0x3c, 0x18, 0x5e, 0x04, 0x2d, 0x18, 0x1e, 0x0c, 0x62, 0xd1, - 0x18, 0x52, 0x13, 0x28, 0x3f, 0x0a, 0xa5, 0x34, 0x50, 0x6a, 0x61, 0xe9, 0x8f, 0xfd, 0x31, 0x65, - 0xa7, 0xdd, 0xdd, 0x99, 0xb9, 0x3e, 0x40, 0x27, 0x5d, 0xba, 0x18, 0x88, 0x89, 0x27, 0x39, 0x99, - 0x3b, 0xb9, 0x77, 0xce, 0xf7, 0x7c, 0xcf, 0xaf, 0xb9, 0x42, 0x29, 0xc5, 0xff, 0x21, 0x01, 0x80, - 0x83, 0x07, 0x0f, 0x7e, 0x2f, 0x84, 0x78, 0x33, 0x10, 0x08, 0xa0, 0x69, 0x1a, 0x4a, 0x29, 0x1c, - 0xc7, 0xc1, 0x75, 0x5d, 0x1c, 0xc7, 0xf1, 0xf5, 0x71, 0xdf, 0xa5, 0x94, 0x5f, 0xf5, 0xf4, 0xf4, - 0x7c, 0x00, 0xc0, 0x81, 0x03, 0x07, 0x62, 0xdd, 0xdd, 0xdd, 0x95, 0x6a, 0xb5, 0xaa, 0x5c, 0xd7, - 0xad, 0xab, 0x8e, 0xe3, 0xf8, 0x5a, 0xad, 0x56, 0x6b, 0xb4, 0x52, 0xa9, 0xf8, 0x5a, 0x2e, 0x97, - 0x7d, 0xb5, 0x2c, 0x4b, 0xed, 0xda, 0xb5, 0xcb, 0x53, 0x4a, 0xa1, 0x94, 0x22, 0xe0, 0xba, 0xae, - 0x94, 0x52, 0x7a, 0x42, 0x08, 0x6e, 0xde, 0xbc, 0x89, 0x10, 0x02, 0x00, 0x21, 0x44, 0xcd, 0xba, - 0xde, 0xf3, 0x61, 0x22, 0xa5, 0xc4, 0x34, 0x4d, 0x94, 0x52, 0xa2, 0x26, 0x74, 0x9e, 0xe7, 0xd5, - 0x35, 0x5e, 0x6f, 0xfd, 0x28, 0x40, 0xf5, 0xf6, 0x03, 0x00, 0xae, 0xeb, 0x02, 0x60, 0x59, 0x16, - 0xf9, 0x7c, 0x9e, 0x65, 0xcb, 0x96, 0x21, 0xa5, 0x64, 0x64, 0x64, 0x84, 0x07, 0x8b, 0xe5, 0xdf, - 0x40, 0x94, 0x52, 0xa4, 0xd3, 0x69, 0xff, 0xcc, 0xc2, 0x6f, 0x17, 0x31, 0x6a, 0x6b, 0x6b, 0x23, - 0x14, 0x0a, 0x61, 0xdb, 0x36, 0xa9, 0x54, 0xea, 0xb1, 0xc2, 0xa7, 0x94, 0x42, 0x4a, 0x89, 0x94, - 0x72, 0x31, 0x50, 0xb1, 0x58, 0xc4, 0x34, 0x4d, 0x00, 0x4c, 0xd3, 0x44, 0x08, 0x41, 0xb9, 0x5c, - 0x46, 0x08, 0xc1, 0xb5, 0x6b, 0xd7, 0xfc, 0xc3, 0x96, 0x65, 0x31, 0x33, 0x33, 0x83, 0x61, 0x18, - 0x98, 0xa6, 0xc9, 0xe4, 0xe4, 0x24, 0xd5, 0x6a, 0x95, 0x4c, 0x26, 0x43, 0x4b, 0x4b, 0x4b, 0x5d, - 0xd6, 0x8b, 0x18, 0xb9, 0xae, 0x8b, 0x52, 0x0a, 0x21, 0x84, 0xbf, 0x29, 0x84, 0x20, 0x95, 0x4a, - 0xe1, 0xba, 0x2e, 0x03, 0x03, 0x03, 0x6c, 0xd8, 0xb0, 0x81, 0x58, 0x2c, 0xce, 0xe8, 0x1d, 0x8b, - 0xdb, 0xd3, 0x77, 0xe9, 0xd8, 0xbc, 0x96, 0x66, 0xd3, 0x60, 0x6c, 0x6c, 0x8c, 0x33, 0x67, 0xce, - 0xb0, 0x69, 0xd3, 0x26, 0x74, 0x5d, 0xf7, 0xed, 0x2c, 0xb4, 0xe5, 0x03, 0x39, 0x8e, 0x53, 0xd7, - 0xa3, 0xa1, 0xa1, 0x21, 0x6c, 0xdb, 0x66, 0xeb, 0xd6, 0x4e, 0xbe, 0x3b, 0x71, 0x91, 0x5f, 0xce, - 0xf6, 0x93, 0x68, 0x8a, 0xf2, 0x74, 0x53, 0x94, 0x1f, 0x7e, 0xbf, 0xc1, 0x64, 0x71, 0x96, 0xf7, - 0xb6, 0xb7, 0xb3, 0x65, 0xcb, 0x16, 0x8e, 0x1f, 0x3f, 0x4e, 0x22, 0x91, 0x60, 0xdd, 0xba, 0x75, - 0xbe, 0x9d, 0xf9, 0x94, 0x2c, 0x2a, 0x86, 0x79, 0x4f, 0xe6, 0x81, 0x4a, 0xa5, 0x12, 0x9d, 0x9d, - 0x2f, 0xf1, 0xe1, 0x17, 0xa7, 0x58, 0xb2, 0xc4, 0xe4, 0x93, 0xb7, 0x5f, 0xa4, 0xe5, 0x09, 0x83, - 0x90, 0xae, 0x11, 0xd2, 0x25, 0xd9, 0xfc, 0x2c, 0x5f, 0xf7, 0x0e, 0x70, 0xf1, 0x7a, 0x8e, 0x77, - 0x5f, 0x7f, 0x8d, 0xd3, 0xa7, 0x4f, 0xa3, 0x69, 0x5a, 0x5d, 0x20, 0x09, 0x50, 0xad, 0x56, 0x6b, - 0x28, 0x0b, 0x21, 0x18, 0x1d, 0x1d, 0x25, 0x93, 0xc9, 0xf0, 0xcd, 0xcf, 0xe7, 0x09, 0x87, 0xc3, - 0x6c, 0x59, 0x9b, 0xa0, 0x41, 0xbf, 0x77, 0xd6, 0x75, 0x1d, 0x3c, 0xcf, 0xe3, 0xa9, 0x58, 0x88, - 0xf7, 0x76, 0xac, 0x65, 0xe0, 0x7a, 0x81, 0xc1, 0xd1, 0x3c, 0x89, 0x44, 0x82, 0xf1, 0xf1, 0x71, - 0xbf, 0x18, 0x6a, 0x80, 0x0a, 0x85, 0x82, 0xcf, 0x68, 0x21, 0xab, 0xc1, 0xc1, 0x41, 0x22, 0x91, - 0x28, 0x27, 0xcf, 0xdd, 0xe1, 0xf9, 0xe7, 0x9e, 0xc1, 0x93, 0x3a, 0x9a, 0xae, 0x23, 0xb5, 0x00, - 0x0a, 0x49, 0xd5, 0x05, 0x57, 0x41, 0x3c, 0x6a, 0xb0, 0x6b, 0x7b, 0x86, 0x6f, 0x4f, 0x5c, 0x26, - 0x99, 0x4c, 0x72, 0xeb, 0xd6, 0xad, 0x87, 0x87, 0xce, 0x71, 0x9c, 0x45, 0x4d, 0x39, 0x31, 0x31, - 0xc1, 0xdf, 0x93, 0x16, 0x8d, 0x0d, 0x01, 0x66, 0x66, 0x66, 0x98, 0xb3, 0x4b, 0x98, 0x86, 0x20, - 0x12, 0xd6, 0xd1, 0x03, 0x92, 0x80, 0x14, 0x68, 0x12, 0x04, 0xd0, 0xf2, 0x84, 0xc1, 0xdd, 0x59, - 0x07, 0x4d, 0xd3, 0xc8, 0xe5, 0x72, 0xbe, 0x9d, 0xba, 0x39, 0x7a, 0x30, 0x74, 0x73, 0x73, 0x73, - 0xdc, 0xc9, 0x95, 0x68, 0x8c, 0x1a, 0xc4, 0x62, 0x31, 0x00, 0xb2, 0x45, 0x87, 0x15, 0x86, 0x81, - 0x12, 0x12, 0x39, 0x0f, 0xa6, 0x09, 0xdc, 0xb2, 0x83, 0xd4, 0x24, 0xe5, 0x4a, 0xc5, 0x6f, 0x0d, - 0xa5, 0x54, 0x7d, 0x46, 0x0f, 0x4a, 0xa5, 0x52, 0x61, 0x79, 0x73, 0x03, 0x77, 0xa6, 0x2c, 0x2c, - 0xcb, 0xba, 0xdf, 0x4b, 0x30, 0x9d, 0x2f, 0xb2, 0xac, 0x39, 0x82, 0x19, 0x09, 0x12, 0xd4, 0x40, - 0xe0, 0x31, 0x95, 0x2f, 0x80, 0xe7, 0x12, 0xd4, 0x75, 0xc2, 0xe1, 0x70, 0xfd, 0x11, 0x54, 0x28, - 0x14, 0xfc, 0x86, 0x5d, 0x98, 0xa7, 0x44, 0x22, 0x81, 0xc4, 0x21, 0xa4, 0x6b, 0x04, 0x82, 0x06, - 0x11, 0x23, 0xe8, 0xef, 0x17, 0x2b, 0x12, 0x47, 0x28, 0xe2, 0x0d, 0x41, 0x1a, 0x42, 0x1a, 0xb9, - 0xf2, 0x2c, 0x6b, 0x57, 0x3c, 0x89, 0x6d, 0xdb, 0x34, 0x37, 0x37, 0x2f, 0x4a, 0x83, 0x5f, 0x75, - 0x8e, 0xe3, 0xd4, 0x84, 0x0e, 0xa0, 0xa3, 0xa3, 0x83, 0xbe, 0xbe, 0x3e, 0xf6, 0xbd, 0x91, 0xa1, - 0xaf, 0x7f, 0x98, 0x7c, 0xa1, 0x88, 0x65, 0xdd, 0x63, 0x97, 0xcb, 0x15, 0x98, 0x98, 0x98, 0xe2, - 0xe6, 0xdf, 0xe3, 0x9c, 0xbf, 0x3c, 0xc2, 0x4f, 0xbf, 0x0d, 0xf1, 0xfe, 0x8e, 0x0c, 0xfd, 0xfd, - 0xfd, 0xac, 0x5e, 0xbd, 0xba, 0x2e, 0x23, 0xbf, 0xbc, 0x01, 0x72, 0xb9, 0x1c, 0x83, 0x83, 0x83, - 0x94, 0xcb, 0x65, 0x5a, 0x5b, 0x5b, 0xb1, 0x6d, 0x9b, 0x78, 0xc8, 0xe5, 0x9d, 0x57, 0x57, 0xf1, - 0xe7, 0xc0, 0x18, 0xd6, 0xac, 0x22, 0x12, 0x6d, 0xa4, 0x31, 0x16, 0x27, 0x1c, 0x89, 0x33, 0x5e, - 0x14, 0x9c, 0xba, 0x30, 0xcd, 0x67, 0xbb, 0x5f, 0xa0, 0x3c, 0x57, 0x42, 0x08, 0xc1, 0xf0, 0xf0, - 0xf0, 0xc3, 0x81, 0xe6, 0x73, 0xa4, 0x69, 0x1a, 0xa9, 0x54, 0x8a, 0x68, 0x34, 0x0a, 0xc0, 0xfa, - 0xf5, 0xeb, 0xd9, 0xbf, 0x7f, 0x3f, 0xc9, 0xc8, 0x2c, 0x5f, 0x7e, 0xf4, 0x32, 0x21, 0x65, 0xd3, - 0x77, 0x66, 0x90, 0xde, 0x5f, 0xcf, 0x73, 0xfa, 0xaf, 0xab, 0x2c, 0x8d, 0x0a, 0x0e, 0x7e, 0xfc, - 0x0a, 0x21, 0x55, 0xe2, 0xea, 0xd5, 0xab, 0xd8, 0xb6, 0x4d, 0x3e, 0x9f, 0xe7, 0xe4, 0xc9, 0x93, - 0x35, 0x85, 0x00, 0x20, 0xba, 0xba, 0xba, 0xcc, 0x78, 0x3c, 0x9e, 0xed, 0xee, 0xee, 0x0e, 0x15, - 0x8b, 0xc5, 0x9a, 0xc9, 0x3b, 0xef, 0xd9, 0xd1, 0xa3, 0x47, 0xc9, 0xe5, 0x72, 0x6c, 0xdb, 0xb6, - 0x8d, 0x64, 0x32, 0x89, 0x61, 0x18, 0x94, 0x4a, 0x25, 0x26, 0x26, 0x26, 0x38, 0x77, 0xee, 0x1c, - 0xae, 0xeb, 0x12, 0x8d, 0x46, 0xb9, 0x70, 0xe1, 0x02, 0xa6, 0x69, 0xd2, 0xda, 0xda, 0x4a, 0xa9, - 0x54, 0xe2, 0xf0, 0xe1, 0xc3, 0x1c, 0x39, 0x72, 0x44, 0xf8, 0x40, 0x91, 0x48, 0x24, 0xdb, 0xd3, - 0xd3, 0x13, 0x2a, 0x16, 0x8b, 0x35, 0x03, 0x51, 0xd3, 0x34, 0x84, 0x10, 0x48, 0x29, 0xc9, 0x66, - 0xb3, 0x5c, 0xba, 0x74, 0x89, 0x91, 0x91, 0x11, 0xa6, 0xa6, 0xa6, 0x48, 0x26, 0x93, 0xb4, 0xb7, - 0xb7, 0xd3, 0xd1, 0xd1, 0xc1, 0xed, 0xdb, 0xb7, 0x39, 0x7b, 0xf6, 0x2c, 0xba, 0xae, 0x33, 0x34, - 0x34, 0x44, 0x28, 0x14, 0x22, 0x9d, 0x4e, 0x73, 0xe3, 0xc6, 0x0d, 0x2a, 0x95, 0x4a, 0xdb, 0xbe, - 0x7d, 0xfb, 0x46, 0xc4, 0xce, 0x9d, 0x3b, 0xe3, 0x4a, 0xa9, 0xc9, 0x43, 0x87, 0x0e, 0xe9, 0x0b, - 0x63, 0xeb, 0x79, 0x9e, 0xcf, 0xee, 0xc1, 0x91, 0x5f, 0x4f, 0xb2, 0xd9, 0x2c, 0x7d, 0x7d, 0x7d, - 0x34, 0x36, 0x36, 0x72, 0xe5, 0xca, 0x15, 0x3c, 0xcf, 0x23, 0x9d, 0x4e, 0x63, 0x59, 0xd6, 0xec, - 0xf4, 0xf4, 0xf4, 0x66, 0x01, 0x3c, 0xd9, 0xd5, 0xd5, 0xf5, 0xa3, 0x10, 0x62, 0xf3, 0xc2, 0x81, - 0xb8, 0x30, 0x74, 0x8f, 0xfa, 0xdb, 0x0e, 0x06, 0x83, 0x6c, 0xdc, 0xb8, 0x51, 0xae, 0x5c, 0xb9, - 0x92, 0xe1, 0xe1, 0x61, 0x9a, 0x9a, 0x9a, 0xe8, 0xec, 0xec, 0xe4, 0xd8, 0xb1, 0x63, 0x7f, 0x08, - 0xc0, 0x04, 0x96, 0xc6, 0x62, 0xb1, 0x67, 0x85, 0x10, 0xd1, 0xf9, 0x26, 0xe6, 0xde, 0x74, 0x79, - 0xec, 0x4b, 0x5f, 0x53, 0x53, 0x93, 0xb1, 0x67, 0xcf, 0x9e, 0x4f, 0xd7, 0xac, 0x59, 0xb3, 0xaa, - 0xbd, 0xbd, 0x9d, 0x58, 0x2c, 0x46, 0x6f, 0x6f, 0xef, 0x80, 0xb8, 0xef, 0xb9, 0x04, 0xc2, 0xf7, - 0x35, 0xf8, 0x1f, 0xef, 0x8a, 0x6a, 0xf9, 0xf2, 0xe5, 0x6a, 0xef, 0xde, 0xbd, 0x9f, 0xb7, 0xb5, - 0xb5, 0xed, 0xae, 0x54, 0x2a, 0x77, 0xc7, 0xc6, 0xc6, 0xde, 0xfa, 0x07, 0x60, 0xff, 0xc9, 0x15, - 0x2a, 0xd2, 0x37, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x04, 0xbb, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x4b, 0x6c, 0x1b, + 0x55, 0x14, 0x86, 0xbf, 0x7b, 0x67, 0xfc, 0x4a, 0x1c, 0xdb, 0x72, 0xd3, 0x34, 0x4a, 0xe3, 0x28, + 0xa5, 0xb1, 0xe2, 0x3a, 0x21, 0x88, 0x22, 0x0a, 0x34, 0x52, 0xda, 0xaa, 0xa2, 0x5d, 0x20, 0xd2, + 0xec, 0x40, 0xa2, 0x11, 0x0b, 0x58, 0x50, 0x56, 0xac, 0x91, 0x8a, 0x58, 0x21, 0x58, 0x74, 0xd3, + 0x15, 0xad, 0x94, 0x45, 0x57, 0x45, 0x42, 0x42, 0x65, 0x55, 0xb1, 0xa0, 0x40, 0xc5, 0x06, 0xa5, + 0x4f, 0x35, 0xcd, 0x4b, 0x4e, 0x1f, 0x4e, 0x5b, 0x8b, 0x46, 0x69, 0x1c, 0xb7, 0x71, 0x33, 0x9e, + 0xc7, 0x61, 0x41, 0xc6, 0xb2, 0x63, 0x07, 0xe8, 0x86, 0x2b, 0xfd, 0x9a, 0x3b, 0x9a, 0x3b, 0xf7, + 0x3f, 0xff, 0x39, 0x67, 0xfe, 0x3b, 0x4a, 0x44, 0xf8, 0x3f, 0x86, 0x09, 0x70, 0xf6, 0xec, 0xd9, + 0xf3, 0x4a, 0xa9, 0xf7, 0x4d, 0xd3, 0xc4, 0x30, 0x0c, 0x44, 0x04, 0xc7, 0x71, 0x70, 0x5d, 0x17, + 0xc7, 0x71, 0xaa, 0x78, 0xd1, 0x7b, 0xad, 0xf5, 0xb7, 0x13, 0x13, 0x13, 0x27, 0x00, 0x38, 0x7d, + 0xfa, 0x74, 0xec, 0xcc, 0x99, 0x33, 0x15, 0xdb, 0xb6, 0xc5, 0x75, 0xdd, 0xa6, 0x70, 0x1c, 0xa7, + 0x0a, 0xdb, 0xb6, 0xeb, 0x50, 0xa9, 0x54, 0xaa, 0xb0, 0x2c, 0xab, 0x8a, 0x52, 0xa9, 0x24, 0xe3, + 0xe3, 0xe3, 0x9e, 0x88, 0x20, 0x22, 0x98, 0xae, 0xeb, 0x6a, 0xad, 0xb5, 0xa7, 0x94, 0x22, 0x9f, + 0xcf, 0xa3, 0x94, 0x02, 0x40, 0x29, 0x55, 0x37, 0x6f, 0x76, 0xdd, 0x6a, 0x68, 0xad, 0x49, 0x24, + 0x12, 0x88, 0x88, 0xaa, 0x4b, 0x9d, 0xe7, 0x79, 0x4d, 0x37, 0x6f, 0x36, 0xff, 0x2f, 0x44, 0xcd, + 0x9e, 0x9b, 0x00, 0xae, 0xeb, 0x02, 0x50, 0x2a, 0x95, 0x58, 0x59, 0x59, 0xa1, 0xa7, 0xa7, 0x07, + 0xad, 0x35, 0x0b, 0x0b, 0x0b, 0x6c, 0x6e, 0x96, 0x7f, 0x22, 0x11, 0x11, 0xfa, 0xfb, 0xfb, 0xab, + 0x6b, 0x6a, 0xdf, 0x6d, 0x50, 0xd4, 0xd7, 0xd7, 0x47, 0x28, 0x14, 0xa2, 0x5c, 0x2e, 0x93, 0x4e, + 0xa7, 0x5f, 0x28, 0x7d, 0x22, 0x82, 0xd6, 0x1a, 0xad, 0x75, 0x23, 0xd1, 0xea, 0xea, 0x2a, 0x89, + 0x44, 0x02, 0x80, 0x44, 0x22, 0x81, 0x52, 0x0a, 0xcb, 0xb2, 0x50, 0x4a, 0x91, 0xcb, 0xe5, 0xea, + 0x16, 0x6f, 0xde, 0x5c, 0x44, 0x18, 0x18, 0x18, 0xd8, 0x32, 0x75, 0x0d, 0x8a, 0x5c, 0xd7, 0x45, + 0x44, 0x50, 0x4a, 0x55, 0x1f, 0x2a, 0xa5, 0x48, 0xa7, 0xd3, 0xd5, 0xe8, 0x9a, 0x35, 0x87, 0xaf, + 0x60, 0x33, 0xb9, 0xbf, 0xb6, 0x81, 0xc8, 0x71, 0x9c, 0xa6, 0x11, 0xfd, 0x9b, 0xa2, 0x66, 0x0a, + 0xb3, 0xd9, 0x6c, 0xf5, 0xde, 0x2f, 0x49, 0x43, 0x33, 0xf8, 0x91, 0xf8, 0x1b, 0xf8, 0x85, 0xad, + 0x55, 0x92, 0xcb, 0xe5, 0xb0, 0x6d, 0x9b, 0xb6, 0xb6, 0x36, 0x4c, 0xd3, 0xa4, 0x58, 0x2c, 0xb2, + 0xbe, 0xbe, 0x4e, 0x36, 0x9b, 0x25, 0x14, 0x0a, 0xd5, 0x29, 0x6c, 0x20, 0xb2, 0x6d, 0xbb, 0x4e, + 0xb2, 0xbf, 0xf1, 0xfc, 0xfc, 0x7c, 0x55, 0x91, 0x65, 0x59, 0x88, 0x08, 0x83, 0x43, 0xaf, 0xf0, + 0xd3, 0xd5, 0x87, 0x4c, 0xdd, 0x5c, 0xc2, 0x71, 0x3c, 0xd2, 0xdd, 0x09, 0xde, 0x79, 0xa3, 0x8f, + 0xc5, 0xc5, 0xfb, 0x14, 0x0a, 0x05, 0x46, 0x46, 0x46, 0x30, 0x0c, 0xa3, 0x91, 0xa8, 0x58, 0x2c, + 0x12, 0x8b, 0xc5, 0xea, 0xd2, 0xb1, 0x59, 0x91, 0xe7, 0x79, 0xcc, 0xcc, 0xcc, 0xd0, 0xb2, 0xbd, + 0x97, 0x93, 0xe7, 0xae, 0x71, 0x6c, 0x64, 0x0f, 0x1f, 0x0e, 0xec, 0xc2, 0xb2, 0x3d, 0xee, 0x14, + 0x56, 0xf9, 0xea, 0xbb, 0x9b, 0x1c, 0x7d, 0xb5, 0x93, 0x3d, 0xe9, 0x34, 0x4b, 0x4b, 0x4b, 0x74, + 0x76, 0x76, 0x36, 0x57, 0xe4, 0x38, 0x4e, 0xc3, 0x47, 0x09, 0x30, 0x37, 0x37, 0x87, 0x88, 0xf0, + 0xf8, 0xf1, 0x63, 0x5e, 0x7f, 0x73, 0x98, 0x2f, 0xce, 0x5d, 0xe5, 0xb3, 0xf7, 0xf6, 0xd1, 0xb5, + 0x2d, 0x8a, 0xe3, 0x7a, 0x94, 0x2d, 0x9b, 0x4c, 0x77, 0x8c, 0x64, 0x6c, 0x88, 0xef, 0x7f, 0xbe, + 0x4d, 0x3a, 0xd5, 0xcf, 0xfd, 0x85, 0x5b, 0x74, 0x74, 0x74, 0x6c, 0x5d, 0xa3, 0x66, 0xa9, 0xcb, + 0x64, 0x32, 0x68, 0xad, 0xb1, 0x2c, 0x8b, 0x1f, 0x7e, 0xbf, 0xcb, 0xdb, 0x6f, 0xf5, 0x13, 0x8f, + 0x46, 0x70, 0x3c, 0x01, 0xa5, 0x09, 0x06, 0x02, 0x78, 0x68, 0x44, 0x2a, 0xbc, 0x36, 0xd8, 0xc3, + 0xc4, 0xc5, 0x69, 0x4e, 0x1c, 0xdd, 0xc5, 0xf2, 0xf2, 0x32, 0x91, 0x48, 0xa4, 0xb9, 0xa2, 0x66, + 0x63, 0x7e, 0x7e, 0x1e, 0xdb, 0xb6, 0x31, 0x4d, 0x93, 0x85, 0x47, 0x25, 0x76, 0xf7, 0xec, 0xe0, + 0xe9, 0xb3, 0x32, 0xeb, 0xa6, 0x42, 0x21, 0xb8, 0xae, 0xc7, 0xda, 0xba, 0xcd, 0x83, 0x47, 0x4b, + 0xd8, 0x15, 0xe1, 0xb9, 0xe5, 0x10, 0x0e, 0x87, 0x29, 0x14, 0x0a, 0x74, 0x77, 0x77, 0xd7, 0xfb, + 0x5f, 0xb1, 0x58, 0xac, 0x76, 0xdd, 0xe6, 0x3a, 0x65, 0x32, 0x19, 0x32, 0x99, 0x0c, 0x86, 0x61, + 0x60, 0x1a, 0x0a, 0xcc, 0x20, 0xda, 0x0c, 0x12, 0x0c, 0x86, 0x88, 0x44, 0x22, 0x44, 0x5a, 0x5a, + 0xc0, 0x0c, 0x93, 0xda, 0xd9, 0x49, 0x57, 0xe7, 0x76, 0x42, 0xc1, 0x00, 0x96, 0x65, 0xe1, 0x79, + 0x5e, 0x43, 0x19, 0xaa, 0x8a, 0x6a, 0x53, 0xe7, 0x8f, 0xd9, 0xd9, 0x59, 0x3c, 0xcf, 0x63, 0x6d, + 0x6d, 0x8d, 0xc1, 0xde, 0x76, 0xae, 0xdc, 0xbe, 0xc7, 0xb3, 0xd5, 0x36, 0xa2, 0x21, 0x8d, 0x16, + 0x07, 0x25, 0x36, 0xcf, 0x6d, 0xc5, 0xba, 0xa3, 0x58, 0x29, 0x7b, 0x84, 0x03, 0x42, 0xb9, 0x5c, + 0x26, 0x99, 0x4c, 0x36, 0x3a, 0xba, 0xdf, 0xde, 0x00, 0x4f, 0x9e, 0x3c, 0x61, 0x7a, 0x7a, 0x1a, + 0xcb, 0xb2, 0xaa, 0x35, 0x1a, 0x1c, 0x1c, 0x44, 0x6b, 0xcd, 0xb1, 0xfd, 0xbb, 0x78, 0xf8, 0xe7, + 0x53, 0x08, 0x44, 0x69, 0x8d, 0x6f, 0x63, 0xfb, 0x8e, 0x9d, 0x74, 0xa5, 0x76, 0xd3, 0xd3, 0xd3, + 0x4b, 0x47, 0x67, 0x17, 0x33, 0xf9, 0xa7, 0x7c, 0x3a, 0x3a, 0xc4, 0xf5, 0xeb, 0xd7, 0x49, 0xa5, + 0x52, 0xcd, 0xdd, 0xdb, 0xaf, 0x91, 0x61, 0x18, 0xa4, 0xd3, 0x69, 0x5a, 0x5b, 0x5b, 0xa9, 0x54, + 0x2a, 0xcc, 0xce, 0xce, 0x22, 0x22, 0x84, 0xc3, 0x61, 0x2e, 0x5f, 0xfe, 0x8d, 0x93, 0xe3, 0x07, + 0xf8, 0xe6, 0xfc, 0x24, 0xd1, 0x48, 0x80, 0x9d, 0xed, 0x61, 0xa2, 0xad, 0x11, 0xd6, 0x2a, 0x26, + 0x53, 0xb9, 0x02, 0x9f, 0xbc, 0x3b, 0x40, 0x40, 0x39, 0x58, 0x96, 0xc5, 0xe4, 0xe4, 0x24, 0xc3, + 0xc3, 0xc3, 0xf5, 0x44, 0xc5, 0x62, 0x91, 0x78, 0x3c, 0x8e, 0x88, 0x10, 0x8f, 0xc7, 0xd1, 0x5a, + 0x57, 0x15, 0xf6, 0xf7, 0xf7, 0x63, 0x18, 0x06, 0x4a, 0x29, 0x8a, 0xc5, 0x22, 0xd7, 0xfe, 0xb8, + 0xcc, 0x97, 0xe3, 0xc3, 0xdc, 0x5b, 0x5a, 0xe7, 0xd6, 0x9d, 0x65, 0xca, 0x65, 0x9b, 0x97, 0x5f, + 0x4a, 0xf0, 0xc1, 0x81, 0x7d, 0x5c, 0xbd, 0x32, 0x89, 0x93, 0x48, 0x10, 0x0a, 0x85, 0xc8, 0xe7, + 0xf3, 0x2c, 0x2e, 0x2e, 0x36, 0xa6, 0xae, 0xb6, 0xeb, 0x6a, 0xbd, 0xad, 0xd6, 0x50, 0x93, 0xc9, + 0x24, 0x87, 0x0f, 0x1f, 0x26, 0x97, 0xcb, 0xf1, 0x60, 0xee, 0x0a, 0xa9, 0xd0, 0x12, 0x43, 0x1d, + 0xcf, 0x59, 0xbe, 0x7b, 0x8d, 0x5f, 0x7f, 0xb9, 0x44, 0xa9, 0x54, 0x22, 0x9f, 0xcf, 0xfb, 0x27, + 0x2b, 0x22, 0x42, 0x7b, 0x7b, 0x3b, 0xa3, 0xa3, 0xa3, 0x2d, 0x00, 0x66, 0x20, 0x10, 0x10, 0xcb, + 0xb2, 0xb4, 0xaf, 0xa8, 0xd6, 0xa7, 0x6a, 0x7d, 0xcb, 0x0f, 0x60, 0xef, 0xde, 0xbd, 0x78, 0x9e, + 0x87, 0xeb, 0xba, 0xd8, 0xb6, 0x5d, 0xb5, 0x1b, 0xa5, 0x14, 0x97, 0x2e, 0xfd, 0x4d, 0xd8, 0xd6, + 0xd6, 0x46, 0xa5, 0x52, 0xe1, 0xe0, 0xc1, 0x83, 0x4c, 0x4d, 0x4d, 0xcd, 0x1f, 0x39, 0x72, 0x64, + 0x9f, 0x02, 0x92, 0x63, 0x63, 0x63, 0x3f, 0x2a, 0xa5, 0xf6, 0xfb, 0x2f, 0xd5, 0xda, 0xbd, 0x3f, + 0xf7, 0x3c, 0xaf, 0xee, 0xea, 0xc3, 0x3f, 0x0e, 0x6a, 0x8f, 0x86, 0x43, 0x87, 0x0e, 0xe9, 0xde, + 0xde, 0x5e, 0x5a, 0x5a, 0x5a, 0x48, 0xa5, 0x52, 0x9c, 0x3a, 0x75, 0xea, 0xa2, 0x09, 0x78, 0x17, + 0x2e, 0x5c, 0xf8, 0x38, 0x16, 0x8b, 0xf5, 0x2a, 0xa5, 0xa2, 0x7e, 0x83, 0x00, 0x0a, 0x10, 0x40, + 0x89, 0x88, 0x29, 0x22, 0x06, 0x60, 0x88, 0x88, 0x21, 0x22, 0xda, 0x9f, 0x6f, 0xa4, 0x5f, 0x01, + 0x9e, 0x52, 0xca, 0x03, 0xec, 0x1b, 0x37, 0x6e, 0xc4, 0x8e, 0x1f, 0x3f, 0xfe, 0xf9, 0xd8, 0xd8, + 0x58, 0x3c, 0x1a, 0x8d, 0x12, 0x0c, 0x06, 0x5d, 0xb5, 0x11, 0x8d, 0x06, 0xc2, 0x1b, 0x08, 0x6e, + 0xf5, 0x73, 0xb3, 0x11, 0x84, 0xb1, 0x01, 0x5d, 0x43, 0xc2, 0x46, 0x50, 0x02, 0xb8, 0xc0, 0x7a, + 0x2a, 0x95, 0xf2, 0xb2, 0xd9, 0xec, 0x47, 0xf1, 0x78, 0x3c, 0xb9, 0xbc, 0xbc, 0xfc, 0xf5, 0x5f, + 0x8c, 0x86, 0xc8, 0x61, 0x09, 0x89, 0x45, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, + 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE find_xpm[1] = {{ png, sizeof( png ), "find_xpm" }}; diff --git a/bitmaps_png/cpp_26/module_pin_filtered_list.cpp b/bitmaps_png/cpp_26/module_pin_filtered_list.cpp index 1e1a96b070..4c2215fcf9 100644 --- a/bitmaps_png/cpp_26/module_pin_filtered_list.cpp +++ b/bitmaps_png/cpp_26/module_pin_filtered_list.cpp @@ -8,58 +8,57 @@ static const unsigned char png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, - 0xce, 0x00, 0x00, 0x03, 0x25, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x56, 0x5d, 0x4f, 0x13, - 0x41, 0x14, 0x25, 0x8a, 0xc4, 0x47, 0x7f, 0x81, 0x12, 0xc4, 0x8f, 0x5f, 0x01, 0x05, 0x4a, 0xdb, - 0xfd, 0xa0, 0xb4, 0x8b, 0xe5, 0xab, 0x95, 0xaa, 0x40, 0x5b, 0x09, 0x49, 0x1f, 0x2c, 0x44, 0x49, - 0x7c, 0x81, 0xe8, 0x0b, 0x0f, 0xa8, 0x01, 0x83, 0x4d, 0x88, 0x20, 0x31, 0x1a, 0x48, 0x83, 0x09, - 0x44, 0x29, 0x12, 0x4c, 0x80, 0x90, 0x08, 0xf8, 0x22, 0x6f, 0x25, 0x3e, 0x28, 0x21, 0x0a, 0x81, - 0x26, 0x84, 0x52, 0x28, 0xb6, 0xbd, 0xce, 0x1d, 0x77, 0x37, 0x5b, 0xba, 0x5b, 0x9a, 0x88, 0x6c, - 0x72, 0xb2, 0x77, 0xe7, 0xcc, 0x9c, 0xb3, 0x73, 0x77, 0xe6, 0xce, 0xe6, 0x00, 0x40, 0xce, 0x69, - 0x20, 0xe5, 0xc1, 0xca, 0x95, 0x87, 0x58, 0xc6, 0xf8, 0x5b, 0x42, 0x25, 0x5b, 0xfe, 0x5d, 0xe2, - 0x04, 0x4e, 0xbf, 0xc2, 0x33, 0x86, 0x7d, 0x09, 0xd8, 0x57, 0xe2, 0xb0, 0x9f, 0xd6, 0x38, 0x55, - 0x23, 0xec, 0x14, 0x69, 0xcb, 0x85, 0x58, 0xfb, 0x19, 0x0a, 0x93, 0xc9, 0x04, 0x4a, 0x2e, 0xec, - 0xcb, 0x83, 0x48, 0xdb, 0x39, 0x0a, 0x25, 0x87, 0xb1, 0x34, 0xe6, 0xe8, 0x38, 0x4d, 0xa3, 0x77, - 0xcd, 0x85, 0x70, 0xeb, 0x86, 0x09, 0x02, 0xae, 0xab, 0x69, 0x46, 0x63, 0xae, 0x2b, 0x94, 0x1b, - 0x73, 0x15, 0xa6, 0x19, 0x61, 0x7f, 0xbb, 0x95, 0x81, 0xd1, 0xe6, 0x6b, 0xda, 0x46, 0x82, 0x20, - 0xac, 0xb0, 0x2c, 0x8b, 0xd3, 0x06, 0x67, 0x15, 0x03, 0x43, 0xfd, 0xcf, 0xc0, 0x56, 0xc9, 0xd0, - 0x01, 0xb4, 0x5d, 0xe4, 0xea, 0x89, 0xd0, 0xcb, 0xe7, 0x4f, 0xe8, 0x5d, 0xc9, 0x61, 0x6c, 0x17, - 0x18, 0x18, 0xe8, 0xeb, 0x49, 0xe1, 0xcc, 0x66, 0xf3, 0x4f, 0x9d, 0x4e, 0x77, 0x5e, 0x36, 0xe2, - 0x79, 0x7e, 0x3f, 0x1c, 0x0e, 0x43, 0x05, 0xc7, 0xc2, 0x7b, 0x77, 0x3e, 0xb8, 0xaa, 0x8d, 0x30, - 0xe1, 0xbe, 0x4c, 0x07, 0xc4, 0x62, 0x31, 0x0a, 0xe4, 0xc6, 0x5d, 0x05, 0x22, 0x57, 0x90, 0xc2, - 0x61, 0xfc, 0xd1, 0x73, 0x11, 0x5a, 0x6b, 0x0d, 0x10, 0x74, 0x5f, 0x92, 0x39, 0x62, 0x74, 0x60, - 0xb1, 0x58, 0x2e, 0xa4, 0x18, 0x45, 0x22, 0x11, 0x2a, 0x86, 0x39, 0x86, 0xfb, 0x39, 0x14, 0x62, - 0x0a, 0xe8, 0x95, 0x89, 0xa3, 0xb1, 0xd8, 0xae, 0xe4, 0x34, 0x8d, 0xee, 0xdc, 0xac, 0x23, 0x82, - 0x8c, 0x0c, 0x47, 0xad, 0x4d, 0x16, 0xcb, 0xc4, 0x61, 0xac, 0xc6, 0xa9, 0x19, 0x1d, 0x2c, 0x2e, - 0x2e, 0x42, 0x22, 0x91, 0x90, 0xd3, 0x81, 0x88, 0xc7, 0xe3, 0xb2, 0x58, 0x26, 0x0e, 0x63, 0x35, - 0x2e, 0xcd, 0x88, 0xe3, 0xb8, 0x58, 0x63, 0x63, 0x23, 0xf8, 0xfd, 0x7e, 0x38, 0xc9, 0x4b, 0x35, - 0x75, 0x6b, 0x6b, 0x6b, 0x48, 0x40, 0x34, 0x1a, 0xcd, 0x4a, 0xc4, 0xeb, 0xf5, 0x42, 0x59, 0x59, - 0x19, 0xae, 0x2e, 0xa8, 0x12, 0x04, 0x1a, 0x57, 0x92, 0xf1, 0x44, 0x98, 0xc6, 0x88, 0xa2, 0xa2, - 0x22, 0xc4, 0x6c, 0x8a, 0x51, 0x20, 0x10, 0x00, 0x8f, 0xc7, 0x03, 0xc9, 0x64, 0xf2, 0x58, 0x13, - 0x4c, 0x8f, 0x28, 0x02, 0x6f, 0x87, 0x87, 0xe1, 0xc7, 0xea, 0x2a, 0x8d, 0xbf, 0x2e, 0x2d, 0xc1, - 0xcc, 0xe4, 0xa4, 0xcc, 0x49, 0xc0, 0x25, 0xfe, 0x77, 0x33, 0xb2, 0xec, 0xa1, 0xcf, 0xe7, 0x83, - 0x50, 0x28, 0x94, 0xd5, 0x6c, 0x94, 0x46, 0x4b, 0xf3, 0xf3, 0xb2, 0x78, 0x64, 0x6b, 0x0b, 0xfc, - 0x7d, 0x7d, 0xda, 0x46, 0xd2, 0xaa, 0xcb, 0xf6, 0x42, 0xa3, 0x87, 0x1d, 0x1d, 0xf0, 0x82, 0x88, - 0xee, 0x6c, 0x6c, 0xc0, 0x97, 0x85, 0x05, 0x18, 0x1a, 0x18, 0x00, 0x92, 0x77, 0x98, 0x9a, 0x98, - 0x00, 0x9e, 0xe3, 0x32, 0x1b, 0x35, 0x39, 0xed, 0x74, 0x0f, 0x48, 0x68, 0xa8, 0xaf, 0x96, 0xc5, - 0x91, 0xc3, 0xbd, 0x24, 0x61, 0x7e, 0x66, 0x86, 0x0a, 0xab, 0xc1, 0x5e, 0x57, 0x97, 0xd9, 0xe8, - 0xb8, 0x4d, 0x29, 0x15, 0xcd, 0xf0, 0xbd, 0x3c, 0x28, 0x2d, 0x2d, 0x85, 0x07, 0xed, 0xed, 0xb2, - 0xf0, 0x2b, 0x32, 0xa3, 0xf0, 0xfa, 0x3a, 0xe8, 0xf5, 0x7a, 0x28, 0x2e, 0x2e, 0x3e, 0xde, 0x68, - 0x84, 0x14, 0xc5, 0x23, 0xc5, 0x51, 0x36, 0x1a, 0x15, 0xb9, 0x37, 0x4d, 0xd7, 0xa9, 0x40, 0x7f, - 0x6f, 0x2f, 0xec, 0x6e, 0x6e, 0xd2, 0x78, 0x76, 0x7a, 0x1a, 0x3e, 0xcf, 0xcd, 0xa5, 0x7d, 0x9f, - 0x14, 0x23, 0xab, 0xd5, 0xfa, 0x8d, 0xec, 0xa5, 0x38, 0x16, 0x4e, 0x14, 0x1a, 0xec, 0x7f, 0x2a, - 0x17, 0x47, 0x6c, 0x47, 0x60, 0x2c, 0x17, 0x55, 0x0b, 0x03, 0x9f, 0x82, 0x41, 0x48, 0x90, 0x97, - 0x4b, 0xee, 0xed, 0xc1, 0xe1, 0xce, 0x0e, 0xbd, 0xe3, 0x33, 0xc6, 0xf5, 0x5a, 0xa9, 0xb3, 0xd9, - 0x6c, 0x67, 0xf1, 0x01, 0x8f, 0x82, 0x0f, 0xa4, 0x28, 0x2a, 0x8b, 0x23, 0xb6, 0x23, 0x30, 0x0e, - 0x8a, 0xdc, 0xb8, 0x2b, 0x1f, 0x1e, 0x75, 0x76, 0x42, 0x74, 0x7b, 0x1b, 0x56, 0x96, 0x97, 0x61, - 0x6c, 0x64, 0x84, 0xa6, 0x10, 0xcd, 0x5f, 0x0f, 0x0e, 0x42, 0x05, 0xcf, 0xab, 0x1b, 0x29, 0xcf, - 0x1c, 0x95, 0x6f, 0x24, 0x9f, 0x39, 0x52, 0xfb, 0xae, 0x2f, 0x17, 0x0c, 0x06, 0x03, 0x24, 0xc8, - 0x2c, 0x1e, 0x77, 0x75, 0x41, 0x6b, 0x4b, 0x0b, 0x35, 0x6a, 0x70, 0x38, 0x32, 0xa7, 0x4e, 0x79, - 0x24, 0x2b, 0x57, 0x9d, 0x99, 0x2d, 0xff, 0x25, 0x71, 0x18, 0x2b, 0xb9, 0xbb, 0x6e, 0x37, 0x15, - 0xbf, 0xed, 0x74, 0x42, 0x4f, 0x77, 0x37, 0x4d, 0x59, 0x49, 0x49, 0x49, 0x76, 0x46, 0xd9, 0x82, - 0xa6, 0xd2, 0x68, 0x04, 0x87, 0xdd, 0x0e, 0x3a, 0xb2, 0xc2, 0x30, 0x55, 0xb5, 0x35, 0x35, 0xaa, - 0x26, 0xff, 0x6c, 0xa4, 0x25, 0x7a, 0xa2, 0x46, 0x08, 0x22, 0x30, 0x45, 0x70, 0x90, 0x05, 0xa6, - 0xd2, 0x7e, 0x4e, 0x4e, 0xed, 0xbf, 0xee, 0x7f, 0xe2, 0x0f, 0xd1, 0x8f, 0xef, 0xbe, 0x17, 0x6f, - 0x07, 0x74, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0xce, 0x00, 0x00, 0x03, 0x16, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xcd, 0x56, 0x5d, 0x4b, 0x14, + 0x51, 0x18, 0x96, 0x32, 0xe9, 0xb2, 0x5f, 0x50, 0x62, 0xf6, 0xf1, 0x2b, 0x54, 0x34, 0x75, 0x67, + 0x76, 0xdb, 0xaf, 0x5a, 0x35, 0xad, 0x8c, 0xd4, 0xdd, 0x0d, 0x02, 0x2f, 0x5a, 0xa3, 0x0b, 0x45, + 0x4a, 0xa4, 0x14, 0xa4, 0x12, 0x14, 0x5d, 0x90, 0xca, 0x0b, 0xbf, 0x37, 0x37, 0x15, 0x4b, 0x13, + 0x91, 0x85, 0x04, 0x35, 0x08, 0xdc, 0x2b, 0x57, 0x04, 0xcd, 0x8b, 0x14, 0x74, 0x21, 0x5a, 0x56, + 0xb7, 0x76, 0x7d, 0x9b, 0xf7, 0x6d, 0xe6, 0x30, 0xe3, 0xcc, 0x8e, 0x7b, 0x51, 0xd2, 0xc0, 0xc3, + 0x3e, 0x73, 0x9e, 0x73, 0x9e, 0x67, 0xf6, 0xcc, 0x39, 0xef, 0x99, 0x34, 0x00, 0x48, 0x3b, 0x0e, + 0x28, 0x6e, 0x6c, 0xc6, 0xc2, 0x10, 0xcf, 0x15, 0xff, 0x92, 0x60, 0xe1, 0x0b, 0x37, 0x24, 0xcd, + 0x6e, 0xbc, 0x12, 0x34, 0x71, 0x45, 0x7b, 0x12, 0xb0, 0xaf, 0xa4, 0x61, 0xbf, 0x64, 0xe3, 0x34, + 0x83, 0xb0, 0x53, 0xa4, 0x2e, 0x1d, 0x62, 0x0f, 0x4f, 0x10, 0x0c, 0x06, 0x03, 0xc8, 0xb5, 0xb0, + 0x27, 0x03, 0x22, 0x75, 0xa7, 0x08, 0x72, 0x0d, 0xb9, 0x34, 0xe6, 0xf0, 0xb8, 0xa4, 0x41, 0xfe, + 0x9a, 0x6c, 0xb8, 0x73, 0xdd, 0x00, 0x3e, 0xe7, 0x45, 0x55, 0xd0, 0xa8, 0xf3, 0x02, 0x69, 0xa3, + 0xce, 0x6c, 0x55, 0x10, 0xf6, 0xaf, 0xb0, 0x71, 0x30, 0x5c, 0x73, 0x29, 0x79, 0x90, 0xdd, 0x6e, + 0x0f, 0xf2, 0x3c, 0x8f, 0x7f, 0x1b, 0x2a, 0xaf, 0x71, 0xf0, 0xa6, 0xab, 0x1d, 0x1c, 0x16, 0x8e, + 0x06, 0x50, 0xbb, 0xa8, 0x95, 0x0b, 0x46, 0xaf, 0x3a, 0x5f, 0xd0, 0xaf, 0x5c, 0x43, 0x5e, 0x61, + 0xe7, 0xa0, 0xa7, 0xe3, 0xb9, 0x42, 0x33, 0x9b, 0xcd, 0xdf, 0xf2, 0xf2, 0xf2, 0x4e, 0xb3, 0x20, + 0x93, 0xc9, 0xb4, 0x17, 0x0e, 0x87, 0xe1, 0xaa, 0x91, 0x87, 0x49, 0x57, 0x26, 0x38, 0x4b, 0x8a, + 0x61, 0xc2, 0x75, 0x9e, 0x06, 0xc4, 0x62, 0x31, 0x02, 0x6a, 0xe3, 0xce, 0x2c, 0x51, 0xcb, 0x52, + 0x68, 0xc8, 0x3f, 0xba, 0xcf, 0xc2, 0xfd, 0xb2, 0x22, 0x98, 0x72, 0x9d, 0x63, 0x9a, 0x10, 0xb4, + 0x6f, 0xb5, 0x5a, 0xcf, 0x28, 0x82, 0x22, 0x91, 0x08, 0x99, 0xe1, 0x1c, 0xc3, 0xa3, 0x34, 0x82, + 0x38, 0x05, 0x74, 0xe9, 0x69, 0xc4, 0xc5, 0x76, 0xb9, 0x96, 0x34, 0xe8, 0xee, 0xad, 0x1b, 0x82, + 0x21, 0xc7, 0x70, 0xb3, 0xcc, 0xc1, 0xcc, 0xf4, 0x34, 0xe4, 0x5a, 0x9a, 0x56, 0xd0, 0xfe, 0xe2, + 0xe2, 0x22, 0x24, 0x12, 0x09, 0x36, 0x1d, 0x88, 0x78, 0x3c, 0xce, 0xcc, 0xf4, 0x34, 0xe4, 0x5a, + 0x9a, 0x2a, 0xc8, 0x68, 0x34, 0xc6, 0xaa, 0xaa, 0xaa, 0xc0, 0xeb, 0xf5, 0xc2, 0xdf, 0xbc, 0x34, + 0xa7, 0x6e, 0x73, 0x73, 0x13, 0x05, 0x88, 0x46, 0xa3, 0x29, 0x99, 0xd4, 0xd6, 0xd6, 0x42, 0x41, + 0x41, 0x81, 0x2e, 0x72, 0x72, 0x72, 0x10, 0x01, 0x45, 0x90, 0xcf, 0xe7, 0x03, 0xb7, 0xdb, 0x0d, + 0x07, 0x07, 0x07, 0x47, 0x86, 0xe0, 0xf4, 0x88, 0x26, 0x0c, 0x6f, 0x07, 0x07, 0x61, 0x21, 0x10, + 0x20, 0xde, 0xdf, 0xdb, 0x0b, 0xcb, 0x4b, 0x4b, 0x4c, 0xc3, 0x25, 0xfe, 0x67, 0x33, 0xf2, 0xfc, + 0x4f, 0x8f, 0xc7, 0x03, 0xa1, 0x50, 0x28, 0xa5, 0x7f, 0xa3, 0x15, 0xf4, 0x75, 0x75, 0x15, 0xfa, + 0x84, 0x00, 0xe4, 0x2b, 0xcb, 0xcb, 0xe0, 0x1f, 0x1a, 0x52, 0x07, 0x49, 0xab, 0x2e, 0xd5, 0x4b, + 0x0a, 0x12, 0xc6, 0xc1, 0xe3, 0x86, 0x06, 0x78, 0xda, 0xd4, 0x04, 0xc2, 0x9c, 0x83, 0x6f, 0x60, + 0x00, 0x9e, 0x34, 0x36, 0x42, 0x42, 0xf0, 0x7a, 0x37, 0x32, 0x42, 0x5a, 0x7e, 0x7e, 0xbe, 0x3a, + 0xa8, 0xba, 0xb2, 0x82, 0xf6, 0x80, 0x84, 0xdb, 0xe5, 0x25, 0xcc, 0x1c, 0x35, 0xdc, 0x4b, 0x12, + 0x30, 0xe8, 0x9e, 0xcb, 0x45, 0x01, 0x7a, 0xe0, 0x04, 0x1f, 0x55, 0xd0, 0x51, 0x9b, 0x52, 0x2a, + 0x9a, 0xe1, 0x07, 0x19, 0x14, 0x84, 0x4f, 0x6b, 0xb5, 0x58, 0x60, 0xd2, 0xef, 0x87, 0x8d, 0x95, + 0x15, 0xe2, 0xc3, 0x7d, 0x7d, 0xb0, 0xb5, 0xbe, 0x4e, 0x1c, 0x91, 0x9b, 0x9b, 0xab, 0x1d, 0x34, + 0x24, 0x14, 0xc5, 0x43, 0xc5, 0x91, 0x05, 0x0d, 0x8b, 0x5a, 0x7f, 0xf5, 0x65, 0x0a, 0xe2, 0x38, + 0x0e, 0x6b, 0x1a, 0xac, 0x06, 0x83, 0xf0, 0x61, 0x6c, 0x8c, 0xf8, 0x97, 0x85, 0x05, 0x08, 0xcc, + 0xcc, 0x10, 0xc7, 0x07, 0x51, 0xbc, 0x23, 0x9b, 0xcd, 0xb6, 0x26, 0xec, 0xa5, 0x38, 0x16, 0x4e, + 0x34, 0x7a, 0xdd, 0xf5, 0x92, 0x15, 0x47, 0x6c, 0x47, 0x20, 0x67, 0x45, 0xd5, 0xca, 0x91, 0x41, + 0x64, 0x67, 0x47, 0x77, 0xda, 0x1a, 0xeb, 0xeb, 0x95, 0x41, 0x0e, 0x87, 0xe3, 0x24, 0xde, 0xe0, + 0x51, 0xf0, 0x5e, 0x28, 0x8a, 0xf2, 0xe2, 0x88, 0xed, 0x08, 0xe4, 0x53, 0xa2, 0x36, 0xee, 0xcc, + 0x24, 0x83, 0x67, 0xcd, 0xcd, 0x34, 0x55, 0x68, 0xea, 0xed, 0xe8, 0xa0, 0x55, 0x87, 0xbc, 0xa7, + 0xbb, 0x1b, 0xda, 0x5a, 0x5a, 0xa0, 0xac, 0xb4, 0x54, 0x19, 0x24, 0x3f, 0x73, 0x34, 0xde, 0x11, + 0x3b, 0x73, 0xa4, 0xf6, 0x1f, 0x9e, 0x74, 0xb6, 0x74, 0x3b, 0xdb, 0xdb, 0xe1, 0xfb, 0xf6, 0x36, + 0xbd, 0x8b, 0xb6, 0xd6, 0x56, 0x88, 0xee, 0xee, 0xa2, 0xb1, 0x62, 0xe9, 0xab, 0x82, 0xf0, 0x08, + 0x96, 0xaf, 0x3a, 0x33, 0x5f, 0xb8, 0x25, 0x69, 0xc8, 0xe5, 0x9a, 0x64, 0xf2, 0x69, 0x76, 0x16, + 0xe6, 0xe7, 0xe6, 0x88, 0x4f, 0x4d, 0x4c, 0xc0, 0xe7, 0xf9, 0x79, 0xd5, 0x1e, 0x53, 0x05, 0xa5, + 0x0a, 0x1c, 0x78, 0xd8, 0x4c, 0x0f, 0xff, 0x7f, 0x10, 0x42, 0x30, 0x98, 0x16, 0xb0, 0x9f, 0x02, + 0xa6, 0x55, 0x1f, 0x27, 0xc7, 0xf6, 0x5d, 0xf7, 0x2f, 0xf1, 0x1b, 0x0c, 0xfc, 0xf5, 0xb8, 0xe2, + 0x7e, 0x3a, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, }; const BITMAP_OPAQUE module_pin_filtered_list_xpm[1] = {{ png, sizeof( png ), "module_pin_filtered_list_xpm" }}; diff --git a/bitmaps_png/sources/find.svg b/bitmaps_png/sources/find.svg index 09442557d0..47623cf7c1 100644 --- a/bitmaps_png/sources/find.svg +++ b/bitmaps_png/sources/find.svg @@ -13,7 +13,7 @@ inkscape:export-ydpi="90.000000" inkscape:export-xdpi="90.000000" inkscape:export-filename="/home/steven/edit-find-48.png" - sodipodi:docname="find.svg" + sodipodi:docname="find.svg.BASE" inkscape:version="0.48.2 r9819" sodipodi:version="0.32" id="svg249" @@ -59,6 +59,18 @@ offset="1.0000000" style="stop-color:#ffffff;stop-opacity:0.24761905;" /> + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g1772" + transform="matrix(0.39105747,0,0,0.37162201,7.9100602,31.393184)"> + + + + + transform="matrix(1.245743,0,0,1.245743,-3.425346,-6.177033)" /> + rx="3.2112026" + ry="2.837393" + transform="matrix(0.752986,0.658037,-0.648902,0.760872,0,0)" /> + transform="matrix(1.398614,0,0,1.398614,-6.224338,-8.298958)" /> + id="path4462" /> diff --git a/bitmaps_png/sources/module_pin_filtered_list.svg b/bitmaps_png/sources/module_pin_filtered_list.svg index 3558f53c66..2714f24b1d 100644 --- a/bitmaps_png/sources/module_pin_filtered_list.svg +++ b/bitmaps_png/sources/module_pin_filtered_list.svg @@ -22,7 +22,7 @@ image/svg+xml - + @@ -37,15 +37,15 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="1600" - inkscape:window-height="841" + inkscape:window-width="1280" + inkscape:window-height="968" id="namedview52" showgrid="true" inkscape:zoom="25.615385" inkscape:cx="20.436413" inkscape:cy="13" - inkscape:window-x="0" - inkscape:window-y="28" + inkscape:window-x="-4" + inkscape:window-y="-4" inkscape:window-maximized="1" inkscape:current-layer="svg2" inkscape:snap-to-guides="true" @@ -160,14 +160,14 @@ # diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp index 052e675c8b..f0cb41d6e7 100644 --- a/common/dialogs/dialog_page_settings.cpp +++ b/common/dialogs/dialog_page_settings.cpp @@ -49,6 +49,29 @@ wxPoint DIALOG_PAGES_SETTINGS::s_LastPos( -1, -1 ); wxSize DIALOG_PAGES_SETTINGS::s_LastSize; +// List of page formats. +// should be statically initialized, because we need both +// the translated and the not translated version. +// when displayed in dialog we should explicitely call wxGetTranslation() +// to show the translated version. +const wxString pageFmts[] = +{ + _("A4 210x297mm"), + _("A3 297x420mm"), + _("A2 420x594mm"), + _("A1 594x841mm"), + _("A0 841x1189mm"), + _("A 8.5x11in"), + _("B 11x17in"), + _("C 17x22in"), + _("D 22x34in"), + _("E 34x44in"), + _("USLetter 8.5x11in"), + _("USLegal 8.5x14in"), + _("USLedger 11x17in"), + _("User (Custom)"), + wxT("") // end of list +}; void EDA_DRAW_FRAME::Process_PageSettings( wxCommandEvent& event ) { @@ -92,6 +115,18 @@ void DIALOG_PAGES_SETTINGS::initDialog() SetFocus(); + // initalize page format choice box and page format list. + // The first shows translated strings, the second contains not tralated strings + m_paperSizeComboBox->Clear(); + for( unsigned ii = 0; ; ii++ ) + { + if( pageFmts[ii].IsEmpty() ) + break; + m_pageFmt.Add( pageFmts[ii] ); + m_paperSizeComboBox->Append( wxGetTranslation( pageFmts[ii] ) ); + } + + #ifdef EESCHEMA // Init display value for sheet User size wxString format = m_TextSheetCount->GetLabel(); @@ -232,7 +267,10 @@ void DIALOG_PAGES_SETTINGS::OnCancelClick( wxCommandEvent& event ) void DIALOG_PAGES_SETTINGS::OnPaperSizeChoice( wxCommandEvent& event ) { - wxString paperType = m_paperSizeComboBox->GetStringSelection(); + int idx = m_paperSizeComboBox->GetSelection(); + if( idx < 0 ) + idx = 0; + const wxString paperType = m_pageFmt[idx]; if( paperType.Contains( PAGE_INFO::Custom ) ) { m_orientationComboBox->Enable( false ); @@ -364,14 +402,15 @@ void DIALOG_PAGES_SETTINGS::OnComment4TextUpdated( wxCommandEvent& event ) void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event ) { - bool retSuccess; + bool retSuccess = false; m_save_flag = true; - // wxFormBuilder must use "A4", "A3", etc for choices, in all languages/translations - const wxString paperType = m_paperSizeComboBox->GetStringSelection(); + int idx = m_paperSizeComboBox->GetSelection(); + if( idx < 0 ) + idx = 0; + const wxString paperType = m_pageFmt[idx]; - // here we assume translators will keep original paper size spellings if( paperType.Contains( PAGE_INFO::Custom ) ) { GetCustomSizeMilsFromDialog(); @@ -506,15 +545,11 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ), void DIALOG_PAGES_SETTINGS::SetCurrentPageSizeSelection( const wxString& aPaperSize ) { - // use wxChoice to store the sheet type in the wxChoice's choice - // i.e. "A4", "A3", etc, anywhere within the text of the label. - // D(printf("m_paperSizeComboBox->GetCount() = %d\n", (int) m_paperSizeComboBox->GetCount() );) - - // search all the child wxRadioButtons for a label containing our paper type - for( unsigned i = 0; i < m_paperSizeComboBox->GetCount(); ++i ) + // search all the not translated label list containing our paper type + for( unsigned i = 0; i < m_pageFmt.GetCount(); ++i ) { // parse each label looking for aPaperSize within it - wxStringTokenizer st( m_paperSizeComboBox->GetString( i ) ); + wxStringTokenizer st( m_pageFmt[i] ); while( st.HasMoreTokens() ) { @@ -609,8 +644,10 @@ void DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample() void DIALOG_PAGES_SETTINGS::GetPageLayoutInfoFromDialog() { - // wxFormBuilder must use "A4", "A3", etc for choices, in all languages/translations - const wxString paperType = m_paperSizeComboBox->GetStringSelection(); + int idx = m_paperSizeComboBox->GetSelection(); + if( idx < 0 ) + idx = 0; + const wxString paperType = m_pageFmt[idx]; // here we assume translators will keep original paper size spellings if( paperType.Contains( PAGE_INFO::Custom ) ) diff --git a/common/dialogs/dialog_page_settings.h b/common/dialogs/dialog_page_settings.h index a397589bc5..64d61caeaa 100644 --- a/common/dialogs/dialog_page_settings.h +++ b/common/dialogs/dialog_page_settings.h @@ -38,6 +38,7 @@ class DIALOG_PAGES_SETTINGS: public DIALOG_PAGES_SETTINGS_BASE private: EDA_DRAW_FRAME* m_Parent; BASE_SCREEN* m_Screen; + wxArrayString m_pageFmt; /// list of page sizes (not translated) bool m_initialized; bool m_modified; bool m_save_flag; diff --git a/common/dialogs/dialog_page_settings_base.cpp b/common/dialogs/dialog_page_settings_base.cpp index 776d0d85ef..8999d9ef78 100644 --- a/common/dialogs/dialog_page_settings_base.cpp +++ b/common/dialogs/dialog_page_settings_base.cpp @@ -1,53 +1,53 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Feb 9 2012) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_page_settings_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bUpperSizerH; - bUpperSizerH = new wxBoxSizer( wxHORIZONTAL ); - - wxFlexGridSizer* LeftColumnSizer; +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 17 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_page_settings_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bMainSizer; + bMainSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bUpperSizerH; + bUpperSizerH = new wxBoxSizer( wxHORIZONTAL ); + + wxFlexGridSizer* LeftColumnSizer; LeftColumnSizer = new wxFlexGridSizer( 3, 1, 0, 0 ); - LeftColumnSizer->AddGrowableRow( 0 ); - LeftColumnSizer->AddGrowableRow( 1 ); - LeftColumnSizer->AddGrowableRow( 2 ); - LeftColumnSizer->SetFlexibleDirection( wxBOTH ); - LeftColumnSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - + LeftColumnSizer->AddGrowableRow( 0 ); + LeftColumnSizer->AddGrowableRow( 1 ); + LeftColumnSizer->AddGrowableRow( 2 ); + LeftColumnSizer->SetFlexibleDirection( wxBOTH ); + LeftColumnSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxStaticBoxSizer* PaperSizer; PaperSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Paper") ), wxVERTICAL ); - + m_staticText5 = new wxStaticText( this, wxID_ANY, _("Size:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText5->Wrap( -1 ); PaperSizer->Add( m_staticText5, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - wxString m_paperSizeComboBoxChoices[] = { _("A4 210x297mm"), _("A3 297x420mm"), _("A2 420x594mm"), _("A1 594x841mm"), _("A0 841x1189mm"), _("A 8.5x11in"), _("B 11x17in"), _("C 17x22in"), _("D 22x34in"), _("E 34x44in"), _("USLetter 8.5x11in"), _("USLegal 8.5x14in"), _("USLedger 11x17in"), _("User (Custom)") }; - int m_paperSizeComboBoxNChoices = sizeof( m_paperSizeComboBoxChoices ) / sizeof( wxString ); + wxString m_paperSizeComboBoxChoices[] = { _("dummy text") }; + int m_paperSizeComboBoxNChoices = sizeof( m_paperSizeComboBoxChoices ) / sizeof( wxString ); m_paperSizeComboBox = new wxChoice( this, ID_CHICE_PAGE_SIZE, wxDefaultPosition, wxDefaultSize, m_paperSizeComboBoxNChoices, m_paperSizeComboBoxChoices, 0 ); - m_paperSizeComboBox->SetSelection( 0 ); + m_paperSizeComboBox->SetSelection( 0 ); PaperSizer->Add( m_paperSizeComboBox, 0, wxALL|wxEXPAND, 5 ); - + m_staticText6 = new wxStaticText( this, wxID_ANY, _("Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); PaperSizer->Add( m_staticText6, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxString m_orientationComboBoxChoices[] = { _("Landscape"), _("Portrait") }; - int m_orientationComboBoxNChoices = sizeof( m_orientationComboBoxChoices ) / sizeof( wxString ); + + wxString m_orientationComboBoxChoices[] = { _("Landscape"), _("Portrait") }; + int m_orientationComboBoxNChoices = sizeof( m_orientationComboBoxChoices ) / sizeof( wxString ); m_orientationComboBox = new wxChoice( this, ID_CHOICE_PAGE_ORIENTATION, wxDefaultPosition, wxDefaultSize, m_orientationComboBoxNChoices, m_orientationComboBoxChoices, 0 ); - m_orientationComboBox->SetSelection( 0 ); + m_orientationComboBox->SetSelection( 0 ); PaperSizer->Add( m_orientationComboBox, 0, wxEXPAND|wxALL, 5 ); @@ -85,224 +85,225 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind CustomPaperSizer->Add( CustomPaperHeight, 0, wxEXPAND, 5 ); - - + + CustomPaperSizer->Add( 5, 50, 0, 0, 5 ); - - + + PaperSizer->Add( CustomPaperSizer, 1, wxEXPAND, 5 ); - - + + LeftColumnSizer->Add( PaperSizer, 1, wxALL, 5 ); - + wxStaticBoxSizer* PageLayoutExampleSizer; PageLayoutExampleSizer = new wxStaticBoxSizer( new wxStaticBox( this, ID_PAGE_LAYOUT_EXAMPLE_SIZER, _("Layout Preview") ), wxVERTICAL ); - + PageLayoutExampleSizer->SetMinSize( wxSize( 240,-1 ) ); m_PageLayoutExampleBitmap = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxFULL_REPAINT_ON_RESIZE|wxSIMPLE_BORDER ); m_PageLayoutExampleBitmap->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ); m_PageLayoutExampleBitmap->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ); - + PageLayoutExampleSizer->Add( m_PageLayoutExampleBitmap, 0, wxALIGN_CENTER|wxALL, 5 ); - - + + LeftColumnSizer->Add( PageLayoutExampleSizer, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 5 ); - + LeftColumnSizer->Add( 0, 1, 1, wxEXPAND, 5 ); bUpperSizerH->Add( LeftColumnSizer, 0, wxALL|wxEXPAND, 5 ); - - wxFlexGridSizer* RightColumnSizer; - RightColumnSizer = new wxFlexGridSizer( 8, 1, 0, 0 ); - RightColumnSizer->AddGrowableCol( 0 ); - RightColumnSizer->AddGrowableRow( 0 ); - RightColumnSizer->AddGrowableRow( 1 ); - RightColumnSizer->AddGrowableRow( 2 ); - RightColumnSizer->AddGrowableRow( 3 ); - RightColumnSizer->AddGrowableRow( 4 ); - RightColumnSizer->AddGrowableRow( 5 ); - RightColumnSizer->AddGrowableRow( 6 ); - RightColumnSizer->AddGrowableRow( 7 ); - RightColumnSizer->SetFlexibleDirection( wxBOTH ); - RightColumnSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - + + wxFlexGridSizer* RightColumnSizer; + RightColumnSizer = new wxFlexGridSizer( 8, 1, 0, 0 ); + RightColumnSizer->AddGrowableCol( 0 ); + RightColumnSizer->AddGrowableRow( 0 ); + RightColumnSizer->AddGrowableRow( 1 ); + RightColumnSizer->AddGrowableRow( 2 ); + RightColumnSizer->AddGrowableRow( 3 ); + RightColumnSizer->AddGrowableRow( 4 ); + RightColumnSizer->AddGrowableRow( 5 ); + RightColumnSizer->AddGrowableRow( 6 ); + RightColumnSizer->AddGrowableRow( 7 ); + RightColumnSizer->SetFlexibleDirection( wxBOTH ); + RightColumnSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxStaticBoxSizer* BasicInscriptionsSizer; BasicInscriptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Basic Inscriptions") ), wxVERTICAL ); BasicInscriptionsSizer->SetMinSize( wxSize( -1,452 ) ); - wxBoxSizer* SheetInfoSizer; - SheetInfoSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_TextSheetCount = new wxStaticText( this, wxID_ANY, _("Number of sheets: %d"), wxDefaultPosition, wxDefaultSize, 0 ); - m_TextSheetCount->Wrap( -1 ); - SheetInfoSizer->Add( m_TextSheetCount, 0, wxALL, 5 ); - - - SheetInfoSizer->Add( 5, 5, 1, wxEXPAND, 5 ); - - m_TextSheetNumber = new wxStaticText( this, wxID_ANY, _("Sheet number: %d"), wxDefaultPosition, wxDefaultSize, 0 ); - m_TextSheetNumber->Wrap( -1 ); - SheetInfoSizer->Add( m_TextSheetNumber, 0, wxALL, 5 ); - + wxBoxSizer* SheetInfoSizer; + SheetInfoSizer = new wxBoxSizer( wxHORIZONTAL ); + + m_TextSheetCount = new wxStaticText( this, wxID_ANY, _("Number of sheets: %d"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextSheetCount->Wrap( -1 ); + SheetInfoSizer->Add( m_TextSheetCount, 0, wxALL, 5 ); + + + SheetInfoSizer->Add( 5, 5, 1, wxEXPAND, 5 ); + + m_TextSheetNumber = new wxStaticText( this, wxID_ANY, _("Sheet number: %d"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextSheetNumber->Wrap( -1 ); + SheetInfoSizer->Add( m_TextSheetNumber, 0, wxALL, 5 ); + BasicInscriptionsSizer->Add( SheetInfoSizer, 0, 0, 5 ); - - wxStaticBoxSizer* RevisionSizer; + + wxStaticBoxSizer* RevisionSizer; RevisionSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Revision") ), wxHORIZONTAL ); - - m_TextRevision = new wxTextCtrl( this, ID_TEXTCTRL_REVISION, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_TextRevision->SetMinSize( wxSize( 100,-1 ) ); - - RevisionSizer->Add( m_TextRevision, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_RevisionExport = new wxCheckBox( this, ID_CHECKBOX_REVISION, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_TextRevision = new wxTextCtrl( this, ID_TEXTCTRL_REVISION, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_TextRevision->SetMinSize( wxSize( 100,-1 ) ); + + RevisionSizer->Add( m_TextRevision, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_RevisionExport = new wxCheckBox( this, ID_CHECKBOX_REVISION, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); RevisionSizer->Add( m_RevisionExport, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - + BasicInscriptionsSizer->Add( RevisionSizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* TitleSizer; + + wxStaticBoxSizer* TitleSizer; TitleSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Title") ), wxHORIZONTAL ); - - m_TextTitle = new wxTextCtrl( this, ID_TEXTCTRL_TITLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + + m_TextTitle = new wxTextCtrl( this, ID_TEXTCTRL_TITLE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_TextTitle->SetMinSize( wxSize( 360,-1 ) ); - - TitleSizer->Add( m_TextTitle, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_TitleExport = new wxCheckBox( this, wxID_ANY, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); - TitleSizer->Add( m_TitleExport, 0, wxALL, 5 ); - + + TitleSizer->Add( m_TextTitle, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_TitleExport = new wxCheckBox( this, wxID_ANY, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); + TitleSizer->Add( m_TitleExport, 0, wxALL, 5 ); + BasicInscriptionsSizer->Add( TitleSizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* CompanySizer; + + wxStaticBoxSizer* CompanySizer; CompanySizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Company") ), wxHORIZONTAL ); - - m_TextCompany = new wxTextCtrl( this, ID_TEXTCTRL_COMPANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + + m_TextCompany = new wxTextCtrl( this, ID_TEXTCTRL_COMPANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_TextCompany->SetMinSize( wxSize( 360,-1 ) ); - - CompanySizer->Add( m_TextCompany, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_CompanyExport = new wxCheckBox( this, ID_CHECKBOX_COMPANY, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); - CompanySizer->Add( m_CompanyExport, 0, wxALL, 5 ); - + + CompanySizer->Add( m_TextCompany, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_CompanyExport = new wxCheckBox( this, ID_CHECKBOX_COMPANY, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); + CompanySizer->Add( m_CompanyExport, 0, wxALL, 5 ); + BasicInscriptionsSizer->Add( CompanySizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* Comment1Sizer; + + wxStaticBoxSizer* Comment1Sizer; Comment1Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment1") ), wxHORIZONTAL ); - - m_TextComment1 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + + m_TextComment1 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_TextComment1->SetMinSize( wxSize( 360,-1 ) ); - - Comment1Sizer->Add( m_TextComment1, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_Comment1Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT1, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); - Comment1Sizer->Add( m_Comment1Export, 0, wxALL, 5 ); - + + Comment1Sizer->Add( m_TextComment1, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_Comment1Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT1, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); + Comment1Sizer->Add( m_Comment1Export, 0, wxALL, 5 ); + BasicInscriptionsSizer->Add( Comment1Sizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* Comment2Sizer; + + wxStaticBoxSizer* Comment2Sizer; Comment2Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment2") ), wxHORIZONTAL ); - - m_TextComment2 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + + m_TextComment2 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_TextComment2->SetMinSize( wxSize( 360,-1 ) ); - - Comment2Sizer->Add( m_TextComment2, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_Comment2Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT2, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); - Comment2Sizer->Add( m_Comment2Export, 0, wxALL, 5 ); - + + Comment2Sizer->Add( m_TextComment2, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_Comment2Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT2, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); + Comment2Sizer->Add( m_Comment2Export, 0, wxALL, 5 ); + BasicInscriptionsSizer->Add( Comment2Sizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* Comment3Sizer; + + wxStaticBoxSizer* Comment3Sizer; Comment3Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment3") ), wxHORIZONTAL ); - - m_TextComment3 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + + m_TextComment3 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_TextComment3->SetMinSize( wxSize( 360,-1 ) ); - - Comment3Sizer->Add( m_TextComment3, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_Comment3Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT3, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); - Comment3Sizer->Add( m_Comment3Export, 0, wxALL, 5 ); - + + Comment3Sizer->Add( m_TextComment3, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_Comment3Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT3, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); + Comment3Sizer->Add( m_Comment3Export, 0, wxALL, 5 ); + BasicInscriptionsSizer->Add( Comment3Sizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* Comment4Sizer; + + wxStaticBoxSizer* Comment4Sizer; Comment4Sizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comment4") ), wxHORIZONTAL ); - - m_TextComment4 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT4, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + + m_TextComment4 = new wxTextCtrl( this, ID_TEXTCTRL_COMMENT4, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_TextComment4->SetMinSize( wxSize( 360,-1 ) ); - - Comment4Sizer->Add( m_TextComment4, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_Comment4Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT4, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); - Comment4Sizer->Add( m_Comment4Export, 0, wxALL, 5 ); - + + Comment4Sizer->Add( m_TextComment4, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_Comment4Export = new wxCheckBox( this, ID_CHECKBOX_COMMENT4, _("Export to other sheets"), wxDefaultPosition, wxDefaultSize, 0 ); + Comment4Sizer->Add( m_Comment4Export, 0, wxALL, 5 ); + BasicInscriptionsSizer->Add( Comment4Sizer, 1, wxEXPAND, 5 ); RightColumnSizer->Add( BasicInscriptionsSizer, 1, wxALL|wxEXPAND, 5 ); - - bUpperSizerH->Add( RightColumnSizer, 1, wxALL|wxEXPAND, 5 ); - - bMainSizer->Add( bUpperSizerH, 1, wxEXPAND, 5 ); - - m_sdbSizer1 = new wxStdDialogButtonSizer(); - m_sdbSizer1OK = new wxButton( this, wxID_OK ); - m_sdbSizer1->AddButton( m_sdbSizer1OK ); - m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); - m_sdbSizer1->Realize(); + + bUpperSizerH->Add( RightColumnSizer, 1, wxALL|wxEXPAND, 5 ); + + + bMainSizer->Add( bUpperSizerH, 1, wxEXPAND, 5 ); + + m_sdbSizer1 = new wxStdDialogButtonSizer(); + m_sdbSizer1OK = new wxButton( this, wxID_OK ); + m_sdbSizer1->AddButton( m_sdbSizer1OK ); + m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); + m_sdbSizer1->Realize(); bMainSizer->Add( m_sdbSizer1, 0, wxALIGN_RIGHT|wxALL, 5 ); - - this->SetSizer( bMainSizer ); - this->Layout(); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCloseWindow ) ); + + this->SetSizer( bMainSizer ); + this->Layout(); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCloseWindow ) ); m_paperSizeComboBox->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPaperSizeChoice ), NULL, this ); m_orientationComboBox->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPageOrientationChoice ), NULL, this ); m_TextUserSizeX->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeXTextUpdated ), NULL, this ); m_TextUserSizeY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeYTextUpdated ), NULL, this ); m_TextRevision->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnRevisionTextUpdated ), NULL, this ); m_TextTitle->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnTitleTextUpdated ), NULL, this ); - m_TitleExport->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCheckboxTitleClick ), NULL, this ); + m_TitleExport->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCheckboxTitleClick ), NULL, this ); m_TextCompany->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCompanyTextUpdated ), NULL, this ); m_TextComment1->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment1TextUpdated ), NULL, this ); m_TextComment2->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment2TextUpdated ), NULL, this ); m_TextComment3->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment3TextUpdated ), NULL, this ); m_TextComment4->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment4TextUpdated ), NULL, this ); - m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCancelClick ), NULL, this ); - m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnOkClick ), NULL, this ); -} - -DIALOG_PAGES_SETTINGS_BASE::~DIALOG_PAGES_SETTINGS_BASE() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCloseWindow ) ); + m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCancelClick ), NULL, this ); + m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnOkClick ), NULL, this ); +} + +DIALOG_PAGES_SETTINGS_BASE::~DIALOG_PAGES_SETTINGS_BASE() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCloseWindow ) ); m_paperSizeComboBox->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPaperSizeChoice ), NULL, this ); m_orientationComboBox->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPageOrientationChoice ), NULL, this ); m_TextUserSizeX->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeXTextUpdated ), NULL, this ); m_TextUserSizeY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeYTextUpdated ), NULL, this ); m_TextRevision->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnRevisionTextUpdated ), NULL, this ); m_TextTitle->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnTitleTextUpdated ), NULL, this ); - m_TitleExport->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCheckboxTitleClick ), NULL, this ); + m_TitleExport->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCheckboxTitleClick ), NULL, this ); m_TextCompany->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCompanyTextUpdated ), NULL, this ); m_TextComment1->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment1TextUpdated ), NULL, this ); m_TextComment2->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment2TextUpdated ), NULL, this ); m_TextComment3->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment3TextUpdated ), NULL, this ); m_TextComment4->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment4TextUpdated ), NULL, this ); - m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCancelClick ), NULL, this ); - m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnOkClick ), NULL, this ); - -} + m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCancelClick ), NULL, this ); + m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnOkClick ), NULL, this ); + +} diff --git a/common/dialogs/dialog_page_settings_base.fbp b/common/dialogs/dialog_page_settings_base.fbp index 4ff5659e2b..4e009d05ef 100644 --- a/common/dialogs/dialog_page_settings_base.fbp +++ b/common/dialogs/dialog_page_settings_base.fbp @@ -1,517 +1,517 @@ - - + + - - - C++ - 1 - source_name + + + C++ + 1 + source_name 0 - 0 - res - UTF-8 - connect - dialog_page_settings_base - 1000 - none - 1 - dialog_page_settings_base - - . - - 1 + 0 + res + UTF-8 + connect + dialog_page_settings_base + 1000 + none + 1 + dialog_page_settings_base + + . + + 1 1 - 1 - 0 - 0 - - 1 - 1 - 1 - 1 + 1 + 0 + 0 + + 1 + 1 + 1 + 1 - 0 - + 0 + - - - - 1 - - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - DIALOG_PAGES_SETTINGS_BASE - 1 - - - 1 - - Resizable - 1 + + + + 1 + + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + DIALOG_PAGES_SETTINGS_BASE + 1 + + + 1 + + Resizable + 1 748,495 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Page Settings - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - OnCloseWindow - - - - - - - - - - - - - - - - - - - - - - - - - - - + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + Page Settings + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + OnCloseWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + -1,-1 - bMainSizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - bUpperSizerH - wxHORIZONTAL - none - - 5 + bMainSizer + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + + bUpperSizerH + wxHORIZONTAL + none + + 5 wxALL|wxEXPAND - 0 - - 1 - wxBOTH - - 0,1,2 - 0 - - LeftColumnSizer - wxFLEX_GROWMODE_SPECIFIED - none + 0 + + 1 + wxBOTH + + 0,1,2 + 0 + + LeftColumnSizer + wxFLEX_GROWMODE_SPECIFIED + none 3 - 0 - - 5 + 0 + + 5 wxALL 1 - - wxID_ANY + + wxID_ANY Paper - + PaperSizer - wxVERTICAL - none - - - 5 + wxVERTICAL + none + + + 5 wxTOP|wxRIGHT|wxLEFT - 0 + 0 - 1 - 1 - 1 - 1 + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY Size: - - 0 - - - 0 - - 1 + + 0 + + + 0 + + 1 m_staticText5 - 1 - - - protected - 1 - - Resizable - 1 - + 1 + + + protected + 1 + + Resizable + 1 + - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "A4 210x297mm" "A3 297x420mm" "A2 420x594mm" "A1 594x841mm" "A0 841x1189mm" "A 8.5x11in" "B 11x17in" "C 17x22in" "D 22x34in" "E 34x44in" "USLetter 8.5x11in" "USLegal 8.5x14in" "USLedger 11x17in" "User (Custom)" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CHICE_PAGE_SIZE - - 0 - - - 0 - - 1 - m_paperSizeComboBox - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPaperSizeChoice - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Orientation: - - 0 - - - 0 - - 1 - m_staticText6 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 - 1 - 1 - 1 - 1 + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - "Landscape" "Portrait" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CHOICE_PAGE_ORIENTATION - - 0 - - - 0 - - 1 - m_orientationComboBox - 1 - - - protected - 1 - - Resizable + + + + 1 + 0 + "dummy text" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CHICE_PAGE_SIZE + + 0 + + + 0 + + 1 + m_paperSizeComboBox + 1 + + + protected + 1 + + Resizable 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPaperSizeChoice + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Orientation: + + 0 + + + 0 + + 1 + m_staticText6 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Landscape" "Portrait" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CHOICE_PAGE_ORIENTATION + + 0 + + + 0 + + 1 + m_orientationComboBox + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPageOrientationChoice - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + 5 @@ -520,12 +520,12 @@ 10 protected 0 - - - - 5 + + + + 5 wxEXPAND - 1 + 1 wxID_ANY Custom Size @@ -551,102 +551,102 @@ wxID_ANY Width: - + CustomPaperWidth - wxVERTICAL - none + wxVERTICAL + none - - 5 + + 5 wxALIGN_LEFT|wxALIGN_TOP|wxALL|wxEXPAND - 0 + 0 - 1 - 1 - 1 - 1 + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 ID_TEXTCTRL_USER_PAGE_SIZE_X - - 0 - + + 0 + 6 - - 0 - - 1 + + 0 + + 1 m_TextUserSizeX - 1 - - - protected - 1 - - Resizable - 1 - + 1 + + + protected + 1 + + Resizable + 1 + wxTE_LEFT - - 0 + + 0 Custom paper width. - - wxFILTER_NONE + + wxFILTER_NONE wxTextValidator - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + OnUserPageSizeXTextUpdated - - - + + + @@ -671,99 +671,99 @@ wxVERTICAL none - - 5 - wxALIGN_TOP|wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 + + 5 + wxALIGN_TOP|wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_TEXTCTRL_USER_PAGE_SIZE_Y - - 0 - + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_TEXTCTRL_USER_PAGE_SIZE_Y + + 0 + 6 - - 0 - - 1 - m_TextUserSizeY - 1 - - - protected - 1 - - Resizable - 1 - + + 0 + + 1 + m_TextUserSizeY + 1 + + + protected + 1 + + Resizable + 1 + wxTE_LEFT - - 0 + + 0 Custom paper height. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + OnUserPageSizeYTextUpdated - - - - - - - - + + + + + + + + 5 @@ -885,30 +885,30 @@ 1 protected 0 - - - - - - 5 - wxALL|wxEXPAND - 1 - - 1 - wxBOTH - 0 - 0,1,2,3,4,5,6,7 - 0 - - RightColumnSizer - wxFLEX_GROWMODE_SPECIFIED - none - 8 - 0 - - 5 + + + + + + 5 + wxALL|wxEXPAND + 1 + + 1 + wxBOTH + 0 + 0,1,2,3,4,5,6,7 + 0 + + RightColumnSizer + wxFLEX_GROWMODE_SPECIFIED + none + 8 + 0 + + 5 wxALL|wxEXPAND - 1 + 1 wxID_ANY Basic Inscriptions @@ -921,1581 +921,1581 @@ 5 0 - - - SheetInfoSizer - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 + + + SheetInfoSizer + wxHORIZONTAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Number of sheets: %d - - 0 - - - 0 - - 1 - m_TextSheetCount - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 5 - protected - 5 - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Number of sheets: %d + + 0 + + + 0 + + 1 + m_TextSheetCount + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 5 + protected + 5 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Sheet number: %d - - 0 - - - 0 - - 1 - m_TextSheetNumber - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Sheet number: %d + + 0 + + + 0 + + 1 + m_TextSheetNumber + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY Revision - - RevisionSizer - wxHORIZONTAL - none - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_TEXTCTRL_REVISION - - 0 - - 0 - - 0 - 100,-1 - 1 - m_TextRevision - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnRevisionTextUpdated - - - - - - - - 5 + + RevisionSizer + wxHORIZONTAL + none + + + 5 wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CHECKBOX_REVISION - Export to other sheets - - 0 - - - 0 - - 1 - m_RevisionExport - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_TEXTCTRL_REVISION + + 0 + + 0 + + 0 + 100,-1 + 1 + m_TextRevision + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnRevisionTextUpdated + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CHECKBOX_REVISION + Export to other sheets + + 0 + + + 0 + + 1 + m_RevisionExport + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY Title - - TitleSizer - wxHORIZONTAL - none - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 1 - - 1 - 1 - 1 - 1 + + TitleSizer + wxHORIZONTAL + none + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_TEXTCTRL_TITLE - - 0 - - 0 - - 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_TEXTCTRL_TITLE + + 0 + + 0 + + 0 360,-1 - 1 - m_TextTitle - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1 + m_TextTitle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + OnTitleTextUpdated - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Export to other sheets - - 0 - - - 0 - - 1 - m_TitleExport - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnCheckboxTitleClick - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Export to other sheets + + 0 + + + 0 + + 1 + m_TitleExport + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnCheckboxTitleClick + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY Company - - CompanySizer - wxHORIZONTAL - none - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 1 - - 1 - 1 - 1 - 1 + + CompanySizer + wxHORIZONTAL + none + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_TEXTCTRL_COMPANY - - 0 - - 0 - - 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_TEXTCTRL_COMPANY + + 0 + + 0 + + 0 360,-1 - 1 - m_TextCompany - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1 + m_TextCompany + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + OnCompanyTextUpdated - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CHECKBOX_COMPANY - Export to other sheets - - 0 - - - 0 - - 1 - m_CompanyExport - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CHECKBOX_COMPANY + Export to other sheets + + 0 + + + 0 + + 1 + m_CompanyExport + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY Comment1 - - Comment1Sizer - wxHORIZONTAL - none - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 1 - - 1 - 1 - 1 - 1 + + Comment1Sizer + wxHORIZONTAL + none + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_TEXTCTRL_COMMENT1 - - 0 - - 0 - - 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_TEXTCTRL_COMMENT1 + + 0 + + 0 + + 0 360,-1 - 1 - m_TextComment1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1 + m_TextComment1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + OnComment1TextUpdated - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CHECKBOX_COMMENT1 - Export to other sheets - - 0 - - - 0 - - 1 - m_Comment1Export - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CHECKBOX_COMMENT1 + Export to other sheets + + 0 + + + 0 + + 1 + m_Comment1Export + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY Comment2 - - Comment2Sizer - wxHORIZONTAL - none - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 1 - - 1 - 1 - 1 - 1 + + Comment2Sizer + wxHORIZONTAL + none + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_TEXTCTRL_COMMENT2 - - 0 - - 0 - - 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_TEXTCTRL_COMMENT2 + + 0 + + 0 + + 0 360,-1 - 1 - m_TextComment2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1 + m_TextComment2 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + OnComment2TextUpdated - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CHECKBOX_COMMENT2 - Export to other sheets - - 0 - - - 0 - - 1 - m_Comment2Export - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CHECKBOX_COMMENT2 + Export to other sheets + + 0 + + + 0 + + 1 + m_Comment2Export + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY Comment3 - - Comment3Sizer - wxHORIZONTAL - none - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 1 - - 1 - 1 - 1 - 1 + + Comment3Sizer + wxHORIZONTAL + none + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_TEXTCTRL_COMMENT3 - - 0 - - 0 - - 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_TEXTCTRL_COMMENT3 + + 0 + + 0 + + 0 360,-1 - 1 - m_TextComment3 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1 + m_TextComment3 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + OnComment3TextUpdated - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CHECKBOX_COMMENT3 - Export to other sheets - - 0 - - - 0 - - 1 - m_Comment3Export - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CHECKBOX_COMMENT3 + Export to other sheets + + 0 + + + 0 + + 1 + m_Comment3Export + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY Comment4 - - Comment4Sizer - wxHORIZONTAL - none - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 1 - - 1 - 1 - 1 - 1 + + Comment4Sizer + wxHORIZONTAL + none + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_TEXTCTRL_COMMENT4 - - 0 - - 0 - - 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_TEXTCTRL_COMMENT4 + + 0 + + 0 + + 0 360,-1 - 1 - m_TextComment4 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1 + m_TextComment4 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + OnComment4TextUpdated - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 - + - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CHECKBOX_COMMENT4 - Export to other sheets - - 0 - - - 0 - - 1 - m_Comment4Export - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CHECKBOX_COMMENT4 + Export to other sheets + + 0 + + + 0 + + 1 + m_Comment4Export + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- - 5 + + 5 wxALIGN_RIGHT|wxALL - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizer1 - protected - - OnCancelClick - - - - OnOkClick - - - - - -
-
- + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizer1 + protected + + OnCancelClick + + + + OnOkClick + + + +
+
+
+
+ diff --git a/common/dialogs/dialog_page_settings_base.h b/common/dialogs/dialog_page_settings_base.h index a5299e8c2c..26a05da85d 100644 --- a/common/dialogs/dialog_page_settings_base.h +++ b/common/dialogs/dialog_page_settings_base.h @@ -1,37 +1,37 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Feb 9 2012) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 17 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + #ifndef __DIALOG_PAGE_SETTINGS_BASE_H__ #define __DIALOG_PAGE_SETTINGS_BASE_H__ - + #include #include -#include -#include +#include +#include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include -#include -#include +#include +#include #include #include #include #include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + #define ID_CHICE_PAGE_SIZE 1000 #define ID_CHOICE_PAGE_ORIENTATION 1001 #define ID_TEXTCTRL_USER_PAGE_SIZE_X 1002 @@ -50,65 +50,65 @@ #define ID_CHECKBOX_COMMENT3 1015 #define ID_TEXTCTRL_COMMENT4 1016 #define ID_CHECKBOX_COMMENT4 1017 - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_PAGES_SETTINGS_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_PAGES_SETTINGS_BASE : public wxDialog -{ - private: - - protected: + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_PAGES_SETTINGS_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_PAGES_SETTINGS_BASE : public wxDialog +{ + private: + + protected: wxStaticText* m_staticText5; - wxChoice* m_paperSizeComboBox; + wxChoice* m_paperSizeComboBox; wxStaticText* m_staticText6; - wxChoice* m_orientationComboBox; - wxTextCtrl* m_TextUserSizeX; - wxTextCtrl* m_TextUserSizeY; + wxChoice* m_orientationComboBox; + wxTextCtrl* m_TextUserSizeX; + wxTextCtrl* m_TextUserSizeY; wxStaticBitmap* m_PageLayoutExampleBitmap; - wxStaticText* m_TextSheetCount; - wxStaticText* m_TextSheetNumber; - wxTextCtrl* m_TextRevision; - wxCheckBox* m_RevisionExport; - wxTextCtrl* m_TextTitle; - wxCheckBox* m_TitleExport; - wxTextCtrl* m_TextCompany; - wxCheckBox* m_CompanyExport; - wxTextCtrl* m_TextComment1; - wxCheckBox* m_Comment1Export; - wxTextCtrl* m_TextComment2; - wxCheckBox* m_Comment2Export; - wxTextCtrl* m_TextComment3; - wxCheckBox* m_Comment3Export; - wxTextCtrl* m_TextComment4; - wxCheckBox* m_Comment4Export; - wxStdDialogButtonSizer* m_sdbSizer1; - wxButton* m_sdbSizer1OK; - wxButton* m_sdbSizer1Cancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); } + wxStaticText* m_TextSheetCount; + wxStaticText* m_TextSheetNumber; + wxTextCtrl* m_TextRevision; + wxCheckBox* m_RevisionExport; + wxTextCtrl* m_TextTitle; + wxCheckBox* m_TitleExport; + wxTextCtrl* m_TextCompany; + wxCheckBox* m_CompanyExport; + wxTextCtrl* m_TextComment1; + wxCheckBox* m_Comment1Export; + wxTextCtrl* m_TextComment2; + wxCheckBox* m_Comment2Export; + wxTextCtrl* m_TextComment3; + wxCheckBox* m_Comment3Export; + wxTextCtrl* m_TextComment4; + wxCheckBox* m_Comment4Export; + wxStdDialogButtonSizer* m_sdbSizer1; + wxButton* m_sdbSizer1OK; + wxButton* m_sdbSizer1Cancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); } virtual void OnPaperSizeChoice( wxCommandEvent& event ) { event.Skip(); } virtual void OnPageOrientationChoice( wxCommandEvent& event ) { event.Skip(); } virtual void OnUserPageSizeXTextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnUserPageSizeYTextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnRevisionTextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnTitleTextUpdated( wxCommandEvent& event ) { event.Skip(); } - virtual void OnCheckboxTitleClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCheckboxTitleClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCompanyTextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnComment1TextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnComment2TextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnComment3TextUpdated( wxCommandEvent& event ) { event.Skip(); } virtual void OnComment4TextUpdated( wxCommandEvent& event ) { event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - + virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Page Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 748,495 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_PAGES_SETTINGS_BASE(); - -}; - + ~DIALOG_PAGES_SETTINGS_BASE(); + +}; + #endif //__DIALOG_PAGE_SETTINGS_BASE_H__ diff --git a/eeschema/dialogs/dialog_lib_edit_pin_base.fbp b/eeschema/dialogs/dialog_lib_edit_pin_base.fbp index 7ecf136108..67141c91dc 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin_base.fbp +++ b/eeschema/dialogs/dialog_lib_edit_pin_base.fbp @@ -1,2383 +1,2383 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - dialog_lib_edit_pin_base - 1000 - none - 1 - dialog_lib_edit_pin - - . - - 1 - 1 - 1 - 1 - 0 - - 1 - 1 - 1 - 1 - - 0 - - - - - - - 1 - wxBOTH - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - DIALOG_LIB_EDIT_PIN_BASE - 1 - - - 1 - - Resizable - 1 - -1,-1 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - DIALOG_SHIM; dialog_shim.h - Pin Properties - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - OnCloseDialog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mainSizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - bUpperSizer - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - - bLeftSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 2 - wxBOTH - 1 - - 0 - - fgSizerPins - wxFLEX_GROWMODE_ALL - none - 5 - 0 - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pin &name: - - 0 - - - 0 - - 1 - m_staticTextPinName - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTPINNAME - - 0 - - 0 - - 0 - - 1 - m_textPinName - 1 - - - protected - 1 - - Resizable - 1 - - wxTE_PROCESS_TAB - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICTEXTPADNAME - Pin n&umber: - - 0 - - - 0 - - 1 - m_staticTextPadName - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Pin number: 1 to 4 ASCII letters and/or digits - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTPADNAME - - 0 - - 0 - - 0 - - 1 - m_textPadName - 1 - - - protected - 1 - - Resizable - 1 - - wxTE_PROCESS_TAB - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - &Orientation: - - 0 - - - 0 - - 1 - m_staticTextOrient - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceOrientation - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - wxBitmapComboBox; wx/bmpcbox.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - &Electrical type: - - 0 - - - 0 - - 1 - m_staticTextEType - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Used by the ERC. - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceElectricalType - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - wxBitmapComboBox; wx/bmpcbox.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Graphic &Style: - - 0 - - - 0 - - 1 - m_staticTextGstyle - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceStyle - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - wxBitmapComboBox; wx/bmpcbox.h - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - - boarderSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Sharing - - sbSizerPinSharing - wxVERTICAL - none - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shared by all &parts in component - - 0 - - - 0 - - 1 - m_checkApplyToAllParts - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shared by all body &styles (DeMorgan) - - 0 - - - 0 - - 1 - m_checkApplyToAllConversions - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Schematic Properties - - sbSizerSchematicProperties - wxVERTICAL - none - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - &Visible - - 0 - - - 0 - - 1 - m_checkShow - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnPropertiesChange - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxRIGHT - 1 - - - bRightSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 3 - wxBOTH - 1 - - 0 - - fgSizerTextsSizes - wxFLEX_GROWMODE_ALL - none - 3 - 0 - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICTEXTNAMESIZE - N&ame text size: - - 0 - - - 0 - - 1 - m_staticTextNameSize - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTPINNAMETEXTSIZE - - 0 - - 0 - - 0 - - 1 - m_textPinNameTextSize - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICNAMETEXTSIZEUNITS - units - - 0 - - - 0 - -1,-1 - 1 - m_staticNameTextSizeUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICTEXTPADNAMESIZE - Number te&xt size: - - 0 - - - 0 - - 1 - m_staticTextPadNameSize - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTPADNAMETEXTSIZE - - 0 - - 0 - - 0 - - 1 - m_textPadNameTextSize - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 3 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICNUMBERTEXTSIZEUNITS - units - - 0 - - - 0 - - 1 - m_staticNumberTextSizeUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICTEXTPINLEN - &Length: - - 0 - - - 0 - - 1 - m_staticTextPinLen - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxBOTTOM|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_TEXTLENGTH - - 0 - - 0 - - 0 - - 1 - m_textLength - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnPropertiesChange - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_M_STATICLENGTHUNITS - units - - 0 - - - 0 - - 1 - m_staticLengthUnits - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - 150,150 - 1 - m_panelShowPin - 1 - - - protected - 1 - - Resizable - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxFULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER|wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - OnPaintShowPanel - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_staticline1 - 1 - - - protected - 1 - - Resizable - 1 - - wxLI_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_RIGHT - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizerButtons - protected - - OnCancelButtonClick - - - - OnOKButtonClick - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_lib_edit_pin_base + 1000 + none + 1 + dialog_lib_edit_pin + + . + + 1 + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + DIALOG_LIB_EDIT_PIN_BASE + 1 + + + 1 + + Resizable + 1 + -1,-1 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Pin Properties + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + OnCloseDialog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mainSizer + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + + bUpperSizer + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + + bLeftSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 2 + wxBOTH + 1 + + 0 + + fgSizerPins + wxFLEX_GROWMODE_ALL + none + 5 + 0 + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pin &name: + + 0 + + + 0 + + 1 + m_staticTextPinName + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTPINNAME + + 0 + + 0 + + 0 + + 1 + m_textPinName + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_PROCESS_TAB + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICTEXTPADNAME + Pin n&umber: + + 0 + + + 0 + + 1 + m_staticTextPadName + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Pin number: 1 to 4 ASCII letters and/or digits + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTPADNAME + + 0 + + 0 + + 0 + + 1 + m_textPadName + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_PROCESS_TAB + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Orientation: + + 0 + + + 0 + + 1 + m_staticTextOrient + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceOrientation + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + wxBitmapComboBox; wx/bmpcbox.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Electrical type: + + 0 + + + 0 + + 1 + m_staticTextEType + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Used by the ERC. + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceElectricalType + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + wxBitmapComboBox; wx/bmpcbox.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Graphic &Style: + + 0 + + + 0 + + 1 + m_staticTextGstyle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceStyle + 1 + + + protected + 1 + + Resizable + -1 + 1 + + + wxBitmapComboBox; wx/bmpcbox.h + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + + boarderSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Sharing + + sbSizerPinSharing + wxVERTICAL + none + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shared by all &parts in component + + 0 + + + 0 + + 1 + m_checkApplyToAllParts + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shared by all body &styles (DeMorgan) + + 0 + + + 0 + + 1 + m_checkApplyToAllConversions + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Schematic Properties + + sbSizerSchematicProperties + wxVERTICAL + none + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Visible + + 0 + + + 0 + + 1 + m_checkShow + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnPropertiesChange + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT + 1 + + + bRightSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 3 + wxBOTH + 1 + + 0 + + fgSizerTextsSizes + wxFLEX_GROWMODE_ALL + none + 3 + 0 + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICTEXTNAMESIZE + N&ame text size: + + 0 + + + 0 + + 1 + m_staticTextNameSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTPINNAMETEXTSIZE + + 0 + + 0 + + 0 + + 1 + m_textPinNameTextSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICNAMETEXTSIZEUNITS + units + + 0 + + + 0 + -1,-1 + 1 + m_staticNameTextSizeUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICTEXTPADNAMESIZE + Number te&xt size: + + 0 + + + 0 + + 1 + m_staticTextPadNameSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTPADNAMETEXTSIZE + + 0 + + 0 + + 0 + + 1 + m_textPadNameTextSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 3 + wxALIGN_CENTER_VERTICAL|wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICNUMBERTEXTSIZEUNITS + units + + 0 + + + 0 + + 1 + m_staticNumberTextSizeUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICTEXTPINLEN + &Length: + + 0 + + + 0 + + 1 + m_staticTextPinLen + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxBOTTOM|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_TEXTLENGTH + + 0 + + 0 + + 0 + + 1 + m_textLength + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPropertiesChange + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_M_STATICLENGTHUNITS + units + + 0 + + + 0 + + 1 + m_staticLengthUnits + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + 150,150 + 1 + m_panelShowPin + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + wxFULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER|wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + OnPaintShowPanel + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_staticline1 + 1 + + + protected + 1 + + Resizable + 1 + + wxLI_HORIZONTAL + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_RIGHT + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizerButtons + protected + + OnCancelButtonClick + + + + OnOKButtonClick + + + + + + + + diff --git a/eeschema/load_one_schematic_file.cpp b/eeschema/load_one_schematic_file.cpp index 70b8cd660d..adb0857483 100644 --- a/eeschema/load_one_schematic_file.cpp +++ b/eeschema/load_one_schematic_file.cpp @@ -1,7 +1,7 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2004 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 2008 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * @@ -305,7 +305,7 @@ bool ReadSchemaDescr( LINE_READER* aLine, wxString& aMsgDiag, SCH_SCREEN* aScree if( !pageInfo.SetType( pagename ) ) { aMsgDiag.Printf( _( "Eeschema file dimension definition error \ -line %d, \aAbort reading file.\n" ), +line %d,\nAbort reading file.\n" ), aLine->LineNumber() ); aMsgDiag << FROM_UTF8( line ); } From ce4d8d902db5c47455bde844d766e616d0d0605a Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Wed, 28 Mar 2012 18:53:02 +0200 Subject: [PATCH 38/68] Libedit, dialog edit pin: fix wxDialogs tabbing order --- eeschema/dialogs/dialog_lib_edit_pin_base.cpp | 432 +++++++++--------- eeschema/dialogs/dialog_lib_edit_pin_base.fbp | 4 +- eeschema/dialogs/dialog_lib_edit_pin_base.h | 202 ++++---- 3 files changed, 319 insertions(+), 319 deletions(-) diff --git a/eeschema/dialogs/dialog_lib_edit_pin_base.cpp b/eeschema/dialogs/dialog_lib_edit_pin_base.cpp index 791811d363..0c8d6aa9a6 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin_base.cpp +++ b/eeschema/dialogs/dialog_lib_edit_pin_base.cpp @@ -1,216 +1,216 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Mar 19 2012) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_lib_edit_pin_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* mainSizer; - mainSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bUpperSizer; - bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bLeftSizer; - bLeftSizer = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgSizerPins; - fgSizerPins = new wxFlexGridSizer( 5, 2, 0, 0 ); - fgSizerPins->AddGrowableCol( 1 ); - fgSizerPins->SetFlexibleDirection( wxBOTH ); - fgSizerPins->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); - - m_staticTextPinName = new wxStaticText( this, wxID_ANY, _("Pin &name:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextPinName->Wrap( -1 ); - fgSizerPins->Add( m_staticTextPinName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_textPinName = new wxTextCtrl( this, ID_M_TEXTPINNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_TAB ); - fgSizerPins->Add( m_textPinName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); - - m_staticTextPadName = new wxStaticText( this, ID_M_STATICTEXTPADNAME, _("Pin n&umber:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextPadName->Wrap( -1 ); - m_staticTextPadName->SetToolTip( _("Pin number: 1 to 4 ASCII letters and/or digits") ); - - fgSizerPins->Add( m_staticTextPadName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_textPadName = new wxTextCtrl( this, ID_M_TEXTPADNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_TAB ); - fgSizerPins->Add( m_textPadName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); - - m_staticTextOrient = new wxStaticText( this, wxID_ANY, _("&Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextOrient->Wrap( -1 ); - fgSizerPins->Add( m_staticTextOrient, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_choiceOrientation = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizerPins->Add( m_choiceOrientation, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - m_staticTextEType = new wxStaticText( this, wxID_ANY, _("&Electrical type:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextEType->Wrap( -1 ); - m_staticTextEType->SetToolTip( _("Used by the ERC.") ); - - fgSizerPins->Add( m_staticTextEType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_choiceElectricalType = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizerPins->Add( m_choiceElectricalType, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - m_staticTextGstyle = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextGstyle->Wrap( -1 ); - fgSizerPins->Add( m_staticTextGstyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_choiceStyle = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); - fgSizerPins->Add( m_choiceStyle, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - - bLeftSizer->Add( fgSizerPins, 0, wxALL|wxEXPAND, 5 ); - - wxBoxSizer* boarderSizer; - boarderSizer = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSizerPinSharing; - sbSizerPinSharing = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Sharing") ), wxVERTICAL ); - - m_checkApplyToAllParts = new wxCheckBox( this, wxID_ANY, _("Shared by all &parts in component"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerPinSharing->Add( m_checkApplyToAllParts, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_checkApplyToAllConversions = new wxCheckBox( this, wxID_ANY, _("Shared by all body &styles (DeMorgan)"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerPinSharing->Add( m_checkApplyToAllConversions, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - - boarderSizer->Add( sbSizerPinSharing, 0, wxEXPAND|wxALL, 5 ); - - wxStaticBoxSizer* sbSizerSchematicProperties; - sbSizerSchematicProperties = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Schematic Properties") ), wxVERTICAL ); - - m_checkShow = new wxCheckBox( this, wxID_ANY, _("&Visible"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkShow->SetValue(true); - sbSizerSchematicProperties->Add( m_checkShow, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - - boarderSizer->Add( sbSizerSchematicProperties, 0, wxEXPAND|wxALL, 5 ); - - - bLeftSizer->Add( boarderSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); - - - bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 ); - - wxBoxSizer* bRightSizer; - bRightSizer = new wxBoxSizer( wxVERTICAL ); - - wxFlexGridSizer* fgSizerTextsSizes; - fgSizerTextsSizes = new wxFlexGridSizer( 3, 3, 0, 0 ); - fgSizerTextsSizes->AddGrowableCol( 1 ); - fgSizerTextsSizes->SetFlexibleDirection( wxBOTH ); - fgSizerTextsSizes->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); - - m_staticTextNameSize = new wxStaticText( this, ID_M_STATICTEXTNAMESIZE, _("N&ame text size:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextNameSize->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticTextNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_textPinNameTextSize = new wxTextCtrl( this, ID_M_TEXTPINNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerTextsSizes->Add( m_textPinNameTextSize, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); - - m_staticNameTextSizeUnits = new wxStaticText( this, ID_M_STATICNAMETEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticNameTextSizeUnits->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticNameTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_staticTextPadNameSize = new wxStaticText( this, ID_M_STATICTEXTPADNAMESIZE, _("Number te&xt size:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextPadNameSize->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticTextPadNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_textPadNameTextSize = new wxTextCtrl( this, ID_M_TEXTPADNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerTextsSizes->Add( m_textPadNameTextSize, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND, 3 ); - - m_staticNumberTextSizeUnits = new wxStaticText( this, ID_M_STATICNUMBERTEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticNumberTextSizeUnits->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticNumberTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); - - m_staticTextPinLen = new wxStaticText( this, ID_M_STATICTEXTPINLEN, _("&Length:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextPinLen->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticTextPinLen, 0, wxALL, 5 ); - - m_textLength = new wxTextCtrl( this, ID_M_TEXTLENGTH, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerTextsSizes->Add( m_textLength, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); - - m_staticLengthUnits = new wxStaticText( this, ID_M_STATICLENGTHUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticLengthUnits->Wrap( -1 ); - fgSizerTextsSizes->Add( m_staticLengthUnits, 0, wxALL, 5 ); - - - bRightSizer->Add( fgSizerTextsSizes, 0, wxALL|wxEXPAND, 5 ); - - m_panelShowPin = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); - m_panelShowPin->SetMinSize( wxSize( 150,150 ) ); - - bRightSizer->Add( m_panelShowPin, 1, wxEXPAND | wxALL, 5 ); - - - bUpperSizer->Add( bRightSizer, 1, wxEXPAND|wxRIGHT, 5 ); - - - mainSizer->Add( bUpperSizer, 1, wxEXPAND, 5 ); - - m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - mainSizer->Add( m_staticline1, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_sdbSizerButtons = new wxStdDialogButtonSizer(); - m_sdbSizerButtonsOK = new wxButton( this, wxID_OK ); - m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK ); - m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel ); - m_sdbSizerButtons->Realize(); - - mainSizer->Add( m_sdbSizerButtons, 0, wxALL|wxALIGN_RIGHT, 5 ); - - - this->SetSizer( mainSizer ); - this->Layout(); - mainSizer->Fit( this ); - - this->Centre( wxBOTH ); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCloseDialog ) ); - m_textPinName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPadName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceOrientation->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceElectricalType->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceStyle->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkApplyToAllParts->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkApplyToAllConversions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkShow->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPinNameTextSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPadNameTextSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textLength->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_panelShowPin->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPaintShowPanel ), NULL, this ); - m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCancelButtonClick ), NULL, this ); - m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnOKButtonClick ), NULL, this ); -} - -DIALOG_LIB_EDIT_PIN_BASE::~DIALOG_LIB_EDIT_PIN_BASE() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCloseDialog ) ); - m_textPinName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPadName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceOrientation->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceElectricalType->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_choiceStyle->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkApplyToAllParts->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkApplyToAllConversions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_checkShow->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPinNameTextSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textPadNameTextSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_textLength->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); - m_panelShowPin->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPaintShowPanel ), NULL, this ); - m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCancelButtonClick ), NULL, this ); - m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnOKButtonClick ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 17 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_lib_edit_pin_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* mainSizer; + mainSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bUpperSizer; + bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bLeftSizer; + bLeftSizer = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgSizerPins; + fgSizerPins = new wxFlexGridSizer( 5, 2, 0, 0 ); + fgSizerPins->AddGrowableCol( 1 ); + fgSizerPins->SetFlexibleDirection( wxBOTH ); + fgSizerPins->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); + + m_staticTextPinName = new wxStaticText( this, wxID_ANY, _("Pin &name:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextPinName->Wrap( -1 ); + fgSizerPins->Add( m_staticTextPinName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_textPinName = new wxTextCtrl( this, ID_M_TEXTPINNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPins->Add( m_textPinName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); + + m_staticTextPadName = new wxStaticText( this, ID_M_STATICTEXTPADNAME, _("Pin n&umber:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextPadName->Wrap( -1 ); + m_staticTextPadName->SetToolTip( _("Pin number: 1 to 4 ASCII letters and/or digits") ); + + fgSizerPins->Add( m_staticTextPadName, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_textPadName = new wxTextCtrl( this, ID_M_TEXTPADNAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPins->Add( m_textPadName, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); + + m_staticTextOrient = new wxStaticText( this, wxID_ANY, _("&Orientation:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextOrient->Wrap( -1 ); + fgSizerPins->Add( m_staticTextOrient, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_choiceOrientation = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + fgSizerPins->Add( m_choiceOrientation, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + m_staticTextEType = new wxStaticText( this, wxID_ANY, _("&Electrical type:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextEType->Wrap( -1 ); + m_staticTextEType->SetToolTip( _("Used by the ERC.") ); + + fgSizerPins->Add( m_staticTextEType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_choiceElectricalType = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + fgSizerPins->Add( m_choiceElectricalType, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + m_staticTextGstyle = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextGstyle->Wrap( -1 ); + fgSizerPins->Add( m_staticTextGstyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_choiceStyle = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + fgSizerPins->Add( m_choiceStyle, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + + bLeftSizer->Add( fgSizerPins, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* boarderSizer; + boarderSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizerPinSharing; + sbSizerPinSharing = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Sharing") ), wxVERTICAL ); + + m_checkApplyToAllParts = new wxCheckBox( this, wxID_ANY, _("Shared by all &parts in component"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPinSharing->Add( m_checkApplyToAllParts, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_checkApplyToAllConversions = new wxCheckBox( this, wxID_ANY, _("Shared by all body &styles (DeMorgan)"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPinSharing->Add( m_checkApplyToAllConversions, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + + boarderSizer->Add( sbSizerPinSharing, 0, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbSizerSchematicProperties; + sbSizerSchematicProperties = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Schematic Properties") ), wxVERTICAL ); + + m_checkShow = new wxCheckBox( this, wxID_ANY, _("&Visible"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkShow->SetValue(true); + sbSizerSchematicProperties->Add( m_checkShow, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + + boarderSizer->Add( sbSizerSchematicProperties, 0, wxEXPAND|wxALL, 5 ); + + + bLeftSizer->Add( boarderSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 12 ); + + + bUpperSizer->Add( bLeftSizer, 1, wxEXPAND, 5 ); + + wxBoxSizer* bRightSizer; + bRightSizer = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgSizerTextsSizes; + fgSizerTextsSizes = new wxFlexGridSizer( 3, 3, 0, 0 ); + fgSizerTextsSizes->AddGrowableCol( 1 ); + fgSizerTextsSizes->SetFlexibleDirection( wxBOTH ); + fgSizerTextsSizes->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); + + m_staticTextNameSize = new wxStaticText( this, ID_M_STATICTEXTNAMESIZE, _("N&ame text size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextNameSize->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticTextNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_textPinNameTextSize = new wxTextCtrl( this, ID_M_TEXTPINNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerTextsSizes->Add( m_textPinNameTextSize, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM, 3 ); + + m_staticNameTextSizeUnits = new wxStaticText( this, ID_M_STATICNAMETEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticNameTextSizeUnits->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticNameTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_staticTextPadNameSize = new wxStaticText( this, ID_M_STATICTEXTPADNAMESIZE, _("Number te&xt size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextPadNameSize->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticTextPadNameSize, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_textPadNameTextSize = new wxTextCtrl( this, ID_M_TEXTPADNAMETEXTSIZE, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerTextsSizes->Add( m_textPadNameTextSize, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxEXPAND, 3 ); + + m_staticNumberTextSizeUnits = new wxStaticText( this, ID_M_STATICNUMBERTEXTSIZEUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticNumberTextSizeUnits->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticNumberTextSizeUnits, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + + m_staticTextPinLen = new wxStaticText( this, ID_M_STATICTEXTPINLEN, _("&Length:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextPinLen->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticTextPinLen, 0, wxALL, 5 ); + + m_textLength = new wxTextCtrl( this, ID_M_TEXTLENGTH, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerTextsSizes->Add( m_textLength, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); + + m_staticLengthUnits = new wxStaticText( this, ID_M_STATICLENGTHUNITS, _("units"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticLengthUnits->Wrap( -1 ); + fgSizerTextsSizes->Add( m_staticLengthUnits, 0, wxALL, 5 ); + + + bRightSizer->Add( fgSizerTextsSizes, 0, wxALL|wxEXPAND, 5 ); + + m_panelShowPin = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE|wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); + m_panelShowPin->SetMinSize( wxSize( 150,150 ) ); + + bRightSizer->Add( m_panelShowPin, 1, wxEXPAND | wxALL, 5 ); + + + bUpperSizer->Add( bRightSizer, 1, wxEXPAND|wxRIGHT, 5 ); + + + mainSizer->Add( bUpperSizer, 1, wxEXPAND, 5 ); + + m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + mainSizer->Add( m_staticline1, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_sdbSizerButtons = new wxStdDialogButtonSizer(); + m_sdbSizerButtonsOK = new wxButton( this, wxID_OK ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK ); + m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel ); + m_sdbSizerButtons->Realize(); + + mainSizer->Add( m_sdbSizerButtons, 0, wxALL|wxALIGN_RIGHT, 5 ); + + + this->SetSizer( mainSizer ); + this->Layout(); + mainSizer->Fit( this ); + + this->Centre( wxBOTH ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCloseDialog ) ); + m_textPinName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPadName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceOrientation->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceElectricalType->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceStyle->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkApplyToAllParts->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkApplyToAllConversions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkShow->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPinNameTextSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPadNameTextSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textLength->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_panelShowPin->Connect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPaintShowPanel ), NULL, this ); + m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCancelButtonClick ), NULL, this ); + m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnOKButtonClick ), NULL, this ); +} + +DIALOG_LIB_EDIT_PIN_BASE::~DIALOG_LIB_EDIT_PIN_BASE() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCloseDialog ) ); + m_textPinName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPadName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceOrientation->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceElectricalType->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_choiceStyle->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkApplyToAllParts->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkApplyToAllConversions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_checkShow->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPinNameTextSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textPadNameTextSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_textLength->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPropertiesChange ), NULL, this ); + m_panelShowPin->Disconnect( wxEVT_PAINT, wxPaintEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnPaintShowPanel ), NULL, this ); + m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnCancelButtonClick ), NULL, this ); + m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_LIB_EDIT_PIN_BASE::OnOKButtonClick ), NULL, this ); + +} diff --git a/eeschema/dialogs/dialog_lib_edit_pin_base.fbp b/eeschema/dialogs/dialog_lib_edit_pin_base.fbp index 67141c91dc..d376d0983e 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin_base.fbp +++ b/eeschema/dialogs/dialog_lib_edit_pin_base.fbp @@ -296,7 +296,7 @@ Resizable 1 - wxTE_PROCESS_TAB + 0 @@ -474,7 +474,7 @@ Resizable 1 - wxTE_PROCESS_TAB + 0 diff --git a/eeschema/dialogs/dialog_lib_edit_pin_base.h b/eeschema/dialogs/dialog_lib_edit_pin_base.h index 6732ec280a..4ba40dc6fe 100644 --- a/eeschema/dialogs/dialog_lib_edit_pin_base.h +++ b/eeschema/dialogs/dialog_lib_edit_pin_base.h @@ -1,101 +1,101 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Mar 19 2012) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_LIB_EDIT_PIN_BASE_H__ -#define __DIALOG_LIB_EDIT_PIN_BASE_H__ - -#include -#include -#include -#include "wx/bmpcbox.h" -#include "dialog_shim.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_LIB_EDIT_PIN_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_LIB_EDIT_PIN_BASE : public DIALOG_SHIM -{ - private: - - protected: - enum - { - ID_M_TEXTPINNAME = 1000, - ID_M_STATICTEXTPADNAME, - ID_M_TEXTPADNAME, - ID_M_STATICTEXTNAMESIZE, - ID_M_TEXTPINNAMETEXTSIZE, - ID_M_STATICNAMETEXTSIZEUNITS, - ID_M_STATICTEXTPADNAMESIZE, - ID_M_TEXTPADNAMETEXTSIZE, - ID_M_STATICNUMBERTEXTSIZEUNITS, - ID_M_STATICTEXTPINLEN, - ID_M_TEXTLENGTH, - ID_M_STATICLENGTHUNITS - }; - - wxStaticText* m_staticTextPinName; - wxTextCtrl* m_textPinName; - wxStaticText* m_staticTextPadName; - wxTextCtrl* m_textPadName; - wxStaticText* m_staticTextOrient; - wxBitmapComboBox* m_choiceOrientation; - wxStaticText* m_staticTextEType; - wxBitmapComboBox* m_choiceElectricalType; - wxStaticText* m_staticTextGstyle; - wxBitmapComboBox* m_choiceStyle; - wxCheckBox* m_checkApplyToAllParts; - wxCheckBox* m_checkApplyToAllConversions; - wxCheckBox* m_checkShow; - wxStaticText* m_staticTextNameSize; - wxTextCtrl* m_textPinNameTextSize; - wxStaticText* m_staticNameTextSizeUnits; - wxStaticText* m_staticTextPadNameSize; - wxTextCtrl* m_textPadNameTextSize; - wxStaticText* m_staticNumberTextSizeUnits; - wxStaticText* m_staticTextPinLen; - wxTextCtrl* m_textLength; - wxStaticText* m_staticLengthUnits; - wxPanel* m_panelShowPin; - wxStaticLine* m_staticline1; - wxStdDialogButtonSizer* m_sdbSizerButtons; - wxButton* m_sdbSizerButtonsOK; - wxButton* m_sdbSizerButtonsCancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnCloseDialog( wxCloseEvent& event ) { event.Skip(); } - virtual void OnPropertiesChange( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } - virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Pin Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_LIB_EDIT_PIN_BASE(); - -}; - -#endif //__DIALOG_LIB_EDIT_PIN_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 17 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_LIB_EDIT_PIN_BASE_H__ +#define __DIALOG_LIB_EDIT_PIN_BASE_H__ + +#include +#include +#include +#include "wx/bmpcbox.h" +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_LIB_EDIT_PIN_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_LIB_EDIT_PIN_BASE : public DIALOG_SHIM +{ + private: + + protected: + enum + { + ID_M_TEXTPINNAME = 1000, + ID_M_STATICTEXTPADNAME, + ID_M_TEXTPADNAME, + ID_M_STATICTEXTNAMESIZE, + ID_M_TEXTPINNAMETEXTSIZE, + ID_M_STATICNAMETEXTSIZEUNITS, + ID_M_STATICTEXTPADNAMESIZE, + ID_M_TEXTPADNAMETEXTSIZE, + ID_M_STATICNUMBERTEXTSIZEUNITS, + ID_M_STATICTEXTPINLEN, + ID_M_TEXTLENGTH, + ID_M_STATICLENGTHUNITS + }; + + wxStaticText* m_staticTextPinName; + wxTextCtrl* m_textPinName; + wxStaticText* m_staticTextPadName; + wxTextCtrl* m_textPadName; + wxStaticText* m_staticTextOrient; + wxBitmapComboBox* m_choiceOrientation; + wxStaticText* m_staticTextEType; + wxBitmapComboBox* m_choiceElectricalType; + wxStaticText* m_staticTextGstyle; + wxBitmapComboBox* m_choiceStyle; + wxCheckBox* m_checkApplyToAllParts; + wxCheckBox* m_checkApplyToAllConversions; + wxCheckBox* m_checkShow; + wxStaticText* m_staticTextNameSize; + wxTextCtrl* m_textPinNameTextSize; + wxStaticText* m_staticNameTextSizeUnits; + wxStaticText* m_staticTextPadNameSize; + wxTextCtrl* m_textPadNameTextSize; + wxStaticText* m_staticNumberTextSizeUnits; + wxStaticText* m_staticTextPinLen; + wxTextCtrl* m_textLength; + wxStaticText* m_staticLengthUnits; + wxPanel* m_panelShowPin; + wxStaticLine* m_staticline1; + wxStdDialogButtonSizer* m_sdbSizerButtons; + wxButton* m_sdbSizerButtonsOK; + wxButton* m_sdbSizerButtonsCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnCloseDialog( wxCloseEvent& event ) { event.Skip(); } + virtual void OnPropertiesChange( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); } + virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Pin Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_LIB_EDIT_PIN_BASE(); + +}; + +#endif //__DIALOG_LIB_EDIT_PIN_BASE_H__ From ca15df807c4e591983ab3f83c75dad9988d62eb2 Mon Sep 17 00:00:00 2001 From: Alexander Zakamaldin Date: Thu, 29 Mar 2012 08:47:29 +0400 Subject: [PATCH 39/68] fix minor issue a page layout in GOST mode --- include/worksheet.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/worksheet.h b/include/worksheet.h index 9ed0081f97..0324969c7c 100644 --- a/include/worksheet.h +++ b/include/worksheet.h @@ -16,7 +16,12 @@ #define TEXT_VTAB_HEIGHT (SIZETEXT * 2) #if defined(KICAD_GOST) -#define STAMP_OX Mm2mils( 185 ) + +// There is a page layout minor issue in GOST mode. +// This is the rounding-off error of 1 mil exactly. +// I hope this problem will go away when we will go +// to nanometers (zaka62). +#define STAMP_OX Mm2mils( 185 ) + 1 #define STAMP_OY Mm2mils( 55 ) #define STAMP_Y_0 0 From 2cecd66a50167ec07c0e825f43a04c8c1f217613 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Sun, 1 Apr 2012 16:51:56 -0400 Subject: [PATCH 40/68] Initial Pcbnew s-expression file format commit. * Add s-expression Format() function to all objects derived from BOARD_ITEM. * Add s-expression Format() function to base objects as required. * Add functions to convert coordinates from base internal units (nanometers) to millimeter string for writing to s-expression file. * Add temporary dummy conversion functions to prevent link errors until schematic and board object and action code can be separated into DSO/DLL. * Add CMake build option to build Pcbnew with nanometer internal units. --- CMakeLists.txt | 2 + CMakeModules/config.h.cmake | 2 +- bitmap2component/bitmap2cmp_gui.cpp | 14 ++ common/base_struct.cpp | 88 +++++++++++ common/class_page_info.cpp | 21 +++ common/common.cpp | 12 ++ common/worksheet.cpp | 46 +++++- eeschema/lib_draw_item.h | 2 +- eeschema/sch_screen.cpp | 18 +++ include/base_struct.h | 30 +++- include/class_title_block.h | 16 ++ include/common.h | 42 ++++- kicad/mainframe.cpp | 13 ++ pcb_calculator/pcb_calculator_frame.cpp | 12 ++ pcbnew/class_board.cpp | 198 +++++++++++++++++++++++- pcbnew/class_board.h | 51 +++--- pcbnew/class_board_item.cpp | 31 ++++ pcbnew/class_dimension.cpp | 55 +++++++ pcbnew/class_dimension.h | 7 +- pcbnew/class_drawsegment.cpp | 66 +++++++- pcbnew/class_drawsegment.h | 13 +- pcbnew/class_edge_mod.cpp | 10 ++ pcbnew/class_edge_mod.h | 3 + pcbnew/class_mire.cpp | 20 +++ pcbnew/class_mire.h | 3 + pcbnew/class_module.cpp | 119 ++++++++++++++ pcbnew/class_module.h | 3 + pcbnew/class_netclass.cpp | 27 ++++ pcbnew/class_netclass.h | 17 +- pcbnew/class_pad.cpp | 94 +++++++++++ pcbnew/class_pad.h | 5 +- pcbnew/class_pcb_text.cpp | 16 ++ pcbnew/class_pcb_text.h | 5 +- pcbnew/class_text_mod.cpp | 20 +++ pcbnew/class_text_mod.h | 3 + pcbnew/class_track.cpp | 43 ++++- pcbnew/class_track.h | 21 ++- pcbnew/class_zone.cpp | 121 +++++++++++++++ pcbnew/class_zone.h | 8 +- pcbnew/kicad_plugin.cpp | 11 +- 40 files changed, 1217 insertions(+), 71 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 23071ba725..e340018371 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,8 @@ option(USE_PNG_BITMAPS "use PNG bitmaps instead of XPM (default ON)" ON) option(USE_NEW_PCBNEW_LOAD "use new plugin support for legacy file format" OFF) option(USE_NEW_PCBNEW_SAVE "use new plugin support for legacy file format" OFF) +option(USE_PCBNEW_NANOMETRES + "Use nanometers for Pcbnew internal units instead of deci-mils (default OFF).") # Russian GOST patch option(wxUSE_UNICODE "enable/disable building unicode (default OFF)") diff --git a/CMakeModules/config.h.cmake b/CMakeModules/config.h.cmake index ef7612b74e..056d6ac7b7 100644 --- a/CMakeModules/config.h.cmake +++ b/CMakeModules/config.h.cmake @@ -59,7 +59,7 @@ #cmakedefine USE_NEW_PCBNEW_LOAD #cmakedefine USE_NEW_PCBNEW_SAVE - +#cmakedefine USE_PCBNEW_NANAMETERS /// The file format revision of the *.brd file created by this build #if defined(KICAD_NANOMETRE) diff --git a/bitmap2component/bitmap2cmp_gui.cpp b/bitmap2component/bitmap2cmp_gui.cpp index f6cfc1c998..4ec5ee3a3d 100644 --- a/bitmap2component/bitmap2cmp_gui.cpp +++ b/bitmap2component/bitmap2cmp_gui.cpp @@ -426,3 +426,17 @@ bool EDA_APP::OnInit() void EDA_APP::MacOpenFile(const wxString &fileName) { } + + + + +/** + * @copydoc + * + * This is a dummy since KiCad doesn't perform any interal unit formatting. + */ +/** @todo Remove FormatBIU() when the common DSO/DSL code is implemented. */ +std::string FormatBIU( int aValue ) +{ + return ""; +} diff --git a/common/base_struct.cpp b/common/base_struct.cpp index bc75190dee..50d8c61df6 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -223,6 +224,14 @@ EDA_ITEM& EDA_ITEM::operator=( const EDA_ITEM& aItem ) } +void EDA_ITEM::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + wxFAIL_MSG( wxString::Format( wxT( "Format method not defined for item type %s." ), + GetChars( GetClass() ) ) ); +} + + #if defined(DEBUG) // A function that should have been in wxWidgets @@ -546,6 +555,85 @@ wxString EDA_TEXT::GetTextStyleName() } +bool EDA_TEXT::IsDefaultFormatting() const +{ + return ( ( m_Size.x == DEFAULT_SIZE_TEXT ) + && ( m_Size.y == DEFAULT_SIZE_TEXT ) + && ( m_Attributs == 0 ) + && ( m_Mirror == false ) + && ( m_HJustify == GR_TEXT_HJUSTIFY_CENTER ) + && ( m_VJustify == GR_TEXT_VJUSTIFY_CENTER ) + && ( m_Thickness == 0 ) + && ( m_Italic == false ) + && ( m_Bold == false ) + && ( m_MultilineAllowed == false ) ); +} + + +void EDA_TEXT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(text %s (at %s", + EscapedUTF8( m_Text ).c_str(), FormatBIU( m_Pos ).c_str() ); + + if( m_Orient != 0.0 ) + aFormatter->Print( aNestLevel, "%0.1f", m_Orient ); + + aFormatter->Print( aNestLevel, ")\n" ); + + if( !IsDefaultFormatting() ) + { + aFormatter->Print( aNestLevel+1, "(effects\n" ); + + if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) || m_Bold + || m_Italic ) + { + aFormatter->Print( aNestLevel+2, "(font" ); + + // Add font support here at some point in the future. + + if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) ) + aFormatter->Print( aNestLevel+2, " (size %s)", FormatBIU( m_Size ).c_str() ); + + if( m_Bold ) + aFormatter->Print( aNestLevel+2, " bold" ); + + if( m_Bold ) + aFormatter->Print( aNestLevel+2, " italic" ); + + aFormatter->Print( aNestLevel+1, ")\n"); + } + + if( m_Mirror || ( m_HJustify != GR_TEXT_HJUSTIFY_CENTER ) + || ( m_VJustify != GR_TEXT_VJUSTIFY_CENTER ) ) + { + aFormatter->Print( aNestLevel+2, "(justify"); + + if( m_HJustify != GR_TEXT_HJUSTIFY_CENTER ) + aFormatter->Print( aNestLevel+2, + (m_HJustify == GR_TEXT_HJUSTIFY_LEFT) ? " left" : " right" ); + + if( m_VJustify != GR_TEXT_VJUSTIFY_CENTER ) + aFormatter->Print( aNestLevel+2, + (m_VJustify == GR_TEXT_VJUSTIFY_TOP) ? " top" : " bottom" ); + + if( m_Mirror ) + aFormatter->Print( aNestLevel+2, " mirror" ); + + aFormatter->Print( aNestLevel+2, ")\n" ); + } + + // As of now the only place this is used is in Eeschema to hide or show the text. + if( m_Attributs ) + aFormatter->Print( aNestLevel+2, "hide" ); + + aFormatter->Print( aNestLevel+1, "\n)\n" ); + } + + aFormatter->Print( aNestLevel, ")\n" ); +} + + /******************/ /* Class EDA_RECT */ /******************/ diff --git a/common/class_page_info.cpp b/common/class_page_info.cpp index ad3665bdae..ff86d8c457 100644 --- a/common/class_page_info.cpp +++ b/common/class_page_info.cpp @@ -24,6 +24,8 @@ #include +#include + // late arriving wxPAPER_A0, wxPAPER_A1 #if wxABI_VERSION >= 20999 @@ -309,3 +311,22 @@ void PAGE_INFO::SetHeightMils( int aHeightInMils ) } } + +void PAGE_INFO::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + // If page is A3 landscape, then it is assumed to be the default and is not written. + if( !IsDefault() ) + { + aFormatter->Print( aNestLevel, "(page %s", TO_UTF8( GetType() ) ); + + // The page dimensions are only required for user defined page sizes. + if( GetType() == PAGE_INFO::Custom ) + aFormatter->Print( aNestLevel, " %d %d", GetWidthMils(), GetHeightMils() ); + + if( IsCustom() && IsPortrait() ) + aFormatter->Print( aNestLevel, " portrait" ); + + aFormatter->Print( aNestLevel, ")\n" ); + } +} diff --git a/common/common.cpp b/common/common.cpp index db77f54ab3..9656e1db33 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -560,3 +560,15 @@ wxString& operator <<( wxString& aString, const wxPoint& aPos ) return aString; } + + +std::string FormatBIU( const wxPoint& aPoint ) +{ + return FormatBIU( aPoint.x ) + " " + FormatBIU( aPoint.y ); +} + + +std::string FormatBIU( const wxSize& aSize ) +{ + return FormatBIU( aSize.GetWidth() ) + " " + FormatBIU( aSize.GetHeight() ); +} diff --git a/common/worksheet.cpp b/common/worksheet.cpp index 17515b2963..7afd03f888 100644 --- a/common/worksheet.cpp +++ b/common/worksheet.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -1372,7 +1373,7 @@ void EDA_DRAW_FRAME::TraceWorkSheet( wxDC* aDC, wxSize& aSz, wxPoint& aLT, wxPoi { if( jj < 26 ) Line.Printf( wxT( "%c" ), jj + 'A' ); - else // I hope 52 identifiers are enought... + else // I hope 52 identifiers are enough... Line.Printf( wxT( "%c" ), 'a' + jj - 26 ); if( ii < yg - PAS_REF / 2 ) @@ -1626,7 +1627,7 @@ const wxString EDA_DRAW_FRAME::GetXYSheetReferences( const wxPoint& aPosition ) yg = pageInfo.GetSizeMils().y - pageInfo.GetBottomMarginMils(); // Get the Y axis identifier (A symbol A ... Z) - if( aPosition.y < refy || aPosition.y > yg ) // Ouside of Y limits + if( aPosition.y < refy || aPosition.y > yg ) // Outside of Y limits msg << wxT( "?" ); else { @@ -1637,7 +1638,7 @@ const wxString EDA_DRAW_FRAME::GetXYSheetReferences( const wxPoint& aPosition ) } // Get the X axis identifier (A number 1 ... n) - if( aPosition.x < refx || aPosition.x > xg ) // Ouside of X limits + if( aPosition.x < refx || aPosition.x > xg ) // Outside of X limits msg << wxT( "?" ); else { @@ -1660,3 +1661,42 @@ wxString EDA_DRAW_FRAME::GetScreenDesc() << GetScreen()->m_NumberOfScreen; return msg; } + + +void TITLE_BLOCK::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + // Don't write the title block information if there is nothing to write. + if( !m_title.IsEmpty() || !m_date.IsEmpty() || !m_revision.IsEmpty() + || !m_company.IsEmpty() || !m_comment1.IsEmpty() || !m_comment2.IsEmpty() + || !m_comment3.IsEmpty() || !m_comment4.IsEmpty() ) + { + aFormatter->Print( aNestLevel, "(title-block\n" ); + + if( !m_title.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "\n(title %s)", EscapedUTF8( m_title ).c_str() ); + + if( !m_date.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "\n(date %s)", EscapedUTF8( m_date ).c_str() ); + + if( !m_revision.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "\n(rev %s)", EscapedUTF8( m_revision ).c_str() ); + + if( !m_company.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "\n(company %s)", EscapedUTF8( m_company ).c_str() ); + + if( !m_comment1.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "\n(comment1 %s)", EscapedUTF8( m_comment1 ).c_str() ); + + if( !m_comment2.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "\n(comment2 %s)", EscapedUTF8( m_comment2 ).c_str() ); + + if( !m_comment3.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "\n(comment3 %s)", EscapedUTF8( m_comment3 ).c_str() ); + + if( !m_comment4.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "\n(comment4 %s)", EscapedUTF8( m_comment4 ).c_str() ); + + aFormatter->Print( aNestLevel, "\n)\n" ); + } +} diff --git a/eeschema/lib_draw_item.h b/eeschema/lib_draw_item.h index adfc34ef26..39969d89e9 100644 --- a/eeschema/lib_draw_item.h +++ b/eeschema/lib_draw_item.h @@ -84,7 +84,7 @@ class LIB_ITEM : public EDA_ITEM * @param aColor An #EDA_COLOR_T to draw the object or -1 to draw the object in it's * default color. * @param aDrawMode The mode used to perform the draw (#GR_OR, #GR_COPY, etc.). - * @param aDate A pointer to any object specific data required to perform the draw. + * @param aData A pointer to any object specific data required to perform the draw. * @param aTransform A reference to a #TRANSFORM object containing drawing transform. */ virtual void drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, diff --git a/eeschema/sch_screen.cpp b/eeschema/sch_screen.cpp index 63aa90218e..a3e86adbfb 100644 --- a/eeschema/sch_screen.cpp +++ b/eeschema/sch_screen.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -1497,3 +1498,20 @@ void SCH_SCREEN::Show( int nestLevel, std::ostream& os ) const NestedSpace( nestLevel, os ) << "\n"; } #endif + + +/** + * Function FormatBIU + * formats Eeschema internal units in mils to a string for s-expression output. + * + * @todo Move FormatBIU() where ever the common DSO/DSL code for Eeschema ends up. + */ +std::string FormatBIU( int aValue ) +{ + char buf[50]; + int len; + + len = snprintf( buf, 49, "%d", aValue ); + + return std::string( buf, len ); +} diff --git a/include/base_struct.h b/include/base_struct.h index d2d59b0b99..25d376bf98 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -33,6 +33,7 @@ #include #include +#include #include @@ -712,6 +713,18 @@ public: */ virtual EDA_ITEM& operator=( const EDA_ITEM& aItem ); + /** + * Function Format + * outputs the object to \a aFormatter in s-expression form. + * + * @param aFormatter The #OUTPUTFORMATTER object to write to. + * @param aNestLevel The indentation next level. + * @param aControlBits The control bit definition for object specific formatting. + * @throw IO_ERROR on write error. + */ + virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) /** @@ -812,7 +825,7 @@ public: double m_Orient; ///< Orient in 0.1 degrees wxPoint m_Pos; ///< XY position of anchor text. wxSize m_Size; ///< XY size of text - bool m_Mirror; ///< true iff mirrored + bool m_Mirror; ///< true if mirrored int m_Attributs; ///< bit flags such as visible, etc. bool m_Italic; ///< should be italic font (if available) bool m_Bold; ///< should be bold font (if available) @@ -852,6 +865,8 @@ public: void SetMirrored( bool isMirrored ) { m_Mirror = isMirrored; } bool IsMirrored() const { return m_Mirror; } + bool IsDefaultFormatting() const; + /** * Function SetSize * sets text size. @@ -989,6 +1004,19 @@ public: EDA_TEXT_VJUSTIFY_T GetVertJustify() const { return m_VJustify; }; void SetHorizJustify( EDA_TEXT_HJUSTIFY_T aType ) { m_HJustify = aType; }; void SetVertJustify( EDA_TEXT_VJUSTIFY_T aType ) { m_VJustify = aType; }; + + /** + * Function Format + * outputs the object to \a aFormatter in s-expression form. + * + * @param aFormatter The #OUTPUTFORMATTER object to write to. + * @param aNestLevel The indentation next level. + * @param aControlBits The control bit definition for object specific formatting. + * @throw IO_ERROR on write error. + */ + virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + }; #endif // BASE_STRUCT_H_ diff --git a/include/class_title_block.h b/include/class_title_block.h index 9813af0c52..36ad749e0f 100644 --- a/include/class_title_block.h +++ b/include/class_title_block.h @@ -26,6 +26,10 @@ #include +class OUTPUTFORMATTER; +class IO_ERROR; + + extern wxString GenDate(); @@ -81,6 +85,18 @@ public: m_comment4.clear(); } + /** + * Function Format + * outputs the object to \a aFormatter in s-expression form. + * + * @param aFormatter The #OUTPUTFORMATTER object to write to. + * @param aNestLevel The indentation next level. + * @param aControlBits The control bit definition for object specific formatting. + * @throw IO_ERROR on write error. + */ + virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + private: wxString m_title; wxString m_date; diff --git a/include/common.h b/include/common.h index 4017956a4c..2c0b9cb04e 100644 --- a/include/common.h +++ b/include/common.h @@ -38,6 +38,7 @@ #include #include +#include #if !wxUSE_PRINTING_ARCHITECTURE # error "You must use '--enable-printarch' in your wx library configuration." @@ -134,6 +135,24 @@ enum EDA_UNITS_T { }; +/** + * Function FormatBIU + * converts coordinate \a aValue from the application specific internal units to a string + * appropriate to write to an #OUTPUTFORMATTER in the s-expression file formats. + * + * @note A separate version of this function exists for Pcbnew and Eeschema. This removes + * the runtime dependency for converting coordinates to the appropriate application. + * Do not add any runtime conversions to either the Pcbnew or Eeschema implementation + * of this function. + * @param aValue The value in application specific internal units to convert. + * @return An s-expression appropriate string containing the converted value in millimeters. + */ +extern std::string FormatBIU( int aValue ); + +extern std::string FormatBIU( const wxPoint& aPoint ); + +extern std::string FormatBIU( const wxSize& aSize ); + // forward declarations: class LibNameList; @@ -185,12 +204,19 @@ public: * and will be set according to previous calls to * static PAGE_INFO::SetUserWidthMils() and * static PAGE_INFO::SetUserHeightMils(); + * @param IsPortrait Set to true to set page orientation to portrait mode. * - * @return bool - true iff @a aStandarePageDescription was a recognized type. + * @return bool - true if @a aStandarePageDescription was a recognized type. */ bool SetType( const wxString& aStandardPageDescriptionName, bool IsPortrait = false ); const wxString& GetType() const { return m_type; } + /** + * Function IsDefault + * @return True if the object has the default page settings which are A3, landscape. + */ + bool IsDefault() const { return m_type == PAGE_INFO::A3 && !m_portrait; } + /** * Function IsCustom * returns true if the type is Custom @@ -327,6 +353,18 @@ public: static wxArrayString GetStandardSizes(); */ + /** + * Function Format + * outputs the page class to \a aFormatter in s-expression form. + * + * @param aFormatter The #OUTPUTFORMATTER object to write to. + * @param aNestLevel The indentation next level. + * @param aControlBits The control bit definition for object specific formatting. + * @throw IO_ERROR on write error. + */ + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + protected: // only the class implementation(s) may use this constructor PAGE_INFO( const wxSize& aSizeMils, const wxString& aName, wxPaperSize aPaperId ); @@ -612,7 +650,7 @@ int From_User_Unit( EDA_UNITS_T aUnit, double val, int internal_unit_value ); /** * Function GenDate - * @return A wsString object containg the date in the format "day month year" like + * @return A wxString object containing the date in the format "day month year" like * "23 jun 2005". */ wxString GenDate(); diff --git a/kicad/mainframe.cpp b/kicad/mainframe.cpp index c7d6ae9bc5..d203bd4665 100644 --- a/kicad/mainframe.cpp +++ b/kicad/mainframe.cpp @@ -298,3 +298,16 @@ void KICAD_MANAGER_FRAME::SaveSettings() cfg->Write( TreeFrameWidthEntry, m_LeftWin->GetSize().x ); } + + +/** + * Function FormatBIU + * is a dummy function to prevent link errors since KiCad doesn't perform any interal + * unit formatting. + * + * @todo Remove FormatBIU() when the common DSO/DSL code is implemented. + */ +std::string FormatBIU( int aValue ) +{ + return ""; +} diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp index ea9c988abe..6c90930c1f 100644 --- a/pcb_calculator/pcb_calculator_frame.cpp +++ b/pcb_calculator/pcb_calculator_frame.cpp @@ -243,3 +243,15 @@ void PCB_CALCULATOR_FRAME::OnPaintTranslinePanel( wxPaintEvent& event ) event.Skip(); } + + +/** + * @copydoc + * + * This is a dummy since KiCad doesn't perform any interal unit formatting. + */ +/** @todo Remove FormatBIU() when the common DSO/DSL code is implemented. */ +std::string FormatBIU( int aValue ) +{ + return ""; +} diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 1d07f19b8a..317f5c215a 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -207,14 +208,14 @@ void BOARD::chainMarkedSegments( wxPoint aPosition, int aLayerMask, TRACK_PTRS* void BOARD::PushHighLight() { - m_hightLightPrevious = m_hightLight; + m_highLightPrevious = m_highLight; } void BOARD::PopHighLight() { - m_hightLight = m_hightLightPrevious; - m_hightLightPrevious.Clear(); + m_highLight = m_highLightPrevious; + m_highLightPrevious.Clear(); } @@ -1065,7 +1066,7 @@ SEARCH_RESULT BOARD::Visit( INSPECTOR* inspector, const void* testData, // So usually, connected tracks or vias are grouped in this list // So the algorithm (used in ratsnest computations) which computes the // track connectivity is faster (more than 100 time regarding to - // a non ordered list) because when it searches for a connexion, first + // a non ordered list) because when it searches for a connection, first // it tests the near (near in term of linked list) 50 items // from the current item (track or via) in test. // Usually, because of this sort, a connected item (if exists) is @@ -2148,6 +2149,195 @@ TRACK* BOARD::CreateLockPoint( wxPoint& aPosition, TRACK* aSegment, PICKED_ITEMS } +void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(general\n" ); + aFormatter->Print( aNestLevel+1, "(links %d)\n", GetRatsnestsCount() ); + aFormatter->Print( aNestLevel+1, "(no-connects %d)\n", m_NbNoconnect ); + + // Write Bounding box info + aFormatter->Print( aNestLevel+1, "(area %s %s %s %s)\n", + FormatBIU( m_BoundingBox.GetX() ).c_str(), + FormatBIU( m_BoundingBox.GetY() ).c_str(), + FormatBIU( m_BoundingBox.GetRight() ).c_str(), + FormatBIU( m_BoundingBox.GetBottom() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(thickness %s)\n", + FormatBIU( GetDesignSettings().m_BoardThickness ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(drawings %d)\n", m_Drawings.GetCount() ); + aFormatter->Print( aNestLevel+1, "(tracks %d)\n", GetNumSegmTrack() ); + aFormatter->Print( aNestLevel+1, "(zones %d)\n", GetNumSegmZone() ); + aFormatter->Print( aNestLevel+1, "(modules %d)\n", m_Modules.GetCount() ); + aFormatter->Print( aNestLevel+1, "(nets %d)\n", GetNetCount() ); + aFormatter->Print( aNestLevel, ")\n\n" ); + + m_paper.Format( aFormatter, aNestLevel, aControlBits ); + m_titles.Format( aFormatter, aNestLevel, aControlBits ); + + // Layers. + aFormatter->Print( aNestLevel, "(layers %d %08X", GetCopperLayerCount(), GetEnabledLayers() ); + + if( GetEnabledLayers() != GetVisibleLayers() ) + aFormatter->Print( aNestLevel+1, " %08X", GetVisibleLayers() ); + + unsigned layerMask = ALL_CU_LAYERS & GetEnabledLayers(); + + for( int layer = 0; layerMask; ++layer, layerMask >>= 1 ) + { + if( layerMask & 1 ) + { + aFormatter->Print( aNestLevel+1, "(layer%d %s %s\n", layer, + TO_UTF8( GetLayerName( layer ) ), + LAYER::ShowType( GetLayerType( layer ) ) ); + } + } + + aFormatter->Print( aNestLevel, ")\n\n" ); + + // Setup + aFormatter->Print( aNestLevel, "(setup\n" ); + + // Save current default track width, for compatibility with older Pcbnew version; + aFormatter->Print( aNestLevel+1, "(last-trace-width %s)\n", + FormatBIU( m_TrackWidthList[m_TrackWidthSelector] ).c_str() ); + + // Save custom tracks width list (the first is not saved here: this is the netclass value + for( unsigned ii = 1; ii < m_TrackWidthList.size(); ii++ ) + aFormatter->Print( aNestLevel+1, "(user-trace-width%d %s)\n", + ii+1, FormatBIU( m_TrackWidthList[ii] ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(trace-clearance %s)\n)", + FormatBIU( m_NetClasses.GetDefault()->GetClearance() ).c_str() ); + + // ZONE_SETTINGS + aFormatter->Print( aNestLevel+1, "(zone-clearance %s)\n", + FormatBIU( GetZoneSettings().m_ZoneClearance ).c_str() ); + aFormatter->Print( aNestLevel+1, "(zone-45-only %d)\n", GetZoneSettings().m_Zone_45_Only ); + + aFormatter->Print( aNestLevel+1, "(trace-min %s)\n", + FormatBIU( GetDesignSettings().m_TrackMinWidth ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(segment-width %s)\n", + FormatBIU( GetDesignSettings().m_DrawSegmentWidth ).c_str() ); + aFormatter->Print( aNestLevel+1, "(edge-width %s)\n", + FormatBIU( GetDesignSettings().m_EdgeSegmentWidth ).c_str() ); + + // Save current default via size, for compatibility with older Pcbnew version; + aFormatter->Print( aNestLevel+1, "(via-size %s)\n", + FormatBIU( m_NetClasses.GetDefault()->GetViaDiameter() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(via-drill %s)\n", + FormatBIU( m_NetClasses.GetDefault()->GetViaDrill() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(via-min-size %s)\n", + FormatBIU( GetDesignSettings().m_ViasMinSize ).c_str() ); + aFormatter->Print( aNestLevel+1, "(via_min_drill %s)\n", + FormatBIU( GetDesignSettings().m_ViasMinDrill ).c_str() ); + + // Save custom vias diameters list (the first is not saved here: this is + // the netclass value + for( unsigned ii = 1; ii < m_ViasDimensionsList.size(); ii++ ) + aFormatter->Print( aNestLevel+1, "(user-via%d %s %s)\n", ii, + FormatBIU( m_ViasDimensionsList[ii].m_Diameter ).c_str(), + FormatBIU( m_ViasDimensionsList[ii].m_Drill ).c_str() ); + + // for old versions compatibility: + aFormatter->Print( aNestLevel+1, "(uvia-size %s)\n", + FormatBIU( m_NetClasses.GetDefault()->GetuViaDiameter() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(uvia-drill %s)\n", + FormatBIU( m_NetClasses.GetDefault()->GetuViaDrill() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(uvias_allow %s)\n", + FormatBIU( GetDesignSettings().m_MicroViasAllowed ).c_str() ); + aFormatter->Print( aNestLevel+1, "(uvia-min-size %s)\n", + FormatBIU( GetDesignSettings().m_MicroViasMinSize ).c_str() ); + aFormatter->Print( aNestLevel+1, "(uvia-min-drill %s)\n", + FormatBIU( GetDesignSettings().m_MicroViasMinDrill ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(pcb-text-width %s)\n", + FormatBIU( GetDesignSettings().m_PcbTextWidth ).c_str() ); + aFormatter->Print( aNestLevel+1, "(pcb-text-size %s %s)\n", + FormatBIU( GetDesignSettings().m_PcbTextSize.x ).c_str(), + FormatBIU( GetDesignSettings().m_PcbTextSize.y ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(mod-edge-width %s)\n", + FormatBIU( GetDesignSettings().m_ModuleSegmentWidth ).c_str() ); + aFormatter->Print( aNestLevel+1, "(mod-text-size %s %s)\n", + FormatBIU( GetDesignSettings().m_ModuleTextSize.x ).c_str(), + FormatBIU( GetDesignSettings().m_ModuleTextSize.y ).c_str() ); + aFormatter->Print( aNestLevel+1, "(mod-text-width %s)\n", + FormatBIU( GetDesignSettings().m_ModuleTextWidth ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(pad-size %s %s)\n", + FormatBIU( GetDesignSettings().m_Pad_Master.GetSize().x ).c_str(), + FormatBIU( GetDesignSettings().m_Pad_Master.GetSize().x ).c_str() ); + aFormatter->Print( aNestLevel+1, "(pad-drill %s)\n", + FormatBIU( GetDesignSettings().m_Pad_Master.GetDrillSize().x ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(pad-to-mask-clearance %s)\n", + FormatBIU( GetDesignSettings().m_SolderMaskMargin ).c_str() ); + + if( GetDesignSettings().m_SolderPasteMargin != 0 ) + aFormatter->Print( aNestLevel+1, "(pad-to-paste-clearance %s)\n", + FormatBIU( GetDesignSettings().m_SolderPasteMargin ).c_str() ); + + if( GetDesignSettings().m_SolderPasteMarginRatio != 0 ) + aFormatter->Print( aNestLevel+1, "(pad-to-paste-clearance-ratio %g)\n", + GetDesignSettings().m_SolderPasteMarginRatio ); + + aFormatter->Print( aNestLevel+1, "(aux-axis-origin %s %s)\n", + FormatBIU( GetOriginAxisPosition().x ).c_str(), + FormatBIU( GetOriginAxisPosition().y ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(visible-elements %X)\n", + GetDesignSettings().GetVisibleElements() ); + + aFormatter->Print( aNestLevel, ")\n\n" ); + + + int netcount = GetNetCount(); + + for( int i = 0; i < netcount; ++i ) + aFormatter->Print( aNestLevel, "(net %d %s)\n", + FindNet( i )->GetNet(), + EscapedUTF8( FindNet( i )->GetNetname() ).c_str() ); + + // Save the default net class first. + m_NetClasses.GetDefault()->Format( aFormatter, aNestLevel, aControlBits ); + + // Save the rest of the net classes alphabetically. + for( NETCLASSES::const_iterator it = m_NetClasses.begin(); it != m_NetClasses.end(); ++it ) + { + NETCLASS* netclass = it->second; + netclass->Format( aFormatter, aNestLevel, aControlBits ); + } + + // Save the modules. + for( MODULE* module = m_Modules; module; module = (MODULE*) module->Next() ) + module->Format( aFormatter, aNestLevel, aControlBits ); + + // Save the graphical items on the board (not owned by a module) + for( BOARD_ITEM* item = m_Drawings; item; item = item->Next() ) + { + item->Format( aFormatter, aNestLevel, aControlBits ); + } + + // Do not save MARKER_PCBs, they can be regenerated easily. + + // Save the tracks and vias. + for( TRACK* track = m_Track; track; track = track->Next() ) + track->Format( aFormatter, aNestLevel, aControlBits ); + + // Save the old obsolete zones which were done by segments (tracks). + for( SEGZONE* zone = m_Zone; zone; zone = zone->Next() ) + zone->Format( aFormatter, aNestLevel, aControlBits ); + + // Save the polygon (which are the newer technology) zones. + for( int i=0; i < GetAreaCount(); ++i ) + GetArea( i )->Format( aFormatter, aNestLevel, aControlBits ); + + aFormatter->Print( aNestLevel, "\n)\n" ); +} + + #if defined(DEBUG) void BOARD::Show( int nestLevel, std::ostream& os ) const diff --git a/pcbnew/class_board.h b/pcbnew/class_board.h index e3b8769654..c803932f51 100644 --- a/pcbnew/class_board.h +++ b/pcbnew/class_board.h @@ -127,7 +127,7 @@ class HIGH_LIGHT_INFO friend class BOARD; protected: int m_netCode; // net selected for highlight (-1 when no net selected ) - bool m_highLightOn; // highlight active + bool m_highLightOn; // highlight active protected: void Clear() @@ -165,21 +165,21 @@ private: ZONE_CONTAINERS m_ZoneDescriptorList; LAYER m_Layer[NB_COPPER_LAYERS]; - // if true m_hightLight_NetCode is used - HIGH_LIGHT_INFO m_hightLight; // current high light data - HIGH_LIGHT_INFO m_hightLightPrevious; // a previously stored high light data + // if true m_highLight_NetCode is used + HIGH_LIGHT_INFO m_highLight; // current high light data + HIGH_LIGHT_INFO m_highLightPrevious; // a previously stored high light data - int m_fileFormatVersionAtLoad; ///< the version in the *.brd header on first line + int m_fileFormatVersionAtLoad; ///< the version in the *.brd header on first line EDA_RECT m_BoundingBox; - NETINFO_LIST m_NetInfo; ///< net info list (name, design constraints .. + NETINFO_LIST m_NetInfo; ///< net info list (name, design constraints .. BOARD_DESIGN_SETTINGS m_designSettings; ZONE_SETTINGS m_zoneSettings; COLORS_DESIGN_SETTINGS* m_colorsSettings; PAGE_INFO m_paper; - TITLE_BLOCK m_titles; ///< text in lower right of screen and plots + TITLE_BLOCK m_titles; ///< text in lower right of screen and plots /// Position of the origin axis, which is used in exports mostly wxPoint m_originAxisPosition; @@ -195,6 +195,9 @@ private: */ void chainMarkedSegments( wxPoint aPosition, int aLayerMask, TRACK_PTRS* aList ); + void formatNetClass( NETCLASS* aNetClass, OUTPUTFORMATTER* aFormatter, int aNestLevel, + int aControlBits ) const + throw( IO_ERROR ); public: @@ -342,15 +345,15 @@ public: */ void ResetHighLight() { - m_hightLight.Clear(); - m_hightLightPrevious.Clear(); + m_highLight.Clear(); + m_highLightPrevious.Clear(); } /** * Function GetHighLightNetCode * @return netcode of net to highlight (-1 when no net selected) */ - int GetHighLightNetCode() { return m_hightLight.m_netCode; } + int GetHighLightNetCode() { return m_highLight.m_netCode; } /** * Function SetHighLightNet @@ -358,27 +361,27 @@ public: */ void SetHighLightNet( int aNetCode) { - m_hightLight.m_netCode = aNetCode; + m_highLight.m_netCode = aNetCode; } /** * Function IsHighLightNetON * @return true if a net is currently highlighted */ - bool IsHighLightNetON() { return m_hightLight.m_highLightOn; } + bool IsHighLightNetON() { return m_highLight.m_highLightOn; } /** * Function HighLightOFF * Disable highlight. */ - void HighLightOFF() { m_hightLight.m_highLightOn = false; } + void HighLightOFF() { m_highLight.m_highLightOn = false; } /** * Function HighLightON * Enable highlight. - * if m_hightLight_NetCode >= 0, this net will be highlighted + * if m_highLight_NetCode >= 0, this net will be highlighted */ - void HighLightON() { m_hightLight.m_highLightOn = true; } + void HighLightON() { m_highLight.m_highLightOn = true; } /** * Function PushHighLight @@ -877,24 +880,16 @@ public: /***************************************************************************/ - /** - * Function Save - * writes the data structures for this object out to a FILE in "*.brd" format. - * @param aFile The FILE to write to. - * @return bool - true if success writing else false. - */ bool Save( FILE* aFile ) const; - /** - * Function GetClass - * returns the class name. - * @return wxString - */ wxString GetClass() const { return wxT( "BOARD" ); } + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif @@ -1192,7 +1187,7 @@ public: /** * Function GetPadFast - * return pad found at \a aPosition on \a aLayer uning the fast search method. + * return pad found at \a aPosition on \a aLayer using the fast search method. *

* The fast search method only works if the pad list has already been built. *

@@ -1204,7 +1199,7 @@ public: /** * Function GetPad - * locates the pad connected at \a aPosition on \a aLayer starting at list postion + * locates the pad connected at \a aPosition on \a aLayer starting at list position * \a aPad *

* This function uses a fast search in this sorted pad list and it is faster than diff --git a/pcbnew/class_board_item.cpp b/pcbnew/class_board_item.cpp index 790a52f252..d76c0e7987 100644 --- a/pcbnew/class_board_item.cpp +++ b/pcbnew/class_board_item.cpp @@ -62,3 +62,34 @@ wxString BOARD_ITEM::GetLayerName() const return layerName; } + + +/** @todo Move Pcbnew version of FormatBIU() where ever the common DSO/DSL code ends up. */ +std::string FormatBIU( int aValue ) +{ +#if !defined( USE_PCBNEW_NANOMETERS ) + wxFAIL_MSG( wxT( "Cannot use FormatBIU() unless Pcbnew is build with PCBNEW_NANOMETERS=ON." ) ); +#endif + + char buf[50]; + double engUnits = aValue / 1000000.0; + int len; + + if( engUnits != 0.0 && fabs( engUnits ) <= 0.0001 ) + { + // printf( "f: " ); + len = snprintf( buf, 49, "%.10f", engUnits ); + + while( --len > 0 && buf[len] == '0' ) + buf[len] = '\0'; + + ++len; + } + else + { + // printf( "g: " ); + len = snprintf( buf, 49, "%.10g", engUnits ); + } + + return std::string( buf, len ); +} diff --git a/pcbnew/class_dimension.cpp b/pcbnew/class_dimension.cpp index 7e890d0bd5..6582ad8ad0 100644 --- a/pcbnew/class_dimension.cpp +++ b/pcbnew/class_dimension.cpp @@ -606,3 +606,58 @@ EDA_ITEM* DIMENSION::Clone() const { return new DIMENSION( *this ); } + + +void DIMENSION::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(dimension %s\n", FormatBIU( m_Value ).c_str() ); + aFormatter->Print( aNestLevel+1, "(width %s)\n(layer %d)\n(tstamp %lX)\n", + FormatBIU( m_Width ).c_str(), GetLayer(), GetTimeStamp() ); + + m_Text.EDA_TEXT::Format( aFormatter, aNestLevel+1, aControlBits ); + + aFormatter->Print( aNestLevel+1, "(feature1 pts((xy %s %s) (xy %s %s)))\n", + FormatBIU( m_featureLineDOx ).c_str(), + FormatBIU( m_featureLineDOy ).c_str(), + FormatBIU( m_featureLineDFx ).c_str(), + FormatBIU( m_featureLineDFy ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(feature2 pts((xy %s %s) (xy %s %s)))\n", + FormatBIU( m_featureLineGOx ).c_str(), + FormatBIU( m_featureLineGOy ).c_str(), + FormatBIU( m_featureLineGFx ).c_str(), + FormatBIU( m_featureLineGFy ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(crossbar pts((xy %s %s) (xy %s %s)))\n", + FormatBIU( m_crossBarOx ).c_str(), + FormatBIU( m_crossBarOy ).c_str(), + FormatBIU( m_crossBarFx ).c_str(), + FormatBIU( m_crossBarFy ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(arrow1a pts((xy %s %s) (xy %s %s)))\n", + FormatBIU( m_arrowD1Ox ).c_str(), + FormatBIU( m_arrowD1Oy ).c_str(), + FormatBIU( m_arrowD1Fx ).c_str(), + FormatBIU( m_arrowD1Fy ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(arrow1b pts((xy %s %s) (xy %s %s)))\n", + FormatBIU( m_arrowD2Ox ).c_str(), + FormatBIU( m_arrowD2Oy ).c_str(), + FormatBIU( m_arrowD2Fx ).c_str(), + FormatBIU( m_arrowD2Fy ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(arrow2a pts((xy %s %s) (xy %s %s)))\n", + FormatBIU( m_arrowG1Ox ).c_str(), + FormatBIU( m_arrowG1Oy ).c_str(), + FormatBIU( m_arrowG1Fx ).c_str(), + FormatBIU( m_arrowG1Fy ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(arrow2b pts((xy %s %s) (xy %s %s)))\n", + FormatBIU( m_arrowG2Ox ).c_str(), + FormatBIU( m_arrowG2Oy ).c_str(), + FormatBIU( m_arrowG2Fx ).c_str(), + FormatBIU( m_arrowG2Fy ).c_str() ); + + aFormatter->Print( aNestLevel, ")\n" ); +} diff --git a/pcbnew/class_dimension.h b/pcbnew/class_dimension.h index cf60f5f519..648484ed8b 100644 --- a/pcbnew/class_dimension.h +++ b/pcbnew/class_dimension.h @@ -44,9 +44,9 @@ class DIMENSION : public BOARD_ITEM public: int m_Width; wxPoint m_Pos; - int m_Shape; + int m_Shape; /// Current always 0. int m_Unit; /// 0 = inches, 1 = mm - int m_Value; /// value of PCB dimensions. + int m_Value; /// value of PCB dimensions. TEXTE_PCB m_Text; int m_crossBarOx, m_crossBarOy, m_crossBarFx, m_crossBarFy; @@ -138,6 +138,9 @@ public: EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 6b3f1cac05..9f37dfbca5 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -284,7 +284,7 @@ void DRAWSEGMENT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int draw_mode, const wx } break; case S_CURVE: - m_BezierPoints = Bezier2Poly(m_Start,m_BezierC1, m_BezierC2, m_End); + m_BezierPoints = Bezier2Poly(m_Start, m_BezierC1, m_BezierC2, m_End); for (unsigned int i=1; i < m_BezierPoints.size(); i++) { if( mode == LINE ) @@ -544,6 +544,70 @@ EDA_ITEM* DRAWSEGMENT::Clone() const } +void DRAWSEGMENT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + unsigned i; + + aFormatter->Print( aNestLevel, "(draw " ); + + switch( m_Shape ) + { + case S_SEGMENT: // Line + aFormatter->Print( aNestLevel, "line (pts xy(%s) xy(%s))", + FormatBIU( m_Start ).c_str(), + FormatBIU( m_End ).c_str() ); + break; + + case S_CIRCLE: // Circle + aFormatter->Print( aNestLevel, "circle (center (xy %s)) (end (xy %s))", + FormatBIU( m_Start ).c_str(), + FormatBIU( m_End ).c_str() ); + break; + + case S_ARC: // Arc + aFormatter->Print( aNestLevel, "arc (start (xy %s)) (end (xy %s)) (angle %0.1f)", + FormatBIU( m_Start ).c_str(), + FormatBIU( m_End ).c_str(), + m_Angle ); + break; + + case S_POLYGON: // Polygon + aFormatter->Print( aNestLevel, "line (pts" ); + + for( i = 0; iPrint( aNestLevel, " (xy %s)", FormatBIU( m_PolyPoints[i] ).c_str() ); + + aFormatter->Print( aNestLevel, ")" ); + break; + + case S_CURVE: // Bezier curve + aFormatter->Print( aNestLevel, "curve pts(xy(%s) xy(%s) xy(%s) xy(%s))", + FormatBIU( m_Start ).c_str(), + FormatBIU( m_BezierC1 ).c_str(), + FormatBIU( m_BezierC2 ).c_str(), + FormatBIU( m_End ).c_str() ); + break; + + default: + wxFAIL_MSG( wxT( "Cannot format invalid DRAWSEGMENT type." ) ); + }; + + aFormatter->Print( aNestLevel, " (layer %d)", GetLayer() ); + + if( m_Width != 0 ) + aFormatter->Print( aNestLevel, " (width %s)", FormatBIU( m_Width ).c_str() ); + + if( GetTimeStamp() ) + aFormatter->Print( aNestLevel, " (tstamp %lX)", GetTimeStamp() ); + + if( GetStatus() ) + aFormatter->Print( aNestLevel, " (status %X)", GetStatus() ); + + aFormatter->Print( aNestLevel, ")\n" ); +} + + #if defined(DEBUG) void DRAWSEGMENT::Show( int nestLevel, std::ostream& os ) const { diff --git a/pcbnew/class_drawsegment.h b/pcbnew/class_drawsegment.h index c53a0caf0a..166c965763 100644 --- a/pcbnew/class_drawsegment.h +++ b/pcbnew/class_drawsegment.h @@ -51,7 +51,7 @@ protected: int m_Type; ///< Used in complex associations ( Dimensions.. ) double m_Angle; ///< Used only for Arcs: Arc angle in 1/10 deg wxPoint m_BezierC1; ///< Bezier Control Point 1 - wxPoint m_BezierC2; ///< Bezier Control Point 1 + wxPoint m_BezierC2; ///< Bezier Control Point 2 std::vector m_BezierPoints; std::vector m_PolyPoints; @@ -152,13 +152,13 @@ public: m_PolyPoints = aPoints; } - bool Save( FILE* aFile ) const; + bool Save( FILE* aFile ) const; - bool ReadDrawSegmentDescr( LINE_READER* aReader ); + bool ReadDrawSegmentDescr( LINE_READER* aReader ); - void Copy( DRAWSEGMENT* source ); + void Copy( DRAWSEGMENT* source ); - void Draw( EDA_DRAW_PANEL* panel, wxDC* DC, + void Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int aDrawMode, const wxPoint& aOffset = ZeroOffset ); virtual void DisplayInfo( EDA_DRAW_FRAME* frame ); @@ -219,6 +219,9 @@ public: virtual EDA_ITEM* Clone() const; + virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif diff --git a/pcbnew/class_edge_mod.cpp b/pcbnew/class_edge_mod.cpp index b1ef13eef4..d5511a2a33 100644 --- a/pcbnew/class_edge_mod.cpp +++ b/pcbnew/class_edge_mod.cpp @@ -279,6 +279,16 @@ EDA_ITEM* EDGE_MODULE::Clone() const } +void EDGE_MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(edge (start (xy %s)) (end (xy %s))\n", + FormatBIU( m_Start0 ).c_str(), FormatBIU( m_End0 ).c_str() ); + DRAWSEGMENT::Format( aFormatter, aNestLevel+1, aControlBits ); + aFormatter->Print( aNestLevel, ")\n" ); +} + + #if defined(DEBUG) void EDGE_MODULE::Show( int nestLevel, std::ostream& os ) const diff --git a/pcbnew/class_edge_mod.h b/pcbnew/class_edge_mod.h index 5c7a351ad0..32cf0c00cd 100644 --- a/pcbnew/class_edge_mod.h +++ b/pcbnew/class_edge_mod.h @@ -91,6 +91,9 @@ public: EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif diff --git a/pcbnew/class_mire.cpp b/pcbnew/class_mire.cpp index ffa17d2c9f..e989ef1d27 100644 --- a/pcbnew/class_mire.cpp +++ b/pcbnew/class_mire.cpp @@ -223,3 +223,23 @@ EDA_ITEM* PCB_TARGET::Clone() const { return new PCB_TARGET( *this ); } + + +void PCB_TARGET::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(target %c (pos (xy %s)) (size %s)", + ( m_Shape ) ? 'x' : '+', + FormatBIU( m_Pos ).c_str(), + FormatBIU( m_Size ).c_str() ); + + if( m_Width != 0 ) + aFormatter->Print( aNestLevel, " (width %s)", FormatBIU( m_Width ).c_str() ); + + aFormatter->Print( aNestLevel, " (layer %d)", GetLayer() ); + + if( GetTimeStamp() ) + aFormatter->Print( aNestLevel, " (tstamp %lX)", GetTimeStamp() ); + + aFormatter->Print( aNestLevel, ")\n" ); +} diff --git a/pcbnew/class_mire.h b/pcbnew/class_mire.h index 58d82dbb37..ab4aa42251 100644 --- a/pcbnew/class_mire.h +++ b/pcbnew/class_mire.h @@ -107,6 +107,9 @@ public: EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index 0b047eaa26..071777570b 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -663,6 +663,125 @@ EDA_ITEM* MODULE::Clone() const } +void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(module %s" , EscapedUTF8( m_LibRef ).c_str() ); + + if( IsLocked() ) + aFormatter->Print( aNestLevel, " locked" ); + + if( IsPlaced() ) + aFormatter->Print( aNestLevel, " placed" ); + + aFormatter->Print( aNestLevel, " (tedit %lX) (tstamp %lX)\n", + GetLastEditTime(), GetTimeStamp() ); + + aFormatter->Print( aNestLevel+1, "(at %s", FormatBIU( m_Pos ).c_str() ); + + if( m_Orient != 0.0 ) + aFormatter->Print( aNestLevel+1, " %0.1f", m_Orient ); + + aFormatter->Print( aNestLevel+1, ")\n" ); + + if( !m_Doc.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "(descr %s)\n", EscapedUTF8( m_Doc ).c_str() ); + + if( !m_KeyWord.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "(tags %s)\n", EscapedUTF8( m_KeyWord ).c_str() ); + + if( !m_Path.IsEmpty() ) + aFormatter->Print( aNestLevel+1, "(path %s)\n", EscapedUTF8( m_Path ).c_str() ); + + if( m_CntRot90 != 0 ) + aFormatter->Print( aNestLevel+1, "(autoplace-cost90 %d)\n", m_CntRot90 ); + + if( m_CntRot180 != 0 ) + aFormatter->Print( aNestLevel+1, "(autoplace-cost180 %d)\n", m_CntRot180 ); + + if( m_LocalSolderMaskMargin != 0 ) + aFormatter->Print( aNestLevel+1, "(solder-mask-margin %s)\n", + FormatBIU( m_LocalSolderMaskMargin ).c_str() ); + + if( m_LocalSolderPasteMargin != 0 ) + aFormatter->Print( aNestLevel+1, "(solder-paste-margin %s)\n", + FormatBIU( m_LocalSolderPasteMargin ).c_str() ); + + if( m_LocalSolderPasteMarginRatio != 0 ) + aFormatter->Print( aNestLevel+1, "(solder-paste-ratio %g)\n", + m_LocalSolderPasteMarginRatio ); + + if( m_LocalClearance != 0 ) + aFormatter->Print( aNestLevel+1, "(clearance %s)\n", + FormatBIU( m_LocalClearance ).c_str() ); + + if( m_ZoneConnection != UNDEFINED_CONNECTION ) + aFormatter->Print( aNestLevel+1, "(zone-connect %d)\n", m_ZoneConnection ); + + if( m_ThermalWidth != 0 ) + aFormatter->Print( aNestLevel+1, "(thermal-width %s)\n", + FormatBIU( m_ThermalWidth ).c_str() ); + + if( m_ThermalGap != 0 ) + aFormatter->Print( aNestLevel+1, "(thermal-gap %s)\n", + FormatBIU( m_ThermalGap ).c_str() ); + + // Attributes + if( m_Attributs != MOD_DEFAULT ) + { + aFormatter->Print( aNestLevel+1, "(attr " ); + + if( m_Attributs & MOD_CMS ) + aFormatter->Print( aNestLevel+1, " smd" ); + + if( m_Attributs & MOD_VIRTUAL ) + aFormatter->Print( aNestLevel+1, " virtual" ); + + aFormatter->Print( aNestLevel+1, ")\n" ); + } + + m_Reference->Format( aFormatter, aNestLevel+1, aControlBits ); + m_Value->Format( aFormatter, aNestLevel+1, aControlBits ); + + // Save drawing elements. + for( BOARD_ITEM* gr = m_Drawings; gr; gr = gr->Next() ) + gr->Format( aFormatter+1, aNestLevel, aControlBits ); + + // Save pads. + for( D_PAD* pad = m_Pads; pad; pad = pad->Next() ) + pad->Format( aFormatter+1, aNestLevel, aControlBits ); + + // Save 3D info. + for( S3D_MASTER* t3D = m_3D_Drawings; t3D; t3D = t3D->Next() ) + { + if( !t3D->m_Shape3DName.IsEmpty() ) + { + aFormatter->Print( aNestLevel+1, "(3d-shape %s\n", + EscapedUTF8( t3D->m_Shape3DName ).c_str() ); + + aFormatter->Print( aNestLevel+2, "(at (xyz %.16g %.16g %.16g))\n", + t3D->m_MatPosition.x, + t3D->m_MatPosition.y, + t3D->m_MatPosition.z ); + + aFormatter->Print( aNestLevel+2, "(scale (xyz %lf %lf %lf))\n", + t3D->m_MatScale.x, + t3D->m_MatScale.y, + t3D->m_MatScale.z ); + + aFormatter->Print( aNestLevel+2, "(rotate (xyz %.16g %.16g %.16g))\n", + t3D->m_MatRotation.x, + t3D->m_MatRotation.y, + t3D->m_MatRotation.z ); + + aFormatter->Print( aNestLevel+1, ")\n" ); + } + } + + aFormatter->Print( aNestLevel, ")\n" ); +} + + #if defined(DEBUG) void MODULE::Show( int nestLevel, std::ostream& os ) const diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index 008b3fd972..2cb85f86e7 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -346,6 +346,9 @@ public: EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif diff --git a/pcbnew/class_netclass.cpp b/pcbnew/class_netclass.cpp index ada1125373..152d577ef1 100644 --- a/pcbnew/class_netclass.cpp +++ b/pcbnew/class_netclass.cpp @@ -290,28 +290,55 @@ void NETCLASS::Show( int nestLevel, std::ostream& os ) const #endif + int NETCLASS::GetTrackMinWidth() const { return m_Parent->GetDesignSettings().m_TrackMinWidth; } + int NETCLASS::GetViaMinDiameter() const { return m_Parent->GetDesignSettings().m_ViasMinSize; } + int NETCLASS::GetViaMinDrill() const { return m_Parent->GetDesignSettings().m_ViasMinDrill; } + int NETCLASS::GetuViaMinDiameter() const { return m_Parent->GetDesignSettings().m_MicroViasMinSize; } + int NETCLASS::GetuViaMinDrill() const { return m_Parent->GetDesignSettings().m_MicroViasMinDrill; } + +void NETCLASS::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(net-class %s %s\n", + EscapedUTF8( GetName() ).c_str(), + EscapedUTF8( GetDescription() ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(clearance %d)\n", GetClearance() ); + aFormatter->Print( aNestLevel+1, "(trace-width %d)\n", GetTrackWidth() ); + + aFormatter->Print( aNestLevel+1, "(via-dia %d)\n", GetViaDiameter() ); + aFormatter->Print( aNestLevel+1, "(via-drill %d)\n", GetViaDrill() ); + + aFormatter->Print( aNestLevel+1, "(uvia-dia %d)\n", GetuViaDiameter() ); + aFormatter->Print( aNestLevel+1, "(uvia-drill %d)\n", GetuViaDrill() ); + + for( NETCLASS::const_iterator it = begin(); it!= end(); ++it ) + aFormatter->Print( aNestLevel+1, "(add-net %s)\n", EscapedUTF8( *it ).c_str() ); + + aFormatter->Print( aNestLevel, ")\n" ); +} diff --git a/pcbnew/class_netclass.h b/pcbnew/class_netclass.h index 072f248a6e..e5f0923d4e 100644 --- a/pcbnew/class_netclass.h +++ b/pcbnew/class_netclass.h @@ -36,6 +36,8 @@ #include +#include + class LINE_READER; class BOARD; @@ -212,6 +214,18 @@ public: */ bool ReadDescr( LINE_READER* aReader ); + /** + * Function Format + * outputs the net class to \a aFormatter in s-expression form. + * + * @param aFormatter The #OUTPUTFORMATTER object to write to. + * @param aNestLevel The indentation next level. + * @param aControlBits The control bit definition for object specific formatting. + * @throw IO_ERROR on write error. + */ + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif @@ -243,7 +257,7 @@ public: /** * Function Clear - * destroys any constained NETCLASS instances except the Default one. + * destroys any contained NETCLASS instances except the Default one. */ void Clear(); @@ -306,4 +320,3 @@ public: }; #endif // CLASS_NETCLASS_H - diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index d0846da373..55b80320bf 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -829,6 +829,100 @@ EDA_ITEM* D_PAD::Clone() const } +void D_PAD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + std::string shape; + + switch( m_PadShape ) + { + case PAD_CIRCLE: shape = "circle"; break; + case PAD_RECT: shape = "rectangle"; break; + case PAD_OVAL: shape = "oval"; break; + case PAD_TRAPEZOID: shape = "trapezoid"; break; + + default: + THROW_IO_ERROR( wxString::Format( _( "unknown pad type: %d"), m_PadShape ) ); + } + + std::string type; + + switch( m_Attribute ) + { + case PAD_STANDARD: type = "thru-hole"; break; + case PAD_SMD: type = "smd"; break; + case PAD_CONN: type = "connect"; break; + case PAD_HOLE_NOT_PLATED: type = "np-thru-hole"; break; + + default: + THROW_IO_ERROR( wxString::Format( _( "unknown pad attribute: %d" ), m_Attribute ) ); + } + + aFormatter->Print( aNestLevel, "(pad %s %s %s (size %s)\n", + EscapedUTF8( GetPadName() ).c_str(), type.c_str(), shape.c_str(), + FormatBIU( m_Size ).c_str() ); + aFormatter->Print( aNestLevel+1, "(at %s", FormatBIU( m_Pos0 ).c_str() ); + + if( m_Orient != 0.0 ) + aFormatter->Print( aNestLevel+1, " %0.1f", m_Orient ); + + aFormatter->Print( aNestLevel+1, ")\n" ); + + if( (m_Drill.GetWidth() > 0) || (m_Drill.GetHeight() > 0) ) + { + std::string drill = (m_Drill.GetHeight() > 0) ? FormatBIU( m_Drill ).c_str() : + FormatBIU( m_Drill.GetWidth() ).c_str(); + aFormatter->Print( aNestLevel+1, "(drill %s\n", drill.c_str() ); + + if( (m_Offset.x > 0) || (m_Offset.y > 0) ) + { + std::string drillOffset = ( m_Offset.x > 0 ) ? + FormatBIU( m_Offset ).c_str() : + FormatBIU( m_Offset.x ).c_str(); + aFormatter->Print( aNestLevel+1, " (offset %s)", drillOffset.c_str() ); + } + + aFormatter->Print( aNestLevel+1, ")\n" ); + } + + aFormatter->Print( aNestLevel+1, "(layers %08X)\n", GetLayerMask() ); + + aFormatter->Print( aNestLevel+1, "(net %d %s)\n", GetNet(), EscapedUTF8( m_Netname ).c_str() ); + + if( m_LengthDie != 0 ) + aFormatter->Print( aNestLevel+1, "(die-length %s)\n", FormatBIU( m_LengthDie ).c_str() ); + + if( m_LocalSolderMaskMargin != 0 ) + aFormatter->Print( aNestLevel+1, "(solder-mask-margin %s)\n", + FormatBIU( m_LocalSolderMaskMargin ).c_str() ); + + if( m_LocalSolderPasteMargin != 0 ) + aFormatter->Print( aNestLevel+1, "(solder-paste-margin %s)\n", + FormatBIU( m_LocalSolderPasteMargin ).c_str() ); + + if( m_LocalSolderPasteMarginRatio != 0 ) + aFormatter->Print( aNestLevel+1, "(solder-paste-margin-ratio %g)\n", + m_LocalSolderPasteMarginRatio ); + + if( m_LocalClearance != 0 ) + aFormatter->Print( aNestLevel+1, "(clearance %s)\n", + FormatBIU( m_LocalClearance ).c_str() ); + + if( GetZoneConnection() != UNDEFINED_CONNECTION ) + aFormatter->Print( aNestLevel+1, "(zone-connect %d)\n", GetZoneConnection() ); + + if( GetThermalWidth() != 0 ) + aFormatter->Print( aNestLevel+1, "(thermal-width %s)\n", + FormatBIU( GetThermalWidth() ).c_str() ); + + if( GetThermalGap() != 0 ) + aFormatter->Print( aNestLevel+1, "(thermal-gap %s)\n", + FormatBIU( GetThermalGap() ).c_str() ); + + aFormatter->Print( aNestLevel, ")\n" ); +} + + #if defined(DEBUG) void D_PAD::Show( int nestLevel, std::ostream& os ) const diff --git a/pcbnew/class_pad.h b/pcbnew/class_pad.h index 339ab23ef2..c2577d8f51 100644 --- a/pcbnew/class_pad.h +++ b/pcbnew/class_pad.h @@ -176,7 +176,7 @@ public: /** * Function GetOrientation - * returns the rotation angle of the pad in tenths of degress, but soon degrees. + * returns the rotation angle of the pad in tenths of degrees, but soon degrees. */ double GetOrientation() const { return m_Orient; } @@ -398,6 +398,9 @@ public: EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif diff --git a/pcbnew/class_pcb_text.cpp b/pcbnew/class_pcb_text.cpp index 263cb38f9b..ae20bd3ada 100644 --- a/pcbnew/class_pcb_text.cpp +++ b/pcbnew/class_pcb_text.cpp @@ -191,6 +191,22 @@ EDA_ITEM* TEXTE_PCB::Clone() const } +void TEXTE_PCB::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(pcb-text (layer %d)", GetLayer() ); + + if( GetTimeStamp() ) + aFormatter->Print( aNestLevel, " (tstamp %lX)", GetTimeStamp() ); + + aFormatter->Print( aNestLevel, "\n" ); + + EDA_TEXT::Format( aFormatter, aNestLevel+1, aControlBits ); + + aFormatter->Print( aNestLevel, ")\n" ); +} + + #if defined(DEBUG) void TEXTE_PCB::Show( int nestLevel, std::ostream& os ) const diff --git a/pcbnew/class_pcb_text.h b/pcbnew/class_pcb_text.h index 067373e859..ad727f3b93 100644 --- a/pcbnew/class_pcb_text.h +++ b/pcbnew/class_pcb_text.h @@ -91,7 +91,7 @@ public: wxString GetClass() const { - return wxT("PTEXT"); + return wxT( "PTEXT" ); } /** @@ -119,6 +119,9 @@ public: EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; #endif diff --git a/pcbnew/class_text_mod.cpp b/pcbnew/class_text_mod.cpp index 279489a06f..87758d13ff 100644 --- a/pcbnew/class_text_mod.cpp +++ b/pcbnew/class_text_mod.cpp @@ -480,6 +480,26 @@ EDA_ITEM* TEXTE_MODULE::Clone() const } +void TEXTE_MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + MODULE* parent = (MODULE*) GetParent(); + double orient = GetOrientation(); + + // Due to the Pcbnew history, m_Orient is saved in screen value + // but it is handled as relative to its parent footprint + if( parent ) + orient += parent->GetOrientation(); + + aFormatter->Print( aNestLevel, "(module-text %d (at %s %0.1f)%s)\n", m_Type, + FormatBIU( m_Pos0 ).c_str(), orient, (m_NoShow) ? "hide" : "" ); + + EDA_TEXT::Format( aFormatter+1, aNestLevel, aControlBits ); + + aFormatter->Print( aNestLevel, ")\n" ); +} + + #if defined(DEBUG) void TEXTE_MODULE::Show( int nestLevel, std::ostream& os ) const diff --git a/pcbnew/class_text_mod.h b/pcbnew/class_text_mod.h index 3ace4bf961..0336baaaaf 100644 --- a/pcbnew/class_text_mod.h +++ b/pcbnew/class_text_mod.h @@ -175,6 +175,9 @@ public: EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload #endif diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 7a323c3db0..574bfaf0df 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -67,7 +67,7 @@ static bool ShowClearance( const TRACK* aTrack ) /* * return true if the dist between p1 and p2 < max_dist - * Currently in test (currently rasnest algos work only if p1 == p2) + * Currently in test (currently ratsnest algos work only if p1 == p2) */ inline bool IsNear( wxPoint& p1, wxPoint& p2, int max_dist ) { @@ -1559,6 +1559,47 @@ wxString TRACK::GetSelectMenuText() const } +void TRACK::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + if( Type() == PCB_VIA_T ) + { + std::string type; + + switch( m_Shape ) + { + case VIA_THROUGH: type = "thru"; break; + case VIA_BLIND_BURIED: type = "blind"; break; + case VIA_MICROVIA: type = "micro"; break; + default: + THROW_IO_ERROR( wxString::Format( _( "unknown via type %d" ), m_Shape ) ); + } + + aFormatter->Print( aNestLevel, "(via %s (at %s) (size %s)", type.c_str(), + FormatBIU( m_Start ).c_str(), FormatBIU( m_Width ).c_str() ); + + if( m_Drill != UNDEFINED_DRILL_DIAMETER ) + aFormatter->Print( aNestLevel, " (drill %s)", FormatBIU( m_Drill ).c_str() ); + } + else + { + aFormatter->Print( aNestLevel, "(segment (start %s) (end %s) (width %s)", + FormatBIU( m_Start ).c_str(), FormatBIU( m_End ).c_str(), + FormatBIU( m_Width ).c_str() ); + } + + aFormatter->Print( aNestLevel, " (layer %d) (net %d)", GetLayer(), GetNet() ); + + if( GetTimeStamp() != 0 ) + aFormatter->Print( aNestLevel, " (tstamp %lX)", GetTimeStamp() ); + + if( GetStatus() != 0 ) + aFormatter->Print( aNestLevel, " (status %X)", GetStatus() ); + + aFormatter->Print( aNestLevel, ")\n" ); +} + + #if defined(DEBUG) void TRACK::Show( int nestLevel, std::ostream& os ) const diff --git a/pcbnew/class_track.h b/pcbnew/class_track.h index 05e61b07d5..7974d6ec24 100644 --- a/pcbnew/class_track.h +++ b/pcbnew/class_track.h @@ -40,11 +40,13 @@ class TRACK; class D_PAD; // Via attributes (m_Shape parameter) -#define VIA_THROUGH 3 /* Always a through hole via */ -#define VIA_BLIND_BURIED 2 /* this via can be on internal layers */ -#define VIA_MICROVIA 1 /* this via which connect from an external layer - * to the near neighbor internal layer */ -#define VIA_NOT_DEFINED 0 /* not yet used */ +#define VIA_THROUGH 3 /* Always a through hole via */ +#define VIA_BLIND_BURIED 2 /* this via can be on internal layers */ +#define VIA_MICROVIA 1 /* this via which connect from an external layer + * to the near neighbor internal layer */ +#define VIA_NOT_DEFINED 0 /* not yet used */ + +#define UNDEFINED_DRILL_DIAMETER -1 //< Undefined via drill diameter. /** @@ -206,9 +208,9 @@ public: /** * Function SetDrillDefault - * Set the drill value for vias at default value (-1) + * sets the drill value for vias to the default value #UNDEFINED_DRILL_DIAMETER. */ - void SetDrillDefault() { m_Drill = -1; } + void SetDrillDefault() { m_Drill = UNDEFINED_DRILL_DIAMETER; } /** * Function IsDrillDefault @@ -333,6 +335,9 @@ public: virtual EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined (DEBUG) void Show( int nestLevel, std::ostream& os ) const; // overload @@ -389,7 +394,7 @@ public: * For a via m_Layer contains the 2 layers : * top layer and bottom layer used by the via. * The via connect all layers from top layer to bottom layer - * 4 bits for the first layer and 4 next bits for the secaon layer + * 4 bits for the first layer and 4 next bits for the second layer * @param top_layer = first layer connected by the via * @param bottom_layer = last layer connected by the via */ diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index f97ec7339b..835decc853 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -954,3 +954,124 @@ wxString ZONE_CONTAINER::GetSelectMenuText() const return text; } + + +void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(zone (net %d %s) (layer %d) (tstamp %lX)\n", + GetNet(), EscapedUTF8( m_Netname ).c_str(), GetLayer(), GetTimeStamp() ); + + + // Save the outline aux info + std::string hatch; + + switch( GetHatchStyle() ) + { + default: + case CPolyLine::NO_HATCH: hatch = "none"; break; + case CPolyLine::DIAGONAL_EDGE: hatch = "edge"; break; + case CPolyLine::DIAGONAL_FULL: hatch = "full"; break; + } + + aFormatter->Print( aNestLevel+1, "(hatch %s)\n", hatch.c_str() ); + + if( m_priority > 0 ) + aFormatter->Print( aNestLevel+1, "(priority %d)\n", m_priority ); + + // Save pad option and clearance + std::string padoption; + + switch( GetPadConnection() ) + { + default: + case PAD_IN_ZONE: padoption = "yes"; break; + case THERMAL_PAD: padoption = "use-thermal"; break; + case PAD_NOT_IN_ZONE: padoption = "no"; break; + } + + aFormatter->Print( aNestLevel+1, "(connect-pads %s (clearance %s))\n", + padoption.c_str(), FormatBIU( m_ZoneClearance ).c_str() ); + + aFormatter->Print( aNestLevel+1, "(min-thickness %s)\n", + FormatBIU( m_ZoneMinThickness ).c_str() ); + + aFormatter->Print( aNestLevel+1, + "(fill %s (mode %s) (arc-segments %d) (thermal-gap %s) (thermal-bridge-width %s)\n", + (m_IsFilled) ? "yes" : "no", + (m_FillMode) ? "segment" : "polygon", + m_ArcToSegmentsCount, + FormatBIU( m_ThermalReliefGap ).c_str(), + FormatBIU( m_ThermalReliefCopperBridge ).c_str() ); + + std::string smoothing; + + switch( cornerSmoothingType ) + { + case ZONE_SETTINGS::SMOOTHING_NONE: smoothing = "none"; break; + case ZONE_SETTINGS::SMOOTHING_CHAMFER: smoothing = "chamfer"; break; + case ZONE_SETTINGS::SMOOTHING_FILLET: smoothing = "fillet"; break; + default: + THROW_IO_ERROR( wxString::Format( _( "unknown zone corner smoothing type %d" ), + cornerSmoothingType ) ); + } + + aFormatter->Print( aNestLevel+1, "(smoothing %s (radius %s))\n", + smoothing.c_str(), FormatBIU( cornerRadius ).c_str() ); + + const std::vector< CPolyPt >& cv = m_Poly->corner; + + if( cv.size() ) + { + aFormatter->Print( aNestLevel+1, "(polygon (pts" ); + + for( std::vector< CPolyPt >::const_iterator it = cv.begin(); it != cv.end(); ++it ) + { + aFormatter->Print( aNestLevel+1, " (xy %s %s)", + FormatBIU( it->x ).c_str(), FormatBIU( it->y ).c_str() ); + + if( it->end_contour ) + aFormatter->Print( aNestLevel+1, ")\n(polygon (pts" ); + } + + aFormatter->Print( aNestLevel+1, ")\n" ); + } + + // Save the PolysList + const std::vector< CPolyPt >& fv = m_FilledPolysList; + + if( fv.size() ) + { + aFormatter->Print( aNestLevel+1, "(filled-polygon (pts" ); + + for( std::vector< CPolyPt >::const_iterator it = fv.begin(); it != fv.end(); ++it ) + { + aFormatter->Print( aNestLevel+1, " (xy %s %s)", + FormatBIU( it->x ).c_str(), FormatBIU( it->y ).c_str() ); + + if( it->end_contour ) + aFormatter->Print( aNestLevel+1, ")\n(filled-polygon (pts" ); + } + + aFormatter->Print( aNestLevel+1, ")\n" ); + } + + // Save the filling segments list + const std::vector< SEGMENT >& segs = m_FillSegmList; + + if( segs.size() ) + { + aFormatter->Print( aNestLevel+1, "(fill-segments\n" ); + + for( std::vector< SEGMENT >::const_iterator it = segs.begin(); it != segs.end(); ++it ) + { + aFormatter->Print( aNestLevel+2, "(pts (xy %s) (xy %s))\n", + FormatBIU( it->m_Start ).c_str(), + FormatBIU( it->m_End ).c_str() ); + } + + aFormatter->Print( aNestLevel+1, ")\n" ); + } + + aFormatter->Print( aNestLevel, ")\n" ); +} diff --git a/pcbnew/class_zone.h b/pcbnew/class_zone.h index 96cb09d633..a3d93c5642 100644 --- a/pcbnew/class_zone.h +++ b/pcbnew/class_zone.h @@ -122,9 +122,9 @@ private: CPolyLine* smoothedPoly; // Corner-smoothed version of m_Poly int cornerSmoothingType; unsigned int cornerRadius; - // Priority: when a zone outline is inside and other zone, if its priority is highter + // Priority: when a zone outline is inside and other zone, if its priority is higher // the other zone priority, it will be created inside. - // if priorities are equal, a DRC erroc is set + // if priorities are equal, a DRC error is set unsigned m_priority; ZoneConnection m_PadConnection; @@ -552,9 +552,11 @@ public: virtual BITMAP_DEF GetMenuImage() const { return add_zone_xpm; } - /** @copydoc EDA_ITEM::Clone() */ virtual EDA_ITEM* Clone() const; + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif diff --git a/pcbnew/kicad_plugin.cpp b/pcbnew/kicad_plugin.cpp index dc795eb99f..6efe49df63 100644 --- a/pcbnew/kicad_plugin.cpp +++ b/pcbnew/kicad_plugin.cpp @@ -89,9 +89,6 @@ #include -//#define KICAD_NANOMETRE - - #define VERSION_ERROR_FORMAT _( "File '%s' is format version: %d.\nI only support format version <= %d.\nPlease upgrade PCBNew to load this file." ) #define UNKNOWN_GRAPHIC_FORMAT _( "unknown graphic type: %d") #define UNKNOWN_PAD_FORMAT _( "unknown pad type: %d") @@ -344,7 +341,7 @@ void KICAD_PLUGIN::loadGENERAL() if( !strcmp( data, "mm" ) ) { -#if defined(KICAD_NANOMETRE) +#if defined(USE_PCBNEW_NANOMETERS) diskToBiu = 1000000.0; #else THROW_IO_ERROR( _( "May not load new *.brd file into 'PCBNew compiled for deci-mils'" ) ); @@ -2659,7 +2656,7 @@ void KICAD_PLUGIN::init( PROPERTIES* aProperties ) m_props = aProperties; // conversion factor for saving RAM BIUs to KICAD legacy file format. -#if defined(KICAD_NANOMETRE) +#if defined(USE_PCBNEW_NANOMETERS) biuToDisk = 1/1000000.0; // BIUs are nanometers & file is mm #else biuToDisk = 1.0; // BIUs are deci-mils @@ -2673,7 +2670,7 @@ void KICAD_PLUGIN::init( PROPERTIES* aProperties ) // then, during the file loading process, to start a conversion from // mm to nanometers. -#if defined(KICAD_NANOMETRE) +#if defined(USE_PCBNEW_NANOMETERS) diskToBiu = 2540.0; // BIUs are nanometers #else diskToBiu = 1.0; // BIUs are deci-mils @@ -2750,7 +2747,7 @@ void KICAD_PLUGIN::saveGENERAL() const fprintf( m_fp, "encoding utf-8\n" ); // tell folks the units used within the file, as early as possible here. -#if defined(KICAD_NANOMETRE) +#if defined(USE_PCBNEW_NANOMETERS) fprintf( m_fp, "Units mm\n" ); #else fprintf( m_fp, "Units deci-mils\n" ); From 6a39f5bd1ca10cabde2c35823a64c0ed5e4f61b7 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Mon, 2 Apr 2012 20:11:00 +0200 Subject: [PATCH 41/68] pcb_calculator: enhancement in Regulators page dialog: * support for 3 terminal regulators * add a data file management to store parameters for regulators ( name, vref value, Iadj value, type) Needs some refinements, but it is already very useable. Commit dialog page setting patch from Alexander Zakamaldin --- common/dialogs/dialog_page_settings.cpp | 3 + pcb_calculator/CMakeLists.txt | 11 + pcb_calculator/bitmaps/regul_3pins.xpm | 369 +++ .../bitmaps/sources/regul_3pins.png | Bin 0 -> 6003 bytes .../bitmaps/sources/regul_3pins.svg | 229 ++ pcb_calculator/class_regulator_data.h | 142 + pcb_calculator/datafile_read_write.cpp | 285 ++ pcb_calculator/datafile_read_write.h | 65 + .../dialogs/dialog_regulator_data.fbp | 1163 +++++++ .../dialogs/dialog_regulator_data_base.cpp | 105 + .../dialogs/dialog_regulator_data_base.h | 67 + .../dialogs/pcb_calculator_frame_base.cpp | 191 +- .../dialogs/pcb_calculator_frame_base.fbp | 2916 ++++++++++++----- .../dialogs/pcb_calculator_frame_base.h | 45 +- pcb_calculator/pcb_calculator.cpp | 4 + pcb_calculator/pcb_calculator.h | 42 + .../pcb_calculator_datafile.keywords | 5 + pcb_calculator/pcb_calculator_frame.cpp | 120 +- pcb_calculator/regulators_funct.cpp | 271 +- pcbnew/netlist_reader_kicad.cpp | 2 +- 20 files changed, 5066 insertions(+), 969 deletions(-) create mode 100644 pcb_calculator/bitmaps/regul_3pins.xpm create mode 100644 pcb_calculator/bitmaps/sources/regul_3pins.png create mode 100644 pcb_calculator/bitmaps/sources/regul_3pins.svg create mode 100644 pcb_calculator/class_regulator_data.h create mode 100644 pcb_calculator/datafile_read_write.cpp create mode 100644 pcb_calculator/datafile_read_write.h create mode 100644 pcb_calculator/dialogs/dialog_regulator_data.fbp create mode 100644 pcb_calculator/dialogs/dialog_regulator_data_base.cpp create mode 100644 pcb_calculator/dialogs/dialog_regulator_data_base.h create mode 100644 pcb_calculator/pcb_calculator_datafile.keywords diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp index f0cb41d6e7..ebc3fbdd8f 100644 --- a/common/dialogs/dialog_page_settings.cpp +++ b/common/dialogs/dialog_page_settings.cpp @@ -438,6 +438,9 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ), PAGE_INFO::SetCustomWidthMils( m_layout_size.x ); PAGE_INFO::SetCustomHeightMils( m_layout_size.y ); + m_pageInfo.SetWidthMils( m_layout_size.x ); + m_pageInfo.SetHeightMils( m_layout_size.y ); + m_pageInfo.SetPortrait( m_layout_size.x < m_layout_size.y ); } } else diff --git a/pcb_calculator/CMakeLists.txt b/pcb_calculator/CMakeLists.txt index 48c71170f2..02ef447d2c 100644 --- a/pcb_calculator/CMakeLists.txt +++ b/pcb_calculator/CMakeLists.txt @@ -18,10 +18,12 @@ set(PCB_CALCULATOR_SRCS params_read_write.cpp pcb_calculator.cpp pcb_calculator_frame.cpp + datafile_read_write.cpp regulators_funct.cpp tracks_width_versus_current.cpp transline_ident.cpp UnitSelector.cpp + pcb_calculator_datafile_keywords.cpp transline/transline.cpp transline/c_microstrip.cpp transline/microstrip.cpp @@ -33,6 +35,7 @@ set(PCB_CALCULATOR_SRCS transline_dlg_funct.cpp attenuators/attenuator_classes.cpp dialogs/pcb_calculator_frame_base.cpp + dialogs/dialog_regulator_data_base.cpp ) if(WIN32) @@ -54,6 +57,14 @@ if(APPLE) set(MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) endif(APPLE) +# auto-generate pcb_calculator_datafile.h and pcb_calculator_datafile_keywords.cpp +# for the storage data file format. +make_lexer( + ${CMAKE_CURRENT_SOURCE_DIR}/pcb_calculator_datafile.keywords + ${CMAKE_CURRENT_SOURCE_DIR}/pcb_calculator_datafile_lexer.h + ${CMAKE_CURRENT_SOURCE_DIR}/pcb_calculator_datafile_keywords.cpp + PCBCALC_DATA_T + ) add_executable(pcb_calculator WIN32 MACOSX_BUNDLE diff --git a/pcb_calculator/bitmaps/regul_3pins.xpm b/pcb_calculator/bitmaps/regul_3pins.xpm new file mode 100644 index 0000000000..09696b1b50 --- /dev/null +++ b/pcb_calculator/bitmaps/regul_3pins.xpm @@ -0,0 +1,369 @@ +/* XPM */ +static const char *regul_3pins_xpm[] = { +/* columns rows colors chars-per-pixel */ +"255 170 193 2", +"+X c Black", +"2. c #E7DA69", +".X c #F2F26C", +"( c #DFC960", +"= c #810000", +"w. c #CFA750", +"$ c #F2F274", +"Y. c #840A05", +"L c #B77437", +"/. c #0303FD", +";. c #D2AE53", +"w c #920000", +"+. c #CA9D4B", +"f c #C28C43", +"^. c #E5D767", +"^ c #DDC65F", +". c #FFFFFF", +"z c #D5B557", +"|. c #A24820", +"S. c #AA592B", +"!. c #A24823", +"| c #9A371A", +" X c #B57132", +"} c #922612", +"=. c #8A150A", +"x c #AD602E", +"t. c #A54F26", +"3. c #9D3E1E", +"6 c #F3F36E", +"' c #8D1C0D", +"D c #8D1C0E", +"0. c #850B05", +"R c #B06732", +"e c #8E0000", +"p c #E3D164", +"*. c #A04521", +"S c #983419", +"O. c #D3AF54", +" . c #CB9E4C", +"P. c #EEE96F", +"L. c #881209", +"<. c #800100", +"y. c #E6D868", +"J c #D6B657", +"I. c #CEA54F", +"$X c #790000", +"a. c #F1F073", +"c c #C69447", +",. c #E1CE63", +"3 c #A65024", +"N. c #9E3F1E", +"D. c #C18A42", +"r c #962E15", +"d c #B9793A", +"` c #DCC45E", +"m. c #B16832", +"XX c #BC8039", +"m c #A14622", +"oX c #993518", +"4. c #C49146", +"p. c #891309", +"9 c #880000", +"F c #810201", +"+ c #4343D8", +"`. c #48006F", +"OX c #9C3C1B", +"$. c #942B14", +"T c #8C1A0C", +"j c #F2F174", +"c. c #840904", +"- c #2800AF", +"{ c #EAE06B", +"J. c #A75428", +"< c #860000", +"a c #DABE5B", +"! c #973218", +"M. c #8F2110", +"T. c #CA9C4B", +"K c #871008", +"W c #EDE76F", +"b c #C28B42", +"q c #AA0000", +"% c #1D1DEE", +"I c #DDC55F", +"; c #550055", +"W. c #D5B456", +"# c #3C3CDD", +"4 c #840000", +"n c #F0EE72", +"7 c #BD813A", +"k c #C59246", +"V. c #E8DD6A", +"k. c #BD813E", +", c #350095", +"(. c #0E0EF7", +"P c #D0AA51", +"}. c #C0883D", +"* c #820000", +"X. c #B87739", +" c #3729C3", +"~ c #B06631", +"Z c #A04421", +"%. c #C38F45", +"Y c #B36D34", +"Q c #EEE86F", +"U. c #AB5C2C", +"X c #800000", +"n. c #932914", +"h. c #8B180B", +"V c #830703", +"v. c #E9DE6A", +"5 c #B67133", +"j. c #E1CD62", +"] c #9E411F", +"Q. c #D9BC5A", +": c #40007F", +"[. c #400080", +".. c #C99A4A", +"]. c #4F0060", +">. c #C18942", +"H c #E4D465", +"C. c #B97839", +"'. c #2000C0", +"R. c #DCC35E", +"-. c #EFEC71", +"#X c #7C0000", +"y c #993418", +"o c #0000FF", +"K. c #E7DB69", +"z. c #BC7F3D", +"r. c #CFA851", +"N c #A44C24", +"E. c #BF8640", +"@ c #0808FB", +"1. c #B77538", +"v c #8C190C", +"G. c #840804", +":. c #CA9E4C", +"_ c #C28D44", +"O c #1010F6", +"s. c #8F200F", +"s c #B26B33", +"E c #870F07", +"A. c #AA5A2B", +"~. c #A24923", +"@X c #780000", +"l. c #922713", +"6. c #8A160A", +"). c #0101FE", +"@. c #F0ED72", +"M c #820502", +"C c #E8DC6A", +"8 c #890000", +"2 c #C89845", +"&. c #C89849", +"g. c #EBE36D", +"/ c #C08741", +"u c #B87638", +"7. c #DBC15C", +"_. c #2900AE", +"f. c #B06530", +"o. c #D3B054", +"g c #CB9F4C", +"G c #EEEA70", +"H. c #DEC860", +"l c #B36C34", +"F. c #AB5B2C", +"> c #1800CF", +"b. c #CEA650", +"5. c #C69547", +") c #9B391B", +"8. c #B67337", +"t c #AE622C", +"0 c #850000", +"#. c #8B170B", +"A c #AE622F", +"B. c #830603", +"{. c #9E401C", +"q. c #A65127", +"Z. c #9E401E", +"e. c #962F16", +"d. c #8E1E0F", +"i c #B16932", +"9. c #ECE46D", +"1 c #A14720", +"& c #830000", +"u. c #A14722", +"h c #DCC25D", +"U c #99361A", +"i. c #D4B155", +"B c #912512", +"x. c #EFEB71", +"[ c #810301", +/* pixels */ +" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X . . . . . . . . . . X X X . . . . . . X X X X X X X X . . . . . . . X X X X . . . . . . . . X X X . . X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . ", +" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X . . . . . . . . . X X X X . . . . X X X X X X X X X X X X . . . . . X X X X . . . . . . . . X X X . . X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . ", +" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . X X X X . . . X X X X X X X X X X X X X X . . . . X X X X . . . . . . . . X X X . . X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . ", +" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X . . . . . . . . X X X . . . X X X X X . . . . . . X X X X X . . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X . . . . . . . X X X X . . . X X X X . . . . . . . . X X X X . . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . X X X X . . X X X X . . . . . . . . . . X X X . . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X . . . . . . X X X . . . X X X X . . . . . . . . . . X X X X . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . . . . . . . . . . . . . . . . X X X X . . . . . X X X X . . . X X X X . . . . . . . . . . X X X X . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . . . . . . . . . . . . . . . . . X X X . . . . . X X X . . . . X X X . . . . . . . . . . . . X X X . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . o o O + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @ o o . . . . . . . . . . . . . . . . . X X X X . . . X X X X . . . . X X X . . . . . . . . . . . . X X X . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . X X X . . . X X X X . . . . X X X . . . . . . . . . . . X X X X . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . X X X X . . X X X . . . . . X X X X . . . . . . . . . . X X X X . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . X X X X . X X X X . . . . . X X X X . . . . . . . . . . X X X X . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . & * . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . X X X . X X X . . . . . . X X X X . . . . . . . . . X X X X . . . X X X X . . . . . . . . X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . X X X X X X X . . . . . . . X X X X . . . . . . . . X X X X . . . . X X X X . . . . . . X X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . X X X X . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . X X X X X X . . . . . . . X X X X X X . . . . X X X X X . . . . . X X X X . . . . . X X X X X . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . X X X X * . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . X X X X X . . . . . . . . . X X X X X X X X X X X X X X . . . . . X X X X X X X X X X X X X . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . X X X X = * . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . X X X X X . . . . . . . . . . X X X X X X X X X X X X . . . . . . . X X X X X X X X X X X . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . X X X X X = X . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . X X X X X X X X . . . . . . . . . . . X X X X X X X X . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . X X X X X X = X . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X = * . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X * . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X = X . ", +". . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % - ; X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X = X ", +". . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % : X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X = ", +". . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % > , X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X < . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X < . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X = X < . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X = X < . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X = X X . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 < . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X X X X X X * 8 . . . . . . . . . X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X X X X X X X X & . . . . . . . X X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X X X X X X X X X 9 . . . . . X X X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . X X X = . . . . 4 X X X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . . X X X . . . * X X X X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . . = X X . . . X X X 0 X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . . X X X . . . X X . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . * X X X . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X X X X X X X X X . . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X X X X X X X X X . . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X = X = X X X * . . . . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . = X X X . . . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . X X X . . . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . X X X = . . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . X X X q . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . X X X = . . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . . X X X X . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X X . . . . . . X X X X . . . . . < X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . X X w . . . . . . . = X X . . . . . e X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X r t t t t t t t t t t t t t t t t t y X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ u i i p $ $ $ $ $ $ $ $ $ a i i i i i i s d f g h j $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ k i l $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ z X X X x $ $ $ $ $ $ $ $ $ c X X X X X X X X X X X v b n $ $ $ $ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ N X B X V C $ $ $ $ $ $ $ $ c X X Z A A A x N S D F X X Z G $ $ $ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ H F X J K X L $ $ $ $ $ $ $ $ c X X P $ $ $ $ $ $ $ I U X X N $ $ $ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ Y X T j R X E W $ $ $ $ $ $ $ c X X P $ $ $ $ $ $ $ $ Q ! X X P $ $ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ Q E X ~ $ ^ X X / $ $ $ $ $ $ $ c X X P $ $ $ $ $ $ $ $ $ ( X X ) $ $ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ _ X X ` $ $ U X ' n $ $ $ $ $ $ c X X P $ $ $ $ $ $ $ $ $ $ ] X [ { $ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ j } X | $ $ $ .X X ..$ $ $ $ $ $ c X X P $ $ $ $ $ $ $ $ $ $ X.X X o.$ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ O.X X +.$ $ $ @.#.X $.$ $ $ $ $ $ c X X P $ $ $ $ $ $ $ $ $ $ %.X X &.$ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ *.X =.-.$ $ $ $ d X X ;.$ $ $ $ $ c X X P $ $ $ $ $ $ $ $ $ $ :.X X >.$ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ,.<.X 1.$ $ $ $ $ 2.M X 3.$ $ $ $ $ c X X P $ $ $ $ $ $ $ $ $ $ 4.X X 5.$ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ~ X X K 6.6.6.6.6.6.[ X X 7.$ $ $ $ c X X P $ $ $ $ $ $ $ $ $ $ 8.X X O.$ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 9.0.X X X X X X X X X X X X q.$ $ $ $ c X X P $ $ $ $ $ $ $ $ $ $ S X F 9.$ $ $ $ $ $ $ $ $ $ m X M $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ / X X w.G G G G G G G G e.X [ p $ $ $ c X X P $ $ $ $ $ $ $ $ $ r.X X t.$ $ y.u.$.i.$ $ $ $ $ S X p.$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ a.s.X d.a.$ $ $ $ $ $ $ $ &.X X f.$ $ $ c X X P $ $ $ $ $ $ $ $ g.h.X [ j.$ $ 9.X X k.$ $ $ $ $ 6.X l.$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ r.X X z.$ $ $ $ $ $ $ $ $ x.=.X c.v.$ $ c X X P $ $ $ $ $ $ $ b.n.X X m.$ $ $ $ =.X M.-.$ $ $ b.X X x $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ N.X B.V.$ $ $ $ $ $ $ $ $ $ C.X X C.$ $ c X X Z.A.A.A.S.*.$.E X X X l j $ $ $ $ f X X $.D.5.F.G.X M 7.$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ H.X X J.$ $ $ $ $ $ $ $ $ $ $ K.B.X L.P.$ c X X X X X X X X X X [ Z I.$ $ $ $ $ $ a.U.<.X X X X X Y.T.$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ J d d ( $ $ $ $ $ $ $ $ $ $ $ $ &.d d j.$ R.d d d d d d d E.+.W.K.$ $ $ $ $ $ $ $ $ $ Q.l !.S ~.k.^.$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o /.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.).o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o _.`.'.o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ].X [.o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X {.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.|.X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X X X X X X X X . . . . . . X X X X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X X X X X X X X X . . . . X X X X X X X X . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X X X X X X X X X X . . X X X X X X X X X . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . X X X X . . X X X . . . X X X X . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . . X X X . . X X X . . . . X X X . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . . X X X . . X X X . . . . X X X . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . . X X X . . . . . . . . . X X X . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . X X X X . . . . . . . . X X X X . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X X X X X X X X X . . . . . . . . . X X X . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X X X X X X X X X . . . . . . . . X X X X . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X X X X X X X . . . . . . . . . X X X X . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . X X X X . . . . . . . X X X X . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . X X X . . . . . . X X X X . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . X X X X . . . . X X X X . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . X X X X . . . X X X . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . X X X X . . X X X X . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . . X X X X . X X X X X X X X X X . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . . X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . X X X . . . . . . . X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X oX X X X X X X X X X X X X X X X X XOXX X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X X X X X X X X X X X X X X X X X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X X X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +X+X+X+X+X+X+X+X+X@X#X$X+X+X+X+X+X+X+X+X+X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", +". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " +}; diff --git a/pcb_calculator/bitmaps/sources/regul_3pins.png b/pcb_calculator/bitmaps/sources/regul_3pins.png new file mode 100644 index 0000000000000000000000000000000000000000..4eb59b29737585d9b8a6e966bfe6361c308ec7a6 GIT binary patch literal 6003 zcmb7|cT^MIo5vFZp@Rrg1$+TPKzi>*kRrV!C877;I}rse1W}qwQ>2$rlwN{JkuC@c zAP@xUCDM_S9d>_bcmLQuXE*2E%$Ykg&)oYw-}^kDJ5P-aw5TaqDL^0)wT`xi32-C; zt(*)B{5w8)g9Hx5LFzhYWWX<)%sCl2C->L34g&7STs5%zop<3tCrhxVRj{d_YjBuD zpbIE0EKJzL*DJ`$!QVyLFVOAXjv^}v#E93?P%{h9*`AAtHv8R-{lT*bfTte%}N2W5uIiSUf(1kE2S1r4o3RJ=%;ad0(< znsj24!2NebLhZx99(^ew4&0w5vR3s_bHKwtgz(1&rZh9ilFCy3+(}O7v)Z|jbB3pI z?`gbH1mncv#A76~ph^-(h=@FwO?g?|E&T5Mir>w&_JEmvI~-R5mM)+zrVvs4^gN1- zL5_>|#|PUK7sxI|4Q_W!rqfT&!RY#31(GH(miPcVfXGm#^&?Pz^Q#^ZZAFmJ|MiAj zv=LQ{2_Y6BRS1}-&Mvtkr7d&Oi9e149g-43e$vccr=r`j)ID=}%g6`sqypy!y#x2n zhUr?dOVvV48*y=rZ0CItH*nC>4T|NJMriDskFuo^v)&rLO_@Kk-xiZSiGGUy%yaD= zeO!x(BMawO?2_Ugttf15^peK^Q$rjT@|~8M_Qlt{g2dKd+vQ~M>V1_Jcf!|Ri;ojE zoa$%smLER)8LHWQ7=X?bagfRrEot96L2$z3z`xO)Uyf8LKK0l?vrRFKOxR*7CZor7mG{~-Il zw~|KbY@K%cpafs7w*w!|yVDz`~f^u9a5GLx~Dv?T+^=pZH znTq*5=h90Tp0 zJmG;^;c`gZ@PRZc<@H4$wsYE#OrfHs_Y;Zlk+hpE7blPZ&vkU){7RLSM^JG;(VaU~ z)x^q&M=8%uc@Lg8Ge)W0@V#C0oICF6TzkwrNb{*R;^(;zngb3Ng;-I0Q!TH=H8v2) zCfAg9g+@bC)-Ciq@*nRhaNTe?OTf}Ip}D1GeM?7gjY_#1Q4hF0uBDT@qFrJ~U9`Otk+PpTMC zyv(&h0@$X#Gp*u-3qElN3iqS4f1yqDxC&L?70_*H&+Ta>%>9^@V1q@zy1Vt;T#^ZF zhe-GleFw$j&+l)p=HMR=te?L?6i(6W*nc?h9p2+kjfybq{!VnV&|>i``DXFP-J6@^ zD#4oagLJ3TTvbVpKev;&0PBqogv|GzkI^!9_XJ6vbk(W)UOqs_IS>jtk*`#OzY#(K z<67wl;r7CJs5&@03W1n&y?jTYIO-5Yy{$_C%``5I@|Sp*_PjS2zqr_qk@LUB*0%8A zdK>5`l0BAfExD5Fc2lopp{M&Pt?@u8K6BG6;HP7O#8?@l3)|P&oEJgpQ`_)N&JgQo{9r5~V3@Jg2Co{K~_lBKCPg8L%DxuqRubGnHO zx{nQm44v0nW6}eu?Jd${-dpRa0J2RYT{@&&|6GfraWP+sqF1>7gKah;)l1J37p+?Q z*FRZu!G_f{luew+JH`PU8Gwz9`bBxj#Pf6EB?T?B1U}Zu;DKb^CtMucoiFyTc0^aM zpjVIzRG~8!$k1if`p6JIJloc5W1rHlbn%tWn!a#N%S``yh~u){BQHH^^G3$!>}ew1 zuNo7pXtfJkoZ4LkiplvZZ_b#bZ(_0^-xo$wTt4~&X9=CUVRk{J-W`QvVt|HeWf}`S zRd+iEa)dRuZ24MyAuVXv1Krm)OljvNY=D!Mfk4_1`RNXQ-h1}rH%^-;`4E%sjmbW%F@zGGPtrX->e?%AY-2dv>N2)}w@S-r6QD00buh2#!3I<8TS<@UjOGDakkAG81D(TD=dRzI}s8ZR-${n`wcV>_J3W z4ef~Dm%PubAQ(u$mUi#Odr$4=_;S)GTuLw4L)NH&F52l2L6rNBAUVk~in5Z+e^jL! zZyyeWs(NBUIZ>$>s!F<*5-MgPTTg^94l7X`gMwHI4@*CVy?^pbZ>FVSkzYz`VDn-` zO_1>Jiv7-71ngP6iR>WV)4ya@+;yWBfLLQV8#BuIlKBFXSbjNp2^R zm3kQYL!#3S8oE_4VMO#bT35HsIZ)&BH)|067^#AnpC~Zzxf0 zAKj^<;xNyt*h;!s;+$$L++Rq-O*waG<-{J#laJDn<)7O&&KOl0;u>(4gWQIWG;28< zyTd}VE_BPN{uwJKQf^+zHdQ~9JjvKgl_tt>>ZMA$b9~+_`s8b|n7xme+mm{Rrjvv^>Fn4GT*z4&hy?{=OXdO)XAzyL~9`l zVHhj+J<*jS^2pDq!};#nTHT?#Z?nXlPgw$Gt@Ijc3=iu2)jbOYBvj3B$Oo>6;{AE79f&q}MxT-W7} zQ+_ITjDaW(L3?$|192f@b0Sf8#|vfzs3Q#1A6)p)ES898dJRpYBLeEEk20BhBW$jr z6}6l_a}?L7EVgDp-IwRmoOJntvt;=uwPFj8q<%)lb(s~13`&_^Pi`|m%Pjh-i`xpn zdV@evE`|U3X$-T!b*H>#L+F&eMSDFfoZ)EOg4#gZd+1SpdFzkVew5jLaZqlMLcpFB zWa)Q`*FrP4%Kv#I``S5m%-a#0s5-OvLs_}dg1_-T6R34aDxwOAO~?gI}y zQOC%m8^iE*l&0?W(oNoiW^QqQ>+K1gr9en8_`>P71?bFS0@9mv%9a*VyBD$0d`yf7 zAGz@8yzfGpZOlE5Y1YzaJhCIQ1St(V9C7zjbt(|jNl13l-y z(T4#Hq)>hCZWP3q^?`@jdjl~;D!9Wc&igxLQL;ZF1$0zP(TXH zRAc7f7c>p8FOdWSgon+|J?{0qPgOL4PVl_pv3eg+|BBCA2w3YW_ zbc;sl(PHdAefDO^{*kj6EFwp>bI;r(-rieR^GBF}^Uk>%<*#JLH`*Ofxg=^vx3vx_ z(=O2MI-VA{+qWzSO0E_yKj4mN-2@naJ~03POBZRBS+M}A72yw*hM_OIRM>>Qj)uf=mFiWDEg!Y$(+!>##9^E%~cz#)0Kfz58lDCN*{@b!JcZ* z4TRRl8XcqWXvWVbGi;K@Bhja6u9g7X9C6(oijCOBk`;A{>!j#qq;h;dA`=a z7n7A|{zBGrmo%~FO4OIER_6y?Ao+vM{%Ta1$;k}G{R>|0L17{K>cY{m)ROH0AHl{V zbu7$mV7}@M+Ze(bC6iSXHfXsFWacXp?X70A zX-NUxUl;wCVxa9QS3;~~LdSl=NHFJjNW7+Dj6u(0=|YRGS1y#JJ7Dzy3g3S;d=uNO zQg$d<)Ww;Ke&yz47?U~?HFg{Iz-1i&E)in1=R*!_H{VV+sXD+b+kUjgHaOdiZ(3d! zcX9T~1WnZkO&Wj_FTJsJ9v8yfh85LSAghz`J&|FX5HGvt4!_Ngj~LXseu4^8({u}O zKR6<^9_B&d9u-%E18E9Avr>t&GfADRw5uODtm7Fnv=qpJ#z}=%&6~4~CG@R+ z|G56$&v>NOm&{u3s54;k;}adFOEo{L@-3qSRC$#2IDe;F0-1yMN*}a#QWoa$fpWqFRNgjxJ|;xT?EWq!=QP>d=D4pCZ1CG3-gGfv1Fvrw zM(UahXzZRAzNB!dm1)BqHHGHj{bIiP=GkqJ;t8@nnLaVUE;`|DiEM(1}QJ>)5aCulaIDmxW!NJu}u`{Pup3JG(84dKTxaUZl3M z*M$^j;Wn28fk#XkQybWd1=#TBYP*HpCz*p@hu}3#t$4e~tZPP}wY(4iZ_>e30a(i% zN9$^T-e=E*J<|5ARIY;q``5+#0&WLA6CbVV6Mu?6KJCmMUA#!L77r2Q-enCj>kuiv z>o}=UQ65T`&X`db7DRq~A@io#$FPB_lE9;c!qjqZ|1<5C^F60$m~Gd;(;^b#wj6R* zfmlgDdf3IZf%L$@H?G~5HrDfsj0JbR)*XSnr(u_BfC)|M6^V7oez^a7Wi=|~{6F{!a5~qsKI%^xLfRT^AhiSD? ztv|GOlhmJ;EHcMfeA<|KhJ?tQkFdVzab_9G4+KXn?OPp=2mtcb^f2ZZQfU0>R=~%1 z0l(!FxiMByo(GM4Y~SUyenYWg>UR)I`Lr|!$b0VxUkV!sV)T#clms}1P0EXbn)$En z%{u2o05D-~a`Q4+ru$e|H<-xS36uSZfI_DZ4Ax`oOCnlkO}rp))cjWVZfDiz)lbaj zIG=d6uoZZgh>;LP5c86IHW`;~vr)_wE$ju|GMjQyUM;hxT1D}%ckY+Ycu01MeBr%y z6mHGE_}1ffJb7Vr*f`%WJ>9UV^f;-F`cjkfqyJ}BDgQpSJ*t}3+TO zfxE7=I^_z*4tI!Y9{ad~W8wwl^U%N+X%VR{7Vo7;iIeiisZh63-h}88R}*y*?^Jjd z0-PXzVnI(d6E6T zxDY>yYnhS*HU`N4PH;BqCnD&N!;^m}kdk@vHa|E-lrt(bRdUoO6t#&stOMAEbwfxd zF;teTvz(Wp>epOcO*$n3P}#4;wS^6z*lg9yrFhDCJM>Ho2W%9W>bz66Skjk@_dr0hqla_^-HP7|*F;y|}rtPz|AKLh7!-~W#}MIpqu ztYew|S&qgp^t7Bc+rCtbWkFJjZliA_`w_C5*FRh#sS=~|$S!LTC7wsLPs+81yH3eM z4U-)dzphH+U&LK^*E(e!kjTax?mY%P-&Px;#OZfX3Ja)>S`y+LprNeos&M7NRE3&G zqJ?AO%~Txg1o>Hr!#0BSW?I=d-*_O%9=PO6(!4!s&cGCp>uJBKaT+*UWWQ3GdjfEA zeP6VONuhOj=IVpmE_k6UHuproOup$q{H&ekHROyF#&KY>*XK_zG(;Y-;M=@D#Ja83 zBm2)=Zo;mZFp@!G5G5iyFSWvs3l{NVFsD7$c$<<-fO-A9V(77}_(4Y(e~r+V-WQ~a z@T7ez9Iw&wc#E_F@H9h!MxLJN0u}r|wmQmmynqbYl>B%4|1XjL=Z4^a>!Lj>)iVd< zeJ)*2$)_(sju( z*>qS`cln4rE*dU;ZMRBppFOQv$NgbKK^H1|SZal4D{NiqSMtxaoueOo+j!Ie5kiA= zU@mu^^k}Y~vQ~2c1W!+^$~m(+z3nU8tHEY@Iuo;Rn6i9h-e>lweEIsT=O9>1gG0|T z*Q2ltC5{v;=C4WpVLQEZJq^iU+Bm=N(m5c@6*$JcZ-bM56}7TJc`p6*uxOG1spVS- VpLyGD10TpiI+_L=)#~s^{{~7*&qe?M literal 0 HcmV?d00001 diff --git a/pcb_calculator/bitmaps/sources/regul_3pins.svg b/pcb_calculator/bitmaps/sources/regul_3pins.svg new file mode 100644 index 0000000000..ffc5992a76 --- /dev/null +++ b/pcb_calculator/bitmaps/sources/regul_3pins.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + VOUT + Vin + + + + R1 + R2 + + + + + ADJ + + + + diff --git a/pcb_calculator/class_regulator_data.h b/pcb_calculator/class_regulator_data.h new file mode 100644 index 0000000000..12ba365740 --- /dev/null +++ b/pcb_calculator/class_regulator_data.h @@ -0,0 +1,142 @@ +#ifndef CLASS_REGULATOR_DATA_H +#define CLASS_REGULATOR_DATA_H + + +/** + * @file class_regulator_data.h + */ +/* + * This program source code file is part of KICAD, a free EDA CAD application. + * + * Copyright (C) 1992-2011 jean-pierre.charras + * Copyright (C) 1992-2011 Kicad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include + +// Helper class to store parameters for a regulator +class REGULATOR_DATA +{ +public: + wxString m_Name; // Regulator name + int m_Type; // type: with separate sense pin (normal) (=0) + // or adjustable 3 pins reg (=1) + double m_Vref; // Vreference in volt + double m_Iadj; // 3 pin type only: I adjust in micro amp + +public: + REGULATOR_DATA( const wxString& aName, double aVref, int aType, double aIadj = 0) + { + m_Type = aType; + m_Vref = aVref; + m_Name = aName; + m_Iadj = aIadj; + } +}; + +// Helper class to store the list of known regulators +class REGULATOR_LIST +{ +public: + std::vector m_List; + +public: + REGULATOR_LIST() {}; + ~REGULATOR_LIST() + { + for( unsigned ii = 0; ii < m_List.size(); ii++ ) + delete m_List[ii]; + } + + unsigned int GetCount() + { + return m_List.size(); + } + + void Add( REGULATOR_DATA* aItem ) + { + // add new item an try to keep alphabetic order, + // and because name have numbers inside, use a KiCad compare function + // that handles number as numbers not ascii chars + unsigned ii = 0; + for( ; ii < m_List.size(); ii++ ) + { + if( RefDesStringCompare( aItem->m_Name, m_List[ii]->m_Name ) < 0 ) + break; + } + m_List.insert( m_List.begin() + ii, aItem ); + } + + REGULATOR_DATA* GetReg( const wxString& aName ) + { + for( unsigned ii = 0; ii < m_List.size(); ii++ ) + { + if( aName.CmpNoCase( m_List[ii]->m_Name ) == 0 ) + { + return m_List[ii]; + } + } + return NULL; + } + + void Remove( const wxString & aRegName ) + { + for( unsigned ii = 0; ii < m_List.size(); ii++ ) + { + if( aRegName.CmpNoCase( m_List[ii]->m_Name ) == 0 ) + { + // Found! remove it + m_List.erase( m_List.begin() + ii ); + break; + } + } + } + + /** + * Replace an old REGULATOR_DATA by a new one + * The old one is deleted + * the 2 items must have the same name + */ + void Replace( REGULATOR_DATA* aItem ) + { + // Search for the old regulator + for( unsigned ii = 0; ii < m_List.size(); ii++ ) + { + if( aItem->m_Name.CmpNoCase( m_List[ii]->m_Name ) == 0 ) + { + // Found! remove it + delete m_List[ii]; + m_List[ii] = aItem; + break; + } + } + } + + wxArrayString GetRegList() + { + wxArrayString list; + for( unsigned ii = 0; ii < m_List.size(); ii++ ) + list.Add( m_List[ii]->m_Name ); + + return list; + } +}; + +#endif // CLASS_REGULATOR_DATA_H diff --git a/pcb_calculator/datafile_read_write.cpp b/pcb_calculator/datafile_read_write.cpp new file mode 100644 index 0000000000..1334623ddb --- /dev/null +++ b/pcb_calculator/datafile_read_write.cpp @@ -0,0 +1,285 @@ +/** + * @file datafile_read_write.cpp + */ + +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2012 Jean-Pierre Charras + * Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +using namespace PCBCALC_DATA_T; + + +static const char* getTokenName( T aTok ) +{ + return PCB_CALCULATOR_DATAFILE_LEXER::TokenName( aTok ); +} + + +bool PCB_CALCULATOR_FRAME::ReadDataFile() +{ + FILE* file = wxFopen( GetDataFilename(), wxT( "rt" ) ); + + if( file == NULL ) + return false; + + // Switch the locale to standard C (needed to read/write floating point numbers + LOCALE_IO toggle; + + PCB_CALCULATOR_DATAFILE * datafile = new PCB_CALCULATOR_DATAFILE( &m_RegulatorList ); + + // dataReader dtor will close file + FILE_LINE_READER dataReader( file, GetDataFilename() ); + PCB_CALCULATOR_DATAFILE_PARSER datafile_parser( &dataReader ); + + try + { + datafile_parser.Parse( datafile ); + } + catch( IO_ERROR& ioe ) + { + delete datafile; + ioe.errorText += '\n'; + ioe.errorText += _("Data file error."); + + wxMessageBox( ioe.errorText ); + return false; + } + + delete datafile; + + return true; +} + +bool PCB_CALCULATOR_FRAME::WriteDataFile() +{ + wxFFileOutputStream os( GetDataFilename(), wxT( "wt" ) ); + if( !os.IsOk() ) + return false; + + // Switch the locale to standard C (needed to read/write floating point numbers + LOCALE_IO toggle; + + PCB_CALCULATOR_DATAFILE * datafile = new PCB_CALCULATOR_DATAFILE( &m_RegulatorList ); + + try + { + int nestlevel; + STREAM_OUTPUTFORMATTER outputFormatter( os ); + nestlevel = datafile->WriteHeader( &outputFormatter ); + datafile->Format( &outputFormatter, nestlevel ); + while( nestlevel-- ) + outputFormatter.Print( nestlevel, ")\n" ); + } + catch( IO_ERROR ioe ) + { + delete datafile; + return false; + } + + delete datafile; + + m_RegulatorListChanged = false; + return true; +} + + +PCB_CALCULATOR_DATAFILE::PCB_CALCULATOR_DATAFILE( REGULATOR_LIST * aList ) +{ + m_list = aList; +} + +static const char* regtype_str[] = +{ + "normal", "3terminal" +}; + +int PCB_CALCULATOR_DATAFILE::WriteHeader( OUTPUTFORMATTER* aFormatter ) const throw( IO_ERROR ) +{ + int nestlevel = 0; + aFormatter->Print( nestlevel++, "(datafile\n"); + aFormatter->Print( nestlevel++, "(version 1)\n" ); + aFormatter->Print( nestlevel++, "(date %s)\n", + aFormatter->Quotew( DateAndTime() ).c_str() ); + aFormatter->Print( nestlevel++, "(tool %s)\n", + aFormatter->Quotew( wxGetApp().GetAppName() + + wxChar(' ') + GetBuildVersion() ).c_str() ); + + return nestlevel; +} + +void PCB_CALCULATOR_DATAFILE::Format( OUTPUTFORMATTER* aFormatter, + int aNestLevel ) const throw( IO_ERROR ) +{ + // Write regulators list: + aFormatter->Print( aNestLevel++, "(%s\n", getTokenName( T_regulators ) ); + for( unsigned ii = 0; ii < m_list->m_List.size(); ii++ ) + { + REGULATOR_DATA * item = m_list->m_List[ii]; + aFormatter->Print( aNestLevel, "(%s %s\n", getTokenName( T_regulator ), + aFormatter->Quotew(item->m_Name ).c_str() ); + aFormatter->Print( aNestLevel+1, "(%s %g)\n", getTokenName( T_reg_vref ), + item->m_Vref ); + if( item->m_Iadj != 0 && item->m_Type == 1) + { + aFormatter->Print( aNestLevel+1, "(%s %g)\n", getTokenName( T_reg_iadj ), + item->m_Iadj ); + } + aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_reg_type ), + regtype_str[item->m_Type] ); + aFormatter->Print( aNestLevel, ")\n" ); + } + aFormatter->Print( --aNestLevel, ")\n" ); +} + + +void PCB_CALCULATOR_DATAFILE::Parse( PCB_CALCULATOR_DATAFILE_PARSER* aParser ) + throw( IO_ERROR, PARSE_ERROR ) +{ + aParser->Parse( this ); +} + + + +// PCB_CALCULATOR_DATAFILE_PARSER + +PCB_CALCULATOR_DATAFILE_PARSER::PCB_CALCULATOR_DATAFILE_PARSER( LINE_READER* aReader ) : + PCB_CALCULATOR_DATAFILE_LEXER( aReader ) +{ +} + + +PCB_CALCULATOR_DATAFILE_PARSER::PCB_CALCULATOR_DATAFILE_PARSER( char* aLine, wxString aSource ) : + PCB_CALCULATOR_DATAFILE_LEXER( aLine, aSource ) +{ +} + + +void PCB_CALCULATOR_DATAFILE_PARSER::Parse( PCB_CALCULATOR_DATAFILE* aDataList ) throw( IO_ERROR, PARSE_ERROR ) +{ + T token; + while( ( token = NextTok() ) != T_EOF) + { + + if( token == T_LEFT ) + { + token = NextTok(); + + if( token == T_regulators ) + { + ParseRegulatorDescr( aDataList ); + continue; + } + } + } +} + +void PCB_CALCULATOR_DATAFILE_PARSER::ParseRegulatorDescr( PCB_CALCULATOR_DATAFILE* aDataList ) + throw( IO_ERROR, PARSE_ERROR ) +{ + T token; + wxString name; + double vref, iadj; + int type; + + while( ( token = NextTok() ) != T_RIGHT ) + { + if( token == T_EOF) + Unexpected( T_EOF ); + + if( token == T_LEFT ) + token = NextTok(); + + if( token == T_regulator ) + { + type = 0; + vref = 0.0; + + // Read name + token = NextTok(); + name = FROM_UTF8( CurText() ); + + while( ( token = NextTok() ) != T_RIGHT ) + { + if( token == T_EOF) + Unexpected( T_EOF ); + + if( token == T_LEFT ) + token = NextTok(); + + switch( token ) + { + case T_reg_vref: // the voltage reference value + token = NextTok(); + if( token != T_NUMBER ) + Expecting( T_NUMBER ); + sscanf( CurText(), "%lf" , &vref); + NeedRIGHT(); + break; + + case T_reg_iadj: // the Iadj reference value + token = NextTok(); + if( token != T_NUMBER ) + Expecting( T_NUMBER ); + sscanf( CurText(), "%lf" , &iadj); + NeedRIGHT(); + break; + + case T_reg_type: // type: normal or 3 terminal reg + token = NextTok(); + if( stricmp( CurText(), regtype_str[0] ) == 0 ) + type = 0; + else if( stricmp( CurText(), regtype_str[1] ) == 0 ) + type = 1; + else + Unexpected( CurText() ); + NeedRIGHT(); + break; + + default: + Unexpected( CurText() ); + break; + } + } + + if( ! name.IsEmpty() ) + { + if( type != 1 ) + iadj = 0.0; + REGULATOR_DATA * new_item = new REGULATOR_DATA(name, vref, type, iadj ); + aDataList->m_list->Add( new_item ); + } + } + } +} diff --git a/pcb_calculator/datafile_read_write.h b/pcb_calculator/datafile_read_write.h new file mode 100644 index 0000000000..0100ef2cc6 --- /dev/null +++ b/pcb_calculator/datafile_read_write.h @@ -0,0 +1,65 @@ +#ifndef DATAFILE_READ_WRITE_H_ +#define PDATAFILE_READ_WRITE_H_ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include +#include +#include + +class PCB_CALCULATOR_DATAFILE_PARSER; + +/** + * Class PCB_CALCULATOR_DATAFILE + * handles data to calculate regulators parameters + */ +class PCB_CALCULATOR_DATAFILE +{ + friend class PCB_CALCULATOR_DATAFILE_PARSER; +protected: + REGULATOR_LIST * m_list; + +public: + PCB_CALCULATOR_DATAFILE( REGULATOR_LIST * aList ); + + int WriteHeader( OUTPUTFORMATTER* aFormatter ) const throw( IO_ERROR ); + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel ) const throw( IO_ERROR ); + void Parse( PCB_CALCULATOR_DATAFILE_PARSER* aParser ) throw( IO_ERROR, PARSE_ERROR ); +}; + + +/** + * Class PCB_CALCULATOR_DATAFILE_PARSER + * is the parser class for PCB_CALCULATOR_DATAFILE. + */ +class PCB_CALCULATOR_DATAFILE_PARSER : public PCB_CALCULATOR_DATAFILE_LEXER +{ +public: + PCB_CALCULATOR_DATAFILE_PARSER( LINE_READER* aReader ); + PCB_CALCULATOR_DATAFILE_PARSER( char* aLine, wxString aSource ); + LINE_READER* GetReader() { return reader; }; + void Parse( PCB_CALCULATOR_DATAFILE* aDataList ) throw( IO_ERROR, PARSE_ERROR ); + void ParseRegulatorDescr( PCB_CALCULATOR_DATAFILE* aDataList ) throw( IO_ERROR, PARSE_ERROR ); +}; + +#endif // PDATAFILE_READ_WRITE_H_ diff --git a/pcb_calculator/dialogs/dialog_regulator_data.fbp b/pcb_calculator/dialogs/dialog_regulator_data.fbp new file mode 100644 index 0000000000..d3984372c2 --- /dev/null +++ b/pcb_calculator/dialogs/dialog_regulator_data.fbp @@ -0,0 +1,1163 @@ + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_regulator_data_base + 1000 + none + 1 + dialog_regulator_data + + . + + 1 + 1 + 1 + 0 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + DIALOG_EDITOR_DATA_BASE + 1 + + + 1 + + Resizable + 1 + 310,210 + wxDEFAULT_DIALOG_STYLE + DIALOG_SHIM; dialog_shim.h + Regulator Parameters + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bSizerMain + wxVERTICAL + none + + 5 + wxEXPAND + 0 + + 3 + wxHORIZONTAL + 1 + 0 + 0 + + fgSizerPrms + wxFLEX_GROWMODE_SPECIFIED + none + 4 + 0 + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Name + + 0 + + + 0 + + 1 + m_staticTextName + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_textCtrlName + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Vref + + 0 + + + 0 + + 1 + m_staticTextVref + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_textCtrlVref + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Volt + + 0 + + + 0 + + 1 + m_staticTextVrefUnit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Type + + 0 + + + 0 + + 1 + m_staticTextType + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Separate sense pin" "3 terminals regulator" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceRegType + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnRegTypeSelection + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Iadj + + 0 + + + 0 + + 1 + m_RegulIadjTitle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_RegulIadjValue + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + uA + + 0 + + + 0 + + 1 + m_IadjUnitLabel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_staticline2 + 1 + + + protected + 1 + + Resizable + 1 + + wxLI_HORIZONTAL + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizerButtons + protected + + OnCancelClick + + + + OnOKClick + + + + + + + + diff --git a/pcb_calculator/dialogs/dialog_regulator_data_base.cpp b/pcb_calculator/dialogs/dialog_regulator_data_base.cpp new file mode 100644 index 0000000000..0c2db4d6e4 --- /dev/null +++ b/pcb_calculator/dialogs/dialog_regulator_data_base.cpp @@ -0,0 +1,105 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 17 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_regulator_data_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_EDITOR_DATA_BASE::DIALOG_EDITOR_DATA_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bSizerMain; + bSizerMain = new wxBoxSizer( wxVERTICAL ); + + wxFlexGridSizer* fgSizerPrms; + fgSizerPrms = new wxFlexGridSizer( 4, 3, 0, 0 ); + fgSizerPrms->AddGrowableCol( 1 ); + fgSizerPrms->AddGrowableRow( 0 ); + fgSizerPrms->SetFlexibleDirection( wxHORIZONTAL ); + fgSizerPrms->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_staticTextName = new wxStaticText( this, wxID_ANY, _("Name"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextName->Wrap( -1 ); + fgSizerPrms->Add( m_staticTextName, 0, wxALL, 5 ); + + m_textCtrlName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPrms->Add( m_textCtrlName, 0, wxALL|wxEXPAND, 5 ); + + + fgSizerPrms->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_staticTextVref = new wxStaticText( this, wxID_ANY, _("Vref"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextVref->Wrap( -1 ); + fgSizerPrms->Add( m_staticTextVref, 0, wxALL, 5 ); + + m_textCtrlVref = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPrms->Add( m_textCtrlVref, 0, wxALL|wxEXPAND, 5 ); + + m_staticTextVrefUnit = new wxStaticText( this, wxID_ANY, _("Volt"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextVrefUnit->Wrap( -1 ); + fgSizerPrms->Add( m_staticTextVrefUnit, 0, wxALL, 5 ); + + m_staticTextType = new wxStaticText( this, wxID_ANY, _("Type"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextType->Wrap( -1 ); + fgSizerPrms->Add( m_staticTextType, 0, wxALL, 5 ); + + wxString m_choiceRegTypeChoices[] = { _("Separate sense pin"), _("3 terminals regulator") }; + int m_choiceRegTypeNChoices = sizeof( m_choiceRegTypeChoices ) / sizeof( wxString ); + m_choiceRegType = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegTypeNChoices, m_choiceRegTypeChoices, 0 ); + m_choiceRegType->SetSelection( 0 ); + fgSizerPrms->Add( m_choiceRegType, 0, wxALL|wxEXPAND, 5 ); + + + fgSizerPrms->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_RegulIadjTitle = new wxStaticText( this, wxID_ANY, _("Iadj"), wxDefaultPosition, wxDefaultSize, 0 ); + m_RegulIadjTitle->Wrap( -1 ); + fgSizerPrms->Add( m_RegulIadjTitle, 0, wxALL, 5 ); + + m_RegulIadjValue = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerPrms->Add( m_RegulIadjValue, 0, wxALL|wxEXPAND, 5 ); + + m_IadjUnitLabel = new wxStaticText( this, wxID_ANY, _("uA"), wxDefaultPosition, wxDefaultSize, 0 ); + m_IadjUnitLabel->Wrap( -1 ); + fgSizerPrms->Add( m_IadjUnitLabel, 0, wxALL, 5 ); + + + bSizerMain->Add( fgSizerPrms, 0, wxEXPAND, 5 ); + + m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizerMain->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 ); + + m_sdbSizerButtons = new wxStdDialogButtonSizer(); + m_sdbSizerButtonsOK = new wxButton( this, wxID_OK ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK ); + m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel ); + m_sdbSizerButtons->Realize(); + + bSizerMain->Add( m_sdbSizerButtons, 0, wxEXPAND, 5 ); + + + this->SetSizer( bSizerMain ); + this->Layout(); + + this->Centre( wxBOTH ); + + // Connect Events + m_choiceRegType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_EDITOR_DATA_BASE::OnRegTypeSelection ), NULL, this ); + m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDITOR_DATA_BASE::OnCancelClick ), NULL, this ); + m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDITOR_DATA_BASE::OnOKClick ), NULL, this ); +} + +DIALOG_EDITOR_DATA_BASE::~DIALOG_EDITOR_DATA_BASE() +{ + // Disconnect Events + m_choiceRegType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_EDITOR_DATA_BASE::OnRegTypeSelection ), NULL, this ); + m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDITOR_DATA_BASE::OnCancelClick ), NULL, this ); + m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDITOR_DATA_BASE::OnOKClick ), NULL, this ); + +} diff --git a/pcb_calculator/dialogs/dialog_regulator_data_base.h b/pcb_calculator/dialogs/dialog_regulator_data_base.h new file mode 100644 index 0000000000..5b531a5de6 --- /dev/null +++ b/pcb_calculator/dialogs/dialog_regulator_data_base.h @@ -0,0 +1,67 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 17 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_REGULATOR_DATA_BASE_H__ +#define __DIALOG_REGULATOR_DATA_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_EDITOR_DATA_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_EDITOR_DATA_BASE : public DIALOG_SHIM +{ + private: + + protected: + wxStaticText* m_staticTextName; + wxTextCtrl* m_textCtrlName; + wxStaticText* m_staticTextVref; + wxTextCtrl* m_textCtrlVref; + wxStaticText* m_staticTextVrefUnit; + wxStaticText* m_staticTextType; + wxChoice* m_choiceRegType; + wxStaticText* m_RegulIadjTitle; + wxTextCtrl* m_RegulIadjValue; + wxStaticText* m_IadjUnitLabel; + wxStaticLine* m_staticline2; + wxStdDialogButtonSizer* m_sdbSizerButtons; + wxButton* m_sdbSizerButtonsOK; + wxButton* m_sdbSizerButtonsCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnRegTypeSelection( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOKClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_EDITOR_DATA_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Regulator Parameters"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 310,210 ), long style = wxDEFAULT_DIALOG_STYLE ); + ~DIALOG_EDITOR_DATA_BASE(); + +}; + +#endif //__DIALOG_REGULATOR_DATA_BASE_H__ diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp index 096691474c..5418fa4fdf 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp @@ -1,12 +1,10 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// -#include "UnitSelector.h" - #include "pcb_calculator_frame_base.h" #include "../bitmaps/arrow_bottom.xpm" @@ -16,6 +14,7 @@ #include "../bitmaps/color_code_value.xpm" #include "../bitmaps/color_code_value_and_name.xpm" #include "../bitmaps/regul.xpm" +#include "../bitmaps/regul_3pins.xpm" /////////////////////////////////////////////////////////////////////////// @@ -35,31 +34,47 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow wxBoxSizer* bSizerMainReg; bSizerMainReg = new wxBoxSizer( wxHORIZONTAL ); + wxBoxSizer* bSizeLeftpReg; + bSizeLeftpReg = new wxBoxSizer( wxVERTICAL ); + wxBoxSizer* bSizerBitmapReg; bSizerBitmapReg = new wxBoxSizer( wxVERTICAL ); bSizerBitmapReg->Add( 0, 0, 1, wxEXPAND, 5 ); - m_bitmapRegul = new wxStaticBitmap( m_panelRegulators, wxID_ANY, wxBitmap( regul_xpm ), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerBitmapReg->Add( m_bitmapRegul, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 ); + m_bitmapRegul4pins = new wxStaticBitmap( m_panelRegulators, wxID_ANY, wxBitmap( regul_xpm ), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerBitmapReg->Add( m_bitmapRegul4pins, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_bitmapRegul3pins = new wxStaticBitmap( m_panelRegulators, wxID_ANY, wxBitmap( regul_3pins_xpm ), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerBitmapReg->Add( m_bitmapRegul3pins, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + + + bSizerBitmapReg->Add( 0, 0, 1, wxEXPAND, 5 ); + + + bSizeLeftpReg->Add( bSizerBitmapReg, 1, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerRegFormula; + sbSizerRegFormula = new wxStaticBoxSizer( new wxStaticBox( m_panelRegulators, wxID_ANY, _("Formula") ), wxVERTICAL ); m_RegulFormula = new wxStaticText( m_panelRegulators, wxID_ANY, _("Vout = Vref * (R1 + R2) / R2"), wxDefaultPosition, wxDefaultSize, 0 ); m_RegulFormula->Wrap( -1 ); m_RegulFormula->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); - bSizerBitmapReg->Add( m_RegulFormula, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + sbSizerRegFormula->Add( m_RegulFormula, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); - bSizerBitmapReg->Add( 0, 0, 1, wxEXPAND, 5 ); + bSizeLeftpReg->Add( sbSizerRegFormula, 0, wxEXPAND, 5 ); - bSizerMainReg->Add( bSizerBitmapReg, 1, wxEXPAND, 5 ); + + bSizerMainReg->Add( bSizeLeftpReg, 1, wxEXPAND, 5 ); wxBoxSizer* bSizerRegulRight; bSizerRegulRight = new wxBoxSizer( wxVERTICAL ); wxFlexGridSizer* fgSizerRegParams; - fgSizerRegParams = new wxFlexGridSizer( 2, 4, 0, 0 ); + fgSizerRegParams = new wxFlexGridSizer( 5, 4, 0, 0 ); fgSizerRegParams->AddGrowableCol( 2 ); fgSizerRegParams->SetFlexibleDirection( wxBOTH ); fgSizerRegParams->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); @@ -93,20 +108,6 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_UnitRegultR1->Wrap( -1 ); fgSizerRegParams->Add( m_UnitRegultR1, 0, wxALL, 5 ); - - fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_lableVRef = new wxStaticText( m_panelRegulators, wxID_ANY, _("Vref"), wxDefaultPosition, wxDefaultSize, 0 ); - m_lableVRef->Wrap( -1 ); - fgSizerRegParams->Add( m_lableVRef, 0, wxALL, 5 ); - - m_RegulVrefValue = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - fgSizerRegParams->Add( m_RegulVrefValue, 0, wxALL|wxEXPAND, 5 ); - - m_unitsVref = new wxStaticText( m_panelRegulators, wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 ); - m_unitsVref->Wrap( -1 ); - fgSizerRegParams->Add( m_unitsVref, 0, wxALL, 5 ); - m_rbRegulVout = new wxRadioButton( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); fgSizerRegParams->Add( m_rbRegulVout, 0, wxALL, 5 ); @@ -121,21 +122,107 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_unitsVout->Wrap( -1 ); fgSizerRegParams->Add( m_unitsVout, 0, wxALL, 5 ); + + fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_labelVRef = new wxStaticText( m_panelRegulators, wxID_ANY, _("Vref"), wxDefaultPosition, wxDefaultSize, 0 ); + m_labelVRef->Wrap( -1 ); + fgSizerRegParams->Add( m_labelVRef, 0, wxALL, 5 ); + + m_RegulVrefValue = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerRegParams->Add( m_RegulVrefValue, 0, wxALL|wxEXPAND, 5 ); + + m_unitsVref = new wxStaticText( m_panelRegulators, wxID_ANY, _("V"), wxDefaultPosition, wxDefaultSize, 0 ); + m_unitsVref->Wrap( -1 ); + fgSizerRegParams->Add( m_unitsVref, 0, wxALL, 5 ); + + + fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_RegulIadjTitle = new wxStaticText( m_panelRegulators, wxID_ANY, _("Iadj"), wxDefaultPosition, wxDefaultSize, 0 ); + m_RegulIadjTitle->Wrap( -1 ); + fgSizerRegParams->Add( m_RegulIadjTitle, 0, wxALL, 5 ); + + m_RegulIadjValue = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizerRegParams->Add( m_RegulIadjValue, 0, wxALL|wxEXPAND, 5 ); + + m_IadjUnitLabel = new wxStaticText( m_panelRegulators, wxID_ANY, _("uA"), wxDefaultPosition, wxDefaultSize, 0 ); + m_IadjUnitLabel->Wrap( -1 ); + fgSizerRegParams->Add( m_IadjUnitLabel, 0, wxALL, 5 ); + + + fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_staticTextRegType = new wxStaticText( m_panelRegulators, wxID_ANY, _("Type"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextRegType->Wrap( -1 ); + fgSizerRegParams->Add( m_staticTextRegType, 0, wxALL, 5 ); + + wxString m_choiceRegTypeChoices[] = { _("Standard Type"), _("3 Terminal Type") }; + int m_choiceRegTypeNChoices = sizeof( m_choiceRegTypeChoices ) / sizeof( wxString ); + m_choiceRegType = new wxChoice( m_panelRegulators, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegTypeNChoices, m_choiceRegTypeChoices, 0 ); + m_choiceRegType->SetSelection( 0 ); + fgSizerRegParams->Add( m_choiceRegType, 0, wxALL|wxEXPAND, 5 ); + + + fgSizerRegParams->Add( 0, 0, 1, wxEXPAND, 5 ); + + bSizerRegulRight->Add( fgSizerRegParams, 0, wxEXPAND, 5 ); m_buttonCalculate = new wxButton( m_panelRegulators, wxID_ANY, _("Calculate"), wxDefaultPosition, wxDefaultSize, 0 ); bSizerRegulRight->Add( m_buttonCalculate, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + wxStaticBoxSizer* sbSizerRegulatorsChooser; + sbSizerRegulatorsChooser = new wxStaticBoxSizer( new wxStaticBox( m_panelRegulators, wxID_ANY, _("Regulator") ), wxVERTICAL ); + + wxArrayString m_choiceRegulatorSelectorChoices; + m_choiceRegulatorSelector = new wxChoice( m_panelRegulators, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceRegulatorSelectorChoices, 0 ); + m_choiceRegulatorSelector->SetSelection( 0 ); + sbSizerRegulatorsChooser->Add( m_choiceRegulatorSelector, 0, wxALL|wxEXPAND, 5 ); + + m_staticTextRegFile = new wxStaticText( m_panelRegulators, wxID_ANY, _("Regulators data file:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextRegFile->Wrap( -1 ); + sbSizerRegulatorsChooser->Add( m_staticTextRegFile, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_regulators_filePicker = new wxFilePickerCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*.pcbcalc"), wxDefaultPosition, wxDefaultSize, wxFLP_SAVE|wxFLP_USE_TEXTCTRL ); + sbSizerRegulatorsChooser->Add( m_regulators_filePicker, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + wxBoxSizer* bSizerReulBtn; + bSizerReulBtn = new wxBoxSizer( wxHORIZONTAL ); + + m_buttonEditItem = new wxButton( m_panelRegulators, wxID_ANY, _("Edit Regulator"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonEditItem->SetToolTip( _("Enter a new item in the current list of availlable regulators") ); + + bSizerReulBtn->Add( m_buttonEditItem, 0, wxALL, 5 ); + + m_buttonAddItem = new wxButton( m_panelRegulators, wxID_ANY, _("Add Regulator"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonAddItem->SetToolTip( _("Enter a new item in the current list of availlable regulators") ); + + bSizerReulBtn->Add( m_buttonAddItem, 1, wxALL, 5 ); + + m_buttonRemoveItem = new wxButton( m_panelRegulators, wxID_ANY, _("Remove Regulator"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonRemoveItem->SetToolTip( _("Remove an item in the current list of availlable regulators") ); + + bSizerReulBtn->Add( m_buttonRemoveItem, 1, wxALL, 5 ); + + + sbSizerRegulatorsChooser->Add( bSizerReulBtn, 1, wxEXPAND, 5 ); + + + bSizerRegulRight->Add( sbSizerRegulatorsChooser, 0, wxEXPAND, 5 ); + m_RegulMessage = new wxStaticText( m_panelRegulators, wxID_ANY, _("Message"), wxDefaultPosition, wxDefaultSize, 0 ); m_RegulMessage->Wrap( -1 ); bSizerRegulRight->Add( m_RegulMessage, 0, wxALL, 5 ); + bSizerMainReg->Add( bSizerRegulRight, 1, wxEXPAND, 5 ); + m_panelRegulators->SetSizer( bSizerMainReg ); m_panelRegulators->Layout(); bSizerMainReg->Fit( m_panelRegulators ); - m_Notebook->AddPage( m_panelRegulators, _("Regulators"), false ); + m_Notebook->AddPage( m_panelRegulators, _("Regulators"), true ); m_panelTrackWidth = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizerTrackWidth; bSizerTrackWidth = new wxBoxSizer( wxHORIZONTAL ); @@ -201,11 +288,13 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_TW_CuLength_choiceUnit->SetSelection( 0 ); fgSizerTWprms->Add( m_TW_CuLength_choiceUnit, 0, wxEXPAND|wxALL, 5 ); + sbSizerTW_Prms->Add( fgSizerTWprms, 0, wxEXPAND, 5 ); m_htmlWinFormulas = new wxHtmlWindow( m_panelTrackWidth, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO|wxSIMPLE_BORDER ); sbSizerTW_Prms->Add( m_htmlWinFormulas, 1, wxEXPAND|wxTOP, 5 ); + bSizerTrackWidth->Add( sbSizerTW_Prms, 1, wxALL|wxEXPAND, 5 ); m_buttonTW = new wxButton( m_panelTrackWidth, wxID_ANY, _(">>>"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); @@ -279,8 +368,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_staticText791->Wrap( -1 ); fgSizerTW_Results->Add( m_staticText791, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + sbSizerTW_Result->Add( fgSizerTW_Results, 0, wxEXPAND, 5 ); + bSizeRight->Add( sbSizerTW_Result, 1, wxEXPAND|wxALL, 5 ); wxStaticBoxSizer* sbSizerTW_Result1; @@ -348,16 +439,20 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_staticText7911->Wrap( -1 ); fgSizerTW_Results1->Add( m_staticText7911, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + sbSizerTW_Result1->Add( fgSizerTW_Results1, 0, wxEXPAND, 5 ); + bSizeRight->Add( sbSizerTW_Result1, 1, wxEXPAND|wxALL, 5 ); + bSizerTrackWidth->Add( bSizeRight, 1, wxEXPAND, 5 ); + m_panelTrackWidth->SetSizer( bSizerTrackWidth ); m_panelTrackWidth->Layout(); bSizerTrackWidth->Fit( m_panelTrackWidth ); - m_Notebook->AddPage( m_panelTrackWidth, _("Track Width"), true ); + m_Notebook->AddPage( m_panelTrackWidth, _("Track Width"), false ); m_panelElectricalSpacing = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizerElectricalClearance; bSizerElectricalClearance = new wxBoxSizer( wxHORIZONTAL ); @@ -383,6 +478,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_buttonElectSpacingRefresh = new wxButton( m_panelElectricalSpacing, wxID_ANY, _("Update Values"), wxDefaultPosition, wxDefaultSize, 0 ); bLeftSizerElectricalClearance->Add( m_buttonElectSpacingRefresh, 0, wxALL|wxEXPAND, 5 ); + bSizerElectricalClearance->Add( bLeftSizerElectricalClearance, 0, wxEXPAND, 5 ); wxBoxSizer* bElectricalSpacingSizerRight; @@ -442,8 +538,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_staticText88->Wrap( -1 ); bElectricalSpacingSizerRight->Add( m_staticText88, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + bSizerElectricalClearance->Add( bElectricalSpacingSizerRight, 1, wxEXPAND, 5 ); + m_panelElectricalSpacing->SetSizer( bSizerElectricalClearance ); m_panelElectricalSpacing->Layout(); bSizerElectricalClearance->Fit( m_panelElectricalSpacing ); @@ -464,6 +562,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_panelDisplayshape = new wxPanel( m_panelTransline, wxID_ANY, wxDefaultPosition, wxSize( 205,205 ), wxTAB_TRAVERSAL ); bLeftSizer->Add( m_panelDisplayshape, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + bSizeTransline->Add( bLeftSizer, 0, wxEXPAND, 5 ); m_staticline1 = new wxStaticLine( m_panelTransline, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL ); @@ -585,8 +684,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_SubsPrm9_choiceUnit->SetSelection( 0 ); fgSizerSubstPrms->Add( m_SubsPrm9_choiceUnit, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + sbSubstrateBoxSizer->Add( fgSizerSubstPrms, 1, wxEXPAND, 5 ); + bMiddleSizer->Add( sbSubstrateBoxSizer, 0, wxEXPAND|wxBOTTOM, 5 ); wxStaticBoxSizer* sbCmpPrmsSizer; @@ -610,10 +711,13 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_choiceUnit_Frequency->SetSelection( 0 ); fgSizeCmpPrms->Add( m_choiceUnit_Frequency, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + sbCmpPrmsSizer->Add( fgSizeCmpPrms, 0, wxEXPAND, 5 ); + bMiddleSizer->Add( sbCmpPrmsSizer, 0, wxEXPAND|wxTOP, 5 ); + bSizeTransline->Add( bMiddleSizer, 1, wxALL|wxEXPAND, 5 ); wxBoxSizer* bRightSizer; @@ -676,10 +780,13 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow fgSizerPhysPrms->Add( 0, 0, 0, 0, 5 ); + sbRightBoxizer->Add( fgSizerPhysPrms, 0, wxEXPAND, 5 ); + btranslineRightSizer->Add( sbRightBoxizer, 0, wxBOTTOM|wxEXPAND, 5 ); + bRightSizer->Add( btranslineRightSizer, 0, wxALL|wxEXPAND, 5 ); wxBoxSizer* btranslineButtonsSizer; @@ -700,8 +807,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_bitmapSynthetize = new wxStaticBitmap( m_panelTransline, wxID_ANY, wxBitmap( arrow_top_xpm ), wxDefaultPosition, wxDefaultSize, 0 ); bSizerButtons->Add( m_bitmapSynthetize, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + btranslineButtonsSizer->Add( bSizerButtons, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + bRightSizer->Add( btranslineButtonsSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); wxStaticBoxSizer* sbElectricalResultsSizer; @@ -749,8 +858,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_choiceUnit_ElecPrm3->SetSelection( 0 ); fgSizerResults->Add( m_choiceUnit_ElecPrm3, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + sbElectricalResultsSizer->Add( fgSizerResults, 0, wxEXPAND, 5 ); + bRightSizer->Add( sbElectricalResultsSizer, 0, wxEXPAND, 5 ); wxStaticBoxSizer* sbMessagesSizer; @@ -818,12 +929,16 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_Message7->Wrap( -1 ); fgSizerTranslResults->Add( m_Message7, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + sbMessagesSizer->Add( fgSizerTranslResults, 1, wxEXPAND, 5 ); + bRightSizer->Add( sbMessagesSizer, 1, wxEXPAND|wxTOP, 5 ); + bSizeTransline->Add( bRightSizer, 1, wxEXPAND, 5 ); + m_panelTransline->SetSizer( bSizeTransline ); m_panelTransline->Layout(); bSizeTransline->Fit( m_panelTransline ); @@ -844,6 +959,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_panelDisplayAttenuator = new wxPanel( m_panelAttenuators, wxID_ANY, wxDefaultPosition, wxSize( 256,256 ), wxSIMPLE_BORDER|wxTAB_TRAVERSAL ); bLeftSizerAtt->Add( m_panelDisplayAttenuator, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); + sbSizerAtt->Add( bLeftSizerAtt, 0, wxEXPAND, 5 ); wxBoxSizer* bMiddleSizerAtt; @@ -891,8 +1007,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_attZoutUnit->Wrap( -1 ); fgSizerAttPrms->Add( m_attZoutUnit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + sbSizerAttPrms->Add( fgSizerAttPrms, 0, wxEXPAND, 5 ); + bMiddleSizerAtt->Add( sbSizerAttPrms, 0, wxEXPAND, 5 ); wxBoxSizer* bSizerAttButt; @@ -904,6 +1022,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_bitmapAnalyse1 = new wxStaticBitmap( m_panelAttenuators, wxID_ANY, wxBitmap( arrow_bottom_xpm ), wxDefaultPosition, wxDefaultSize, 0 ); bSizerAttButt->Add( m_bitmapAnalyse1, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + bMiddleSizerAtt->Add( bSizerAttButt, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); wxStaticBoxSizer* sbSizerAttValues; @@ -948,8 +1067,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_attR3Unit->Wrap( -1 ); fgSizerAttResults->Add( m_attR3Unit, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + sbSizerAttValues->Add( fgSizerAttResults, 0, wxEXPAND, 5 ); + bMiddleSizerAtt->Add( sbSizerAttValues, 0, wxEXPAND, 5 ); m_staticTextAttMsg = new wxStaticText( m_panelAttenuators, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); @@ -959,6 +1080,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_Attenuator_Messages = new wxTextCtrl( m_panelAttenuators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY ); bMiddleSizerAtt->Add( m_Attenuator_Messages, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + sbSizerAtt->Add( bMiddleSizerAtt, 0, wxEXPAND, 5 ); wxStaticBoxSizer* sbRightSizerFormula; @@ -969,8 +1091,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow sbRightSizerFormula->Add( m_panelAttFormula, 1, wxALL|wxEXPAND, 5 ); + sbSizerAtt->Add( sbRightSizerFormula, 1, wxEXPAND, 5 ); + m_panelAttenuators->SetSizer( sbSizerAtt ); m_panelAttenuators->Layout(); sbSizerAtt->Fit( m_panelAttenuators ); @@ -1032,8 +1156,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_Band_tol_bitmap = new wxStaticBitmap( m_panelColorCode, wxID_ANY, wxBitmap( color_code_tolerance_xpm ), wxDefaultPosition, wxDefaultSize, 0 ); fgSizerColoCode->Add( m_Band_tol_bitmap, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + bSizerPanelColorCode->Add( fgSizerColoCode, 1, wxEXPAND|wxLEFT, 5 ); + m_panelColorCode->SetSizer( bSizerPanelColorCode ); m_panelColorCode->Layout(); bSizerPanelColorCode->Fit( m_panelColorCode ); @@ -1097,8 +1223,10 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_panelShowClassPrms = new wxPanel( m_panelBoardClass, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); brdclsSizerRight->Add( m_panelShowClassPrms, 1, wxEXPAND | wxALL, 5 ); + bSizerBoardClass->Add( brdclsSizerRight, 1, wxEXPAND, 5 ); + m_panelBoardClass->SetSizer( bSizerBoardClass ); m_panelBoardClass->Layout(); bSizerBoardClass->Fit( m_panelBoardClass ); @@ -1106,13 +1234,20 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow bmainFrameSizer->Add( m_Notebook, 1, wxEXPAND, 5 ); + this->SetSizer( bmainFrameSizer ); this->Layout(); this->Centre( wxBOTH ); // Connect Events + m_choiceRegType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulTypeSelection ), NULL, this ); m_buttonCalculate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorCalcButtonClick ), NULL, this ); + m_choiceRegulatorSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorSelection ), NULL, this ); + m_regulators_filePicker->Connect( wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler( PCB_CALCULATOR_FRAME_BASE::OnDataFileSelection ), NULL, this ); + m_buttonEditItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this ); + m_buttonAddItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this ); + m_buttonRemoveItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this ); m_buttonTW->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateButt ), NULL, this ); m_ElectricalSpacingUnitsSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this ); m_buttonElectSpacingRefresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this ); @@ -1134,7 +1269,13 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE() { // Disconnect Events + m_choiceRegType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulTypeSelection ), NULL, this ); m_buttonCalculate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorCalcButtonClick ), NULL, this ); + m_choiceRegulatorSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorSelection ), NULL, this ); + m_regulators_filePicker->Disconnect( wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler( PCB_CALCULATOR_FRAME_BASE::OnDataFileSelection ), NULL, this ); + m_buttonEditItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this ); + m_buttonAddItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this ); + m_buttonRemoveItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this ); m_buttonTW->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnTWCalculateButt ), NULL, this ); m_ElectricalSpacingUnitsSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingUnitsSelection ), NULL, this ); m_buttonElectSpacingRefresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnElectricalSpacingRefresh ), NULL, this ); diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp index f89d218c3a..af1ddb6b7d 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp @@ -1,11 +1,12 @@ - + C++ 1 source_name + 0 0 res UTF-8 @@ -19,6 +20,7 @@ . 1 + 1 1 0 0 @@ -27,8 +29,11 @@ 1 1 1 + 0 + + @@ -51,7 +56,6 @@ 0 0 wxID_ANY - 0 @@ -65,11 +69,9 @@ 1 - Resizable - 1 - 670,465 + 670,489 wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER Pcb Calculator @@ -123,7 +125,10 @@ 1 1 1 + + + @@ -144,7 +149,6 @@ 0 wxID_ANY MyMenuBar - 0 @@ -159,9 +163,7 @@ protected 1 - Resizable - 1 @@ -204,7 +206,10 @@ 1 1 1 + + + @@ -225,7 +230,6 @@ 0 0 wxID_ANY - 0 @@ -240,9 +244,7 @@ protected 1 - Resizable - 1 wxST_SIZEGRIP @@ -294,7 +296,10 @@ 1 1 1 + + + @@ -315,7 +320,6 @@ 0 0 wxID_ANY - 0 @@ -330,9 +334,7 @@ protected 1 - Resizable - 1 @@ -371,16 +373,19 @@ - + Regulators - 0 - + 1 + 1 1 1 1 + + + @@ -400,7 +405,6 @@ 0 0 wxID_ANY - 0 @@ -415,9 +419,7 @@ protected 1 - Resizable - 1 @@ -453,228 +455,338 @@ - + bSizerMainReg wxHORIZONTAL none - + 5 wxEXPAND 1 - + - bSizerBitmapReg + bSizeLeftpReg wxVERTICAL none - + 5 wxEXPAND 1 - - 0 - protected - 0 - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL - 0 - - 1 - 1 - 1 - 1 - - - - ../bitmaps/regul.xpm; Load From File - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 + - 1 - m_bitmapRegul - 1 - - - protected - 1 - - - Resizable - - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + bSizerBitmapReg + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + Load From File; ../bitmaps/regul.xpm + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapRegul4pins + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + Load From File; F:\kicad-launchpad\testing\pcb_calculator\bitmaps\regul_3pins.xpm + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_bitmapRegul3pins + 1 + + + protected + 1 + + Resizable + 1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - ,90,92,-1,70,0 - 0 - 0 - wxID_ANY - Vout = Vref * (R1 + R2) / R2 - - - 0 - - - 0 - - 1 - m_RegulFormula - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - + 5 wxEXPAND - 1 - - 0 - protected - 0 + 0 + + wxID_ANY + Formula + + sbSizerRegFormula + wxVERTICAL + none + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + ,90,92,-1,70,0 + 0 + 0 + wxID_ANY + Vout = Vref * (R1 + R2) / R2 + + 0 + + + 0 + + 1 + m_RegulFormula + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + - + 5 wxEXPAND 1 - + bSizerRegulRight wxVERTICAL none - + 5 wxEXPAND 0 - + 4 wxBOTH 2 @@ -684,7 +796,7 @@ fgSizerRegParams wxFLEX_GROWMODE_SPECIFIED none - 2 + 5 0 5 @@ -695,7 +807,10 @@ 1 1 1 + + + @@ -716,7 +831,6 @@ 0 wxID_ANY - 0 @@ -731,9 +845,7 @@ protected 1 - Resizable - 1 wxRB_GROUP @@ -783,7 +895,10 @@ 1 1 1 + + + @@ -804,7 +919,6 @@ 0 wxID_ANY R1 - 0 @@ -819,9 +933,7 @@ protected 1 - Resizable - 1 @@ -870,7 +982,10 @@ 1 1 1 + + + @@ -890,7 +1005,6 @@ 0 0 wxID_ANY - 0 @@ -906,9 +1020,7 @@ protected 1 - Resizable - 1 @@ -961,7 +1073,10 @@ 1 1 1 + + + @@ -982,7 +1097,6 @@ 0 wxID_ANY KOhm - 0 @@ -997,9 +1111,7 @@ protected 1 - Resizable - 1 @@ -1048,7 +1160,10 @@ 1 1 1 + + + @@ -1069,7 +1184,6 @@ 0 wxID_ANY - 0 @@ -1084,9 +1198,7 @@ protected 1 - Resizable - 1 @@ -1136,7 +1248,10 @@ 1 1 1 + + + @@ -1157,7 +1272,6 @@ 0 wxID_ANY R2 - 0 @@ -1172,9 +1286,7 @@ protected 1 - Resizable - 1 @@ -1223,7 +1335,10 @@ 1 1 1 + + + @@ -1243,7 +1358,6 @@ 0 0 wxID_ANY - 0 @@ -1259,9 +1373,7 @@ protected 1 - Resizable - 1 @@ -1314,7 +1426,10 @@ 1 1 1 + + + @@ -1335,7 +1450,6 @@ 0 wxID_ANY KOhm - 0 @@ -1350,9 +1464,360 @@ protected 1 - Resizable - + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_rbRegulVout + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Vout + + 0 + + + 0 + + 1 + m_labelVout + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_RegulVoutValue + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + V + + 0 + + + 0 + + 1 + m_unitsVout + 1 + + + protected + 1 + + Resizable 1 @@ -1411,7 +1876,10 @@ 1 1 1 + + + @@ -1432,7 +1900,6 @@ 0 wxID_ANY Vref - 0 @@ -1440,16 +1907,14 @@ 0 1 - m_lableVRef + m_labelVRef 1 protected 1 - Resizable - 1 @@ -1498,7 +1963,10 @@ 1 1 1 + + + @@ -1518,7 +1986,6 @@ 0 0 wxID_ANY - 0 @@ -1534,9 +2001,7 @@ protected 1 - Resizable - 1 @@ -1589,7 +2054,10 @@ 1 1 1 + + + @@ -1610,7 +2078,6 @@ 0 wxID_ANY V - 0 @@ -1625,9 +2092,7 @@ protected 1 - Resizable - 1 @@ -1667,104 +2132,29 @@ - + 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - - 0 - - - 0 - - 1 - m_rbRegulVout - 1 - - + wxEXPAND + 1 + + 0 protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - + 0 - + 5 wxALL 0 - + 1 1 1 1 + + + @@ -1784,8 +2174,7 @@ 0 0 wxID_ANY - Vout - + Iadj 0 @@ -1793,16 +2182,14 @@ 0 1 - m_labelVout + m_RegulIadjTitle 1 protected 1 - Resizable - 1 @@ -1842,16 +2229,19 @@ - + 5 wxALL|wxEXPAND 0 - + 1 1 1 1 + + + @@ -1871,7 +2261,6 @@ 0 0 wxID_ANY - 0 @@ -1880,16 +2269,14 @@ 0 1 - m_RegulVoutValue + m_RegulIadjValue 1 protected 1 - Resizable - 1 @@ -1933,16 +2320,19 @@ - + 5 wxALL 0 - + 1 1 1 1 + + + @@ -1962,8 +2352,7 @@ 0 0 wxID_ANY - V - + uA 0 @@ -1971,16 +2360,14 @@ 0 1 - m_unitsVout + m_IadjUnitLabel 1 protected 1 - Resizable - 1 @@ -2020,6 +2407,201 @@ + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Type + + 0 + + + 0 + + 1 + m_staticTextRegType + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Standard Type" "3 Terminal Type" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceRegType + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnRegulTypeSelection + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + @@ -2031,7 +2613,10 @@ 1 1 1 + + + @@ -2053,7 +2638,6 @@ 0 wxID_ANY Calculate - 0 @@ -2068,9 +2652,7 @@ protected 1 - Resizable - 1 @@ -2110,6 +2692,559 @@ + + 5 + wxEXPAND + 0 + + wxID_ANY + Regulator + + sbSizerRegulatorsChooser + wxVERTICAL + none + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceRegulatorSelector + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnRegulatorSelection + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Regulators data file: + + 0 + + + 0 + + 1 + m_staticTextRegFile + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + Select a file + + 0 + + 1 + m_regulators_filePicker + 1 + + + protected + 1 + + Resizable + 1 + + wxFLP_SAVE|wxFLP_USE_TEXTCTRL + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + *.pcbcalc + + + + + + + OnDataFileSelection + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizerReulBtn + wxHORIZONTAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Edit Regulator + + 0 + + + 0 + + 1 + m_buttonEditItem + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Enter a new item in the current list of availlable regulators + + wxFILTER_NONE + wxDefaultValidator + + + + + OnEditRegulator + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Add Regulator + + 0 + + + 0 + + 1 + m_buttonAddItem + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Enter a new item in the current list of availlable regulators + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAddRegulator + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Remove Regulator + + 0 + + + 0 + + 1 + m_buttonRemoveItem + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Remove an item in the current list of availlable regulators + + wxFILTER_NONE + wxDefaultValidator + + + + + OnRemoveRegulator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 wxALL @@ -2119,7 +3254,10 @@ 1 1 1 + + + @@ -2140,7 +3278,6 @@ 0 wxID_ANY Message - 0 @@ -2155,9 +3292,7 @@ protected 1 - Resizable - 1 @@ -2205,13 +3340,16 @@ Track Width - 1 + 0 1 1 1 1 + + + @@ -2231,7 +3369,6 @@ 0 0 wxID_ANY - 0 @@ -2246,9 +3383,7 @@ protected 1 - Resizable - 1 @@ -2310,7 +3445,10 @@ 1 1 1 + + + @@ -2331,7 +3469,6 @@ 0 wxID_ANY Valid max values: 35A for external traces and 17.5A for internal. 400mil widths. Maximum temperature rise of 100 deg C. - 0 @@ -2346,9 +3483,7 @@ protected 1 - Resizable - 1 @@ -2413,7 +3548,10 @@ 1 1 1 + + + @@ -2434,7 +3572,6 @@ 0 wxID_ANY Current - 0 @@ -2449,9 +3586,7 @@ protected 1 - Resizable - 1 @@ -2500,7 +3635,10 @@ 1 1 1 + + + @@ -2520,7 +3658,6 @@ 0 0 wxID_ANY - 0 @@ -2536,9 +3673,7 @@ protected 1 - Resizable - 1 @@ -2591,7 +3726,10 @@ 1 1 1 + + + @@ -2612,7 +3750,6 @@ 0 wxID_ANY A - 0 @@ -2627,9 +3764,7 @@ protected 1 - Resizable - 1 @@ -2678,7 +3813,10 @@ 1 1 1 + + + @@ -2699,7 +3837,6 @@ 0 wxID_ANY Temperature rise - 0 @@ -2714,9 +3851,7 @@ protected 1 - Resizable - 1 @@ -2765,7 +3900,10 @@ 1 1 1 + + + @@ -2785,7 +3923,6 @@ 0 0 wxID_ANY - 0 @@ -2801,9 +3938,7 @@ protected 1 - Resizable - 1 @@ -2856,7 +3991,10 @@ 1 1 1 + + + @@ -2877,7 +4015,6 @@ 0 wxID_ANY deg C - 0 @@ -2892,9 +4029,7 @@ protected 1 - Resizable - 1 @@ -2943,7 +4078,10 @@ 1 1 1 + + + @@ -2964,7 +4102,6 @@ 0 wxID_ANY Cu thickness - 0 @@ -2979,9 +4116,7 @@ protected 1 - Resizable - 1 @@ -3030,7 +4165,10 @@ 1 1 1 + + + @@ -3050,7 +4188,6 @@ 0 0 wxID_ANY - 0 @@ -3066,9 +4203,7 @@ protected 1 - Resizable - 1 @@ -3121,7 +4256,10 @@ 1 1 1 + + + @@ -3142,7 +4280,6 @@ 0 0 wxID_ANY - 0 @@ -3157,12 +4294,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -3208,7 +4344,10 @@ 1 1 1 + + + @@ -3229,7 +4368,6 @@ 0 wxID_ANY Conductor length - 0 @@ -3244,9 +4382,7 @@ protected 1 - Resizable - 1 @@ -3295,7 +4431,10 @@ 1 1 1 + + + @@ -3315,7 +4454,6 @@ 0 0 wxID_ANY - 0 @@ -3331,9 +4469,7 @@ protected 1 - Resizable - 1 @@ -3386,7 +4522,10 @@ 1 1 1 + + + @@ -3407,7 +4546,6 @@ 0 0 wxID_ANY - 0 @@ -3422,12 +4560,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -3475,7 +4612,10 @@ 1 1 1 + + + @@ -3495,7 +4635,6 @@ 0 0 wxID_ANY - 0 @@ -3510,9 +4649,7 @@ protected 1 - Resizable - 1 wxHW_NO_SELECTION|wxHW_SCROLLBAR_AUTO @@ -3565,7 +4702,10 @@ 1 1 1 + + + @@ -3587,7 +4727,6 @@ 0 wxID_ANY >>> - 0 @@ -3602,9 +4741,7 @@ protected 1 - Resizable - 1 wxBU_EXACTFIT @@ -3690,7 +4827,10 @@ 1 1 1 + + + @@ -3711,7 +4851,6 @@ 0 wxID_ANY Required trace width - 0 @@ -3726,9 +4865,7 @@ protected 1 - Resizable - 1 @@ -3777,7 +4914,10 @@ 1 1 1 + + + @@ -3797,7 +4937,6 @@ 0 0 wxID_ANY - 0 @@ -3813,9 +4952,7 @@ protected 1 - Resizable - 1 @@ -3868,7 +5005,10 @@ 1 1 1 + + + @@ -3889,7 +5029,6 @@ 0 0 wxID_ANY - 0 @@ -3904,12 +5043,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -3955,7 +5093,10 @@ 1 1 1 + + + @@ -3976,7 +5117,6 @@ 0 wxID_ANY Cross-section area - 0 @@ -3991,9 +5131,7 @@ protected 1 - Resizable - 1 @@ -4042,7 +5180,10 @@ 1 1 1 + + + @@ -4062,7 +5203,6 @@ 0 0 wxID_ANY - 0 @@ -4078,9 +5218,7 @@ protected 1 - Resizable - 1 @@ -4133,7 +5271,10 @@ 1 1 1 + + + @@ -4154,7 +5295,6 @@ 0 wxID_ANY mm ^ 2 - 0 @@ -4169,9 +5309,7 @@ protected 1 - Resizable - 1 @@ -4220,7 +5358,10 @@ 1 1 1 + + + @@ -4241,7 +5382,6 @@ 0 wxID_ANY Resistance - 0 @@ -4256,9 +5396,7 @@ protected 1 - Resizable - 1 @@ -4307,7 +5445,10 @@ 1 1 1 + + + @@ -4327,7 +5468,6 @@ 0 0 wxID_ANY - 0 @@ -4343,9 +5483,7 @@ protected 1 - Resizable - 1 @@ -4398,7 +5536,10 @@ 1 1 1 + + + @@ -4419,7 +5560,6 @@ 0 wxID_ANY Ohm - 0 @@ -4434,9 +5574,7 @@ protected 1 - Resizable - 1 @@ -4485,7 +5623,10 @@ 1 1 1 + + + @@ -4506,7 +5647,6 @@ 0 wxID_ANY Voltage drop - 0 @@ -4521,9 +5661,7 @@ protected 1 - Resizable - 1 @@ -4572,7 +5710,10 @@ 1 1 1 + + + @@ -4592,7 +5733,6 @@ 0 0 wxID_ANY - 0 @@ -4608,9 +5748,7 @@ protected 1 - Resizable - 1 @@ -4663,7 +5801,10 @@ 1 1 1 + + + @@ -4684,7 +5825,6 @@ 0 wxID_ANY Volt - 0 @@ -4699,9 +5839,7 @@ protected 1 - Resizable - 1 @@ -4750,7 +5888,10 @@ 1 1 1 + + + @@ -4771,7 +5912,6 @@ 0 wxID_ANY Loss - 0 @@ -4786,9 +5926,7 @@ protected 1 - Resizable - 1 @@ -4837,7 +5975,10 @@ 1 1 1 + + + @@ -4857,7 +5998,6 @@ 0 0 wxID_ANY - 0 @@ -4873,9 +6013,7 @@ protected 1 - Resizable - 1 @@ -4928,7 +6066,10 @@ 1 1 1 + + + @@ -4949,7 +6090,6 @@ 0 wxID_ANY Watt - 0 @@ -4964,9 +6104,7 @@ protected 1 - Resizable - 1 @@ -5047,7 +6185,10 @@ 1 1 1 + + + @@ -5068,7 +6209,6 @@ 0 wxID_ANY Required trace width - 0 @@ -5083,9 +6223,7 @@ protected 1 - Resizable - 1 @@ -5134,7 +6272,10 @@ 1 1 1 + + + @@ -5154,7 +6295,6 @@ 0 0 wxID_ANY - 0 @@ -5170,9 +6310,7 @@ protected 1 - Resizable - 1 @@ -5225,7 +6363,10 @@ 1 1 1 + + + @@ -5246,7 +6387,6 @@ 0 0 wxID_ANY - 0 @@ -5261,12 +6401,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -5312,7 +6451,10 @@ 1 1 1 + + + @@ -5333,7 +6475,6 @@ 0 wxID_ANY Cross-section area - 0 @@ -5348,9 +6489,7 @@ protected 1 - Resizable - 1 @@ -5399,7 +6538,10 @@ 1 1 1 + + + @@ -5419,7 +6561,6 @@ 0 0 wxID_ANY - 0 @@ -5435,9 +6576,7 @@ protected 1 - Resizable - 1 @@ -5490,7 +6629,10 @@ 1 1 1 + + + @@ -5511,7 +6653,6 @@ 0 wxID_ANY mm ^ 2 - 0 @@ -5526,9 +6667,7 @@ protected 1 - Resizable - 1 @@ -5577,7 +6716,10 @@ 1 1 1 + + + @@ -5598,7 +6740,6 @@ 0 wxID_ANY Resistance - 0 @@ -5613,9 +6754,7 @@ protected 1 - Resizable - 1 @@ -5664,7 +6803,10 @@ 1 1 1 + + + @@ -5684,7 +6826,6 @@ 0 0 wxID_ANY - 0 @@ -5700,9 +6841,7 @@ protected 1 - Resizable - 1 @@ -5755,7 +6894,10 @@ 1 1 1 + + + @@ -5776,7 +6918,6 @@ 0 wxID_ANY Ohm - 0 @@ -5791,9 +6932,7 @@ protected 1 - Resizable - 1 @@ -5842,7 +6981,10 @@ 1 1 1 + + + @@ -5863,7 +7005,6 @@ 0 wxID_ANY Voltage drop - 0 @@ -5878,9 +7019,7 @@ protected 1 - Resizable - 1 @@ -5929,7 +7068,10 @@ 1 1 1 + + + @@ -5949,7 +7091,6 @@ 0 0 wxID_ANY - 0 @@ -5965,9 +7106,7 @@ protected 1 - Resizable - 1 @@ -6020,7 +7159,10 @@ 1 1 1 + + + @@ -6041,7 +7183,6 @@ 0 wxID_ANY Volt - 0 @@ -6056,9 +7197,7 @@ protected 1 - Resizable - 1 @@ -6107,7 +7246,10 @@ 1 1 1 + + + @@ -6128,7 +7270,6 @@ 0 wxID_ANY Loss - 0 @@ -6143,9 +7284,7 @@ protected 1 - Resizable - 1 @@ -6194,7 +7333,10 @@ 1 1 1 + + + @@ -6214,7 +7356,6 @@ 0 0 wxID_ANY - 0 @@ -6230,9 +7371,7 @@ protected 1 - Resizable - 1 @@ -6285,7 +7424,10 @@ 1 1 1 + + + @@ -6306,7 +7448,6 @@ 0 wxID_ANY Watt - 0 @@ -6321,9 +7462,7 @@ protected 1 - Resizable - 1 @@ -6381,7 +7520,10 @@ 1 1 1 + + + @@ -6401,7 +7543,6 @@ 0 0 wxID_ANY - 0 @@ -6416,9 +7557,7 @@ protected 1 - Resizable - 1 @@ -6477,7 +7616,10 @@ 1 1 1 + + + @@ -6498,7 +7640,6 @@ 0 0 wxID_ANY - 0 @@ -6513,12 +7654,11 @@ protected 1 - Resizable - -1 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -6564,7 +7704,10 @@ 1 1 1 + + + @@ -6584,7 +7727,6 @@ 0 0 wxID_ANY - 0 @@ -6599,9 +7741,7 @@ protected 1 - Resizable - 1 wxLI_HORIZONTAL @@ -6649,7 +7789,10 @@ 1 1 1 + + + @@ -6670,7 +7813,6 @@ 0 wxID_ANY Voltage > 500V: - 0 @@ -6685,9 +7827,7 @@ protected 1 - Resizable - 1 @@ -6736,7 +7876,10 @@ 1 1 1 + + + @@ -6756,7 +7899,6 @@ 0 0 wxID_ANY - 0 @@ -6772,9 +7914,7 @@ protected 1 - Resizable - 1 @@ -6827,7 +7967,10 @@ 1 1 1 + + + @@ -6849,7 +7992,6 @@ 0 wxID_ANY Update Values - 0 @@ -6864,9 +8006,7 @@ protected 1 - Resizable - 1 @@ -6926,7 +8066,10 @@ 1 1 1 + + + @@ -6947,7 +8090,6 @@ 0 wxID_ANY Note: Values are minimal values (from IPC 2221) - 0 @@ -6962,9 +8104,7 @@ protected 1 - Resizable - 1 @@ -7013,7 +8153,10 @@ 1 1 1 + + + 0 1 @@ -7056,7 +8199,6 @@ - 0 0 @@ -7073,9 +8215,7 @@ protected 1 - Resizable - wxALIGN_RIGHT 100 "0 ... 15V" "16 ... 30V" "31 ... 50V" "51 ... 100V" "101 ... 150V" "151 ... 170V" "171 ... 250V" "251 ... 300V" "301 ... 500V" " > 500V" @@ -7160,7 +8300,10 @@ 1 1 1 + + + @@ -7181,7 +8324,6 @@ 0 wxID_ANY * B1 - Internal Conductors * B2 - External Conductors, uncoated, sea level to 3050 m * B3 - External Conductors, uncoated, over 3050 m * B4 - External Conductors, with permanent polymer coating (any elevation) * A5 - External Conductors, with conformal coating over assembly (any elevation) * A6 - External Component lead/termination, uncoated * A7 - External Component lead termination, with conformal coating (any elevation) - 0 @@ -7196,9 +8338,7 @@ protected 1 - Resizable - 1 @@ -7252,7 +8392,10 @@ 1 1 1 + + + @@ -7272,7 +8415,6 @@ 0 0 wxID_ANY - 0 @@ -7287,9 +8429,7 @@ protected 1 - Resizable - 1 @@ -7348,7 +8488,10 @@ 1 1 1 + + + @@ -7370,7 +8513,6 @@ 0 wxID_ANY Transmission Line Type: - 1 0 @@ -7386,9 +8528,7 @@ protected 1 - Resizable - 0 1 @@ -7438,7 +8578,10 @@ 1 1 1 + + + @@ -7458,7 +8601,6 @@ 0 0 wxID_ANY - 0 @@ -7473,9 +8615,7 @@ protected 1 - Resizable - 1 205,205 @@ -7524,7 +8664,10 @@ 1 1 1 + + + @@ -7544,7 +8687,6 @@ 0 0 wxID_ANY - 0 @@ -7559,9 +8701,7 @@ protected 1 - Resizable - 1 wxLI_VERTICAL @@ -7646,7 +8786,10 @@ 1 1 1 + + + @@ -7667,7 +8810,6 @@ 0 wxID_ANY Er - 0 @@ -7682,9 +8824,7 @@ protected 1 - Resizable - 1 @@ -7733,7 +8873,10 @@ 1 1 1 + + + @@ -7753,7 +8896,6 @@ 0 0 wxID_ANY - 0 @@ -7769,9 +8911,7 @@ protected 1 - Resizable - 1 @@ -7824,7 +8964,10 @@ 1 1 1 + + + @@ -7846,7 +8989,6 @@ 0 wxID_ANY ... - 0 @@ -7861,9 +9003,7 @@ protected 1 - Resizable - 1 wxBU_EXACTFIT @@ -7912,7 +9052,10 @@ 1 1 1 + + + @@ -7933,7 +9076,6 @@ 0 wxID_ANY TanD - 0 @@ -7948,9 +9090,7 @@ protected 1 - Resizable - 1 @@ -7999,7 +9139,10 @@ 1 1 1 + + + @@ -8019,7 +9162,6 @@ 0 0 wxID_ANY - 0 @@ -8035,9 +9177,7 @@ protected 1 - Resizable - 1 @@ -8090,7 +9230,10 @@ 1 1 1 + + + @@ -8112,7 +9255,6 @@ 0 wxID_ANY ... - 0 @@ -8127,9 +9269,7 @@ protected 1 - Resizable - 1 wxBU_EXACTFIT @@ -8178,7 +9318,10 @@ 1 1 1 + + + @@ -8199,7 +9342,6 @@ 0 wxID_ANY Rho - 0 @@ -8214,9 +9356,7 @@ protected 1 - Resizable - 1 @@ -8265,7 +9405,10 @@ 1 1 1 + + + @@ -8285,7 +9428,6 @@ 0 0 wxID_ANY - 0 @@ -8301,9 +9443,7 @@ protected 1 - Resizable - 1 @@ -8356,7 +9496,10 @@ 1 1 1 + + + @@ -8378,7 +9521,6 @@ 0 wxID_ANY ... - 0 @@ -8393,9 +9535,7 @@ protected 1 - Resizable - 1 wxBU_EXACTFIT @@ -8444,7 +9584,10 @@ 1 1 1 + + + @@ -8465,7 +9608,6 @@ 0 wxID_ANY H - 0 @@ -8480,9 +9622,7 @@ protected 1 - Resizable - 1 @@ -8531,7 +9671,10 @@ 1 1 1 + + + @@ -8551,7 +9694,6 @@ 0 0 wxID_ANY - 0 @@ -8567,9 +9709,7 @@ protected 1 - Resizable - 1 @@ -8622,7 +9762,10 @@ 1 1 1 + + + @@ -8643,7 +9786,6 @@ 0 0 wxID_ANY - 0 @@ -8658,12 +9800,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -8709,7 +9850,10 @@ 1 1 1 + + + @@ -8730,7 +9874,6 @@ 0 wxID_ANY H_t - 0 @@ -8745,9 +9888,7 @@ protected 1 - Resizable - 1 @@ -8796,7 +9937,10 @@ 1 1 1 + + + @@ -8816,7 +9960,6 @@ 0 0 wxID_ANY - 0 @@ -8832,9 +9975,7 @@ protected 1 - Resizable - 1 @@ -8887,7 +10028,10 @@ 1 1 1 + + + @@ -8908,7 +10052,6 @@ 0 0 wxID_ANY - 0 @@ -8923,12 +10066,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -8974,7 +10116,10 @@ 1 1 1 + + + @@ -8995,7 +10140,6 @@ 0 wxID_ANY T - 0 @@ -9010,9 +10154,7 @@ protected 1 - Resizable - 1 @@ -9061,7 +10203,10 @@ 1 1 1 + + + @@ -9081,7 +10226,6 @@ 0 0 wxID_ANY - 0 @@ -9097,9 +10241,7 @@ protected 1 - Resizable - 1 @@ -9152,7 +10294,10 @@ 1 1 1 + + + @@ -9173,7 +10318,6 @@ 0 0 wxID_ANY - 0 @@ -9188,12 +10332,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -9239,7 +10382,10 @@ 1 1 1 + + + @@ -9260,7 +10406,6 @@ 0 wxID_ANY Rough - 0 @@ -9275,9 +10420,7 @@ protected 1 - Resizable - 1 @@ -9326,7 +10469,10 @@ 1 1 1 + + + @@ -9346,7 +10492,6 @@ 0 0 wxID_ANY - 0 @@ -9362,9 +10507,7 @@ protected 1 - Resizable - 1 @@ -9417,7 +10560,10 @@ 1 1 1 + + + @@ -9438,7 +10584,6 @@ 0 0 wxID_ANY - 0 @@ -9453,12 +10598,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -9504,7 +10648,10 @@ 1 1 1 + + + @@ -9525,7 +10672,6 @@ 0 wxID_ANY Mur - 0 @@ -9540,9 +10686,7 @@ protected 1 - Resizable - 1 @@ -9591,7 +10735,10 @@ 1 1 1 + + + @@ -9611,7 +10758,6 @@ 0 0 wxID_ANY - 0 @@ -9627,9 +10773,7 @@ protected 1 - Resizable - 1 @@ -9682,7 +10826,10 @@ 1 1 1 + + + @@ -9703,7 +10850,6 @@ 0 0 wxID_ANY - 0 @@ -9718,12 +10864,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -9769,7 +10914,10 @@ 1 1 1 + + + @@ -9790,7 +10938,6 @@ 0 wxID_ANY MurC - 0 @@ -9805,9 +10952,7 @@ protected 1 - Resizable - 1 @@ -9856,7 +11001,10 @@ 1 1 1 + + + @@ -9876,7 +11024,6 @@ 0 0 wxID_ANY - 0 @@ -9892,9 +11039,7 @@ protected 1 - Resizable - 1 @@ -9947,7 +11092,10 @@ 1 1 1 + + + @@ -9968,7 +11116,6 @@ 0 0 wxID_ANY - 0 @@ -9983,12 +11130,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -10066,7 +11212,10 @@ 1 1 1 + + + @@ -10087,7 +11236,6 @@ 0 wxID_ANY Frequency - 0 @@ -10102,9 +11250,7 @@ protected 1 - Resizable - 1 @@ -10153,7 +11299,10 @@ 1 1 1 + + + @@ -10173,7 +11322,6 @@ 0 0 wxID_ANY - 0 @@ -10189,9 +11337,7 @@ protected 1 - Resizable - 1 @@ -10244,7 +11390,10 @@ 1 1 1 + + + @@ -10265,7 +11414,6 @@ 0 0 wxID_ANY - 0 @@ -10280,12 +11428,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_FREQUENCY; UnitSelector.h 0 @@ -10383,7 +11530,10 @@ 1 1 1 + + + @@ -10404,7 +11554,6 @@ 0 wxID_ANY Prm1 - 0 @@ -10419,9 +11568,7 @@ protected 1 - Resizable - 1 @@ -10470,7 +11617,10 @@ 1 1 1 + + + @@ -10490,7 +11640,6 @@ 0 0 wxID_ANY - 0 @@ -10506,9 +11655,7 @@ protected 1 - Resizable - 1 @@ -10561,7 +11708,10 @@ 1 1 1 + + + @@ -10582,7 +11732,6 @@ 0 0 wxID_ANY - 0 @@ -10597,12 +11746,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -10648,7 +11796,10 @@ 1 1 1 + + + @@ -10669,7 +11820,6 @@ 0 wxID_ANY - 0 @@ -10684,9 +11834,7 @@ protected 1 - Resizable - 1 wxRB_GROUP @@ -10736,7 +11884,10 @@ 1 1 1 + + + @@ -10757,7 +11908,6 @@ 0 wxID_ANY prm2 - 0 @@ -10772,9 +11922,7 @@ protected 1 - Resizable - 1 @@ -10823,7 +11971,10 @@ 1 1 1 + + + @@ -10843,7 +11994,6 @@ 0 0 wxID_ANY - 0 @@ -10859,9 +12009,7 @@ protected 1 - Resizable - 1 @@ -10914,7 +12062,10 @@ 1 1 1 + + + @@ -10935,7 +12086,6 @@ 0 0 wxID_ANY - 0 @@ -10950,12 +12100,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -11001,7 +12150,10 @@ 1 1 1 + + + @@ -11022,7 +12174,6 @@ 0 wxID_ANY - 0 @@ -11037,9 +12188,7 @@ protected 1 - Resizable - 1 @@ -11089,7 +12238,10 @@ 1 1 1 + + + @@ -11110,7 +12262,6 @@ 0 wxID_ANY prm3 - 0 @@ -11125,9 +12276,7 @@ protected 1 - Resizable - 1 @@ -11176,7 +12325,10 @@ 1 1 1 + + + @@ -11196,7 +12348,6 @@ 0 0 wxID_ANY - 0 @@ -11212,9 +12363,7 @@ protected 1 - Resizable - 1 @@ -11267,7 +12416,10 @@ 1 1 1 + + + @@ -11288,7 +12440,6 @@ 0 0 wxID_ANY - 0 @@ -11303,12 +12454,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -11388,10 +12538,13 @@ 1 1 1 + + + - ../bitmaps/arrow_bottom.xpm; Load From File + Load From File; ../bitmaps/arrow_bottom.xpm 1 0 @@ -11409,7 +12562,6 @@ 0 0 wxID_ANY - 0 @@ -11424,9 +12576,7 @@ protected 1 - Resizable - 1 @@ -11473,7 +12623,10 @@ 1 1 1 + + + @@ -11495,7 +12648,6 @@ 0 wxID_ANY Analyze - 0 @@ -11510,9 +12662,7 @@ protected 1 - Resizable - 1 @@ -11561,7 +12711,10 @@ 1 1 1 + + + @@ -11583,7 +12736,6 @@ 0 wxID_ANY Synthetize - 0 @@ -11598,9 +12750,7 @@ protected 1 - Resizable - 1 @@ -11649,10 +12799,13 @@ 1 1 1 + + + - ../bitmaps/arrow_top.xpm; Load From File + Load From File; ../bitmaps/arrow_top.xpm 1 0 @@ -11670,7 +12823,6 @@ 0 0 wxID_ANY - 0 @@ -11685,9 +12837,7 @@ protected 1 - Resizable - 1 @@ -11766,7 +12916,10 @@ 1 1 1 + + + @@ -11787,7 +12940,6 @@ 0 wxID_ANY Z - 0 @@ -11802,9 +12954,7 @@ protected 1 - Resizable - 1 @@ -11853,7 +13003,10 @@ 1 1 1 + + + @@ -11873,7 +13026,6 @@ 0 0 wxID_ANY - 0 @@ -11889,9 +13041,7 @@ protected 1 - Resizable - 1 @@ -11944,7 +13094,10 @@ 1 1 1 + + + @@ -11965,7 +13118,6 @@ 0 0 wxID_ANY - 0 @@ -11980,12 +13132,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_RESISTOR; UnitSelector.h 0 @@ -12031,7 +13182,10 @@ 1 1 1 + + + @@ -12052,7 +13206,6 @@ 0 wxID_ANY Z - 0 @@ -12067,9 +13220,7 @@ protected 1 - Resizable - 1 @@ -12118,7 +13269,10 @@ 1 1 1 + + + @@ -12138,7 +13292,6 @@ 0 0 wxID_ANY - 0 @@ -12154,9 +13307,7 @@ protected 1 - Resizable - 1 @@ -12209,7 +13360,10 @@ 1 1 1 + + + @@ -12230,7 +13384,6 @@ 0 0 wxID_ANY - 0 @@ -12245,12 +13398,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_RESISTOR; UnitSelector.h 0 @@ -12296,7 +13448,10 @@ 1 1 1 + + + @@ -12317,7 +13472,6 @@ 0 wxID_ANY Angle - 0 @@ -12332,9 +13486,7 @@ protected 1 - Resizable - 1 @@ -12383,7 +13535,10 @@ 1 1 1 + + + @@ -12403,7 +13558,6 @@ 0 0 wxID_ANY - 0 @@ -12419,9 +13573,7 @@ protected 1 - Resizable - 1 @@ -12474,7 +13626,10 @@ 1 1 1 + + + @@ -12495,7 +13650,6 @@ 0 0 wxID_ANY - 0 @@ -12510,12 +13664,11 @@ protected 1 - Resizable - 0 1 + UNIT_SELECTOR_ANGLE; UnitSelector.h 0 @@ -12593,7 +13746,10 @@ 1 1 1 + + + @@ -12614,7 +13770,6 @@ 0 wxID_ANY dummy - 0 @@ -12629,9 +13784,7 @@ protected 1 - Resizable - 1 @@ -12680,7 +13833,10 @@ 1 1 1 + + + @@ -12701,7 +13857,6 @@ 0 wxID_ANY dummy - 0 @@ -12716,9 +13871,7 @@ protected 1 - Resizable - 1 @@ -12767,7 +13920,10 @@ 1 1 1 + + + @@ -12788,7 +13944,6 @@ 0 wxID_ANY dummy - 0 @@ -12803,9 +13958,7 @@ protected 1 - Resizable - 1 @@ -12854,7 +14007,10 @@ 1 1 1 + + + @@ -12875,7 +14031,6 @@ 0 wxID_ANY dummy - 0 @@ -12890,9 +14045,7 @@ protected 1 - Resizable - 1 @@ -12941,7 +14094,10 @@ 1 1 1 + + + @@ -12962,7 +14118,6 @@ 0 wxID_ANY dummy - 0 @@ -12977,9 +14132,7 @@ protected 1 - Resizable - 1 @@ -13028,7 +14181,10 @@ 1 1 1 + + + @@ -13049,7 +14205,6 @@ 0 wxID_ANY dummy - 0 @@ -13064,9 +14219,7 @@ protected 1 - Resizable - 1 @@ -13115,7 +14268,10 @@ 1 1 1 + + + @@ -13136,7 +14292,6 @@ 0 wxID_ANY dummy - 0 @@ -13151,9 +14306,7 @@ protected 1 - Resizable - 1 @@ -13202,7 +14355,10 @@ 1 1 1 + + + @@ -13223,7 +14379,6 @@ 0 wxID_ANY dummy - 0 @@ -13238,9 +14393,7 @@ protected 1 - Resizable - 1 @@ -13289,7 +14442,10 @@ 1 1 1 + + + @@ -13310,7 +14466,6 @@ 0 wxID_ANY dummy - 0 @@ -13325,9 +14480,7 @@ protected 1 - Resizable - 1 @@ -13376,7 +14529,10 @@ 1 1 1 + + + @@ -13397,7 +14553,6 @@ 0 wxID_ANY dummy - 0 @@ -13412,9 +14567,7 @@ protected 1 - Resizable - 1 @@ -13463,7 +14616,10 @@ 1 1 1 + + + @@ -13484,7 +14640,6 @@ 0 wxID_ANY dummy - 0 @@ -13499,9 +14654,7 @@ protected 1 - Resizable - 1 @@ -13550,7 +14703,10 @@ 1 1 1 + + + @@ -13571,7 +14727,6 @@ 0 wxID_ANY dummy - 0 @@ -13586,9 +14741,7 @@ protected 1 - Resizable - 1 @@ -13637,7 +14790,10 @@ 1 1 1 + + + @@ -13658,7 +14814,6 @@ 0 wxID_ANY dummy - 0 @@ -13673,9 +14828,7 @@ protected 1 - Resizable - 1 @@ -13724,7 +14877,10 @@ 1 1 1 + + + @@ -13745,7 +14901,6 @@ 0 wxID_ANY dummy - 0 @@ -13760,9 +14915,7 @@ protected 1 - Resizable - 1 @@ -13820,7 +14973,10 @@ 1 1 1 + + + @@ -13840,7 +14996,6 @@ 0 0 wxID_ANY - 0 @@ -13855,9 +15010,7 @@ protected 1 - Resizable - 1 @@ -13919,7 +15072,10 @@ 1 1 1 + + + @@ -13941,7 +15097,6 @@ 0 wxID_ANY Attenuators: - 1 0 @@ -13957,9 +15112,7 @@ protected 1 - Resizable - 0 1 @@ -14009,7 +15162,10 @@ 1 1 1 + + + @@ -14029,7 +15185,6 @@ 0 0 wxID_ANY - 0 @@ -14044,9 +15199,7 @@ protected 1 - Resizable - 1 256,256 @@ -14132,7 +15285,10 @@ 1 1 1 + + + @@ -14153,7 +15309,6 @@ 0 wxID_ANY Attenuation - 0 @@ -14168,9 +15323,7 @@ protected 1 - Resizable - 1 @@ -14219,7 +15372,10 @@ 1 1 1 + + + @@ -14239,7 +15395,6 @@ 0 0 wxID_ANY - 0 @@ -14255,9 +15410,7 @@ protected 1 - Resizable - 1 @@ -14310,7 +15463,10 @@ 1 1 1 + + + @@ -14331,7 +15487,6 @@ 0 wxID_ANY dB - 0 @@ -14346,9 +15501,7 @@ protected 1 - Resizable - 1 @@ -14397,7 +15550,10 @@ 1 1 1 + + + @@ -14418,7 +15574,6 @@ 0 wxID_ANY Zin - 0 @@ -14433,9 +15588,7 @@ protected 1 - Resizable - 1 @@ -14484,7 +15637,10 @@ 1 1 1 + + + @@ -14504,7 +15660,6 @@ 0 0 wxID_ANY - 0 @@ -14520,9 +15675,7 @@ protected 1 - Resizable - 1 @@ -14575,7 +15728,10 @@ 1 1 1 + + + @@ -14596,7 +15752,6 @@ 0 wxID_ANY Ohms - 0 @@ -14611,9 +15766,7 @@ protected 1 - Resizable - 1 @@ -14662,7 +15815,10 @@ 1 1 1 + + + @@ -14683,7 +15839,6 @@ 0 wxID_ANY Zout - 0 @@ -14698,9 +15853,7 @@ protected 1 - Resizable - 1 @@ -14749,7 +15902,10 @@ 1 1 1 + + + @@ -14769,7 +15925,6 @@ 0 0 wxID_ANY - 0 @@ -14785,9 +15940,7 @@ protected 1 - Resizable - 1 @@ -14840,7 +15993,10 @@ 1 1 1 + + + @@ -14861,7 +16017,6 @@ 0 wxID_ANY Ohms - 0 @@ -14876,9 +16031,7 @@ protected 1 - Resizable - 1 @@ -14940,7 +16093,10 @@ 1 1 1 + + + @@ -14962,7 +16118,6 @@ 0 wxID_ANY Calculate - 0 @@ -14977,9 +16132,7 @@ protected 1 - Resizable - 1 @@ -15028,10 +16181,13 @@ 1 1 1 + + + - ../bitmaps/arrow_bottom.xpm; Load From File + Load From File; ../bitmaps/arrow_bottom.xpm 1 0 @@ -15049,7 +16205,6 @@ 0 0 wxID_ANY - 0 @@ -15064,9 +16219,7 @@ protected 1 - Resizable - 1 @@ -15143,7 +16296,10 @@ 1 1 1 + + + @@ -15164,7 +16320,6 @@ 0 wxID_ANY R1 - 0 @@ -15179,9 +16334,7 @@ protected 1 - Resizable - 1 @@ -15230,7 +16383,10 @@ 1 1 1 + + + @@ -15250,7 +16406,6 @@ 0 0 wxID_ANY - 0 @@ -15266,9 +16421,7 @@ protected 1 - Resizable - 1 @@ -15321,7 +16474,10 @@ 1 1 1 + + + @@ -15342,7 +16498,6 @@ 0 wxID_ANY Ohms - 0 @@ -15357,9 +16512,7 @@ protected 1 - Resizable - 1 @@ -15408,7 +16561,10 @@ 1 1 1 + + + @@ -15429,7 +16585,6 @@ 0 wxID_ANY R2 - 0 @@ -15444,9 +16599,7 @@ protected 1 - Resizable - 1 @@ -15495,7 +16648,10 @@ 1 1 1 + + + @@ -15515,7 +16671,6 @@ 0 0 wxID_ANY - 0 @@ -15531,9 +16686,7 @@ protected 1 - Resizable - 1 @@ -15586,7 +16739,10 @@ 1 1 1 + + + @@ -15607,7 +16763,6 @@ 0 wxID_ANY Ohms - 0 @@ -15622,9 +16777,7 @@ protected 1 - Resizable - 1 @@ -15673,7 +16826,10 @@ 1 1 1 + + + @@ -15694,7 +16850,6 @@ 0 wxID_ANY R3 - 0 @@ -15709,9 +16864,7 @@ protected 1 - Resizable - 1 @@ -15760,7 +16913,10 @@ 1 1 1 + + + @@ -15780,7 +16936,6 @@ 0 0 wxID_ANY - 0 @@ -15796,9 +16951,7 @@ protected 1 - Resizable - 1 @@ -15851,7 +17004,10 @@ 1 1 1 + + + @@ -15872,7 +17028,6 @@ 0 wxID_ANY Ohms - 0 @@ -15887,9 +17042,7 @@ protected 1 - Resizable - 1 @@ -15942,7 +17095,10 @@ 1 1 1 + + + @@ -15963,7 +17119,6 @@ 0 wxID_ANY Messages: - 0 @@ -15978,9 +17133,7 @@ protected 1 - Resizable - 1 @@ -16029,7 +17182,10 @@ 1 1 1 + + + @@ -16049,7 +17205,6 @@ 0 0 wxID_ANY - 0 @@ -16065,9 +17220,7 @@ protected 1 - Resizable - 1 wxTE_MULTILINE|wxTE_READONLY @@ -16134,7 +17287,10 @@ 1 1 1 + + + @@ -16154,7 +17310,6 @@ 0 0 wxID_ANY - 0 @@ -16169,9 +17324,7 @@ protected 1 - Resizable - 1 -1,-1 @@ -16223,7 +17376,10 @@ 1 1 1 + + + @@ -16243,7 +17399,6 @@ 0 0 wxID_ANY - 0 @@ -16258,9 +17413,7 @@ protected 1 - Resizable - 1 @@ -16310,7 +17463,10 @@ 1 1 1 + + + @@ -16332,7 +17488,6 @@ 0 wxID_ANY Tolerance - 1 0 @@ -16348,9 +17503,7 @@ protected 1 - Resizable - 0 1 @@ -16416,7 +17569,10 @@ 1 1 1 + + + @@ -16437,7 +17593,6 @@ 0 wxID_ANY 1st Band - 0 @@ -16452,9 +17607,7 @@ protected 1 - Resizable - 1 @@ -16503,7 +17656,10 @@ 1 1 1 + + + @@ -16524,7 +17680,6 @@ 0 wxID_ANY 2nd Band - 0 @@ -16539,9 +17694,7 @@ protected 1 - Resizable - 1 @@ -16590,7 +17743,10 @@ 1 1 1 + + + @@ -16611,7 +17767,6 @@ 0 wxID_ANY 3rd Band - 0 @@ -16626,9 +17781,7 @@ protected 1 - Resizable - 1 @@ -16677,7 +17830,10 @@ 1 1 1 + + + @@ -16698,7 +17854,6 @@ 0 wxID_ANY 4rd Band - 0 @@ -16713,9 +17868,7 @@ protected 1 - Resizable - 1 @@ -16764,7 +17917,10 @@ 1 1 1 + + + @@ -16785,7 +17941,6 @@ 0 wxID_ANY Multiplier - 0 @@ -16800,9 +17955,7 @@ protected 1 - Resizable - 1 @@ -16851,7 +18004,10 @@ 1 1 1 + + + @@ -16872,7 +18028,6 @@ 0 wxID_ANY Tolerance - 0 @@ -16887,9 +18042,7 @@ protected 1 - Resizable - 1 @@ -16938,10 +18091,13 @@ 1 1 1 + + + - ../bitmaps/color_code_value_and_name.xpm; Load From File + Load From File; ../bitmaps/color_code_value_and_name.xpm 1 0 @@ -16959,7 +18115,6 @@ 0 0 wxID_ANY - 0 @@ -16974,9 +18129,7 @@ protected 1 - Resizable - 1 @@ -17023,10 +18176,13 @@ 1 1 1 + + + - ../bitmaps/color_code_value.xpm; Load From File + Load From File; ../bitmaps/color_code_value.xpm 1 0 @@ -17044,7 +18200,6 @@ 0 0 wxID_ANY - 0 @@ -17059,9 +18214,7 @@ protected 1 - Resizable - 1 @@ -17108,10 +18261,13 @@ 1 1 1 + + + - ../bitmaps/color_code_value.xpm; Load From File + Load From File; ../bitmaps/color_code_value.xpm 1 0 @@ -17129,7 +18285,6 @@ 0 0 wxID_ANY - 0 @@ -17144,9 +18299,7 @@ protected 1 - Resizable - 1 @@ -17193,10 +18346,13 @@ 1 1 1 + + + - ../bitmaps/color_code_value.xpm; Load From File + Load From File; ../bitmaps/color_code_value.xpm 1 0 @@ -17214,7 +18370,6 @@ 0 0 wxID_ANY - 0 @@ -17229,9 +18384,7 @@ protected 1 - Resizable - 1 @@ -17278,10 +18431,13 @@ 1 1 1 + + + - ../bitmaps/color_code_multiplier.xpm; Load From File + Load From File; ../bitmaps/color_code_multiplier.xpm 1 0 @@ -17299,7 +18455,6 @@ 0 0 wxID_ANY - 0 @@ -17314,9 +18469,7 @@ protected 1 - Resizable - 1 @@ -17363,10 +18516,13 @@ 1 1 1 + + + - ../bitmaps/color_code_tolerance.xpm; Load From File + Load From File; ../bitmaps/color_code_tolerance.xpm 1 0 @@ -17384,7 +18540,6 @@ 0 0 wxID_ANY - 0 @@ -17399,9 +18554,7 @@ protected 1 - Resizable - 1 @@ -17453,7 +18606,10 @@ 1 1 1 + + + @@ -17473,7 +18629,6 @@ 0 0 wxID_ANY - 0 @@ -17488,9 +18643,7 @@ protected 1 - Resizable - 1 @@ -17540,7 +18693,10 @@ 1 1 1 + + + @@ -17561,7 +18717,6 @@ 0 0 wxID_ANY - 0 @@ -17576,12 +18731,11 @@ protected 1 - Resizable - -1 1 + UNIT_SELECTOR_LEN; UnitSelector.h 0 @@ -17636,7 +18790,10 @@ 1 1 1 + + + @@ -17657,7 +18814,6 @@ 0 wxID_ANY Note: Values are minimal values - 0 @@ -17672,9 +18828,7 @@ protected 1 - Resizable - 1 @@ -17723,7 +18877,10 @@ 1 1 1 + + + 0 1 @@ -17766,7 +18923,6 @@ - 0 0 @@ -17783,9 +18939,7 @@ protected 1 - Resizable - wxALIGN_RIGHT 160 "Lines width" "Min clearance" "Via: (diam - drill)" "Plated Pad: (diam - drill)" "NP Pad: (diam - drill)" @@ -17870,7 +19024,10 @@ 1 1 1 + + + @@ -17890,7 +19047,6 @@ 0 0 wxID_ANY - 0 @@ -17905,9 +19061,7 @@ protected 1 - Resizable - 1 diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.h b/pcb_calculator/dialogs/pcb_calculator_frame_base.h index dfe2f55322..350b975c91 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.h +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -11,11 +11,7 @@ #include #include #include -class UNIT_SELECTOR_ANGLE; -class UNIT_SELECTOR_FREQUENCY; -class UNIT_SELECTOR_LEN; -class UNIT_SELECTOR_RESISTOR; - +#include "UnitSelector.h" #include #include #include @@ -27,15 +23,16 @@ class UNIT_SELECTOR_RESISTOR; #include #include #include -#include #include +#include +#include #include #include -#include -#include #include +#include +#include +#include #include -#include #include #include #include @@ -57,7 +54,8 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame wxStatusBar* m_statusBar; wxNotebook* m_Notebook; wxPanel* m_panelRegulators; - wxStaticBitmap* m_bitmapRegul; + wxStaticBitmap* m_bitmapRegul4pins; + wxStaticBitmap* m_bitmapRegul3pins; wxStaticText* m_RegulFormula; wxRadioButton* m_rbRegulR1; wxStaticText* m_labelRegultR1; @@ -67,14 +65,25 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame wxStaticText* m_labelRegultR2; wxTextCtrl* m_RegulR2Value; wxStaticText* m_UnitRegultR1; - wxStaticText* m_lableVRef; - wxTextCtrl* m_RegulVrefValue; - wxStaticText* m_unitsVref; wxRadioButton* m_rbRegulVout; wxStaticText* m_labelVout; wxTextCtrl* m_RegulVoutValue; wxStaticText* m_unitsVout; + wxStaticText* m_labelVRef; + wxTextCtrl* m_RegulVrefValue; + wxStaticText* m_unitsVref; + wxStaticText* m_RegulIadjTitle; + wxTextCtrl* m_RegulIadjValue; + wxStaticText* m_IadjUnitLabel; + wxStaticText* m_staticTextRegType; + wxChoice* m_choiceRegType; wxButton* m_buttonCalculate; + wxChoice* m_choiceRegulatorSelector; + wxStaticText* m_staticTextRegFile; + wxFilePickerCtrl* m_regulators_filePicker; + wxButton* m_buttonEditItem; + wxButton* m_buttonAddItem; + wxButton* m_buttonRemoveItem; wxStaticText* m_RegulMessage; wxPanel* m_panelTrackWidth; wxStaticText* m_staticTextTW_WarningMessage; @@ -250,7 +259,13 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame wxPanel* m_panelShowClassPrms; // Virtual event handlers, overide them in your derived class + virtual void OnRegulTypeSelection( wxCommandEvent& event ) { event.Skip(); } virtual void OnRegulatorCalcButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnRegulatorSelection( wxCommandEvent& event ) { event.Skip(); } + virtual void OnDataFileSelection( wxFileDirPickerEvent& event ) { event.Skip(); } + virtual void OnEditRegulator( wxCommandEvent& event ) { event.Skip(); } + virtual void OnAddRegulator( wxCommandEvent& event ) { event.Skip(); } + virtual void OnRemoveRegulator( wxCommandEvent& event ) { event.Skip(); } virtual void OnTWCalculateButt( wxCommandEvent& event ) { event.Skip(); } virtual void OnElectricalSpacingUnitsSelection( wxCommandEvent& event ) { event.Skip(); } virtual void OnElectricalSpacingRefresh( wxCommandEvent& event ) { event.Skip(); } @@ -271,7 +286,7 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame public: - PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Pcb Calculator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 670,465 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL ); + PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Pcb Calculator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 670,489 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL ); ~PCB_CALCULATOR_FRAME_BASE(); diff --git a/pcb_calculator/pcb_calculator.cpp b/pcb_calculator/pcb_calculator.cpp index 213169c44a..ea80bc9493 100644 --- a/pcb_calculator/pcb_calculator.cpp +++ b/pcb_calculator/pcb_calculator.cpp @@ -37,6 +37,10 @@ #include #include +// Pcb_calculator data file extension: +const wxString PcbCalcDataFileExt( wxT("pcbcalc") ); + + // PCB_CALCULATOR_APP void EDA_APP::MacOpenFile(const wxString &fileName) diff --git a/pcb_calculator/pcb_calculator.h b/pcb_calculator/pcb_calculator.h index 523f3795f6..69fe84ccaf 100644 --- a/pcb_calculator/pcb_calculator.h +++ b/pcb_calculator/pcb_calculator.h @@ -10,13 +10,22 @@ #include // Included for SUBST_PRMS_ID definition. #include #include +#include + +extern const wxString PcbCalcDataFileExt; /* Class PCB_CALCULATOR_FRAME_BASE This is the main frame for this application */ class PCB_CALCULATOR_FRAME : public PCB_CALCULATOR_FRAME_BASE { +public: + REGULATOR_LIST m_RegulatorList; // the list of known regulator + private: + bool m_RegulatorListChanged; // set to true when m_RegulatorList + // was modified, and the corresponging file + // must be rewritten wxSize m_FrameSize; wxPoint m_FramePos; wxConfig * m_Config; @@ -27,6 +36,7 @@ private: ATTENUATOR * m_currAttenuator; // List ofattenuators: ordered like in dialog menu list std::vector m_attenuator_list; + wxString m_lastSelectedRegulatorName; // last regulator name selected public: @@ -46,6 +56,14 @@ private: void ReadConfig(); void WriteConfig(); + // R/W data files: + bool ReadDataFile(); + bool WriteDataFile(); + const wxString GetDataFilename() + { + return m_regulators_filePicker->GetPath(); + } + // tracks width versus current functions: /** * Function OnTWCalculateButt @@ -150,6 +168,30 @@ private: // Regulators Panel void OnRegulatorCalcButtonClick( wxCommandEvent& event ); + void OnRegulTypeSelection( wxCommandEvent& event ); + void OnRegulatorSelection( wxCommandEvent& event ); + void OnDataFileSelection( wxFileDirPickerEvent& event ); + void OnAddRegulator( wxCommandEvent& event ); + void OnEditRegulator( wxCommandEvent& event ); + void OnRemoveRegulator( wxCommandEvent& event ); + + /** + * Function RegulatorPageUpdate: + * Update the regulator page dialog display: + * enable the current regulator drawings and the formula used for calculations + */ + void RegulatorPageUpdate(); + + /** + * Function SelectLastSelectedRegulator + * select in choice box the last selected regulator + * (name in m_lastSelectedRegulatorName) + * and update the displayed values. + * if m_lastSelectedRegulatorName is empty, just calls + * RegulatorPageUpdate() + */ + void SelectLastSelectedRegulator(); + void RegulatorsSolve(); public: diff --git a/pcb_calculator/pcb_calculator_datafile.keywords b/pcb_calculator/pcb_calculator_datafile.keywords new file mode 100644 index 0000000000..8805e545a6 --- /dev/null +++ b/pcb_calculator/pcb_calculator_datafile.keywords @@ -0,0 +1,5 @@ +regulators +regulator +reg_iadj +reg_vref +reg_type diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp index 6c90930c1f..7bd169e721 100644 --- a/pcb_calculator/pcb_calculator_frame.cpp +++ b/pcb_calculator/pcb_calculator_frame.cpp @@ -26,32 +26,36 @@ #include #include - #include -#define KEYWORD_FRAME_POSX wxT( "Pcb_calculator_Pos_x" ) -#define KEYWORD_FRAME_POSY wxT( "Pcb_calculator_Pos_y" ) -#define KEYWORD_FRAME_SIZEX wxT( "Pcb_calculator_Size_x" ) -#define KEYWORD_FRAME_SIZEY wxT( "Pcb_calculator_Size_y" ) -#define KEYWORD_TRANSLINE_SELECTION wxT( "Transline_selection" ) -#define KEYWORD_PAGE_SELECTION wxT( "Page_selection" ) -#define KEYWORD_COLORCODE_SELECTION wxT( "CC_selection" ) -#define KEYWORD_ATTENUATORS_SELECTION wxT( "Att_selection" ) -#define KEYWORD_BRDCLASS_SELECTION wxT( "BrdClass_selection" ) -#define KEYWORD_ELECTRICAL_SPACING_SELECTION wxT( "ElectSpacing_selection" ) -#define KEYWORD_ELECTRICAL_SPACING_VOLTAGE wxT( "ElectSpacing_voltage" ) -#define KEYWORD_REGUL_R1 wxT( "RegulR1" ) -#define KEYWORD_REGUL_R2 wxT( "RegulR2" ) -#define KEYWORD_REGUL_VREF wxT( "RegulVREF" ) -#define KEYWORD_REGUL_VOUT wxT( "RegulVOUT" ) +#define KEYWORD_FRAME_POSX wxT( "Pcb_calculator_Pos_x" ) +#define KEYWORD_FRAME_POSY wxT( "Pcb_calculator_Pos_y" ) +#define KEYWORD_FRAME_SIZEX wxT( "Pcb_calculator_Size_x" ) +#define KEYWORD_FRAME_SIZEY wxT( "Pcb_calculator_Size_y" ) +#define KEYWORD_TRANSLINE_SELECTION wxT( "Transline_selection" ) +#define KEYWORD_PAGE_SELECTION wxT( "Page_selection" ) +#define KEYWORD_COLORCODE_SELECTION wxT( "CC_selection" ) +#define KEYWORD_ATTENUATORS_SELECTION wxT( "Att_selection" ) +#define KEYWORD_BRDCLASS_SELECTION wxT( "BrdClass_selection" ) +#define KEYWORD_ELECTRICAL_SPACING_SELECTION wxT( "ElectSpacing_selection" ) +#define KEYWORD_ELECTRICAL_SPACING_VOLTAGE wxT( "ElectSpacing_voltage" ) +#define KEYWORD_REGUL_R1 wxT( "RegulR1" ) +#define KEYWORD_REGUL_R2 wxT( "RegulR2" ) +#define KEYWORD_REGUL_VREF wxT( "RegulVREF" ) +#define KEYWORD_REGUL_VOUT wxT( "RegulVOUT" ) +#define KEYWORD_REGUL_FILENAME wxT( "RegulListFilename" ) +#define KEYWORD_REGUL_SELECTED wxT( "RegulName" ) +#define KEYWORD_REGUL_TYPE wxT( "RegulType" ) +#define KEYWORD_REGUL_LAST_PARAM wxT( "RegulLastParam" ) -PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow * parent ) : - PCB_CALCULATOR_FRAME_BASE( parent ) +PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow* parent ) : + PCB_CALCULATOR_FRAME_BASE( parent ) { m_currTransLine = NULL; m_currTransLineType = default_type; - m_currAttenuator = NULL; + m_currAttenuator = NULL; + m_RegulatorListChanged = false; m_Config = new wxConfig(); // Populate transline list ordered like in dialog menu list @@ -61,6 +65,7 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow * parent ) : rectwaveguide_type, coax_type, c_microstrip_type, stripline_type, twistedpair_type }; + for( int ii = 0; ii < 8; ii++ ) m_transline_list.push_back( new TRANSLINE_IDENT( tltype_list[ii] ) ); @@ -73,6 +78,8 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow * parent ) : ReadConfig(); + ReadDataFile(); + TranslineTypeSelection( m_currTransLineType ); m_TranslineSelection->SetSelection( m_currTransLineType ); @@ -86,6 +93,10 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow * parent ) : ElectricalSpacingUpdateData( m_ElectricalSpacingUnitsSelector->GetUnitScale() ); + + m_choiceRegulatorSelector->Append( m_RegulatorList.GetRegList() ); + SelectLastSelectedRegulator(); + // Give an icon wxIcon icon; icon.CopyFromBitmap( KiBitmap( icon_pcbcalculator_xpm ) ); @@ -104,6 +115,11 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow * parent ) : PCB_CALCULATOR_FRAME::~PCB_CALCULATOR_FRAME() { WriteConfig(); + + if( m_RegulatorListChanged ) + WriteDataFile(); + + for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) delete m_transline_list[ii]; @@ -124,8 +140,8 @@ void PCB_CALCULATOR_FRAME::ReadConfig() if( m_Config == NULL ) return; - long ltmp; - wxString msg; + long ltmp; + wxString msg; m_Config->Read( KEYWORD_FRAME_POSX, &m_FramePos.x, -1 ); m_Config->Read( KEYWORD_FRAME_POSY, &m_FramePos.y, -1 ); m_Config->Read( KEYWORD_FRAME_SIZEX, &m_FrameSize.x, -1 ); @@ -140,21 +156,40 @@ void PCB_CALCULATOR_FRAME::ReadConfig() m_AttenuatorsSelection->SetSelection( ltmp ); m_Config->Read( KEYWORD_BRDCLASS_SELECTION, <mp, 0 ); m_BoardClassesUnitsSelector->SetSelection( ltmp ); - m_Config->Read( KEYWORD_REGUL_R1, &msg, wxT("10") ); + + // Regul panel config: + m_Config->Read( KEYWORD_REGUL_R1, &msg, wxT( "10" ) ); m_RegulR1Value->SetValue( msg ); - m_Config->Read( KEYWORD_REGUL_R2, &msg, wxT("10") ); + m_Config->Read( KEYWORD_REGUL_R2, &msg, wxT( "10" ) ); m_RegulR2Value->SetValue( msg ); - m_Config->Read( KEYWORD_REGUL_VREF, &msg, wxT("3") ); + m_Config->Read( KEYWORD_REGUL_VREF, &msg, wxT( "3" ) ); m_RegulVrefValue->SetValue( msg ); - m_Config->Read( KEYWORD_REGUL_VOUT, &msg, wxT("12") ); + m_Config->Read( KEYWORD_REGUL_VOUT, &msg, wxT( "12" ) ); m_RegulVoutValue->SetValue( msg ); + m_Config->Read( KEYWORD_REGUL_FILENAME, &msg, wxT( "" ) ); + m_regulators_filePicker->SetPath( msg ); + m_Config->Read( KEYWORD_REGUL_SELECTED, &msg, wxT( "" ) ); + m_lastSelectedRegulatorName = msg; + m_Config->Read( KEYWORD_REGUL_TYPE, <mp, 0 ); + m_choiceRegType->SetSelection( ltmp ); + m_Config->Read( KEYWORD_REGUL_LAST_PARAM, <mp, 0 ); + wxRadioButton * regprms[3] = + { m_rbRegulR1, m_rbRegulR2, m_rbRegulVout + }; + if( (unsigned)ltmp >= 3 ) + ltmp = 0; + for( int ii = 0; ii < 3; ii++ ) + regprms[ii]->SetValue( ltmp == ii ); + + // Electrical panel config m_Config->Read( KEYWORD_ELECTRICAL_SPACING_SELECTION, <mp, 0 ); m_ElectricalSpacingUnitsSelector->SetSelection( ltmp ); - m_Config->Read( KEYWORD_ELECTRICAL_SPACING_VOLTAGE, &msg, wxT("500") ); + m_Config->Read( KEYWORD_ELECTRICAL_SPACING_VOLTAGE, &msg, wxT( "500" ) ); m_ElectricalSpacingVoltage->SetValue( msg ); for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) m_transline_list[ii]->ReadConfig( m_Config ); + for( unsigned ii = 0; ii < m_attenuator_list.size(); ii++ ) m_attenuator_list[ii]->ReadConfig( m_Config ); } @@ -175,15 +210,34 @@ void PCB_CALCULATOR_FRAME::WriteConfig() m_Config->Write( KEYWORD_FRAME_SIZEX, (long) m_FrameSize.x ); m_Config->Write( KEYWORD_FRAME_SIZEY, (long) m_FrameSize.y ); } + m_Config->Write( KEYWORD_TRANSLINE_SELECTION, (long) m_currTransLineType ); m_Config->Write( KEYWORD_PAGE_SELECTION, m_Notebook->GetSelection() ); m_Config->Write( KEYWORD_COLORCODE_SELECTION, m_rbToleranceSelection->GetSelection() ); - m_Config->Write( KEYWORD_ATTENUATORS_SELECTION, m_AttenuatorsSelection->GetSelection()); + m_Config->Write( KEYWORD_ATTENUATORS_SELECTION, m_AttenuatorsSelection->GetSelection() ); m_Config->Write( KEYWORD_BRDCLASS_SELECTION, m_BoardClassesUnitsSelector->GetSelection() ); + m_Config->Write( KEYWORD_REGUL_R1, m_RegulR1Value->GetValue() ); m_Config->Write( KEYWORD_REGUL_R2, m_RegulR2Value->GetValue() ); m_Config->Write( KEYWORD_REGUL_VREF, m_RegulVrefValue->GetValue() ); m_Config->Write( KEYWORD_REGUL_VOUT, m_RegulVoutValue->GetValue() ); + m_Config->Write( KEYWORD_REGUL_FILENAME, m_regulators_filePicker->GetPath() ); + m_Config->Write( KEYWORD_REGUL_SELECTED, m_lastSelectedRegulatorName ); + m_Config->Write( KEYWORD_REGUL_TYPE, + m_choiceRegType->GetSelection() ); + wxRadioButton * regprms[3] = + { m_rbRegulR1, m_rbRegulR2, m_rbRegulVout + }; + for( int ii = 0; ii < 3; ii++ ) + { + if( regprms[ii]->GetValue() ) + { + m_Config->Write( KEYWORD_REGUL_LAST_PARAM, ii ); + break; + } + } + + m_Config->Write( KEYWORD_ELECTRICAL_SPACING_SELECTION, m_ElectricalSpacingUnitsSelector->GetSelection() ); m_Config->Write( KEYWORD_ELECTRICAL_SPACING_VOLTAGE, @@ -193,12 +247,12 @@ void PCB_CALCULATOR_FRAME::WriteConfig() for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) m_transline_list[ii]->WriteConfig( m_Config ); + for( unsigned ii = 0; ii < m_attenuator_list.size(); ii++ ) m_attenuator_list[ii]->WriteConfig( m_Config ); } - /** * Function OnTranslineAnalyse * Run a new analyse for the current transline with current parameters @@ -213,6 +267,7 @@ void PCB_CALCULATOR_FRAME::OnTranslineAnalyse( wxCommandEvent& event ) } } + /** * Function OnTranslineSynthetize * Run a new synthezis for the current transline with current parameters @@ -230,14 +285,15 @@ void PCB_CALCULATOR_FRAME::OnTranslineSynthetize( wxCommandEvent& event ) void PCB_CALCULATOR_FRAME::OnPaintTranslinePanel( wxPaintEvent& event ) { - wxPaintDC dc( m_panelDisplayshape ); + wxPaintDC dc( m_panelDisplayshape ); + + TRANSLINE_IDENT* tr_ident = m_transline_list[m_currTransLineType]; - TRANSLINE_IDENT* tr_ident = m_transline_list[m_currTransLineType]; if( tr_ident ) { wxSize size = m_panelDisplayshape->GetSize(); - size.x -= tr_ident->m_Icon->GetWidth(); - size.y -= tr_ident->m_Icon->GetHeight(); + size.x -= tr_ident->m_Icon->GetWidth(); + size.y -= tr_ident->m_Icon->GetHeight(); dc.DrawBitmap( *tr_ident->m_Icon, size.x / 2, size.y / 2 ); } diff --git a/pcb_calculator/regulators_funct.cpp b/pcb_calculator/regulators_funct.cpp index ebf369f7fc..4366000ffe 100644 --- a/pcb_calculator/regulators_funct.cpp +++ b/pcb_calculator/regulators_funct.cpp @@ -28,14 +28,223 @@ #include #include +#include +#include + extern double ReturnDoubleFromString( const wxString& TextValue ); +class DIALOG_EDITOR_DATA: public DIALOG_EDITOR_DATA_BASE +{ +public: + DIALOG_EDITOR_DATA( PCB_CALCULATOR_FRAME * parent, const wxString & aRegName ) + : DIALOG_EDITOR_DATA_BASE( parent ) + { + m_textCtrlName->SetValue( aRegName ); + m_textCtrlName->Enable( aRegName.IsEmpty() ); + UpdateDialog(); + } + + ~DIALOG_EDITOR_DATA() {}; + + /** + * Function CopyRegulatorDataToDialog + * Transfert data from dialog to aItem + * @param aItem = a pointer to the REGULATOR_DATA + */ + void CopyRegulatorDataToDialog( REGULATOR_DATA * aItem ); + + /** + * Function BuildRegulatorFromData + * Creates a new REGULATOR_DATA from dialog + * @return a pointer to the new REGULATOR_DATA + */ + REGULATOR_DATA * BuildRegulatorFromData(); + + /** + * Enable/disable Iadj realted widgets, according to + * the regulator type + */ + void UpdateDialog() + { + bool enbl = m_choiceRegType->GetSelection() == 1; + m_RegulIadjValue->Enable( enbl ); + m_RegulIadjTitle->Enable( enbl ); + m_IadjUnitLabel->Enable( enbl ); + } + + /** + * called when the current regulator type is changed + */ + void OnRegTypeSelection( wxCommandEvent& event ) + { + UpdateDialog(); + } +}; + + +void DIALOG_EDITOR_DATA::CopyRegulatorDataToDialog( REGULATOR_DATA * aItem ) +{ + m_textCtrlName->SetValue( aItem->m_Name ); + wxString value; + value.Printf( wxT("%g"), aItem->m_Vref ); + m_textCtrlVref->SetValue( value ); + value.Printf( wxT("%g"), aItem->m_Iadj ); + m_RegulIadjValue->SetValue( value ); + m_choiceRegType->SetSelection( aItem->m_Type ); + UpdateDialog(); +} + +REGULATOR_DATA * DIALOG_EDITOR_DATA::BuildRegulatorFromData() +{ + double vref = ReturnDoubleFromString( m_textCtrlVref->GetValue() ); + double iadj = ReturnDoubleFromString( m_RegulIadjValue->GetValue() ); + int type = m_choiceRegType->GetSelection(); + if( type != 1 ) + iadj = 0.0; + REGULATOR_DATA * item = new REGULATOR_DATA( m_textCtrlName->GetValue(), + vref, type, iadj ); + return item; +} + void PCB_CALCULATOR_FRAME::OnRegulatorCalcButtonClick( wxCommandEvent& event ) { RegulatorsSolve(); } +void PCB_CALCULATOR_FRAME::RegulatorPageUpdate() +{ + switch( m_choiceRegType->GetSelection() ) + { + default: + case 0: + m_bitmapRegul4pins->Show( true ); + m_bitmapRegul3pins->Show( false ); + m_RegulIadjValue->Enable( false ); + m_RegulIadjTitle->Enable( false ); + m_IadjUnitLabel->Enable( false ); + m_RegulFormula->SetLabel( wxT("Vout = Vref * (R1 + R2) / R2") ); + break; + + case 1: + m_bitmapRegul4pins->Show( false ); + m_bitmapRegul3pins->Show( true ); + m_RegulIadjValue->Enable( true ); + m_RegulIadjTitle->Enable( true ); + m_IadjUnitLabel->Enable( true ); + m_RegulFormula->SetLabel( wxT("Vout = Vref * (R1 + R2) / R1 + Iadj * R2") ); + break; + } + // The new icon size must be taken in account + m_panelRegulators->GetSizer()->Layout(); + m_panelRegulators->Refresh(); +} + +void PCB_CALCULATOR_FRAME::OnRegulTypeSelection( wxCommandEvent& event ) +{ + RegulatorPageUpdate(); +} + +void PCB_CALCULATOR_FRAME::OnRegulatorSelection( wxCommandEvent& event ) +{ + wxString name = m_choiceRegulatorSelector->GetStringSelection(); + REGULATOR_DATA * item = m_RegulatorList.GetReg( name ); + if( item ) + { + m_lastSelectedRegulatorName = item->m_Name; + m_choiceRegType->SetSelection( item->m_Type ); + wxString value; + value.Printf( wxT("%g"), item->m_Vref ); + m_RegulVrefValue->SetValue( value ); + value.Printf( wxT("%g"), item->m_Iadj ); + m_RegulIadjValue->SetValue( value ); + + RegulatorPageUpdate(); + } +} + +void PCB_CALCULATOR_FRAME::OnDataFileSelection( wxFileDirPickerEvent& event ) +{ +} + +void PCB_CALCULATOR_FRAME::OnAddRegulator( wxCommandEvent& event ) +{ + DIALOG_EDITOR_DATA dlg( this, wxEmptyString ); + if( dlg.ShowModal() != wxID_OK ) + return; + + REGULATOR_DATA * new_item = dlg.BuildRegulatorFromData(); + + // Add new item, if not existing + if( m_RegulatorList.GetReg( new_item->m_Name ) == NULL ) + { + // Add item in list + m_RegulatorList.Add( new_item ); + m_RegulatorListChanged = true; + m_choiceRegulatorSelector->Clear(); + m_choiceRegulatorSelector->Append( m_RegulatorList.GetRegList() ); + SelectLastSelectedRegulator(); + } + else + { + wxMessageBox( _("This regulator is already in list. Aborted") ); + delete new_item; + } +} + +void PCB_CALCULATOR_FRAME::OnEditRegulator( wxCommandEvent& event ) +{ + wxString name = m_choiceRegulatorSelector->GetStringSelection(); + REGULATOR_DATA * item = m_RegulatorList.GetReg( name ); + DIALOG_EDITOR_DATA dlg( this, name ); + dlg.CopyRegulatorDataToDialog( item ); + if( dlg.ShowModal() != wxID_OK ) + return; + + REGULATOR_DATA * new_item = dlg.BuildRegulatorFromData(); + m_RegulatorList.Replace( new_item ); + + m_RegulatorListChanged = true; + + SelectLastSelectedRegulator(); +} + +void PCB_CALCULATOR_FRAME::OnRemoveRegulator( wxCommandEvent& event ) +{ + wxString name = wxGetSingleChoice( _("Remove Regulator"), wxEmptyString, + m_RegulatorList.GetRegList() ); + if( name.IsEmpty() ) + return; + + m_RegulatorList.Remove( name ); + m_RegulatorListChanged = true; + m_choiceRegulatorSelector->Clear(); + m_choiceRegulatorSelector->Append( m_RegulatorList.GetRegList() ); + if( m_lastSelectedRegulatorName == name ) + m_lastSelectedRegulatorName.Empty(); + + SelectLastSelectedRegulator(); +} + +void PCB_CALCULATOR_FRAME::SelectLastSelectedRegulator() +{ + // Find last selected in regulator list: + int idx = -1; + if( ! m_lastSelectedRegulatorName.IsEmpty() ) + { + for( unsigned ii = 0; ii < m_RegulatorList.GetCount(); ii++ ) + if( m_RegulatorList.m_List[ii]->m_Name == m_lastSelectedRegulatorName ) + { + idx = ii; + break; + } + } + + m_choiceRegulatorSelector->SetSelection( idx ); + wxCommandEvent event; + OnRegulatorSelection( event ); +} + // Calculate a value from the 3 other values // Vref is given by the regulator properties, so // we can calculate only R1, R2 or Vout @@ -60,16 +269,21 @@ void PCB_CALCULATOR_FRAME::RegulatorsSolve() m_RegulMessage->SetLabel( wxEmptyString); + // Convert r1 and r2 in ohms + int r1scale = 1000; + int r2scale = 1000; + // Read values from panel: txt = m_RegulR1Value->GetValue(); - r1 = ReturnDoubleFromString(txt); + r1 = ReturnDoubleFromString(txt) * r1scale; txt = m_RegulR2Value->GetValue(); - r2 = ReturnDoubleFromString(txt); + r2 = ReturnDoubleFromString(txt) * r2scale; txt = m_RegulVrefValue->GetValue(); vref = ReturnDoubleFromString(txt); txt = m_RegulVoutValue->GetValue(); vout = ReturnDoubleFromString(txt); + // Some tests: if( vout < vref && id != 2) { @@ -90,24 +304,51 @@ void PCB_CALCULATOR_FRAME::RegulatorsSolve() } // Calculate - switch( id ) - { - case 0: - r1 = ( vout / vref - 1 ) * r2; - break; + if( m_choiceRegType->GetSelection() == 1) + { // 3 terminal regulator + txt = m_RegulIadjValue->GetValue(); + double iadj = ReturnDoubleFromString(txt); + // iadj is given in micro amp, so convert it in amp. + iadj /= 1000000; - case 1: - r2 = r1 / ( vout / vref - 1); - break; + switch( id ) + { + case 0: + r1 = vref * r2 / ( vout - vref - (r2 * iadj) ); + break; - case 2: - vout = vref * (r1 + r2) / r2; - break; + case 1: + // to do + r2 = ( vout - vref ) / ( iadj + (vref/r1) ); + break; + + case 2: + vout = vref * (r1 + r2) / r1; + vout += r2 * iadj; + break; + } + } + else + { // Standard 4 terminal regulator + switch( id ) + { + case 0: + r1 = ( vout / vref - 1 ) * r2; + break; + + case 1: + r2 = r1 / ( vout / vref - 1); + break; + + case 2: + vout = vref * (r1 + r2) / r2; + break; + } } // write values to panel: - txt.Printf(wxT("%g"), r1); + txt.Printf(wxT("%g"), r1 / r1scale ); m_RegulR1Value->SetValue(txt); - txt.Printf(wxT("%g"), r2); + txt.Printf(wxT("%g"), r2 / r2scale); m_RegulR2Value->SetValue(txt); txt.Printf(wxT("%g"), vref); m_RegulVrefValue->SetValue(txt); diff --git a/pcbnew/netlist_reader_kicad.cpp b/pcbnew/netlist_reader_kicad.cpp index 632b682dee..ad1dd62f8e 100644 --- a/pcbnew/netlist_reader_kicad.cpp +++ b/pcbnew/netlist_reader_kicad.cpp @@ -118,7 +118,7 @@ bool NETLIST_READER::ReadKicadNetList( FILE* aFile ) { BOARD * brd = m_pcbframe ? m_pcbframe->GetBoard() : NULL; - // netlineReader dtor will close aFile + // netlineReader dtor will close aFile FILE_LINE_READER netlineReader( aFile, m_netlistFullName ); NETLIST_READER_KICAD_PARSER netlist_parser( &netlineReader, this ); From b299c85f98b4b31dc8e9df0f88a316eb83e82e78 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 3 Apr 2012 20:26:05 +0200 Subject: [PATCH 42/68] pcb_calculator: fixes and enhancements (not finished) --- .../dialogs/pcb_calculator_frame_base.cpp | 18 +++-- .../dialogs/pcb_calculator_frame_base.fbp | 68 +++++++++---------- .../dialogs/pcb_calculator_frame_base.h | 1 + pcb_calculator/pcb_calculator.cpp | 2 +- pcb_calculator/pcb_calculator.h | 7 ++ pcb_calculator/pcb_calculator_frame.cpp | 43 +++++++++--- pcb_calculator/regulators_funct.cpp | 62 +++++++++++++++-- 7 files changed, 150 insertions(+), 51 deletions(-) diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp index 5418fa4fdf..1d90c7ab17 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp @@ -127,6 +127,8 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_labelVRef = new wxStaticText( m_panelRegulators, wxID_ANY, _("Vref"), wxDefaultPosition, wxDefaultSize, 0 ); m_labelVRef->Wrap( -1 ); + m_labelVRef->SetToolTip( _("The internal reference voltage of the regulator.\nShould not be 0.") ); + fgSizerRegParams->Add( m_labelVRef, 0, wxALL, 5 ); m_RegulVrefValue = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); @@ -141,6 +143,8 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_RegulIadjTitle = new wxStaticText( m_panelRegulators, wxID_ANY, _("Iadj"), wxDefaultPosition, wxDefaultSize, 0 ); m_RegulIadjTitle->Wrap( -1 ); + m_RegulIadjTitle->SetToolTip( _("For 3 terminal regulators only, the Adjust pin current.") ); + fgSizerRegParams->Add( m_RegulIadjTitle, 0, wxALL, 5 ); m_RegulIadjValue = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); @@ -155,6 +159,8 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_staticTextRegType = new wxStaticText( m_panelRegulators, wxID_ANY, _("Type"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextRegType->Wrap( -1 ); + m_staticTextRegType->SetToolTip( _("Type of the regulator.\nThere are 2 types:\n- regulators which have a dedicted sense pin for the voltage regulation.\n- 3 terminal pins.") ); + fgSizerRegParams->Add( m_staticTextRegType, 0, wxALL, 5 ); wxString m_choiceRegTypeChoices[] = { _("Standard Type"), _("3 Terminal Type") }; @@ -182,26 +188,28 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_staticTextRegFile = new wxStaticText( m_panelRegulators, wxID_ANY, _("Regulators data file:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextRegFile->Wrap( -1 ); + m_staticTextRegFile->SetToolTip( _("The name of the data file which stores known regulators parameters.") ); + sbSizerRegulatorsChooser->Add( m_staticTextRegFile, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_regulators_filePicker = new wxFilePickerCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*.pcbcalc"), wxDefaultPosition, wxDefaultSize, wxFLP_SAVE|wxFLP_USE_TEXTCTRL ); + m_regulators_filePicker = new wxFilePickerCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, _("Select a Pcb Calculator data file"), wxT("*.pcbcalc"), wxDefaultPosition, wxDefaultSize, wxFLP_SAVE|wxFLP_USE_TEXTCTRL ); sbSizerRegulatorsChooser->Add( m_regulators_filePicker, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxBoxSizer* bSizerReulBtn; bSizerReulBtn = new wxBoxSizer( wxHORIZONTAL ); m_buttonEditItem = new wxButton( m_panelRegulators, wxID_ANY, _("Edit Regulator"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonEditItem->SetToolTip( _("Enter a new item in the current list of availlable regulators") ); + m_buttonEditItem->SetToolTip( _("Edit the current selected regulator.") ); bSizerReulBtn->Add( m_buttonEditItem, 0, wxALL, 5 ); m_buttonAddItem = new wxButton( m_panelRegulators, wxID_ANY, _("Add Regulator"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonAddItem->SetToolTip( _("Enter a new item in the current list of availlable regulators") ); + m_buttonAddItem->SetToolTip( _("Enter a new item to the current list of available regulators") ); bSizerReulBtn->Add( m_buttonAddItem, 1, wxALL, 5 ); m_buttonRemoveItem = new wxButton( m_panelRegulators, wxID_ANY, _("Remove Regulator"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonRemoveItem->SetToolTip( _("Remove an item in the current list of availlable regulators") ); + m_buttonRemoveItem->SetToolTip( _("Remove an item from the current list of available regulators") ); bSizerReulBtn->Add( m_buttonRemoveItem, 1, wxALL, 5 ); @@ -1241,6 +1249,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow this->Centre( wxBOTH ); // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PCB_CALCULATOR_FRAME_BASE::OnClosePcbCalc ) ); m_choiceRegType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulTypeSelection ), NULL, this ); m_buttonCalculate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorCalcButtonClick ), NULL, this ); m_choiceRegulatorSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorSelection ), NULL, this ); @@ -1269,6 +1278,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE() { // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PCB_CALCULATOR_FRAME_BASE::OnClosePcbCalc ) ); m_choiceRegType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulTypeSelection ), NULL, this ); m_buttonCalculate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorCalcButtonClick ), NULL, this ); m_choiceRegulatorSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorSelection ), NULL, this ); diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp index af1ddb6b7d..b5e78c2458 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp @@ -94,7 +94,7 @@ - + OnClosePcbCalc @@ -1920,7 +1920,7 @@ 0 - + The internal reference voltage of the regulator. Should not be 0. wxFILTER_NONE wxDefaultValidator @@ -2195,7 +2195,7 @@ 0 - + For 3 terminal regulators only, the Adjust pin current. wxFILTER_NONE wxDefaultValidator @@ -2470,7 +2470,7 @@ 0 - + Type of the regulator. There are 2 types: - regulators which have a dedicted sense pin for the voltage regulation. - 3 terminal pins. wxFILTER_NONE wxDefaultValidator @@ -2845,7 +2845,7 @@ 0 - + The name of the data file which stores known regulators parameters. wxFILTER_NONE wxDefaultValidator @@ -2914,7 +2914,7 @@ 0 - Select a file + Select a Pcb Calculator data file 0 @@ -3031,7 +3031,7 @@ 0 - Enter a new item in the current list of availlable regulators + Edit the current selected regulator. wxFILTER_NONE wxDefaultValidator @@ -3119,7 +3119,7 @@ 0 - Enter a new item in the current list of availlable regulators + Enter a new item to the current list of available regulators wxFILTER_NONE wxDefaultValidator @@ -3207,7 +3207,7 @@ 0 - Remove an item in the current list of availlable regulators + Remove an item from the current list of available regulators wxFILTER_NONE wxDefaultValidator @@ -7515,7 +7515,7 @@ Electrical Spacing 0 - + 1 1 1 @@ -7593,25 +7593,25 @@ - + bSizerElectricalClearance wxHORIZONTAL none - + 5 wxEXPAND 0 - + bLeftSizerElectricalClearance wxVERTICAL none - + 5 wxALL|wxEXPAND 0 - + 1 1 1 @@ -7695,11 +7695,11 @@ - + 5 wxEXPAND | wxALL 0 - + 1 1 1 @@ -7780,11 +7780,11 @@ - + 5 wxTOP|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -7867,11 +7867,11 @@ - + 5 wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -7958,11 +7958,11 @@ - + 5 wxALL|wxEXPAND 0 - + 1 1 1 @@ -8048,20 +8048,20 @@ - + 5 wxEXPAND 1 - + bElectricalSpacingSizerRight wxVERTICAL none - + 5 wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -8144,11 +8144,11 @@ - + 5 wxALL|wxEXPAND 0 - + 1 1 1 @@ -8291,11 +8291,11 @@ - + 5 wxBOTTOM|wxRIGHT|wxLEFT 0 - + 1 1 1 @@ -14968,7 +14968,7 @@ RF Attenuators 0 - + 1 1 1 @@ -15046,7 +15046,7 @@ - + wxID_ANY label @@ -17266,7 +17266,7 @@ - + 5 wxEXPAND 1 diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.h b/pcb_calculator/dialogs/pcb_calculator_frame_base.h index 350b975c91..25f01a9342 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.h +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.h @@ -259,6 +259,7 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame wxPanel* m_panelShowClassPrms; // Virtual event handlers, overide them in your derived class + virtual void OnClosePcbCalc( wxCloseEvent& event ) { event.Skip(); } virtual void OnRegulTypeSelection( wxCommandEvent& event ) { event.Skip(); } virtual void OnRegulatorCalcButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnRegulatorSelection( wxCommandEvent& event ) { event.Skip(); } diff --git a/pcb_calculator/pcb_calculator.cpp b/pcb_calculator/pcb_calculator.cpp index ea80bc9493..09cb48d3f4 100644 --- a/pcb_calculator/pcb_calculator.cpp +++ b/pcb_calculator/pcb_calculator.cpp @@ -57,7 +57,7 @@ IMPLEMENT_APP( EDA_APP ) bool EDA_APP::OnInit() { - InitEDA_Appl( wxT( "PCBcalc" ) ); + InitEDA_Appl( wxT( "pcb_calculator" ) ); wxFrame* frame = new PCB_CALCULATOR_FRAME( NULL ); SetTopWindow( frame ); diff --git a/pcb_calculator/pcb_calculator.h b/pcb_calculator/pcb_calculator.h index 69fe84ccaf..afbd959a8e 100644 --- a/pcb_calculator/pcb_calculator.h +++ b/pcb_calculator/pcb_calculator.h @@ -46,6 +46,8 @@ public: private: // Event handlers + void OnClosePcbCalc( wxCloseEvent& event ); + // These 3 functions are called by the OnPaint event, to draw // icons that show the current item on the specific panels void OnPaintTranslinePanel( wxPaintEvent& event ); @@ -64,6 +66,11 @@ private: return m_regulators_filePicker->GetPath(); } + void SetDataFilename( const wxString & aFilename) + { + m_regulators_filePicker->SetPath( aFilename ); + } + // tracks width versus current functions: /** * Function OnTWCalculateButt diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp index 7bd169e721..8277bd6dea 100644 --- a/pcb_calculator/pcb_calculator_frame.cpp +++ b/pcb_calculator/pcb_calculator_frame.cpp @@ -44,10 +44,10 @@ #define KEYWORD_REGUL_R2 wxT( "RegulR2" ) #define KEYWORD_REGUL_VREF wxT( "RegulVREF" ) #define KEYWORD_REGUL_VOUT wxT( "RegulVOUT" ) -#define KEYWORD_REGUL_FILENAME wxT( "RegulListFilename" ) #define KEYWORD_REGUL_SELECTED wxT( "RegulName" ) #define KEYWORD_REGUL_TYPE wxT( "RegulType" ) #define KEYWORD_REGUL_LAST_PARAM wxT( "RegulLastParam" ) +#define KEYWORD_DATAFILE_FILENAME wxT( "DataFilename" ) PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow* parent ) : PCB_CALCULATOR_FRAME_BASE( parent ) @@ -116,10 +116,6 @@ PCB_CALCULATOR_FRAME::~PCB_CALCULATOR_FRAME() { WriteConfig(); - if( m_RegulatorListChanged ) - WriteDataFile(); - - for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) delete m_transline_list[ii]; @@ -134,6 +130,37 @@ PCB_CALCULATOR_FRAME::~PCB_CALCULATOR_FRAME() this->Freeze(); } +void PCB_CALCULATOR_FRAME::OnClosePcbCalc( wxCloseEvent& event ) +{ + if( m_RegulatorListChanged ) + { + if( GetDataFilename().IsEmpty() ) + { + int opt = wxMessageBox( _("Data modified, and no data filename to save modifications\n"\ +"Do you want to exit and abandon your change?"), + _("Regulator list change"), + wxYES_NO | wxICON_QUESTION ); + if( opt == wxNO ) + return; + } + else + { + if( !WriteDataFile() ) + { + wxString msg; + msg.Printf( _("Unable to write file<%s>\n"\ +"Do you want to exit and abandon your change?"), GetDataFilename() ); + + int opt = wxMessageBox( msg, _("Write Data File Errror"), + wxYES_NO | wxICON_QUESTION ); + if( opt == wxNO ) + return; + } + } + } + + Destroy(); +} void PCB_CALCULATOR_FRAME::ReadConfig() { @@ -166,8 +193,8 @@ void PCB_CALCULATOR_FRAME::ReadConfig() m_RegulVrefValue->SetValue( msg ); m_Config->Read( KEYWORD_REGUL_VOUT, &msg, wxT( "12" ) ); m_RegulVoutValue->SetValue( msg ); - m_Config->Read( KEYWORD_REGUL_FILENAME, &msg, wxT( "" ) ); - m_regulators_filePicker->SetPath( msg ); + m_Config->Read( KEYWORD_DATAFILE_FILENAME, &msg, wxT( "" ) ); + SetDataFilename( msg ); m_Config->Read( KEYWORD_REGUL_SELECTED, &msg, wxT( "" ) ); m_lastSelectedRegulatorName = msg; m_Config->Read( KEYWORD_REGUL_TYPE, <mp, 0 ); @@ -221,7 +248,7 @@ void PCB_CALCULATOR_FRAME::WriteConfig() m_Config->Write( KEYWORD_REGUL_R2, m_RegulR2Value->GetValue() ); m_Config->Write( KEYWORD_REGUL_VREF, m_RegulVrefValue->GetValue() ); m_Config->Write( KEYWORD_REGUL_VOUT, m_RegulVoutValue->GetValue() ); - m_Config->Write( KEYWORD_REGUL_FILENAME, m_regulators_filePicker->GetPath() ); + m_Config->Write( KEYWORD_DATAFILE_FILENAME, GetDataFilename() ); m_Config->Write( KEYWORD_REGUL_SELECTED, m_lastSelectedRegulatorName ); m_Config->Write( KEYWORD_REGUL_TYPE, m_choiceRegType->GetSelection() ); diff --git a/pcb_calculator/regulators_funct.cpp b/pcb_calculator/regulators_funct.cpp index 4366000ffe..d7840161dc 100644 --- a/pcb_calculator/regulators_funct.cpp +++ b/pcb_calculator/regulators_funct.cpp @@ -47,6 +47,15 @@ public: ~DIALOG_EDITOR_DATA() {}; + // Event called functions: + void OnOKClick( wxCommandEvent& event ); + + /** + * Function IsOK() + * @return true if regulator parameters are acceptable + */ + bool IsOK(); + /** * Function CopyRegulatorDataToDialog * Transfert data from dialog to aItem @@ -83,6 +92,33 @@ public: }; +void DIALOG_EDITOR_DATA::OnOKClick( wxCommandEvent& event ) +{ + if( !IsOK() ) + { + wxMessageBox( _("Bad or missing parameters!") ); + return; + } + + EndModal( wxID_OK ); +} + +bool DIALOG_EDITOR_DATA::IsOK() +{ + bool ok = true; + if( m_textCtrlName->GetValue().IsEmpty() ) + ok = false; + if( m_textCtrlVref->GetValue().IsEmpty() ) + ok = false; + if( m_choiceRegType->GetSelection() == 1 ) + { + if( m_RegulIadjValue->GetValue().IsEmpty() ) + ok = false; + } + + return ok; +} + void DIALOG_EDITOR_DATA::CopyRegulatorDataToDialog( REGULATOR_DATA * aItem ) { m_textCtrlName->SetValue( aItem->m_Name ); @@ -137,6 +173,12 @@ void PCB_CALCULATOR_FRAME::RegulatorPageUpdate() } // The new icon size must be taken in account m_panelRegulators->GetSizer()->Layout(); + + // Enable/disable buttons: + bool enbl = m_choiceRegulatorSelector->GetCount() > 0; + m_buttonEditItem->Enable( enbl ); + m_buttonRemoveItem->Enable( enbl ); + m_panelRegulators->Refresh(); } @@ -158,9 +200,11 @@ void PCB_CALCULATOR_FRAME::OnRegulatorSelection( wxCommandEvent& event ) m_RegulVrefValue->SetValue( value ); value.Printf( wxT("%g"), item->m_Iadj ); m_RegulIadjValue->SetValue( value ); - - RegulatorPageUpdate(); } + + // Call RegulatorPageUpdate to enable/sisable tools, + // even if no item selected + RegulatorPageUpdate(); } void PCB_CALCULATOR_FRAME::OnDataFileSelection( wxFileDirPickerEvent& event ) @@ -172,6 +216,11 @@ void PCB_CALCULATOR_FRAME::OnAddRegulator( wxCommandEvent& event ) DIALOG_EDITOR_DATA dlg( this, wxEmptyString ); if( dlg.ShowModal() != wxID_OK ) return; + if( !dlg.IsOK() ) + { + wxMessageBox( _("Bad or missing parameters!") ); + return; + } REGULATOR_DATA * new_item = dlg.BuildRegulatorFromData(); @@ -183,6 +232,7 @@ void PCB_CALCULATOR_FRAME::OnAddRegulator( wxCommandEvent& event ) m_RegulatorListChanged = true; m_choiceRegulatorSelector->Clear(); m_choiceRegulatorSelector->Append( m_RegulatorList.GetRegList() ); + m_lastSelectedRegulatorName = new_item->m_Name; SelectLastSelectedRegulator(); } else @@ -196,7 +246,11 @@ void PCB_CALCULATOR_FRAME::OnEditRegulator( wxCommandEvent& event ) { wxString name = m_choiceRegulatorSelector->GetStringSelection(); REGULATOR_DATA * item = m_RegulatorList.GetReg( name ); + if( item == NULL ) + return; + DIALOG_EDITOR_DATA dlg( this, name ); + dlg.CopyRegulatorDataToDialog( item ); if( dlg.ShowModal() != wxID_OK ) return; @@ -305,7 +359,8 @@ void PCB_CALCULATOR_FRAME::RegulatorsSolve() // Calculate if( m_choiceRegType->GetSelection() == 1) - { // 3 terminal regulator + { + // 3 terminal regulator txt = m_RegulIadjValue->GetValue(); double iadj = ReturnDoubleFromString(txt); // iadj is given in micro amp, so convert it in amp. @@ -318,7 +373,6 @@ void PCB_CALCULATOR_FRAME::RegulatorsSolve() break; case 1: - // to do r2 = ( vout - vref ) / ( iadj + (vref/r1) ); break; From 500e3b9d85547667974a9d6a148f190fcca14262 Mon Sep 17 00:00:00 2001 From: Andrey Fedorushkov Date: Wed, 4 Apr 2012 21:08:16 +0400 Subject: [PATCH 43/68] pcb_calc: fix build in linux distrib Mageia1 with wxgtk2.8-2.8.11-4.mga1 --- pcb_calculator/pcb_calculator_frame.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp index 8277bd6dea..e026362df8 100644 --- a/pcb_calculator/pcb_calculator_frame.cpp +++ b/pcb_calculator/pcb_calculator_frame.cpp @@ -149,7 +149,7 @@ void PCB_CALCULATOR_FRAME::OnClosePcbCalc( wxCloseEvent& event ) { wxString msg; msg.Printf( _("Unable to write file<%s>\n"\ -"Do you want to exit and abandon your change?"), GetDataFilename() ); +"Do you want to exit and abandon your change?"), GetDataFilename().c_str() ); int opt = wxMessageBox( msg, _("Write Data File Errror"), wxYES_NO | wxICON_QUESTION ); From 484bbcbfba3a962437a0800e9ab4a3daf30f7f46 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Thu, 5 Apr 2012 13:27:56 -0500 Subject: [PATCH 44/68] Remove g_PcbPlotOptions, use wxformbuilder to subclass DIALOG_SHIM on several dialogs --- .bzrignore | 2 +- CMakeLists.txt | 3 +- common/CMakeLists.txt | 3 +- common/dialogs/dialog_page_settings.cpp | 2 +- eeschema/general.h | 23 +- include/wxBasePcbFrame.h | 16 +- pcbnew/CMakeLists.txt | 1 - pcbnew/basepcbframe.cpp | 14 + pcbnew/class_board.h | 6 +- pcbnew/class_module.h | 2 +- pcbnew/dialogs/dialog_SVG_print.cpp | 2 - .../dialog_gen_module_position_file_base.cpp | 232 +- .../dialog_gen_module_position_file_base.fbp | 1682 ++-- .../dialog_gen_module_position_file_base.h | 129 +- pcbnew/dialogs/dialog_gendrill.cpp | 71 +- pcbnew/dialogs/dialog_gendrill.h | 21 +- pcbnew/dialogs/dialog_gendrill_base.cpp | 381 +- pcbnew/dialogs/dialog_gendrill_base.fbp | 4228 +++++---- pcbnew/dialogs/dialog_gendrill_base.h | 155 +- .../dialogs/dialog_graphic_items_options.cpp | 2 - pcbnew/dialogs/dialog_plot_base.cpp | 730 +- pcbnew/dialogs/dialog_plot_base.fbp | 8454 +++++++++-------- pcbnew/dialogs/dialog_plot_base.h | 232 +- pcbnew/dialogs/dialog_print_for_modedit.cpp | 103 +- .../dialogs/dialog_print_for_modedit_base.cpp | 167 +- .../dialogs/dialog_print_for_modedit_base.fbp | 1390 +-- .../dialogs/dialog_print_for_modedit_base.h | 127 +- pcbnew/dialogs/dialog_print_using_printer.cpp | 160 +- .../dialog_print_using_printer_base.cpp | 342 +- .../dialog_print_using_printer_base.fbp | 3520 +++---- .../dialogs/dialog_print_using_printer_base.h | 167 +- pcbnew/gen_drill_report_files.cpp | 87 +- pcbnew/gen_modules_placefile.cpp | 38 +- pcbnew/gendrill.cpp | 20 +- pcbnew/ioascii.cpp | 7 +- pcbnew/kicad_plugin.cpp | 11 +- pcbnew/module_editor_frame.h | 6 +- pcbnew/moduleframe.cpp | 24 + pcbnew/pcb_plot_params.cpp | 11 +- pcbnew/pcb_plot_params.h | 12 +- pcbnew/pcbframe.cpp | 2 - pcbnew/pcbnew.cpp | 4 - pcbnew/pcbplot.cpp | 214 +- pcbnew/pcbplot.h | 28 +- pcbnew/plot_rtn.cpp | 221 +- pcbnew/plotdxf.cpp | 4 +- pcbnew/plotgerb.cpp | 18 +- pcbnew/plothpgl.cpp | 38 +- pcbnew/plotps.cpp | 28 +- pcbnew/tracepcb.cpp | 3 - 50 files changed, 11684 insertions(+), 11459 deletions(-) diff --git a/.bzrignore b/.bzrignore index 6f7c904a97..af2e593557 100644 --- a/.bzrignore +++ b/.bzrignore @@ -18,7 +18,7 @@ Documentation/doxygen *.cmake *.bak common/pcb_plot_params_keywords.cpp -common/pcb_plot_params_lexer.h +include/pcb_plot_params_lexer.h pcbnew/specctra_keywords.cpp pcbnew/specctra_lexer.h new/html diff --git a/CMakeLists.txt b/CMakeLists.txt index e340018371..25b1c47d7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -254,7 +254,6 @@ set(INC_AFTER ############ # Binaries # ############ -add_subdirectory(3d-viewer) if( USE_PNG_BITMAPS ) add_subdirectory(bitmaps_png) @@ -262,8 +261,8 @@ else() add_subdirectory(bitmaps_xpm) endif() - add_subdirectory(common) +add_subdirectory(3d-viewer) add_subdirectory(cvpcb) add_subdirectory(eeschema) add_subdirectory(gerbview) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 68d100c99b..225f66ccc4 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -113,6 +113,7 @@ set(PCB_COMMON_SRCS ../pcbnew/classpcb.cpp ../pcbnew/collectors.cpp ../pcbnew/sel_layer.cpp + ../pcbnew/pcb_plot_params.cpp pcb_plot_params_keywords.cpp dialogs/dialog_page_settings.cpp ) @@ -142,7 +143,7 @@ make_lexer( # auto-generate pcb_plot_params_lexer.h and pcb_plot_params_keywords.cpp make_lexer( ${CMAKE_CURRENT_SOURCE_DIR}/pcb_plot_params.keywords - ${CMAKE_CURRENT_SOURCE_DIR}/pcb_plot_params_lexer.h + ${PROJECT_SOURCE_DIR}/include/pcb_plot_params_lexer.h ${CMAKE_CURRENT_SOURCE_DIR}/pcb_plot_params_keywords.cpp PCBPLOTPARAMS_T ) diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp index ebc3fbdd8f..e2421ac537 100644 --- a/common/dialogs/dialog_page_settings.cpp +++ b/common/dialogs/dialog_page_settings.cpp @@ -438,9 +438,9 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ), PAGE_INFO::SetCustomWidthMils( m_layout_size.x ); PAGE_INFO::SetCustomHeightMils( m_layout_size.y ); + m_pageInfo.SetWidthMils( m_layout_size.x ); m_pageInfo.SetHeightMils( m_layout_size.y ); - m_pageInfo.SetPortrait( m_layout_size.x < m_layout_size.y ); } } else diff --git a/eeschema/general.h b/eeschema/general.h index 88c92bf835..826bc4c80b 100644 --- a/eeschema/general.h +++ b/eeschema/general.h @@ -139,22 +139,21 @@ extern const wxString g_SchematicBackupFileExtension; extern LayerStruct g_LayerDescr; -extern bool g_EditPinByPinIsOn; /* True to prevent displacing - * pins, when they are at the - * same position. */ +/// True to prevent displacing pins, when they are at the same position. +extern bool g_EditPinByPinIsOn; -extern int g_DrawDefaultLineThickness; /* Default line (in Eeschema - * units) thickness used to - * draw/plot items having a - * default thickness line - * value (i.e. = 0 ). - * 0 = single pixel line width - */ +/** + * Default line (in Eeschema units) thickness used to draw/plot items having a + * default thickness line value (i.e. = 0 ). + * 0 = single pixel line width. + */ +extern int g_DrawDefaultLineThickness; -// Color to draw selected items + +/// Color to draw selected items extern int g_ItemSelectetColor; -// Color to draw items flagged invisible, in libedit (they are invisible in Eeschema +/// Color to draw items flagged invisible, in libedit (they are invisible in Eeschema extern int g_InvisibleItemColor; /* Global Variables */ diff --git a/include/wxBasePcbFrame.h b/include/wxBasePcbFrame.h index c6219a516f..71af7cde6c 100644 --- a/include/wxBasePcbFrame.h +++ b/include/wxBasePcbFrame.h @@ -28,8 +28,8 @@ * @brief Classes used in Pcbnew, CvPcb and GerbView. */ -#ifndef WX_BASE_PCB_FRAME_H -#define WX_BASE_PCB_FRAME_H +#ifndef WX_BASE_PCB_FRAME_H_ +#define WX_BASE_PCB_FRAME_H_ #include @@ -59,6 +59,8 @@ class GENERAL_COLLECTOR; class GENERAL_COLLECTORS_GUIDE; class BOARD_DESIGN_SETTINGS; class ZONE_SETTINGS; +class PCB_PLOT_PARAMS; + /** * class PCB_BASE_FRAME @@ -138,6 +140,14 @@ public: const ZONE_SETTINGS& GetZoneSettings() const; void SetZoneSettings( const ZONE_SETTINGS& aSettings ); + /** + * Function GetPlotSettings + * returns the PCB_PLOT_PARAMS for the BOARD owned by this frame. + * Overloaded in FOOTPRINT_EDIT_FRAME. + */ + virtual const PCB_PLOT_PARAMS& GetPlotSettings() const; + virtual void SetPlotSettings( const PCB_PLOT_PARAMS& aSettings ); + /** * Function SetBoard * sets the m_Pcb member in such as way as to ensure deleting any previous @@ -674,4 +684,4 @@ public: DECLARE_EVENT_TABLE() }; -#endif /* WX_BASE_PCB_FRAME_H */ +#endif // WX_BASE_PCB_FRAME_H_ diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt index 55b0ca2bd8..7911bfbb99 100644 --- a/pcbnew/CMakeLists.txt +++ b/pcbnew/CMakeLists.txt @@ -161,7 +161,6 @@ set(PCBNEW_SRCS netlist_reader_kicad.cpp onleftclick.cpp onrightclick.cpp - pcb_plot_params.cpp pcbnew.cpp pcbnew_config.cpp pcbplot.cpp diff --git a/pcbnew/basepcbframe.cpp b/pcbnew/basepcbframe.cpp index a9c80f8531..7b189a1575 100644 --- a/pcbnew/basepcbframe.cpp +++ b/pcbnew/basepcbframe.cpp @@ -205,6 +205,20 @@ void PCB_BASE_FRAME::SetZoneSettings( const ZONE_SETTINGS& aSettings ) } +const PCB_PLOT_PARAMS& PCB_BASE_FRAME::GetPlotSettings() const +{ + wxASSERT( m_Pcb ); + return m_Pcb->GetPlotOptions(); +} + + +void PCB_BASE_FRAME::SetPlotSettings( const PCB_PLOT_PARAMS& aSettings ) +{ + wxASSERT( m_Pcb ); + m_Pcb->SetPlotOptions( aSettings ); +} + + EDA_RECT PCB_BASE_FRAME::GetBoardBoundingBox( bool aBoardEdgesOnly ) const { wxASSERT( m_Pcb ); diff --git a/pcbnew/class_board.h b/pcbnew/class_board.h index c803932f51..0716ac51ea 100644 --- a/pcbnew/class_board.h +++ b/pcbnew/class_board.h @@ -17,7 +17,7 @@ #include // PAGE_INFO #include #include - +#include class PCB_BASE_FRAME; class PCB_EDIT_FRAME; @@ -180,6 +180,7 @@ private: COLORS_DESIGN_SETTINGS* m_colorsSettings; PAGE_INFO m_paper; TITLE_BLOCK m_titles; ///< text in lower right of screen and plots + PCB_PLOT_PARAMS m_plotOptions; /// Position of the origin axis, which is used in exports mostly wxPoint m_originAxisPosition; @@ -543,6 +544,9 @@ public: const PAGE_INFO& GetPageSettings() const { return m_paper; } void SetPageSettings( const PAGE_INFO& aPageSettings ) { m_paper = aPageSettings; } + const PCB_PLOT_PARAMS& GetPlotOptions() const { return m_plotOptions; } + void SetPlotOptions( const PCB_PLOT_PARAMS& aOptions ) { m_plotOptions = aOptions; } + const wxPoint& GetOriginAxisPosition() const { return m_originAxisPosition; } void SetOriginAxisPosition( const wxPoint& aPosition ) { m_originAxisPosition = aPosition; } diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index 2cb85f86e7..24014e6ebc 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -51,7 +51,7 @@ class BOARD; * Enum MODULE_ATTR_T * is the set of attributes allowed within a MODULE, using MODULE::SetAttributes() * and MODULE::GetAttributes(). These are to be ORed together when calling - * MODULE::SetAttrbute() + * MODULE::SetAttributes() */ enum MODULE_ATTR_T { diff --git a/pcbnew/dialogs/dialog_SVG_print.cpp b/pcbnew/dialogs/dialog_SVG_print.cpp index b9d1fcfb4c..93d708dddc 100644 --- a/pcbnew/dialogs/dialog_SVG_print.cpp +++ b/pcbnew/dialogs/dialog_SVG_print.cpp @@ -37,8 +37,6 @@ #define WIDTH_MAX_VALUE 500 #define WIDTH_MIN_VALUE 1 -extern int g_DrawDefaultLineThickness; - // Local variables: static PRINT_PARAMETERS s_Parameters; static long s_SelectedLayers = LAYER_BACK | LAYER_FRONT | diff --git a/pcbnew/dialogs/dialog_gen_module_position_file_base.cpp b/pcbnew/dialogs/dialog_gen_module_position_file_base.cpp index 77ee34bfd7..64c4225ceb 100644 --- a/pcbnew/dialogs/dialog_gen_module_position_file_base.cpp +++ b/pcbnew/dialogs/dialog_gen_module_position_file_base.cpp @@ -1,111 +1,121 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_gen_module_position_file_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_GEN_MODULE_POSITION_BASE::DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); - - m_MainSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bUpperSizer; - bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bDirSizer; - bDirSizer = new wxBoxSizer( wxVERTICAL ); - - m_staticTextDir = new wxStaticText( this, wxID_ANY, _("Output directory:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextDir->Wrap( -1 ); - bDirSizer->Add( m_staticTextDir, 0, wxEXPAND|wxTOP|wxLEFT, 5 ); - - wxBoxSizer* bSizerdirBrowse; - bSizerdirBrowse = new wxBoxSizer( wxHORIZONTAL ); - - m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the board file location.") ); - m_outputDirectoryName->SetMinSize( wxSize( 350,-1 ) ); - - bSizerdirBrowse->Add( m_outputDirectoryName, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 ); - - m_browseButton = new wxButton( this, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerdirBrowse->Add( m_browseButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); - - bDirSizer->Add( bSizerdirBrowse, 1, wxEXPAND, 5 ); - - bUpperSizer->Add( bDirSizer, 1, 0, 5 ); - - m_MainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 ); - - wxBoxSizer* bSizerOptions; - bSizerOptions = new wxBoxSizer( wxHORIZONTAL ); - - wxString m_radioBoxUnitsChoices[] = { _("Inches"), _("mm") }; - int m_radioBoxUnitsNChoices = sizeof( m_radioBoxUnitsChoices ) / sizeof( wxString ); - m_radioBoxUnits = new wxRadioBox( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, m_radioBoxUnitsNChoices, m_radioBoxUnitsChoices, 1, wxRA_SPECIFY_COLS ); - m_radioBoxUnits->SetSelection( 0 ); - bSizerOptions->Add( m_radioBoxUnits, 1, wxALL, 5 ); - - wxString m_radioBoxFilesCountChoices[] = { _("One file per side"), _("One file for board") }; - int m_radioBoxFilesCountNChoices = sizeof( m_radioBoxFilesCountChoices ) / sizeof( wxString ); - m_radioBoxFilesCount = new wxRadioBox( this, wxID_ANY, _("Files:"), wxDefaultPosition, wxDefaultSize, m_radioBoxFilesCountNChoices, m_radioBoxFilesCountChoices, 1, wxRA_SPECIFY_COLS ); - m_radioBoxFilesCount->SetSelection( 0 ); - m_radioBoxFilesCount->SetToolTip( _("Creates 2 files: one for each board side or\nCreates only one file containing all footprints to place\n") ); - - bSizerOptions->Add( m_radioBoxFilesCount, 1, wxALL, 5 ); - - wxString m_radioBoxForceSmdChoices[] = { _("With INSERT attribute set"), _("Force INSERT attribute for all SMD footprints") }; - int m_radioBoxForceSmdNChoices = sizeof( m_radioBoxForceSmdChoices ) / sizeof( wxString ); - m_radioBoxForceSmd = new wxRadioBox( this, wxID_ANY, _("Footprints:"), wxDefaultPosition, wxDefaultSize, m_radioBoxForceSmdNChoices, m_radioBoxForceSmdChoices, 1, wxRA_SPECIFY_COLS ); - m_radioBoxForceSmd->SetSelection( 0 ); - m_radioBoxForceSmd->SetToolTip( _("Only footprints with option INSERT are listed in placement file.\nThis option can force this option for all footprints having only SMD pads.\nWarning: this options will modify the board.") ); - - bSizerOptions->Add( m_radioBoxForceSmd, 0, wxALL, 5 ); - - m_MainSizer->Add( bSizerOptions, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - wxStaticBoxSizer* sbSizerMsg; - sbSizerMsg = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL ); - - m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY ); - m_messagesBox->SetMinSize( wxSize( -1,70 ) ); - - sbSizerMsg->Add( m_messagesBox, 1, wxEXPAND, 5 ); - - m_MainSizer->Add( sbSizerMsg, 1, wxEXPAND, 5 ); - - m_sdbSizerButtons = new wxStdDialogButtonSizer(); - m_sdbSizerButtonsOK = new wxButton( this, wxID_OK ); - m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK ); - m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel ); - m_sdbSizerButtons->Realize(); - m_MainSizer->Add( m_sdbSizerButtons, 0, wxEXPAND|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxRIGHT, 5 ); - - this->SetSizer( m_MainSizer ); - this->Layout(); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) ); - this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) ); - m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); - m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnCancelButton ), NULL, this ); - m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this ); -} - -DIALOG_GEN_MODULE_POSITION_BASE::~DIALOG_GEN_MODULE_POSITION_BASE() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) ); - this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) ); - m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); - m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnCancelButton ), NULL, this ); - m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_gen_module_position_file_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_GEN_MODULE_POSITION_BASE::DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + + m_MainSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bUpperSizer; + bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bDirSizer; + bDirSizer = new wxBoxSizer( wxVERTICAL ); + + m_staticTextDir = new wxStaticText( this, wxID_ANY, _("Output directory:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextDir->Wrap( -1 ); + bDirSizer->Add( m_staticTextDir, 0, wxEXPAND|wxTOP|wxLEFT, 5 ); + + wxBoxSizer* bSizerdirBrowse; + bSizerdirBrowse = new wxBoxSizer( wxHORIZONTAL ); + + m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the board file location.") ); + m_outputDirectoryName->SetMinSize( wxSize( 350,-1 ) ); + + bSizerdirBrowse->Add( m_outputDirectoryName, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + m_browseButton = new wxButton( this, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerdirBrowse->Add( m_browseButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); + + + bDirSizer->Add( bSizerdirBrowse, 1, wxEXPAND, 5 ); + + + bUpperSizer->Add( bDirSizer, 1, 0, 5 ); + + + m_MainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 ); + + wxBoxSizer* bSizerOptions; + bSizerOptions = new wxBoxSizer( wxHORIZONTAL ); + + wxString m_radioBoxUnitsChoices[] = { _("Inches"), _("mm") }; + int m_radioBoxUnitsNChoices = sizeof( m_radioBoxUnitsChoices ) / sizeof( wxString ); + m_radioBoxUnits = new wxRadioBox( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, m_radioBoxUnitsNChoices, m_radioBoxUnitsChoices, 1, wxRA_SPECIFY_COLS ); + m_radioBoxUnits->SetSelection( 0 ); + bSizerOptions->Add( m_radioBoxUnits, 1, wxALL, 5 ); + + wxString m_radioBoxFilesCountChoices[] = { _("One file per side"), _("One file for board") }; + int m_radioBoxFilesCountNChoices = sizeof( m_radioBoxFilesCountChoices ) / sizeof( wxString ); + m_radioBoxFilesCount = new wxRadioBox( this, wxID_ANY, _("Files:"), wxDefaultPosition, wxDefaultSize, m_radioBoxFilesCountNChoices, m_radioBoxFilesCountChoices, 1, wxRA_SPECIFY_COLS ); + m_radioBoxFilesCount->SetSelection( 0 ); + m_radioBoxFilesCount->SetToolTip( _("Creates 2 files: one for each board side or\nCreates only one file containing all footprints to place\n") ); + + bSizerOptions->Add( m_radioBoxFilesCount, 1, wxALL, 5 ); + + wxString m_radioBoxForceSmdChoices[] = { _("With INSERT attribute set"), _("Force INSERT attribute for all SMD footprints") }; + int m_radioBoxForceSmdNChoices = sizeof( m_radioBoxForceSmdChoices ) / sizeof( wxString ); + m_radioBoxForceSmd = new wxRadioBox( this, wxID_ANY, _("Footprints Selection:"), wxDefaultPosition, wxDefaultSize, m_radioBoxForceSmdNChoices, m_radioBoxForceSmdChoices, 1, wxRA_SPECIFY_COLS ); + m_radioBoxForceSmd->SetSelection( 0 ); + m_radioBoxForceSmd->SetToolTip( _("Only footprints with option INSERT are listed in placement file.\nThis option can force this option for all footprints having only SMD pads.\nWarning: this options will modify the board.") ); + + bSizerOptions->Add( m_radioBoxForceSmd, 0, wxALL, 5 ); + + + m_MainSizer->Add( bSizerOptions, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + wxStaticBoxSizer* sbSizerMsg; + sbSizerMsg = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL ); + + m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY ); + m_messagesBox->SetMinSize( wxSize( -1,70 ) ); + + sbSizerMsg->Add( m_messagesBox, 1, wxEXPAND, 5 ); + + + m_MainSizer->Add( sbSizerMsg, 1, wxEXPAND, 5 ); + + m_sdbSizerButtons = new wxStdDialogButtonSizer(); + m_sdbSizerButtonsOK = new wxButton( this, wxID_OK ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK ); + m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel ); + m_sdbSizerButtons->Realize(); + + m_MainSizer->Add( m_sdbSizerButtons, 0, wxEXPAND|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxRIGHT, 5 ); + + + this->SetSizer( m_MainSizer ); + this->Layout(); + m_MainSizer->Fit( this ); + + this->Centre( wxBOTH ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) ); + this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) ); + m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); + m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnCancelButton ), NULL, this ); + m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this ); +} + +DIALOG_GEN_MODULE_POSITION_BASE::~DIALOG_GEN_MODULE_POSITION_BASE() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) ); + this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) ); + m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); + m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnCancelButton ), NULL, this ); + m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this ); + +} diff --git a/pcbnew/dialogs/dialog_gen_module_position_file_base.fbp b/pcbnew/dialogs/dialog_gen_module_position_file_base.fbp index 90f43401bf..3b7ab06836 100644 --- a/pcbnew/dialogs/dialog_gen_module_position_file_base.fbp +++ b/pcbnew/dialogs/dialog_gen_module_position_file_base.fbp @@ -1,840 +1,842 @@ - - - - - - C++ - 1 - source_name - 0 - res - UTF-8 - connect - dialog_gen_module_position_file_base - 1000 - none - 1 - Dialog_Gen_Modules_Positions_base - - . - - 1 - 1 - 1 - 0 - - 1 - 1 - 1 - 1 - 0 - - - - - 1 - - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - -1,-1 - 1 - DIALOG_GEN_MODULE_POSITION_BASE - 1 - - - 1 - - - Resizable - - 1 - 501,340 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Position Files: - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - OnClose - - - - - - OnInitDialog - - - - - - - - - - - - - - - - - - - - - - - m_MainSizer - wxVERTICAL - protected - - 5 - wxEXPAND - 0 - - - bUpperSizer - wxHORIZONTAL - none - - 5 - - 1 - - - bDirSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Output directory: - - - 0 - - - 0 - - 1 - m_staticTextDir - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizerdirBrowse - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - 350,-1 - 1 - m_outputDirectoryName - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Target directory for plot files. Can be absolute or relative to the board file location. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Browse... - - - 0 - - - 0 - - 1 - m_browseButton - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnOutputDirectoryBrowseClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - - bSizerOptions - wxHORIZONTAL - none - - 5 - wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Inches" "mm" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Units: - - 1 - - 0 - - - 0 - - 1 - m_radioBoxUnits - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "One file per side" "One file for board" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Files: - - 1 - - 0 - - - 0 - - 1 - m_radioBoxFilesCount - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - Creates 2 files: one for each board side or Creates only one file containing all footprints to place - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "With INSERT attribute set" "Force INSERT attribute for all SMD footprints" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Footprints Selection: - - 1 - - 0 - - - 0 - - 1 - m_radioBoxForceSmd - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - Only footprints with option INSERT are listed in placement file. This option can force this option for all footprints having only SMD pads. Warning: this options will modify the board. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY - Messages: - - sbSizerMsg - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - -1,70 - 1 - m_messagesBox - 1 - - - protected - 1 - - - Resizable - - 1 - - wxTE_MULTILINE|wxTE_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxRIGHT - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizerButtons - protected - - OnCancelButton - - - - OnOKButton - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_gen_module_position_file_base + 1000 + none + 1 + Dialog_Gen_Modules_Positions_base + + . + + 1 + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + DIALOG_GEN_MODULE_POSITION_BASE + 1 + + + 1 + + Resizable + 1 + -1,-1 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Position Files: + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + OnClose + + + + + + OnInitDialog + + + + + + + + + + + + + + + + + + + + + + + m_MainSizer + wxVERTICAL + protected + + 5 + wxEXPAND + 0 + + + bUpperSizer + wxHORIZONTAL + none + + 5 + + 1 + + + bDirSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Output directory: + + 0 + + + 0 + + 1 + m_staticTextDir + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizerdirBrowse + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + 350,-1 + 1 + m_outputDirectoryName + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Target directory for plot files. Can be absolute or relative to the board file location. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Browse... + + 0 + + + 0 + + 1 + m_browseButton + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnOutputDirectoryBrowseClicked + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + + bSizerOptions + wxHORIZONTAL + none + + 5 + wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Inches" "mm" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Units: + 1 + + 0 + + + 0 + + 1 + m_radioBoxUnits + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "One file per side" "One file for board" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Files: + 1 + + 0 + + + 0 + + 1 + m_radioBoxFilesCount + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + Creates 2 files: one for each board side or Creates only one file containing all footprints to place + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "With INSERT attribute set" "Force INSERT attribute for all SMD footprints" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Footprints Selection: + 1 + + 0 + + + 0 + + 1 + m_radioBoxForceSmd + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + Only footprints with option INSERT are listed in placement file. This option can force this option for all footprints having only SMD pads. Warning: this options will modify the board. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY + Messages: + + sbSizerMsg + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + -1,70 + 1 + m_messagesBox + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_MULTILINE|wxTE_READONLY + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxRIGHT + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizerButtons + protected + + OnCancelButton + + + + OnOKButton + + + + + + + + diff --git a/pcbnew/dialogs/dialog_gen_module_position_file_base.h b/pcbnew/dialogs/dialog_gen_module_position_file_base.h index cb57d072e3..9c807b6c35 100644 --- a/pcbnew/dialogs/dialog_gen_module_position_file_base.h +++ b/pcbnew/dialogs/dialog_gen_module_position_file_base.h @@ -1,64 +1,65 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__ -#define __DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_GEN_MODULE_POSITION_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_GEN_MODULE_POSITION_BASE : public wxDialog -{ - private: - - protected: - wxBoxSizer* m_MainSizer; - wxStaticText* m_staticTextDir; - wxTextCtrl* m_outputDirectoryName; - wxButton* m_browseButton; - wxRadioBox* m_radioBoxUnits; - wxRadioBox* m_radioBoxFilesCount; - wxRadioBox* m_radioBoxForceSmd; - wxTextCtrl* m_messagesBox; - wxStdDialogButtonSizer* m_sdbSizerButtons; - wxButton* m_sdbSizerButtonsOK; - wxButton* m_sdbSizerButtonsCancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } - virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } - virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void OnCancelButton( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOKButton( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Position Files:"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 501,340 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_GEN_MODULE_POSITION_BASE(); - -}; - -#endif //__DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__ +#define __DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_GEN_MODULE_POSITION_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_GEN_MODULE_POSITION_BASE : public DIALOG_SHIM +{ + private: + + protected: + wxBoxSizer* m_MainSizer; + wxStaticText* m_staticTextDir; + wxTextCtrl* m_outputDirectoryName; + wxButton* m_browseButton; + wxRadioBox* m_radioBoxUnits; + wxRadioBox* m_radioBoxFilesCount; + wxRadioBox* m_radioBoxForceSmd; + wxTextCtrl* m_messagesBox; + wxStdDialogButtonSizer* m_sdbSizerButtons; + wxButton* m_sdbSizerButtonsOK; + wxButton* m_sdbSizerButtonsCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } + virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } + virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCancelButton( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOKButton( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Position Files:"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_GEN_MODULE_POSITION_BASE(); + +}; + +#endif //__DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__ diff --git a/pcbnew/dialogs/dialog_gendrill.cpp b/pcbnew/dialogs/dialog_gendrill.cpp index 24ddfa7caf..17c4658644 100644 --- a/pcbnew/dialogs/dialog_gendrill.cpp +++ b/pcbnew/dialogs/dialog_gendrill.cpp @@ -55,6 +55,7 @@ static DRILL_PRECISION precisionListForInches[] = { DRILL_PRECISION( 2, 3 ), DRILL_PRECISION( 2, 4 ) }; + static DRILL_PRECISION precisionListForMetric[] = { DRILL_PRECISION( 3, 2 ), DRILL_PRECISION( 3, 3 ) @@ -64,12 +65,12 @@ static DRILL_PRECISION precisionListForMetric[] = DIALOG_GENDRILL::DIALOG_GENDRILL( PCB_EDIT_FRAME* parent ) : DIALOG_GENDRILL_BASE( parent ) { - m_Parent = parent; + m_parent = parent; + m_board = parent->GetBoard(); SetReturnCode( 1 ); initDialog(); GetSizer()->SetSizeHints( this ); - Centre(); } @@ -83,9 +84,6 @@ int DIALOG_GENDRILL:: m_PrecisionFormat = 1; bool DIALOG_GENDRILL::m_createRpt = false; int DIALOG_GENDRILL::m_createMap = 0; -/*! - * DIALOG_GENDRILL destructor - */ DIALOG_GENDRILL::~DIALOG_GENDRILL() { @@ -93,13 +91,8 @@ DIALOG_GENDRILL::~DIALOG_GENDRILL() } -/*! - * Member initialisation - */ - void DIALOG_GENDRILL::initDialog() { - SetFocus(); // Under wxGTK: mandatory to close dialog by the ESC key wxConfig* Config = wxGetApp().GetSettings(); if( Config ) @@ -116,11 +109,10 @@ void DIALOG_GENDRILL::initDialog() } -/* some param values initialization before display dialog window - */ -void DIALOG_GENDRILL::InitDisplayParams( void ) +void DIALOG_GENDRILL::InitDisplayParams() { wxString msg; + const PCB_PLOT_PARAMS& plot_opts = m_board->GetPlotOptions(); m_Choice_Unit->SetSelection( m_UnitDrillIsInch ? 1 : 0 ); m_Choice_Precision->SetSelection( m_PrecisionFormat ); @@ -146,11 +138,11 @@ void DIALOG_GENDRILL::InitDisplayParams( void ) m_MicroViaDrillValue->SetLabel( _( "Use Netclasses values" ) ); msg.Empty(); - msg << g_PcbPlotOptions.m_HPGLPenNum; + msg << plot_opts.m_HPGLPenNum; m_PenNum->SetValue( msg ); msg.Empty(); - msg << g_PcbPlotOptions.m_HPGLPenSpeed; + msg << plot_opts.m_HPGLPenSpeed; m_PenSpeed->SetValue( msg ); // See if we have some buried vias or/and microvias, and display @@ -159,7 +151,7 @@ void DIALOG_GENDRILL::InitDisplayParams( void ) m_microViasCount = 0; m_blindOrBuriedViasCount = 0; - for( TRACK* track = m_Parent->GetBoard()->m_Track; track != NULL; track = track->Next() ) + for( TRACK* track = m_parent->GetBoard()->m_Track; track != NULL; track = track->Next() ) { if( track->Type() != PCB_VIA_T ) continue; @@ -178,7 +170,7 @@ void DIALOG_GENDRILL::InitDisplayParams( void ) m_platedPadsHoleCount = 0; m_notplatedPadsHoleCount = 0; - for( MODULE* module = m_Parent->GetBoard()->m_Modules; module != NULL; module = module->Next() ) + for( MODULE* module = m_parent->GetBoard()->m_Modules; module; module = module->Next() ) { for( D_PAD* pad = module->m_Pads; pad != NULL; pad = pad->Next() ) { @@ -228,39 +220,30 @@ void DIALOG_GENDRILL::InitDisplayParams( void ) } -// Save drill options: void DIALOG_GENDRILL::UpdateConfig() { SetParams(); - wxConfig* Config = wxGetApp().GetSettings(); + wxConfig* config = wxGetApp().GetSettings(); - if( Config ) + if( config ) { - Config->Write( ZerosFormatKey, m_ZerosFormat ); - Config->Write( PrecisionKey, m_PrecisionFormat ); - Config->Write( MirrorKey, m_Mirror ); - Config->Write( MinimalHeaderKey, m_MinimalHeader ); - Config->Write( UnitDrillInchKey, m_UnitDrillIsInch ); - Config->Write( DrillOriginIsAuxAxisKey, m_DrillOriginIsAuxAxis ); + config->Write( ZerosFormatKey, m_ZerosFormat ); + config->Write( PrecisionKey, m_PrecisionFormat ); + config->Write( MirrorKey, m_Mirror ); + config->Write( MinimalHeaderKey, m_MinimalHeader ); + config->Write( UnitDrillInchKey, m_UnitDrillIsInch ); + config->Write( DrillOriginIsAuxAxisKey, m_DrillOriginIsAuxAxis ); } } -/*! - * wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_RADIOBOX - */ - void DIALOG_GENDRILL::OnSelDrillUnitsSelected( wxCommandEvent& event ) { UpdatePrecisionOptions(); } -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK - */ - void DIALOG_GENDRILL::OnOkClick( wxCommandEvent& event ) { GenDrillAndReportFiles(); @@ -268,10 +251,6 @@ void DIALOG_GENDRILL::OnOkClick( wxCommandEvent& event ) } -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CLOSE - */ - void DIALOG_GENDRILL::OnCancelClick( wxCommandEvent& event ) { UpdateConfig(); // Save drill options: @@ -279,10 +258,6 @@ void DIALOG_GENDRILL::OnCancelClick( wxCommandEvent& event ) } -/*! - * wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_SEL_ZEROS_FMT - */ - void DIALOG_GENDRILL::OnSelZerosFmtSelected( wxCommandEvent& event ) { UpdatePrecisionOptions(); @@ -311,11 +286,13 @@ void DIALOG_GENDRILL::UpdatePrecisionOptions() } -void DIALOG_GENDRILL::SetParams( void ) +void DIALOG_GENDRILL::SetParams() { wxString msg; long ltmp; + PCB_PLOT_PARAMS plot_opts = m_board->GetPlotOptions(); + m_createMap = m_Choice_Drill_Map->GetSelection(); m_createRpt = m_Choice_Drill_Report->GetSelection(); @@ -329,17 +306,17 @@ void DIALOG_GENDRILL::SetParams( void ) msg = m_PenSpeed->GetValue(); if( msg.ToLong( <mp ) ) - g_PcbPlotOptions.m_HPGLPenSpeed = ltmp; + plot_opts.m_HPGLPenSpeed = ltmp; msg = m_PenNum->GetValue(); if( msg.ToLong( <mp ) ) - g_PcbPlotOptions.m_HPGLPenNum = ltmp; + plot_opts.m_HPGLPenNum = ltmp; if( m_Choice_Drill_Offset->GetSelection() == 0 ) m_FileDrillOffset = wxPoint( 0, 0 ); else - m_FileDrillOffset = m_Parent->GetOriginAxisPosition(); + m_FileDrillOffset = m_parent->GetOriginAxisPosition(); // get precision int idx = m_Choice_Precision->GetSelection(); @@ -348,4 +325,6 @@ void DIALOG_GENDRILL::SetParams( void ) m_Precision = precisionListForInches[idx]; else m_Precision = precisionListForMetric[idx]; + + m_board->SetPlotOptions( plot_opts ); } diff --git a/pcbnew/dialogs/dialog_gendrill.h b/pcbnew/dialogs/dialog_gendrill.h index 1b3c611b80..c037cc298a 100644 --- a/pcbnew/dialogs/dialog_gendrill.h +++ b/pcbnew/dialogs/dialog_gendrill.h @@ -26,14 +26,17 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -#ifndef _DIALOG_GENDRILL_H_ -#define _DIALOG_GENDRILL_H_ +#ifndef DIALOG_GENDRILL_H_ +#define DIALOG_GENDRILL_H_ #include class DIALOG_GENDRILL : public DIALOG_GENDRILL_BASE { public: + DIALOG_GENDRILL( PCB_EDIT_FRAME* parent ); + ~DIALOG_GENDRILL(); + static int m_UnitDrillIsInch; static int m_ZerosFormat; static int m_PrecisionFormat; @@ -44,23 +47,21 @@ public: DRILL_PRECISION m_Precision; // Selected precision for drill files wxPoint m_FileDrillOffset; // Drill offset: 0,0 for absolute coordiantes, or auxialry axis origin + private: - PCB_EDIT_FRAME* m_Parent; + PCB_EDIT_FRAME* m_parent; + BOARD* m_board; + int m_platedPadsHoleCount; int m_notplatedPadsHoleCount; int m_throughViasCount; int m_microViasCount; int m_blindOrBuriedViasCount; + static bool m_createRpt; // true to create a drill file report static int m_createMap; // > 0 to create a map file report -public: - DIALOG_GENDRILL( PCB_EDIT_FRAME* parent ); - ~DIALOG_GENDRILL(); -private: - - // Initialises member variables void initDialog(); void InitDisplayParams( void ); @@ -92,4 +93,4 @@ private: DRILL_PRECISION GetPrecison(); }; -#endif // _DIALOG_GENDRILL_H_ +#endif // DIALOG_GENDRILL_H_ diff --git a/pcbnew/dialogs/dialog_gendrill_base.cpp b/pcbnew/dialogs/dialog_gendrill_base.cpp index dbff8143b3..35f862fb35 100644 --- a/pcbnew/dialogs/dialog_gendrill_base.cpp +++ b/pcbnew/dialogs/dialog_gendrill_base.cpp @@ -1,184 +1,197 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_gendrill_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* m_LeftBoxSizer; - m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_Choice_UnitChoices[] = { _("Millimeters"), _("Inches") }; - int m_Choice_UnitNChoices = sizeof( m_Choice_UnitChoices ) / sizeof( wxString ); - m_Choice_Unit = new wxRadioBox( this, wxID_ANY, _("Drill Units:"), wxDefaultPosition, wxDefaultSize, m_Choice_UnitNChoices, m_Choice_UnitChoices, 1, wxRA_SPECIFY_COLS ); - m_Choice_Unit->SetSelection( 1 ); - m_LeftBoxSizer->Add( m_Choice_Unit, 0, wxALL|wxEXPAND, 5 ); - - wxString m_Choice_Zeros_FormatChoices[] = { _("Decimal format"), _("Suppress leading zeros"), _("Suppress trailing zeros"), _("Keep zeros") }; - int m_Choice_Zeros_FormatNChoices = sizeof( m_Choice_Zeros_FormatChoices ) / sizeof( wxString ); - m_Choice_Zeros_Format = new wxRadioBox( this, wxID_ANY, _("Zeros Format"), wxDefaultPosition, wxDefaultSize, m_Choice_Zeros_FormatNChoices, m_Choice_Zeros_FormatChoices, 1, wxRA_SPECIFY_COLS ); - m_Choice_Zeros_Format->SetSelection( 0 ); - m_Choice_Zeros_Format->SetToolTip( _("Choose EXCELLON numbers notation") ); - - m_LeftBoxSizer->Add( m_Choice_Zeros_Format, 0, wxALL|wxEXPAND, 5 ); - - wxString m_Choice_PrecisionChoices[] = { _("2:3"), _("2:4") }; - int m_Choice_PrecisionNChoices = sizeof( m_Choice_PrecisionChoices ) / sizeof( wxString ); - m_Choice_Precision = new wxRadioBox( this, wxID_ANY, _("Precision"), wxDefaultPosition, wxDefaultSize, m_Choice_PrecisionNChoices, m_Choice_PrecisionChoices, 1, wxRA_SPECIFY_COLS ); - m_Choice_Precision->SetSelection( 1 ); - m_Choice_Precision->SetToolTip( _("Choose EXCELLON numbers precision") ); - - m_LeftBoxSizer->Add( m_Choice_Precision, 0, wxALL|wxEXPAND, 5 ); - - wxString m_Choice_Drill_OffsetChoices[] = { _("Absolute"), _("Auxiliary axis") }; - int m_Choice_Drill_OffsetNChoices = sizeof( m_Choice_Drill_OffsetChoices ) / sizeof( wxString ); - m_Choice_Drill_Offset = new wxRadioBox( this, wxID_ANY, _("Drill Origin:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_OffsetNChoices, m_Choice_Drill_OffsetChoices, 1, wxRA_SPECIFY_COLS ); - m_Choice_Drill_Offset->SetSelection( 0 ); - m_Choice_Drill_Offset->SetToolTip( _("Choose the coordinate origin: absolute or relative to the auxiliray axis") ); - - m_LeftBoxSizer->Add( m_Choice_Drill_Offset, 0, wxALL|wxEXPAND, 5 ); - - bMainSizer->Add( m_LeftBoxSizer, 1, wxEXPAND, 5 ); - - wxBoxSizer* bMiddleBoxSizer; - bMiddleBoxSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_Choice_Drill_MapChoices[] = { _("None"), _("Drill map (HPGL)"), _("Drill map (PostScript)"), _("Drill map (Gerber)"), _("Drill map (DXF)") }; - int m_Choice_Drill_MapNChoices = sizeof( m_Choice_Drill_MapChoices ) / sizeof( wxString ); - m_Choice_Drill_Map = new wxRadioBox( this, wxID_ANY, _("Drill Sheet:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_MapNChoices, m_Choice_Drill_MapChoices, 1, wxRA_SPECIFY_COLS ); - m_Choice_Drill_Map->SetSelection( 0 ); - m_Choice_Drill_Map->SetToolTip( _("Creates a drill map in PS, HPGL or other formats") ); - - bMiddleBoxSizer->Add( m_Choice_Drill_Map, 0, wxALL|wxEXPAND, 5 ); - - wxString m_Choice_Drill_ReportChoices[] = { _("None"), _("Drill report") }; - int m_Choice_Drill_ReportNChoices = sizeof( m_Choice_Drill_ReportChoices ) / sizeof( wxString ); - m_Choice_Drill_Report = new wxRadioBox( this, wxID_ANY, _("Drill Report:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_ReportNChoices, m_Choice_Drill_ReportChoices, 1, wxRA_SPECIFY_COLS ); - m_Choice_Drill_Report->SetSelection( 0 ); - m_Choice_Drill_Report->SetToolTip( _("Creates a plain text report") ); - - bMiddleBoxSizer->Add( m_Choice_Drill_Report, 0, wxALL|wxEXPAND, 5 ); - - wxStaticBoxSizer* sbHPGOptionsSizer; - sbHPGOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL plotter Options:") ), wxVERTICAL ); - - m_staticText1 = new wxStaticText( this, wxID_ANY, _("Speed (cm/s)"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText1->Wrap( -1 ); - sbHPGOptionsSizer->Add( m_staticText1, 0, wxRIGHT|wxLEFT, 5 ); - - m_PenSpeed = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - sbHPGOptionsSizer->Add( m_PenSpeed, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_staticText2 = new wxStaticText( this, wxID_ANY, _("Pen Number"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText2->Wrap( -1 ); - sbHPGOptionsSizer->Add( m_staticText2, 0, wxRIGHT|wxLEFT, 5 ); - - m_PenNum = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - sbHPGOptionsSizer->Add( m_PenNum, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); - - bMiddleBoxSizer->Add( sbHPGOptionsSizer, 0, wxEXPAND, 5 ); - - wxStaticBoxSizer* sbOptSizer; - sbOptSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL ); - - m_Check_Mirror = new wxCheckBox( this, wxID_ANY, _("Mirror y axis"), wxDefaultPosition, wxDefaultSize, 0 ); - sbOptSizer->Add( m_Check_Mirror, 0, wxRIGHT|wxLEFT, 5 ); - - m_Check_Minimal = new wxCheckBox( this, wxID_ANY, _("Minimal header"), wxDefaultPosition, wxDefaultSize, 0 ); - sbOptSizer->Add( m_Check_Minimal, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - bMiddleBoxSizer->Add( sbOptSizer, 0, wxEXPAND, 5 ); - - bMainSizer->Add( bMiddleBoxSizer, 1, wxEXPAND, 5 ); - - wxBoxSizer* bRightBoxSizer; - bRightBoxSizer = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSizerInfo; - sbSizerInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Info:") ), wxVERTICAL ); - - m_DefaultViasDrillSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Default Vias Drill:") ), wxVERTICAL ); - - m_ViaDrillValue = new wxStaticText( this, wxID_ANY, _("Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ViaDrillValue->Wrap( -1 ); - m_DefaultViasDrillSizer->Add( m_ViaDrillValue, 0, wxALL, 5 ); - - sbSizerInfo->Add( m_DefaultViasDrillSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - m_MicroViasDrillSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Micro Vias Drill:") ), wxVERTICAL ); - - m_MicroViaDrillValue = new wxStaticText( this, wxID_ANY, _("Micro Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 ); - m_MicroViaDrillValue->Wrap( -1 ); - m_MicroViasDrillSizer->Add( m_MicroViaDrillValue, 0, wxALL, 5 ); - - sbSizerInfo->Add( m_MicroViasDrillSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - wxStaticBoxSizer* sbSizerHoles; - sbSizerHoles = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Holes Count:") ), wxVERTICAL ); - - m_PlatedPadsCountInfoMsg = new wxStaticText( this, wxID_ANY, _("Plated Pads:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PlatedPadsCountInfoMsg->Wrap( -1 ); - sbSizerHoles->Add( m_PlatedPadsCountInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_NotPlatedPadsCountInfoMsg = new wxStaticText( this, wxID_ANY, _("Not Plated Pads:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_NotPlatedPadsCountInfoMsg->Wrap( -1 ); - sbSizerHoles->Add( m_NotPlatedPadsCountInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_ThroughViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Through Vias:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ThroughViasInfoMsg->Wrap( -1 ); - sbSizerHoles->Add( m_ThroughViasInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_MicroViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Micro Vias:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_MicroViasInfoMsg->Wrap( -1 ); - sbSizerHoles->Add( m_MicroViasInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_BuriedViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Buried Vias:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_BuriedViasInfoMsg->Wrap( -1 ); - sbSizerHoles->Add( m_BuriedViasInfoMsg, 0, wxALL, 5 ); - - sbSizerInfo->Add( sbSizerHoles, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - bRightBoxSizer->Add( sbSizerInfo, 0, wxEXPAND|wxTOP, 5 ); - - - bRightBoxSizer->Add( 10, 10, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 ); - - m_OkButton = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); - m_OkButton->SetDefault(); - bRightBoxSizer->Add( m_OkButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - m_CancelButton = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - bRightBoxSizer->Add( m_CancelButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - bMainSizer->Add( bRightBoxSizer, 1, wxEXPAND, 5 ); - - this->SetSizer( bMainSizer ); - this->Layout(); - - // Connect Events - m_Choice_Unit->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnSelDrillUnitsSelected ), NULL, this ); - m_Choice_Zeros_Format->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnSelZerosFmtSelected ), NULL, this ); - m_OkButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnOkClick ), NULL, this ); - m_CancelButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnCancelClick ), NULL, this ); -} - -DIALOG_GENDRILL_BASE::~DIALOG_GENDRILL_BASE() -{ - // Disconnect Events - m_Choice_Unit->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnSelDrillUnitsSelected ), NULL, this ); - m_Choice_Zeros_Format->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnSelZerosFmtSelected ), NULL, this ); - m_OkButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnOkClick ), NULL, this ); - m_CancelButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnCancelClick ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_gendrill_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_GENDRILL_BASE::DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bMainSizer; + bMainSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* m_LeftBoxSizer; + m_LeftBoxSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_Choice_UnitChoices[] = { _("Millimeters"), _("Inches") }; + int m_Choice_UnitNChoices = sizeof( m_Choice_UnitChoices ) / sizeof( wxString ); + m_Choice_Unit = new wxRadioBox( this, wxID_ANY, _("Drill Units:"), wxDefaultPosition, wxDefaultSize, m_Choice_UnitNChoices, m_Choice_UnitChoices, 1, wxRA_SPECIFY_COLS ); + m_Choice_Unit->SetSelection( 1 ); + m_LeftBoxSizer->Add( m_Choice_Unit, 0, wxALL|wxEXPAND, 5 ); + + wxString m_Choice_Zeros_FormatChoices[] = { _("Decimal format"), _("Suppress leading zeros"), _("Suppress trailing zeros"), _("Keep zeros") }; + int m_Choice_Zeros_FormatNChoices = sizeof( m_Choice_Zeros_FormatChoices ) / sizeof( wxString ); + m_Choice_Zeros_Format = new wxRadioBox( this, wxID_ANY, _("Zeros Format"), wxDefaultPosition, wxDefaultSize, m_Choice_Zeros_FormatNChoices, m_Choice_Zeros_FormatChoices, 1, wxRA_SPECIFY_COLS ); + m_Choice_Zeros_Format->SetSelection( 0 ); + m_Choice_Zeros_Format->SetToolTip( _("Choose EXCELLON numbers notation") ); + + m_LeftBoxSizer->Add( m_Choice_Zeros_Format, 0, wxALL|wxEXPAND, 5 ); + + wxString m_Choice_PrecisionChoices[] = { _("2:3"), _("2:4") }; + int m_Choice_PrecisionNChoices = sizeof( m_Choice_PrecisionChoices ) / sizeof( wxString ); + m_Choice_Precision = new wxRadioBox( this, wxID_ANY, _("Precision"), wxDefaultPosition, wxDefaultSize, m_Choice_PrecisionNChoices, m_Choice_PrecisionChoices, 1, wxRA_SPECIFY_COLS ); + m_Choice_Precision->SetSelection( 1 ); + m_Choice_Precision->SetToolTip( _("Choose EXCELLON numbers precision") ); + + m_LeftBoxSizer->Add( m_Choice_Precision, 0, wxALL|wxEXPAND, 5 ); + + wxString m_Choice_Drill_OffsetChoices[] = { _("Absolute"), _("Auxiliary axis") }; + int m_Choice_Drill_OffsetNChoices = sizeof( m_Choice_Drill_OffsetChoices ) / sizeof( wxString ); + m_Choice_Drill_Offset = new wxRadioBox( this, wxID_ANY, _("Drill Origin:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_OffsetNChoices, m_Choice_Drill_OffsetChoices, 1, wxRA_SPECIFY_COLS ); + m_Choice_Drill_Offset->SetSelection( 0 ); + m_Choice_Drill_Offset->SetToolTip( _("Choose the coordinate origin: absolute or relative to the auxiliray axis") ); + + m_LeftBoxSizer->Add( m_Choice_Drill_Offset, 0, wxALL|wxEXPAND, 5 ); + + + bMainSizer->Add( m_LeftBoxSizer, 1, wxEXPAND, 5 ); + + wxBoxSizer* bMiddleBoxSizer; + bMiddleBoxSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_Choice_Drill_MapChoices[] = { _("None"), _("Drill map (HPGL)"), _("Drill map (PostScript)"), _("Drill map (Gerber)"), _("Drill map (DXF)") }; + int m_Choice_Drill_MapNChoices = sizeof( m_Choice_Drill_MapChoices ) / sizeof( wxString ); + m_Choice_Drill_Map = new wxRadioBox( this, wxID_ANY, _("Drill Sheet:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_MapNChoices, m_Choice_Drill_MapChoices, 1, wxRA_SPECIFY_COLS ); + m_Choice_Drill_Map->SetSelection( 0 ); + m_Choice_Drill_Map->SetToolTip( _("Creates a drill map in PS, HPGL or other formats") ); + + bMiddleBoxSizer->Add( m_Choice_Drill_Map, 0, wxALL|wxEXPAND, 5 ); + + wxString m_Choice_Drill_ReportChoices[] = { _("None"), _("Drill report") }; + int m_Choice_Drill_ReportNChoices = sizeof( m_Choice_Drill_ReportChoices ) / sizeof( wxString ); + m_Choice_Drill_Report = new wxRadioBox( this, wxID_ANY, _("Drill Report:"), wxDefaultPosition, wxDefaultSize, m_Choice_Drill_ReportNChoices, m_Choice_Drill_ReportChoices, 1, wxRA_SPECIFY_COLS ); + m_Choice_Drill_Report->SetSelection( 0 ); + m_Choice_Drill_Report->SetToolTip( _("Creates a plain text report") ); + + bMiddleBoxSizer->Add( m_Choice_Drill_Report, 0, wxALL|wxEXPAND, 5 ); + + wxStaticBoxSizer* sbHPGOptionsSizer; + sbHPGOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL plotter Options:") ), wxVERTICAL ); + + m_staticText1 = new wxStaticText( this, wxID_ANY, _("Speed (cm/s)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText1->Wrap( -1 ); + sbHPGOptionsSizer->Add( m_staticText1, 0, wxRIGHT|wxLEFT, 5 ); + + m_PenSpeed = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbHPGOptionsSizer->Add( m_PenSpeed, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_staticText2 = new wxStaticText( this, wxID_ANY, _("Pen Number"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText2->Wrap( -1 ); + sbHPGOptionsSizer->Add( m_staticText2, 0, wxRIGHT|wxLEFT, 5 ); + + m_PenNum = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbHPGOptionsSizer->Add( m_PenNum, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + + bMiddleBoxSizer->Add( sbHPGOptionsSizer, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbOptSizer; + sbOptSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL ); + + m_Check_Mirror = new wxCheckBox( this, wxID_ANY, _("Mirror y axis"), wxDefaultPosition, wxDefaultSize, 0 ); + sbOptSizer->Add( m_Check_Mirror, 0, wxRIGHT|wxLEFT, 5 ); + + m_Check_Minimal = new wxCheckBox( this, wxID_ANY, _("Minimal header"), wxDefaultPosition, wxDefaultSize, 0 ); + sbOptSizer->Add( m_Check_Minimal, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + + bMiddleBoxSizer->Add( sbOptSizer, 0, wxEXPAND, 5 ); + + + bMainSizer->Add( bMiddleBoxSizer, 1, wxEXPAND, 5 ); + + wxBoxSizer* bRightBoxSizer; + bRightBoxSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizerInfo; + sbSizerInfo = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Info:") ), wxVERTICAL ); + + m_DefaultViasDrillSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Default Vias Drill:") ), wxVERTICAL ); + + m_ViaDrillValue = new wxStaticText( this, wxID_ANY, _("Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ViaDrillValue->Wrap( -1 ); + m_DefaultViasDrillSizer->Add( m_ViaDrillValue, 0, wxALL, 5 ); + + + sbSizerInfo->Add( m_DefaultViasDrillSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + m_MicroViasDrillSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Micro Vias Drill:") ), wxVERTICAL ); + + m_MicroViaDrillValue = new wxStaticText( this, wxID_ANY, _("Micro Via Drill Value"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MicroViaDrillValue->Wrap( -1 ); + m_MicroViasDrillSizer->Add( m_MicroViaDrillValue, 0, wxALL, 5 ); + + + sbSizerInfo->Add( m_MicroViasDrillSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + wxStaticBoxSizer* sbSizerHoles; + sbSizerHoles = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Holes Count:") ), wxVERTICAL ); + + m_PlatedPadsCountInfoMsg = new wxStaticText( this, wxID_ANY, _("Plated Pads:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PlatedPadsCountInfoMsg->Wrap( -1 ); + sbSizerHoles->Add( m_PlatedPadsCountInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_NotPlatedPadsCountInfoMsg = new wxStaticText( this, wxID_ANY, _("Not Plated Pads:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_NotPlatedPadsCountInfoMsg->Wrap( -1 ); + sbSizerHoles->Add( m_NotPlatedPadsCountInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_ThroughViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Through Vias:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ThroughViasInfoMsg->Wrap( -1 ); + sbSizerHoles->Add( m_ThroughViasInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_MicroViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Micro Vias:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MicroViasInfoMsg->Wrap( -1 ); + sbSizerHoles->Add( m_MicroViasInfoMsg, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_BuriedViasInfoMsg = new wxStaticText( this, wxID_ANY, _("Buried Vias:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_BuriedViasInfoMsg->Wrap( -1 ); + sbSizerHoles->Add( m_BuriedViasInfoMsg, 0, wxALL, 5 ); + + + sbSizerInfo->Add( sbSizerHoles, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + + bRightBoxSizer->Add( sbSizerInfo, 0, wxEXPAND|wxTOP, 5 ); + + + bRightBoxSizer->Add( 10, 10, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_OkButton = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); + m_OkButton->SetDefault(); + bRightBoxSizer->Add( m_OkButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_CancelButton = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + bRightBoxSizer->Add( m_CancelButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + + bMainSizer->Add( bRightBoxSizer, 1, wxEXPAND, 5 ); + + + this->SetSizer( bMainSizer ); + this->Layout(); + bMainSizer->Fit( this ); + + this->Centre( wxBOTH ); + + // Connect Events + m_Choice_Unit->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnSelDrillUnitsSelected ), NULL, this ); + m_Choice_Zeros_Format->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnSelZerosFmtSelected ), NULL, this ); + m_OkButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnOkClick ), NULL, this ); + m_CancelButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnCancelClick ), NULL, this ); +} + +DIALOG_GENDRILL_BASE::~DIALOG_GENDRILL_BASE() +{ + // Disconnect Events + m_Choice_Unit->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnSelDrillUnitsSelected ), NULL, this ); + m_Choice_Zeros_Format->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnSelZerosFmtSelected ), NULL, this ); + m_OkButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnOkClick ), NULL, this ); + m_CancelButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENDRILL_BASE::OnCancelClick ), NULL, this ); + +} diff --git a/pcbnew/dialogs/dialog_gendrill_base.fbp b/pcbnew/dialogs/dialog_gendrill_base.fbp index 68ef7d83ba..6b7fadea1b 100644 --- a/pcbnew/dialogs/dialog_gendrill_base.fbp +++ b/pcbnew/dialogs/dialog_gendrill_base.fbp @@ -1,2113 +1,2115 @@ - - - - - - C++ - 1 - source_name - 0 - res - UTF-8 - connect - dialog_gendrill_base - 1000 - none - 1 - dialog_gendrill_base - - . - - 1 - 1 - 0 - 0 - - 1 - 1 - 1 - 1 - 0 - - - - - 1 - - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - DIALOG_GENDRILL_BASE - 1 - - - 1 - - - Resizable - - 1 - 447,385 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Drill Files Generation - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bMainSizer - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - - m_LeftBoxSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Millimeters" "Inches" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Drill Units: - - 1 - - 0 - - - 0 - - 1 - m_Choice_Unit - 1 - - - protected - 1 - - - Resizable - - 1 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - OnSelDrillUnitsSelected - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Decimal format" "Suppress leading zeros" "Suppress trailing zeros" "Keep zeros" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Zeros Format - - 1 - - 0 - - - 0 - - 1 - m_Choice_Zeros_Format - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - Choose EXCELLON numbers notation - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - OnSelZerosFmtSelected - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "2:3" "2:4" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Precision - - 1 - - 0 - - - 0 - - 1 - m_Choice_Precision - 1 - - - protected - 1 - - - Resizable - - 1 - 1 - - wxRA_SPECIFY_COLS - - 0 - Choose EXCELLON numbers precision - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Absolute" "Auxiliary axis" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Drill Origin: - - 1 - - 0 - - - 0 - - 1 - m_Choice_Drill_Offset - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - Choose the coordinate origin: absolute or relative to the auxiliray axis - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bMiddleBoxSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "None" "Drill map (HPGL)" "Drill map (PostScript)" "Drill map (Gerber)" "Drill map (DXF)" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Drill Sheet: - - 1 - - 0 - - - 0 - - 1 - m_Choice_Drill_Map - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - Creates a drill map in PS, HPGL or other formats - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "None" "Drill report" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Drill Report: - - 1 - - 0 - - - 0 - - 1 - m_Choice_Drill_Report - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - Creates a plain text report - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - wxID_ANY - HPGL plotter Options: - - sbHPGOptionsSizer - wxVERTICAL - none - - - 5 - wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Speed (cm/s) - - - 0 - - - 0 - - 1 - m_staticText1 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PenSpeed - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pen Number - - - 0 - - - 0 - - 1 - m_staticText2 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_PenNum - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - wxID_ANY - Options: - - sbOptSizer - wxVERTICAL - none - - - 5 - wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Mirror y axis - - - 0 - - - 0 - - 1 - m_Check_Mirror - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Minimal header - - - 0 - - - 0 - - 1 - m_Check_Minimal - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bRightBoxSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP - 0 - - wxID_ANY - Info: - - sbSizerInfo - wxVERTICAL - none - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - wxID_ANY - Default Vias Drill: - - m_DefaultViasDrillSizer - wxVERTICAL - protected - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Via Drill Value - - - 0 - - - 0 - - 1 - m_ViaDrillValue - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - wxID_ANY - Micro Vias Drill: - - m_MicroViasDrillSizer - wxVERTICAL - protected - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Micro Via Drill Value - - - 0 - - - 0 - - 1 - m_MicroViaDrillValue - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 1 - - wxID_ANY - Holes Count: - - sbSizerHoles - wxVERTICAL - none - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plated Pads: - - - 0 - - - 0 - - 1 - m_PlatedPadsCountInfoMsg - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Not Plated Pads: - - - 0 - - - 0 - - 1 - m_NotPlatedPadsCountInfoMsg - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Through Vias: - - - 0 - - - 0 - - 1 - m_ThroughViasInfoMsg - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Micro Vias: - - - 0 - - - 0 - - 1 - m_MicroViasInfoMsg - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Buried Vias: - - - 0 - - - 0 - - 1 - m_BuriedViasInfoMsg - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_HORIZONTAL - 1 - - 10 - protected - 10 - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_OK - OK - - - 0 - - - 0 - - 1 - m_OkButton - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnOkClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_CANCEL - Cancel - - - 0 - - - 0 - - 1 - m_CancelButton - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnCancelClick - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_gendrill_base + 1000 + none + 1 + dialog_gendrill_base + + . + + 1 + 1 + 1 + 0 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + DIALOG_GENDRILL_BASE + 1 + + + 1 + + Resizable + 1 + -1,-1 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Drill Files Generation + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bMainSizer + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + + m_LeftBoxSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Millimeters" "Inches" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Drill Units: + 1 + + 0 + + + 0 + + 1 + m_Choice_Unit + 1 + + + protected + 1 + + Resizable + 1 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + OnSelDrillUnitsSelected + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Decimal format" "Suppress leading zeros" "Suppress trailing zeros" "Keep zeros" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Zeros Format + 1 + + 0 + + + 0 + + 1 + m_Choice_Zeros_Format + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + Choose EXCELLON numbers notation + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + OnSelZerosFmtSelected + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "2:3" "2:4" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Precision + 1 + + 0 + + + 0 + + 1 + m_Choice_Precision + 1 + + + protected + 1 + + Resizable + 1 + 1 + + wxRA_SPECIFY_COLS + + 0 + Choose EXCELLON numbers precision + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Absolute" "Auxiliary axis" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Drill Origin: + 1 + + 0 + + + 0 + + 1 + m_Choice_Drill_Offset + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + Choose the coordinate origin: absolute or relative to the auxiliray axis + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bMiddleBoxSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "None" "Drill map (HPGL)" "Drill map (PostScript)" "Drill map (Gerber)" "Drill map (DXF)" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Drill Sheet: + 1 + + 0 + + + 0 + + 1 + m_Choice_Drill_Map + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + Creates a drill map in PS, HPGL or other formats + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "None" "Drill report" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Drill Report: + 1 + + 0 + + + 0 + + 1 + m_Choice_Drill_Report + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + Creates a plain text report + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + HPGL plotter Options: + + sbHPGOptionsSizer + wxVERTICAL + none + + + 5 + wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Speed (cm/s) + + 0 + + + 0 + + 1 + m_staticText1 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PenSpeed + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pen Number + + 0 + + + 0 + + 1 + m_staticText2 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PenNum + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Options: + + sbOptSizer + wxVERTICAL + none + + + 5 + wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Mirror y axis + + 0 + + + 0 + + 1 + m_Check_Mirror + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Minimal header + + 0 + + + 0 + + 1 + m_Check_Minimal + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bRightBoxSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP + 0 + + wxID_ANY + Info: + + sbSizerInfo + wxVERTICAL + none + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + wxID_ANY + Default Vias Drill: + + m_DefaultViasDrillSizer + wxVERTICAL + protected + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Via Drill Value + + 0 + + + 0 + + 1 + m_ViaDrillValue + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + wxID_ANY + Micro Vias Drill: + + m_MicroViasDrillSizer + wxVERTICAL + protected + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Micro Via Drill Value + + 0 + + + 0 + + 1 + m_MicroViaDrillValue + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 1 + + wxID_ANY + Holes Count: + + sbSizerHoles + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Plated Pads: + + 0 + + + 0 + + 1 + m_PlatedPadsCountInfoMsg + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Not Plated Pads: + + 0 + + + 0 + + 1 + m_NotPlatedPadsCountInfoMsg + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Through Vias: + + 0 + + + 0 + + 1 + m_ThroughViasInfoMsg + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Micro Vias: + + 0 + + + 0 + + 1 + m_MicroViasInfoMsg + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Buried Vias: + + 0 + + + 0 + + 1 + m_BuriedViasInfoMsg + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_CENTER_HORIZONTAL + 1 + + 10 + protected + 10 + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_OK + OK + + 0 + + + 0 + + 1 + m_OkButton + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnOkClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_CANCEL + Cancel + + 0 + + + 0 + + 1 + m_CancelButton + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCancelClick + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pcbnew/dialogs/dialog_gendrill_base.h b/pcbnew/dialogs/dialog_gendrill_base.h index 6fe8fcf446..54601c9fad 100644 --- a/pcbnew/dialogs/dialog_gendrill_base.h +++ b/pcbnew/dialogs/dialog_gendrill_base.h @@ -1,77 +1,78 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_GENDRILL_BASE_H__ -#define __DIALOG_GENDRILL_BASE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_GENDRILL_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_GENDRILL_BASE : public wxDialog -{ - private: - - protected: - wxRadioBox* m_Choice_Unit; - wxRadioBox* m_Choice_Zeros_Format; - wxRadioBox* m_Choice_Precision; - wxRadioBox* m_Choice_Drill_Offset; - wxRadioBox* m_Choice_Drill_Map; - wxRadioBox* m_Choice_Drill_Report; - wxStaticText* m_staticText1; - wxTextCtrl* m_PenSpeed; - wxStaticText* m_staticText2; - wxTextCtrl* m_PenNum; - wxCheckBox* m_Check_Mirror; - wxCheckBox* m_Check_Minimal; - wxStaticBoxSizer* m_DefaultViasDrillSizer; - wxStaticText* m_ViaDrillValue; - wxStaticBoxSizer* m_MicroViasDrillSizer; - wxStaticText* m_MicroViaDrillValue; - wxStaticText* m_PlatedPadsCountInfoMsg; - wxStaticText* m_NotPlatedPadsCountInfoMsg; - wxStaticText* m_ThroughViasInfoMsg; - wxStaticText* m_MicroViasInfoMsg; - wxStaticText* m_BuriedViasInfoMsg; - wxButton* m_OkButton; - wxButton* m_CancelButton; - - // Virtual event handlers, overide them in your derived class - virtual void OnSelDrillUnitsSelected( wxCommandEvent& event ) { event.Skip(); } - virtual void OnSelZerosFmtSelected( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Drill Files Generation"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 447,385 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_GENDRILL_BASE(); - -}; - -#endif //__DIALOG_GENDRILL_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_GENDRILL_BASE_H__ +#define __DIALOG_GENDRILL_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_GENDRILL_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_GENDRILL_BASE : public DIALOG_SHIM +{ + private: + + protected: + wxRadioBox* m_Choice_Unit; + wxRadioBox* m_Choice_Zeros_Format; + wxRadioBox* m_Choice_Precision; + wxRadioBox* m_Choice_Drill_Offset; + wxRadioBox* m_Choice_Drill_Map; + wxRadioBox* m_Choice_Drill_Report; + wxStaticText* m_staticText1; + wxTextCtrl* m_PenSpeed; + wxStaticText* m_staticText2; + wxTextCtrl* m_PenNum; + wxCheckBox* m_Check_Mirror; + wxCheckBox* m_Check_Minimal; + wxStaticBoxSizer* m_DefaultViasDrillSizer; + wxStaticText* m_ViaDrillValue; + wxStaticBoxSizer* m_MicroViasDrillSizer; + wxStaticText* m_MicroViaDrillValue; + wxStaticText* m_PlatedPadsCountInfoMsg; + wxStaticText* m_NotPlatedPadsCountInfoMsg; + wxStaticText* m_ThroughViasInfoMsg; + wxStaticText* m_MicroViasInfoMsg; + wxStaticText* m_BuriedViasInfoMsg; + wxButton* m_OkButton; + wxButton* m_CancelButton; + + // Virtual event handlers, overide them in your derived class + virtual void OnSelDrillUnitsSelected( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelZerosFmtSelected( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_GENDRILL_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Drill Files Generation"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_GENDRILL_BASE(); + +}; + +#endif //__DIALOG_GENDRILL_BASE_H__ diff --git a/pcbnew/dialogs/dialog_graphic_items_options.cpp b/pcbnew/dialogs/dialog_graphic_items_options.cpp index 8b1825a4a4..2d383390f4 100644 --- a/pcbnew/dialogs/dialog_graphic_items_options.cpp +++ b/pcbnew/dialogs/dialog_graphic_items_options.cpp @@ -14,8 +14,6 @@ #include -extern int g_DrawDefaultLineThickness; - void PCB_EDIT_FRAME::OnConfigurePcbOptions( wxCommandEvent& aEvent ) { diff --git a/pcbnew/dialogs/dialog_plot_base.cpp b/pcbnew/dialogs/dialog_plot_base.cpp index a4d8a8b62b..ca383cff84 100644 --- a/pcbnew/dialogs/dialog_plot_base.cpp +++ b/pcbnew/dialogs/dialog_plot_base.cpp @@ -1,351 +1,379 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 17 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_plot_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); - - m_MainSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizer12; - bSizer12 = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* bSizer26; - bSizer26 = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizer27; - bSizer27 = new wxBoxSizer( wxVERTICAL ); - - m_staticText121 = new wxStaticText( this, wxID_ANY, _("Plot format:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText121->Wrap( -1 ); - bSizer27->Add( m_staticText121, 0, wxTOP, 5 ); - - wxString m_plotFormatOptChoices[] = { _("HPGL"), _("Gerber"), _("Postscript"), _("DXF") }; - int m_plotFormatOptNChoices = sizeof( m_plotFormatOptChoices ) / sizeof( wxString ); - m_plotFormatOpt = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_plotFormatOptNChoices, m_plotFormatOptChoices, 0 ); - m_plotFormatOpt->SetSelection( 0 ); - bSizer27->Add( m_plotFormatOpt, 0, 0, 5 ); - - bSizer26->Add( bSizer27, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); - - wxBoxSizer* bSizer28; - bSizer28 = new wxBoxSizer( wxVERTICAL ); - - m_staticTextDir = new wxStaticText( this, wxID_ANY, _("Output directory:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextDir->Wrap( -1 ); - bSizer28->Add( m_staticTextDir, 0, wxEXPAND|wxTOP|wxLEFT, 5 ); - - wxBoxSizer* bSizer29; - bSizer29 = new wxBoxSizer( wxHORIZONTAL ); - - m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the board file location.") ); - - bSizer29->Add( m_outputDirectoryName, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 ); - - m_browseButton = new wxButton( this, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer29->Add( m_browseButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); - - bSizer28->Add( bSizer29, 1, wxEXPAND, 5 ); - - bSizer26->Add( bSizer28, 1, 0, 5 ); - - bSizer12->Add( bSizer26, 0, wxEXPAND, 5 ); - - wxBoxSizer* bUpperSizer; - bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers") ), wxHORIZONTAL ); - - wxArrayString m_layerCheckListBoxChoices; - m_layerCheckListBox = new wxCheckListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_layerCheckListBoxChoices, 0 ); - m_LayersSizer->Add( m_layerCheckListBox, 1, wxEXPAND, 5 ); - - bUpperSizer->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 3 ); - - m_PlotOptionsSizer = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbOptionsSizer; - sbOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options") ), wxVERTICAL ); - - wxBoxSizer* bSizer192; - bSizer192 = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizerPlotItems; - bSizerPlotItems = new wxBoxSizer( wxVERTICAL ); - - m_plotSheetRef = new wxCheckBox( this, wxID_ANY, _("Plot sheet reference on all layers"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerPlotItems->Add( m_plotSheetRef, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); - - m_plotPads_on_Silkscreen = new wxCheckBox( this, ID_ALLOW_PRINT_PAD_ON_SILKSCREEN, _("Plot pads on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); - m_plotPads_on_Silkscreen->SetToolTip( _("Enable/disable print/plot pads on silkscreen layers\nWhen disable, pads are never potted on silkscreen layers\nWhen enable, pads are potted only if they appear on silkscreen layers") ); - - bSizerPlotItems->Add( m_plotPads_on_Silkscreen, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); - - m_plotModuleValueOpt = new wxCheckBox( this, wxID_ANY, _("Plot module value on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerPlotItems->Add( m_plotModuleValueOpt, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); - - m_plotModuleRefOpt = new wxCheckBox( this, ID_PRINT_REF, _("Plot module reference on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerPlotItems->Add( m_plotModuleRefOpt, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); - - m_plotTextOther = new wxCheckBox( this, wxID_ANY, _("Plot other module texts on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); - m_plotTextOther->SetToolTip( _("Enable/disable print/plot module field texts on silkscreen layers") ); - - bSizerPlotItems->Add( m_plotTextOther, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); - - m_plotInvisibleText = new wxCheckBox( this, wxID_ANY, _("Plot invisible texts on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); - m_plotInvisibleText->SetToolTip( _("Force print/plot module invisible texts on silkscreen layers") ); - - bSizerPlotItems->Add( m_plotInvisibleText, 0, wxALL, 2 ); - - m_plotNoViaOnMaskOpt = new wxCheckBox( this, wxID_ANY, _("Do not tent vias"), wxDefaultPosition, wxDefaultSize, 0 ); - m_plotNoViaOnMaskOpt->SetToolTip( _("Remove soldermask on vias.") ); - - bSizerPlotItems->Add( m_plotNoViaOnMaskOpt, 0, wxALL, 2 ); - - m_plotMirrorOpt = new wxCheckBox( this, ID_MIROR_OPT, _("Mirrored plot"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerPlotItems->Add( m_plotMirrorOpt, 0, wxALL, 2 ); - - bSizer192->Add( bSizerPlotItems, 0, wxEXPAND, 5 ); - - wxBoxSizer* bSizer14; - bSizer14 = new wxBoxSizer( wxVERTICAL ); - - m_staticText11 = new wxStaticText( this, wxID_ANY, _("Drill marks:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText11->Wrap( -1 ); - bSizer14->Add( m_staticText11, 0, wxRIGHT|wxLEFT, 5 ); - - wxString m_drillShapeOptChoices[] = { _("None"), _("Small"), _("Actual size") }; - int m_drillShapeOptNChoices = sizeof( m_drillShapeOptChoices ) / sizeof( wxString ); - m_drillShapeOpt = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_drillShapeOptNChoices, m_drillShapeOptChoices, 0 ); - m_drillShapeOpt->SetSelection( 0 ); - bSizer14->Add( m_drillShapeOpt, 0, wxEXPAND|wxLEFT, 5 ); - - m_staticText12 = new wxStaticText( this, wxID_ANY, _("Scaling:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText12->Wrap( -1 ); - bSizer14->Add( m_staticText12, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxString m_scaleOptChoices[] = { _("Auto"), _("1:1"), _("3:2"), _("2:1"), _("3:1") }; - int m_scaleOptNChoices = sizeof( m_scaleOptChoices ) / sizeof( wxString ); - m_scaleOpt = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_scaleOptNChoices, m_scaleOptChoices, 0 ); - m_scaleOpt->SetSelection( 0 ); - bSizer14->Add( m_scaleOpt, 0, wxEXPAND|wxLEFT, 5 ); - - m_staticText13 = new wxStaticText( this, wxID_ANY, _("Plot mode:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText13->Wrap( -1 ); - bSizer14->Add( m_staticText13, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxString m_plotModeOptChoices[] = { _("Line"), _("Filled"), _("Sketch") }; - int m_plotModeOptNChoices = sizeof( m_plotModeOptChoices ) / sizeof( wxString ); - m_plotModeOpt = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_plotModeOptNChoices, m_plotModeOptChoices, 0 ); - m_plotModeOpt->SetSelection( 0 ); - bSizer14->Add( m_plotModeOpt, 0, wxEXPAND|wxLEFT, 5 ); - - m_textDefaultPenSize = new wxStaticText( this, wxID_ANY, _("Default linewidth"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textDefaultPenSize->Wrap( -1 ); - m_textDefaultPenSize->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") ); - - bSizer14->Add( m_textDefaultPenSize, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_linesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_linesWidth->SetToolTip( _("Line width for, e.g., sheet references.") ); - - bSizer14->Add( m_linesWidth, 0, wxBOTTOM|wxEXPAND|wxLEFT, 5 ); - - bSizer192->Add( bSizer14, 1, wxRIGHT|wxLEFT, 3 ); - - sbOptionsSizer->Add( bSizer192, 0, wxEXPAND, 5 ); - - m_PlotOptionsSizer->Add( sbOptionsSizer, 0, wxALL|wxEXPAND, 3 ); - - m_GerberOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Gerber Options") ), wxVERTICAL ); - - m_useGerberExtensions = new wxCheckBox( this, wxID_ANY, _("Use proper filename extensions"), wxDefaultPosition, wxDefaultSize, 0 ); - m_useGerberExtensions->SetToolTip( _("Use proper Gerber extensions - .GBL, .GTL, etc...") ); - - m_GerberOptionsSizer->Add( m_useGerberExtensions, 0, wxLEFT|wxRIGHT|wxTOP, 2 ); - - m_excludeEdgeLayerOpt = new wxCheckBox( this, wxID_ANY, _("Exclude PCB edge layer from other layers"), wxDefaultPosition, wxDefaultSize, 0 ); - m_excludeEdgeLayerOpt->SetToolTip( _("Exclude contents of the pcb edge layer from all other layers") ); - - m_GerberOptionsSizer->Add( m_excludeEdgeLayerOpt, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); - - m_subtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Subtract soldermask from silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); - m_subtractMaskFromSilk->SetToolTip( _("Remove silkscreen from areas without soldermask") ); - - m_GerberOptionsSizer->Add( m_subtractMaskFromSilk, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); - - m_useAuxOriginCheckBox = new wxCheckBox( this, wxID_ANY, _("Use auxiliary axis as origin"), wxDefaultPosition, wxDefaultSize, 0 ); - m_useAuxOriginCheckBox->SetToolTip( _("Use auxiliary axis as coordinates origin in Gerber files.") ); - - m_GerberOptionsSizer->Add( m_useAuxOriginCheckBox, 0, wxALL, 2 ); - - m_PlotOptionsSizer->Add( m_GerberOptionsSizer, 0, wxALL|wxEXPAND, 3 ); - - m_HPGLOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options") ), wxVERTICAL ); - - wxBoxSizer* bSizer22; - bSizer22 = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizer20; - bSizer20 = new wxBoxSizer( wxVERTICAL ); - - m_textPenSize = new wxStaticText( this, wxID_ANY, _("Pen size"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPenSize->Wrap( -1 ); - bSizer20->Add( m_textPenSize, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_HPGLPenSizeOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bSizer20->Add( m_HPGLPenSizeOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_textPenOvr = new wxStaticText( this, wxID_ANY, _("Pen overlay"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPenOvr->Wrap( -1 ); - bSizer20->Add( m_textPenOvr, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_HPGLPenOverlayOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_HPGLPenOverlayOpt->SetToolTip( _("Set plot overlay for filling") ); - - bSizer20->Add( m_HPGLPenOverlayOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - bSizer22->Add( bSizer20, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizer21; - bSizer21 = new wxBoxSizer( wxVERTICAL ); - - m_textPenSpeed = new wxStaticText( this, wxID_ANY, _("Pen speed (cm/s):"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPenSpeed->Wrap( -1 ); - bSizer21->Add( m_textPenSpeed, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_HPGLPenSpeedOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_HPGLPenSpeedOpt->SetToolTip( _("Set pen speed in cm/s") ); - - bSizer21->Add( m_HPGLPenSpeedOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - bSizer22->Add( bSizer21, 1, wxEXPAND, 5 ); - - m_HPGLOptionsSizer->Add( bSizer22, 1, wxEXPAND, 5 ); - - m_PlotOptionsSizer->Add( m_HPGLOptionsSizer, 0, wxALL|wxEXPAND, 3 ); - - m_PSOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Postscript Options") ), wxVERTICAL ); - - wxBoxSizer* bSizer17; - bSizer17 = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizer18; - bSizer18 = new wxBoxSizer( wxVERTICAL ); - - m_staticText7 = new wxStaticText( this, wxID_ANY, _("X scale:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText7->Wrap( -1 ); - bSizer18->Add( m_staticText7, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_fineAdjustXscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_fineAdjustXscaleOpt->SetToolTip( _("Set global X scale adjust for exact scale postscript output.") ); - - bSizer18->Add( m_fineAdjustXscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - bSizer17->Add( bSizer18, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizer19; - bSizer19 = new wxBoxSizer( wxVERTICAL ); - - m_staticText8 = new wxStaticText( this, wxID_ANY, _("Y scale:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText8->Wrap( -1 ); - bSizer19->Add( m_staticText8, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_fineAdjustYscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_fineAdjustYscaleOpt->SetToolTip( _("Set global Y scale adjust for exact scale postscript output.") ); - - bSizer19->Add( m_fineAdjustYscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - bSizer17->Add( bSizer19, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizer191; - bSizer191 = new wxBoxSizer( wxVERTICAL ); - - m_textPSFineAdjustWidth = new wxStaticText( this, wxID_ANY, _("Width correction"), wxDefaultPosition, wxDefaultSize, 0 ); - m_textPSFineAdjustWidth->Wrap( -1 ); - bSizer191->Add( m_textPSFineAdjustWidth, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); - - m_PSFineAdjustWidthOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_PSFineAdjustWidthOpt->SetToolTip( _("Set global width correction for exact width postscript output.\nThese width correction is intended to compensate tracks width and also pads and vias size errors.\nThe reasonable width correction value must be in a range of [-(MinTrackWidth-1), +(MinClearanceValue-1)] in decimils.") ); - - bSizer191->Add( m_PSFineAdjustWidthOpt, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - bSizer17->Add( bSizer191, 1, wxEXPAND, 5 ); - - m_PSOptionsSizer->Add( bSizer17, 1, wxEXPAND, 5 ); - - m_plotPSNegativeOpt = new wxCheckBox( this, wxID_ANY, _("Negative plot"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PSOptionsSizer->Add( m_plotPSNegativeOpt, 0, wxALL, 2 ); - - m_forcePSA4OutputOpt = new wxCheckBox( this, wxID_ANY, _("Force A4 output"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PSOptionsSizer->Add( m_forcePSA4OutputOpt, 0, wxALL, 2 ); - - m_PlotOptionsSizer->Add( m_PSOptionsSizer, 0, wxALL|wxEXPAND, 3 ); - - bUpperSizer->Add( m_PlotOptionsSizer, 0, 0, 5 ); - - bSizer12->Add( bUpperSizer, 0, wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizerMsg; - sbSizerMsg = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL ); - - m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY ); - m_messagesBox->SetMinSize( wxSize( -1,70 ) ); - - sbSizerMsg->Add( m_messagesBox, 1, wxEXPAND, 5 ); - - bSizer12->Add( sbSizerMsg, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizerButtons; - bSizerButtons = new wxBoxSizer( wxHORIZONTAL ); - - m_plotButton = new wxButton( this, wxID_ANY, _("Plot"), wxDefaultPosition, wxDefaultSize, 0 ); - m_plotButton->SetDefault(); - bSizerButtons->Add( m_plotButton, 0, wxALL, 5 ); - - m_buttonDrill = new wxButton( this, ID_CREATE_DRILL_FILE, _("Generate Drill File"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerButtons->Add( m_buttonDrill, 0, wxALL, 5 ); - - m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizerButtons->Add( m_buttonQuit, 0, wxALL, 5 ); - - bSizer12->Add( bSizerButtons, 0, wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 ); - - m_MainSizer->Add( bSizer12, 1, wxALL|wxEXPAND, 5 ); - - this->SetSizer( m_MainSizer ); - this->Layout(); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnClose ) ); - this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) ); - m_plotFormatOpt->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this ); - m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); - m_scaleOpt->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnSetScaleOpt ), NULL, this ); - m_plotButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this ); - m_buttonDrill->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this ); - m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this ); -} - -DIALOG_PLOT_BASE::~DIALOG_PLOT_BASE() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnClose ) ); - this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) ); - m_plotFormatOpt->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this ); - m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); - m_scaleOpt->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnSetScaleOpt ), NULL, this ); - m_plotButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this ); - m_buttonDrill->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this ); - m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_plot_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + + m_MainSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizer12; + bSizer12 = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizer26; + bSizer26 = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizer27; + bSizer27 = new wxBoxSizer( wxVERTICAL ); + + m_staticText121 = new wxStaticText( this, wxID_ANY, _("Plot format:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText121->Wrap( -1 ); + bSizer27->Add( m_staticText121, 0, wxTOP, 5 ); + + wxString m_plotFormatOptChoices[] = { _("HPGL"), _("Gerber"), _("Postscript"), _("DXF") }; + int m_plotFormatOptNChoices = sizeof( m_plotFormatOptChoices ) / sizeof( wxString ); + m_plotFormatOpt = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_plotFormatOptNChoices, m_plotFormatOptChoices, 0 ); + m_plotFormatOpt->SetSelection( 0 ); + bSizer27->Add( m_plotFormatOpt, 0, 0, 5 ); + + + bSizer26->Add( bSizer27, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + wxBoxSizer* bSizer28; + bSizer28 = new wxBoxSizer( wxVERTICAL ); + + m_staticTextDir = new wxStaticText( this, wxID_ANY, _("Output directory:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextDir->Wrap( -1 ); + bSizer28->Add( m_staticTextDir, 0, wxEXPAND|wxTOP|wxLEFT, 5 ); + + wxBoxSizer* bSizer29; + bSizer29 = new wxBoxSizer( wxHORIZONTAL ); + + m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the board file location.") ); + + bSizer29->Add( m_outputDirectoryName, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + m_browseButton = new wxButton( this, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer29->Add( m_browseButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); + + + bSizer28->Add( bSizer29, 1, wxEXPAND, 5 ); + + + bSizer26->Add( bSizer28, 1, 0, 5 ); + + + bSizer12->Add( bSizer26, 0, wxEXPAND, 5 ); + + wxBoxSizer* bUpperSizer; + bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + + m_LayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers") ), wxHORIZONTAL ); + + wxArrayString m_layerCheckListBoxChoices; + m_layerCheckListBox = new wxCheckListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_layerCheckListBoxChoices, 0 ); + m_LayersSizer->Add( m_layerCheckListBox, 1, wxEXPAND, 5 ); + + + bUpperSizer->Add( m_LayersSizer, 1, wxALL|wxEXPAND, 3 ); + + m_PlotOptionsSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbOptionsSizer; + sbOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options") ), wxVERTICAL ); + + wxBoxSizer* bSizer192; + bSizer192 = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizerPlotItems; + bSizerPlotItems = new wxBoxSizer( wxVERTICAL ); + + m_plotSheetRef = new wxCheckBox( this, wxID_ANY, _("Plot sheet reference on all layers"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerPlotItems->Add( m_plotSheetRef, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); + + m_plotPads_on_Silkscreen = new wxCheckBox( this, ID_ALLOW_PRINT_PAD_ON_SILKSCREEN, _("Plot pads on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotPads_on_Silkscreen->SetToolTip( _("Enable/disable print/plot pads on silkscreen layers\nWhen disable, pads are never potted on silkscreen layers\nWhen enable, pads are potted only if they appear on silkscreen layers") ); + + bSizerPlotItems->Add( m_plotPads_on_Silkscreen, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); + + m_plotModuleValueOpt = new wxCheckBox( this, wxID_ANY, _("Plot module value on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerPlotItems->Add( m_plotModuleValueOpt, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); + + m_plotModuleRefOpt = new wxCheckBox( this, ID_PRINT_REF, _("Plot module reference on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerPlotItems->Add( m_plotModuleRefOpt, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); + + m_plotTextOther = new wxCheckBox( this, wxID_ANY, _("Plot other module texts on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotTextOther->SetToolTip( _("Enable/disable print/plot module field texts on silkscreen layers") ); + + bSizerPlotItems->Add( m_plotTextOther, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); + + m_plotInvisibleText = new wxCheckBox( this, wxID_ANY, _("Plot invisible texts on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotInvisibleText->SetToolTip( _("Force print/plot module invisible texts on silkscreen layers") ); + + bSizerPlotItems->Add( m_plotInvisibleText, 0, wxALL, 2 ); + + m_plotNoViaOnMaskOpt = new wxCheckBox( this, wxID_ANY, _("Do not tent vias"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotNoViaOnMaskOpt->SetToolTip( _("Remove soldermask on vias.") ); + + bSizerPlotItems->Add( m_plotNoViaOnMaskOpt, 0, wxALL, 2 ); + + m_plotMirrorOpt = new wxCheckBox( this, ID_MIROR_OPT, _("Mirrored plot"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerPlotItems->Add( m_plotMirrorOpt, 0, wxALL, 2 ); + + + bSizer192->Add( bSizerPlotItems, 0, wxEXPAND, 5 ); + + wxBoxSizer* bSizer14; + bSizer14 = new wxBoxSizer( wxVERTICAL ); + + m_staticText11 = new wxStaticText( this, wxID_ANY, _("Drill marks:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText11->Wrap( -1 ); + bSizer14->Add( m_staticText11, 0, wxRIGHT|wxLEFT, 5 ); + + wxString m_drillShapeOptChoices[] = { _("None"), _("Small"), _("Actual size") }; + int m_drillShapeOptNChoices = sizeof( m_drillShapeOptChoices ) / sizeof( wxString ); + m_drillShapeOpt = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_drillShapeOptNChoices, m_drillShapeOptChoices, 0 ); + m_drillShapeOpt->SetSelection( 0 ); + bSizer14->Add( m_drillShapeOpt, 0, wxEXPAND|wxLEFT, 5 ); + + m_staticText12 = new wxStaticText( this, wxID_ANY, _("Scaling:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText12->Wrap( -1 ); + bSizer14->Add( m_staticText12, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxString m_scaleOptChoices[] = { _("Auto"), _("1:1"), _("3:2"), _("2:1"), _("3:1") }; + int m_scaleOptNChoices = sizeof( m_scaleOptChoices ) / sizeof( wxString ); + m_scaleOpt = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_scaleOptNChoices, m_scaleOptChoices, 0 ); + m_scaleOpt->SetSelection( 0 ); + bSizer14->Add( m_scaleOpt, 0, wxEXPAND|wxLEFT, 5 ); + + m_staticText13 = new wxStaticText( this, wxID_ANY, _("Plot mode:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText13->Wrap( -1 ); + bSizer14->Add( m_staticText13, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxString m_plotModeOptChoices[] = { _("Line"), _("Filled"), _("Sketch") }; + int m_plotModeOptNChoices = sizeof( m_plotModeOptChoices ) / sizeof( wxString ); + m_plotModeOpt = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_plotModeOptNChoices, m_plotModeOptChoices, 0 ); + m_plotModeOpt->SetSelection( 0 ); + bSizer14->Add( m_plotModeOpt, 0, wxEXPAND|wxLEFT, 5 ); + + m_textDefaultPenSize = new wxStaticText( this, wxID_ANY, _("Default linewidth"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textDefaultPenSize->Wrap( -1 ); + m_textDefaultPenSize->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") ); + + bSizer14->Add( m_textDefaultPenSize, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_linesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_linesWidth->SetToolTip( _("Line width for, e.g., sheet references.") ); + + bSizer14->Add( m_linesWidth, 0, wxBOTTOM|wxEXPAND|wxLEFT, 5 ); + + + bSizer192->Add( bSizer14, 1, wxRIGHT|wxLEFT, 3 ); + + + sbOptionsSizer->Add( bSizer192, 0, wxEXPAND, 5 ); + + + m_PlotOptionsSizer->Add( sbOptionsSizer, 0, wxALL|wxEXPAND, 3 ); + + m_GerberOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Gerber Options") ), wxVERTICAL ); + + m_useGerberExtensions = new wxCheckBox( this, wxID_ANY, _("Use proper filename extensions"), wxDefaultPosition, wxDefaultSize, 0 ); + m_useGerberExtensions->SetToolTip( _("Use proper Gerber extensions - .GBL, .GTL, etc...") ); + + m_GerberOptionsSizer->Add( m_useGerberExtensions, 0, wxLEFT|wxRIGHT|wxTOP, 2 ); + + m_excludeEdgeLayerOpt = new wxCheckBox( this, wxID_ANY, _("Exclude PCB edge layer from other layers"), wxDefaultPosition, wxDefaultSize, 0 ); + m_excludeEdgeLayerOpt->SetToolTip( _("Exclude contents of the pcb edge layer from all other layers") ); + + m_GerberOptionsSizer->Add( m_excludeEdgeLayerOpt, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); + + m_subtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Subtract soldermask from silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); + m_subtractMaskFromSilk->SetToolTip( _("Remove silkscreen from areas without soldermask") ); + + m_GerberOptionsSizer->Add( m_subtractMaskFromSilk, 0, wxTOP|wxRIGHT|wxLEFT, 2 ); + + m_useAuxOriginCheckBox = new wxCheckBox( this, wxID_ANY, _("Use auxiliary axis as origin"), wxDefaultPosition, wxDefaultSize, 0 ); + m_useAuxOriginCheckBox->SetToolTip( _("Use auxiliary axis as coordinates origin in Gerber files.") ); + + m_GerberOptionsSizer->Add( m_useAuxOriginCheckBox, 0, wxALL, 2 ); + + + m_PlotOptionsSizer->Add( m_GerberOptionsSizer, 0, wxALL|wxEXPAND, 3 ); + + m_HPGLOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options") ), wxVERTICAL ); + + wxBoxSizer* bSizer22; + bSizer22 = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizer20; + bSizer20 = new wxBoxSizer( wxVERTICAL ); + + m_textPenSize = new wxStaticText( this, wxID_ANY, _("Pen size"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPenSize->Wrap( -1 ); + bSizer20->Add( m_textPenSize, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_HPGLPenSizeOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizer20->Add( m_HPGLPenSizeOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_textPenOvr = new wxStaticText( this, wxID_ANY, _("Pen overlay"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPenOvr->Wrap( -1 ); + bSizer20->Add( m_textPenOvr, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_HPGLPenOverlayOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_HPGLPenOverlayOpt->SetToolTip( _("Set plot overlay for filling") ); + + bSizer20->Add( m_HPGLPenOverlayOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + + bSizer22->Add( bSizer20, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer21; + bSizer21 = new wxBoxSizer( wxVERTICAL ); + + m_textPenSpeed = new wxStaticText( this, wxID_ANY, _("Pen speed (cm/s):"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPenSpeed->Wrap( -1 ); + bSizer21->Add( m_textPenSpeed, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_HPGLPenSpeedOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_HPGLPenSpeedOpt->SetToolTip( _("Set pen speed in cm/s") ); + + bSizer21->Add( m_HPGLPenSpeedOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + + bSizer22->Add( bSizer21, 1, wxEXPAND, 5 ); + + + m_HPGLOptionsSizer->Add( bSizer22, 1, wxEXPAND, 5 ); + + + m_PlotOptionsSizer->Add( m_HPGLOptionsSizer, 0, wxALL|wxEXPAND, 3 ); + + m_PSOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Postscript Options") ), wxVERTICAL ); + + wxBoxSizer* bSizer17; + bSizer17 = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizer18; + bSizer18 = new wxBoxSizer( wxVERTICAL ); + + m_staticText7 = new wxStaticText( this, wxID_ANY, _("X scale:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText7->Wrap( -1 ); + bSizer18->Add( m_staticText7, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_fineAdjustXscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_fineAdjustXscaleOpt->SetToolTip( _("Set global X scale adjust for exact scale postscript output.") ); + + bSizer18->Add( m_fineAdjustXscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + bSizer17->Add( bSizer18, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer19; + bSizer19 = new wxBoxSizer( wxVERTICAL ); + + m_staticText8 = new wxStaticText( this, wxID_ANY, _("Y scale:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText8->Wrap( -1 ); + bSizer19->Add( m_staticText8, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_fineAdjustYscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_fineAdjustYscaleOpt->SetToolTip( _("Set global Y scale adjust for exact scale postscript output.") ); + + bSizer19->Add( m_fineAdjustYscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + bSizer17->Add( bSizer19, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer191; + bSizer191 = new wxBoxSizer( wxVERTICAL ); + + m_textPSFineAdjustWidth = new wxStaticText( this, wxID_ANY, _("Width correction"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textPSFineAdjustWidth->Wrap( -1 ); + bSizer191->Add( m_textPSFineAdjustWidth, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); + + m_PSFineAdjustWidthOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_PSFineAdjustWidthOpt->SetToolTip( _("Set global width correction for exact width postscript output.\nThese width correction is intended to compensate tracks width and also pads and vias size errors.\nThe reasonable width correction value must be in a range of [-(MinTrackWidth-1), +(MinClearanceValue-1)] in decimils.") ); + + bSizer191->Add( m_PSFineAdjustWidthOpt, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + + bSizer17->Add( bSizer191, 1, wxEXPAND, 5 ); + + + m_PSOptionsSizer->Add( bSizer17, 1, wxEXPAND, 5 ); + + m_plotPSNegativeOpt = new wxCheckBox( this, wxID_ANY, _("Negative plot"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PSOptionsSizer->Add( m_plotPSNegativeOpt, 0, wxALL, 2 ); + + m_forcePSA4OutputOpt = new wxCheckBox( this, wxID_ANY, _("Force A4 output"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PSOptionsSizer->Add( m_forcePSA4OutputOpt, 0, wxALL, 2 ); + + + m_PlotOptionsSizer->Add( m_PSOptionsSizer, 0, wxALL|wxEXPAND, 3 ); + + + bUpperSizer->Add( m_PlotOptionsSizer, 0, 0, 5 ); + + + bSizer12->Add( bUpperSizer, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerMsg; + sbSizerMsg = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL ); + + m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY ); + m_messagesBox->SetMinSize( wxSize( -1,70 ) ); + + sbSizerMsg->Add( m_messagesBox, 1, wxEXPAND, 5 ); + + + bSizer12->Add( sbSizerMsg, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizerButtons; + bSizerButtons = new wxBoxSizer( wxHORIZONTAL ); + + m_plotButton = new wxButton( this, wxID_ANY, _("Plot"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotButton->SetDefault(); + bSizerButtons->Add( m_plotButton, 0, wxALL, 5 ); + + m_buttonDrill = new wxButton( this, ID_CREATE_DRILL_FILE, _("Generate Drill File"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButtons->Add( m_buttonDrill, 0, wxALL, 5 ); + + m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerButtons->Add( m_buttonQuit, 0, wxALL, 5 ); + + + bSizer12->Add( bSizerButtons, 0, wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 ); + + + m_MainSizer->Add( bSizer12, 1, wxALL|wxEXPAND, 5 ); + + + this->SetSizer( m_MainSizer ); + this->Layout(); + m_MainSizer->Fit( this ); + + this->Centre( wxBOTH ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnClose ) ); + this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) ); + m_plotFormatOpt->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this ); + m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); + m_scaleOpt->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnSetScaleOpt ), NULL, this ); + m_plotButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this ); + m_buttonDrill->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this ); + m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this ); +} + +DIALOG_PLOT_BASE::~DIALOG_PLOT_BASE() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnClose ) ); + this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) ); + m_plotFormatOpt->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this ); + m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); + m_scaleOpt->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnSetScaleOpt ), NULL, this ); + m_plotButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this ); + m_buttonDrill->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this ); + m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this ); + +} diff --git a/pcbnew/dialogs/dialog_plot_base.fbp b/pcbnew/dialogs/dialog_plot_base.fbp index ecc66ae5b8..7d05f7dd72 100644 --- a/pcbnew/dialogs/dialog_plot_base.fbp +++ b/pcbnew/dialogs/dialog_plot_base.fbp @@ -1,4153 +1,4301 @@ - - - - - - C++ - 1 - source_name - 0 - UTF-8 - connect - dialog_plot_base - 1000 - none - 1 - Dialog_Plot_base - - . - - 1 - 1 - 1 - 0 - - 1 - 1 - 1 - 1 - 0 - - - - 1 - - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - -1,-1 - 1 - DIALOG_PLOT_BASE - 1 - - - 1 - - - Resizable - - 1 - 474,747 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Plot - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - OnClose - - - - - - OnInitDialog - - - - - - - - - - - - - - - - - - - - - - - m_MainSizer - wxHORIZONTAL - protected - - 5 - wxALL|wxEXPAND - 1 - - - bSizer12 - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - - bSizer26 - wxHORIZONTAL - none - - 5 - wxEXPAND|wxRIGHT|wxLEFT - 0 - - - bSizer27 - wxVERTICAL - none - - 5 - wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plot format: - - 0 - - 0 - - 1 - m_staticText121 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - "HPGL" "Gerber" "Postscript" "DXF" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 1 - m_plotFormatOpt - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - SetPlotFormat - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 1 - - - bSizer28 - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Output directory: - - 0 - - 0 - - 1 - m_staticTextDir - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer29 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT - 1 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - - 1 - m_outputDirectoryName - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Target directory for plot files. Can be absolute or relative to the board file location. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Browse... - - 0 - - 0 - - 1 - m_browseButton - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnOutputDirectoryBrowseClicked - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bUpperSizer - wxHORIZONTAL - none - - 3 - wxALL|wxEXPAND - 1 - - wxID_ANY - Layers - - m_LayersSizer - wxHORIZONTAL - protected - - - 5 - wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 1 - m_layerCheckListBox - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 0 - - - m_PlotOptionsSizer - wxVERTICAL - protected - - 3 - wxALL|wxEXPAND - 0 - - wxID_ANY - Options - - sbOptionsSizer - wxVERTICAL - none - - - 5 - wxEXPAND - 0 - - - bSizer192 - wxHORIZONTAL - none - - 5 - wxEXPAND - 0 - - - bSizerPlotItems - wxVERTICAL - none - - 2 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plot sheet reference on all layers - - 0 - - 0 - - 1 - m_plotSheetRef - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_ALLOW_PRINT_PAD_ON_SILKSCREEN - Plot pads on silkscreen - - 0 - - 0 - - 1 - m_plotPads_on_Silkscreen - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Enable/disable print/plot pads on silkscreen layers When disable, pads are never potted on silkscreen layers When enable, pads are potted only if they appear on silkscreen layers - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plot module value on silkscreen - - 0 - - 0 - - 1 - m_plotModuleValueOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_PRINT_REF - Plot module reference on silkscreen - - 0 - - 0 - - 1 - m_plotModuleRefOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plot other module texts on silkscreen - - 0 - - 0 - - 1 - m_plotTextOther - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Enable/disable print/plot module field texts on silkscreen layers - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plot invisible texts on silkscreen - - 0 - - 0 - - 1 - m_plotInvisibleText - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Force print/plot module invisible texts on silkscreen layers - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Do not tent vias - - 0 - - 0 - - 1 - m_plotNoViaOnMaskOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Remove soldermask on vias. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_MIROR_OPT - Mirrored plot - - 0 - - 0 - - 1 - m_plotMirrorOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxRIGHT|wxLEFT - 1 - - - bSizer14 - wxVERTICAL - none - - 5 - wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Drill marks: - - 0 - - 0 - - 1 - m_staticText11 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - "None" "Small" "Actual size" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 1 - m_drillShapeOpt - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Scaling: - - 0 - - 0 - - 1 - m_staticText12 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - "Auto" "1:1" "3:2" "2:1" "3:1" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 1 - m_scaleOpt - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - OnSetScaleOpt - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plot mode: - - 0 - - 0 - - 1 - m_staticText13 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - "Line" "Filled" "Sketch" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - - 1 - m_plotModeOpt - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Default linewidth - - 0 - - 0 - - 1 - m_textDefaultPenSize - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Pen size used to draw items that have no pen size specified. Used mainly to draw items in sketch mode. - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - - 1 - m_linesWidth - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Line width for, e.g., sheet references. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALL|wxEXPAND - 0 - - wxID_ANY - Gerber Options - - m_GerberOptionsSizer - wxVERTICAL - protected - - - 2 - wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Use proper filename extensions - - 0 - - 0 - - 1 - m_useGerberExtensions - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Use proper Gerber extensions - .GBL, .GTL, etc... - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Exclude PCB edge layer from other layers - - 0 - - 0 - - 1 - m_excludeEdgeLayerOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Exclude contents of the pcb edge layer from all other layers - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Subtract soldermask from silkscreen - - 0 - - 0 - - 1 - m_subtractMaskFromSilk - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Remove silkscreen from areas without soldermask - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Use auxiliary axis as origin - - 0 - - 0 - - 1 - m_useAuxOriginCheckBox - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Use auxiliary axis as coordinates origin in Gerber files. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALL|wxEXPAND - 0 - - wxID_ANY - HPGL Options - - m_HPGLOptionsSizer - wxVERTICAL - protected - - - 5 - wxEXPAND - 1 - - - bSizer22 - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - - bSizer20 - wxVERTICAL - none - - 5 - wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pen size - - 0 - - 0 - - 1 - m_textPenSize - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - - 1 - m_HPGLPenSizeOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pen overlay - - 0 - - 0 - - 1 - m_textPenOvr - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - - 1 - m_HPGLPenOverlayOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Set plot overlay for filling - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer21 - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pen speed (cm/s): - - 0 - - 0 - - 1 - m_textPenSpeed - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - - 1 - m_HPGLPenSpeedOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Set pen speed in cm/s - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 - wxALL|wxEXPAND - 0 - - wxID_ANY - Postscript Options - - m_PSOptionsSizer - wxVERTICAL - protected - - - 5 - wxEXPAND - 1 - - - bSizer17 - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - - bSizer18 - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - X scale: - - 0 - - 0 - - 1 - m_staticText7 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - - 1 - m_fineAdjustXscaleOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Set global X scale adjust for exact scale postscript output. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer19 - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Y scale: - - 0 - - 0 - - 1 - m_staticText8 - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - - 1 - m_fineAdjustYscaleOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Set global Y scale adjust for exact scale postscript output. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer191 - wxVERTICAL - none - - 5 - wxLEFT|wxRIGHT|wxTOP - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Width correction - - 0 - - 0 - - 1 - m_textPSFineAdjustWidth - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - - 1 - m_PSFineAdjustWidthOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Set global width correction for exact width postscript output. These width correction is intended to compensate tracks width and also pads and vias size errors. The reasonable width correction value must be in a range of [-(MinTrackWidth-1), +(MinClearanceValue-1)] in decimils. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Negative plot - - 0 - - 0 - - 1 - m_plotPSNegativeOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Force A4 output - - 0 - - 0 - - 1 - m_forcePSA4OutputOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - wxID_ANY - Messages: - - sbSizerMsg - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - 0 - 0 - -1,70 - 1 - m_messagesBox - 1 - - - protected - 1 - - - Resizable - - 1 - - wxTE_MULTILINE|wxTE_READONLY - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_RIGHT|wxRIGHT|wxLEFT - 0 - - - bSizerButtons - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Plot - - 0 - - 0 - - 1 - m_plotButton - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - Plot - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - ID_CREATE_DRILL_FILE - Generate Drill File - - 0 - - 0 - - 1 - m_buttonDrill - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - CreateDrillFile - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_CANCEL - Close - - 0 - - 0 - - 1 - m_buttonQuit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnQuit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_plot_base + 1000 + none + 1 + Dialog_Plot_base + + . + + 1 + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + DIALOG_PLOT_BASE + 1 + + + 1 + + Resizable + 1 + -1,-1 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Plot + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + OnClose + + + + + + OnInitDialog + + + + + + + + + + + + + + + + + + + + + + + m_MainSizer + wxHORIZONTAL + protected + + 5 + wxALL|wxEXPAND + 1 + + + bSizer12 + wxVERTICAL + none + + 5 + wxEXPAND + 0 + + + bSizer26 + wxHORIZONTAL + none + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + + bSizer27 + wxVERTICAL + none + + 5 + wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Plot format: + + 0 + + + 0 + + 1 + m_staticText121 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "HPGL" "Gerber" "Postscript" "DXF" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_plotFormatOpt + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + SetPlotFormat + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 1 + + + bSizer28 + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Output directory: + + 0 + + + 0 + + 1 + m_staticTextDir + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer29 + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_outputDirectoryName + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Target directory for plot files. Can be absolute or relative to the board file location. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Browse... + + 0 + + + 0 + + 1 + m_browseButton + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnOutputDirectoryBrowseClicked + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bUpperSizer + wxHORIZONTAL + none + + 3 + wxALL|wxEXPAND + 1 + + wxID_ANY + Layers + + m_LayersSizer + wxHORIZONTAL + protected + + + 5 + wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_layerCheckListBox + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + + m_PlotOptionsSizer + wxVERTICAL + protected + + 3 + wxALL|wxEXPAND + 0 + + wxID_ANY + Options + + sbOptionsSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 0 + + + bSizer192 + wxHORIZONTAL + none + + 5 + wxEXPAND + 0 + + + bSizerPlotItems + wxVERTICAL + none + + 2 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Plot sheet reference on all layers + + 0 + + + 0 + + 1 + m_plotSheetRef + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_ALLOW_PRINT_PAD_ON_SILKSCREEN + Plot pads on silkscreen + + 0 + + + 0 + + 1 + m_plotPads_on_Silkscreen + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Enable/disable print/plot pads on silkscreen layers When disable, pads are never potted on silkscreen layers When enable, pads are potted only if they appear on silkscreen layers + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Plot module value on silkscreen + + 0 + + + 0 + + 1 + m_plotModuleValueOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_PRINT_REF + Plot module reference on silkscreen + + 0 + + + 0 + + 1 + m_plotModuleRefOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Plot other module texts on silkscreen + + 0 + + + 0 + + 1 + m_plotTextOther + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Enable/disable print/plot module field texts on silkscreen layers + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Plot invisible texts on silkscreen + + 0 + + + 0 + + 1 + m_plotInvisibleText + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Force print/plot module invisible texts on silkscreen layers + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Do not tent vias + + 0 + + + 0 + + 1 + m_plotNoViaOnMaskOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Remove soldermask on vias. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_MIROR_OPT + Mirrored plot + + 0 + + + 0 + + 1 + m_plotMirrorOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxRIGHT|wxLEFT + 1 + + + bSizer14 + wxVERTICAL + none + + 5 + wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Drill marks: + + 0 + + + 0 + + 1 + m_staticText11 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "None" "Small" "Actual size" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_drillShapeOpt + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Scaling: + + 0 + + + 0 + + 1 + m_staticText12 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Auto" "1:1" "3:2" "2:1" "3:1" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_scaleOpt + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSetScaleOpt + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Plot mode: + + 0 + + + 0 + + 1 + m_staticText13 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Line" "Filled" "Sketch" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_plotModeOpt + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Default linewidth + + 0 + + + 0 + + 1 + m_textDefaultPenSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Pen size used to draw items that have no pen size specified. Used mainly to draw items in sketch mode. + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_linesWidth + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Line width for, e.g., sheet references. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALL|wxEXPAND + 0 + + wxID_ANY + Gerber Options + + m_GerberOptionsSizer + wxVERTICAL + protected + + + 2 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Use proper filename extensions + + 0 + + + 0 + + 1 + m_useGerberExtensions + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Use proper Gerber extensions - .GBL, .GTL, etc... + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Exclude PCB edge layer from other layers + + 0 + + + 0 + + 1 + m_excludeEdgeLayerOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Exclude contents of the pcb edge layer from all other layers + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Subtract soldermask from silkscreen + + 0 + + + 0 + + 1 + m_subtractMaskFromSilk + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Remove silkscreen from areas without soldermask + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Use auxiliary axis as origin + + 0 + + + 0 + + 1 + m_useAuxOriginCheckBox + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Use auxiliary axis as coordinates origin in Gerber files. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALL|wxEXPAND + 0 + + wxID_ANY + HPGL Options + + m_HPGLOptionsSizer + wxVERTICAL + protected + + + 5 + wxEXPAND + 1 + + + bSizer22 + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + + bSizer20 + wxVERTICAL + none + + 5 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pen size + + 0 + + + 0 + + 1 + m_textPenSize + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_HPGLPenSizeOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pen overlay + + 0 + + + 0 + + 1 + m_textPenOvr + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_HPGLPenOverlayOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Set plot overlay for filling + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer21 + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pen speed (cm/s): + + 0 + + + 0 + + 1 + m_textPenSpeed + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_HPGLPenSpeedOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Set pen speed in cm/s + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALL|wxEXPAND + 0 + + wxID_ANY + Postscript Options + + m_PSOptionsSizer + wxVERTICAL + protected + + + 5 + wxEXPAND + 1 + + + bSizer17 + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + + bSizer18 + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + X scale: + + 0 + + + 0 + + 1 + m_staticText7 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_fineAdjustXscaleOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Set global X scale adjust for exact scale postscript output. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer19 + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Y scale: + + 0 + + + 0 + + 1 + m_staticText8 + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_fineAdjustYscaleOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Set global Y scale adjust for exact scale postscript output. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer191 + wxVERTICAL + none + + 5 + wxLEFT|wxRIGHT|wxTOP + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Width correction + + 0 + + + 0 + + 1 + m_textPSFineAdjustWidth + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_PSFineAdjustWidthOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Set global width correction for exact width postscript output. These width correction is intended to compensate tracks width and also pads and vias size errors. The reasonable width correction value must be in a range of [-(MinTrackWidth-1), +(MinClearanceValue-1)] in decimils. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Negative plot + + 0 + + + 0 + + 1 + m_plotPSNegativeOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Force A4 output + + 0 + + + 0 + + 1 + m_forcePSA4OutputOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY + Messages: + + sbSizerMsg + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + -1,70 + 1 + m_messagesBox + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_MULTILINE|wxTE_READONLY + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_RIGHT|wxRIGHT|wxLEFT + 0 + + + bSizerButtons + wxHORIZONTAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Plot + + 0 + + + 0 + + 1 + m_plotButton + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + Plot + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_CREATE_DRILL_FILE + Generate Drill File + + 0 + + + 0 + + 1 + m_buttonDrill + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + CreateDrillFile + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_CANCEL + Close + + 0 + + + 0 + + 1 + m_buttonQuit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnQuit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pcbnew/dialogs/dialog_plot_base.h b/pcbnew/dialogs/dialog_plot_base.h index a034c945b1..0b8f79078b 100644 --- a/pcbnew/dialogs/dialog_plot_base.h +++ b/pcbnew/dialogs/dialog_plot_base.h @@ -1,115 +1,117 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 17 2010) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __dialog_plot_base__ -#define __dialog_plot_base__ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_PLOT_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_PLOT_BASE : public wxDialog -{ - private: - - protected: - enum - { - ID_ALLOW_PRINT_PAD_ON_SILKSCREEN = 1000, - ID_PRINT_REF, - ID_MIROR_OPT, - ID_CREATE_DRILL_FILE, - }; - - wxBoxSizer* m_MainSizer; - wxStaticText* m_staticText121; - wxChoice* m_plotFormatOpt; - wxStaticText* m_staticTextDir; - wxTextCtrl* m_outputDirectoryName; - wxButton* m_browseButton; - wxStaticBoxSizer* m_LayersSizer; - wxCheckListBox* m_layerCheckListBox; - wxBoxSizer* m_PlotOptionsSizer; - wxCheckBox* m_plotSheetRef; - wxCheckBox* m_plotPads_on_Silkscreen; - wxCheckBox* m_plotModuleValueOpt; - wxCheckBox* m_plotModuleRefOpt; - wxCheckBox* m_plotTextOther; - wxCheckBox* m_plotInvisibleText; - wxCheckBox* m_plotNoViaOnMaskOpt; - wxCheckBox* m_plotMirrorOpt; - wxStaticText* m_staticText11; - wxChoice* m_drillShapeOpt; - wxStaticText* m_staticText12; - wxChoice* m_scaleOpt; - wxStaticText* m_staticText13; - wxChoice* m_plotModeOpt; - wxStaticText* m_textDefaultPenSize; - wxTextCtrl* m_linesWidth; - wxStaticBoxSizer* m_GerberOptionsSizer; - wxCheckBox* m_useGerberExtensions; - wxCheckBox* m_excludeEdgeLayerOpt; - wxCheckBox* m_subtractMaskFromSilk; - wxCheckBox* m_useAuxOriginCheckBox; - wxStaticBoxSizer* m_HPGLOptionsSizer; - wxStaticText* m_textPenSize; - wxTextCtrl* m_HPGLPenSizeOpt; - wxStaticText* m_textPenOvr; - wxTextCtrl* m_HPGLPenOverlayOpt; - wxStaticText* m_textPenSpeed; - wxTextCtrl* m_HPGLPenSpeedOpt; - wxStaticBoxSizer* m_PSOptionsSizer; - wxStaticText* m_staticText7; - wxTextCtrl* m_fineAdjustXscaleOpt; - wxStaticText* m_staticText8; - wxTextCtrl* m_fineAdjustYscaleOpt; - wxStaticText* m_textPSFineAdjustWidth; - wxTextCtrl* m_PSFineAdjustWidthOpt; - wxCheckBox* m_plotPSNegativeOpt; - wxCheckBox* m_forcePSA4OutputOpt; - wxTextCtrl* m_messagesBox; - wxButton* m_plotButton; - wxButton* m_buttonDrill; - wxButton* m_buttonQuit; - - // Virtual event handlers, overide them in your derived class - virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } - virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } - virtual void SetPlotFormat( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void OnSetScaleOpt( wxCommandEvent& event ) { event.Skip(); } - virtual void Plot( wxCommandEvent& event ) { event.Skip(); } - virtual void CreateDrillFile( wxCommandEvent& event ) { event.Skip(); } - virtual void OnQuit( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plot"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 474,747 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_PLOT_BASE(); - -}; - -#endif //__dialog_plot_base__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_PLOT_BASE_H__ +#define __DIALOG_PLOT_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_PLOT_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_PLOT_BASE : public DIALOG_SHIM +{ + private: + + protected: + enum + { + ID_ALLOW_PRINT_PAD_ON_SILKSCREEN = 1000, + ID_PRINT_REF, + ID_MIROR_OPT, + ID_CREATE_DRILL_FILE + }; + + wxBoxSizer* m_MainSizer; + wxStaticText* m_staticText121; + wxChoice* m_plotFormatOpt; + wxStaticText* m_staticTextDir; + wxTextCtrl* m_outputDirectoryName; + wxButton* m_browseButton; + wxStaticBoxSizer* m_LayersSizer; + wxCheckListBox* m_layerCheckListBox; + wxBoxSizer* m_PlotOptionsSizer; + wxCheckBox* m_plotSheetRef; + wxCheckBox* m_plotPads_on_Silkscreen; + wxCheckBox* m_plotModuleValueOpt; + wxCheckBox* m_plotModuleRefOpt; + wxCheckBox* m_plotTextOther; + wxCheckBox* m_plotInvisibleText; + wxCheckBox* m_plotNoViaOnMaskOpt; + wxCheckBox* m_plotMirrorOpt; + wxStaticText* m_staticText11; + wxChoice* m_drillShapeOpt; + wxStaticText* m_staticText12; + wxChoice* m_scaleOpt; + wxStaticText* m_staticText13; + wxChoice* m_plotModeOpt; + wxStaticText* m_textDefaultPenSize; + wxTextCtrl* m_linesWidth; + wxStaticBoxSizer* m_GerberOptionsSizer; + wxCheckBox* m_useGerberExtensions; + wxCheckBox* m_excludeEdgeLayerOpt; + wxCheckBox* m_subtractMaskFromSilk; + wxCheckBox* m_useAuxOriginCheckBox; + wxStaticBoxSizer* m_HPGLOptionsSizer; + wxStaticText* m_textPenSize; + wxTextCtrl* m_HPGLPenSizeOpt; + wxStaticText* m_textPenOvr; + wxTextCtrl* m_HPGLPenOverlayOpt; + wxStaticText* m_textPenSpeed; + wxTextCtrl* m_HPGLPenSpeedOpt; + wxStaticBoxSizer* m_PSOptionsSizer; + wxStaticText* m_staticText7; + wxTextCtrl* m_fineAdjustXscaleOpt; + wxStaticText* m_staticText8; + wxTextCtrl* m_fineAdjustYscaleOpt; + wxStaticText* m_textPSFineAdjustWidth; + wxTextCtrl* m_PSFineAdjustWidthOpt; + wxCheckBox* m_plotPSNegativeOpt; + wxCheckBox* m_forcePSA4OutputOpt; + wxTextCtrl* m_messagesBox; + wxButton* m_plotButton; + wxButton* m_buttonDrill; + wxButton* m_buttonQuit; + + // Virtual event handlers, overide them in your derived class + virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } + virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } + virtual void SetPlotFormat( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSetScaleOpt( wxCommandEvent& event ) { event.Skip(); } + virtual void Plot( wxCommandEvent& event ) { event.Skip(); } + virtual void CreateDrillFile( wxCommandEvent& event ) { event.Skip(); } + virtual void OnQuit( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plot"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_PLOT_BASE(); + +}; + +#endif //__DIALOG_PLOT_BASE_H__ diff --git a/pcbnew/dialogs/dialog_print_for_modedit.cpp b/pcbnew/dialogs/dialog_print_for_modedit.cpp index 77039d70e7..086acd0a77 100644 --- a/pcbnew/dialogs/dialog_print_for_modedit.cpp +++ b/pcbnew/dialogs/dialog_print_for_modedit.cpp @@ -1,6 +1,6 @@ -/****************************************/ + /* File: dialog_print_for_modedit.cpp */ -/****************************************/ + // Set this to 1 if you want to test PostScript printing under MSW. #define wxTEST_POSTSCRIPT_IN_MSW 1 @@ -30,23 +30,27 @@ static wxPrintData* s_PrintData; static wxPageSetupDialogData* s_pageSetupData = (wxPageSetupDialogData*) NULL; -/* Dialog to print schematic. Class derived from DIALOG_PRINT_FOR_MODEDIT_BASE - * created by wxFormBuilder +/** + * Class DIALOG_PRINT_FOR_MODEDIT + * is derived from DIALOG_PRINT_FOR_MODEDIT_BASE which is created by wxFormBuilder. */ class DIALOG_PRINT_FOR_MODEDIT : public DIALOG_PRINT_FOR_MODEDIT_BASE { -private: - EDA_DRAW_FRAME* m_Parent; - wxConfig* m_Config; - public: - DIALOG_PRINT_FOR_MODEDIT( EDA_DRAW_FRAME* parent ); - ~DIALOG_PRINT_FOR_MODEDIT() {}; + DIALOG_PRINT_FOR_MODEDIT( PCB_BASE_FRAME* parent ); private: + PCB_BASE_FRAME* m_parent; + wxConfig* m_config; + void OnCloseWindow( wxCloseEvent& event ); + + /// Open a dialog box for printer setup (printer options, page size ...) void OnPrintSetup( wxCommandEvent& event ); + void OnPrintPreview( wxCommandEvent& event ); + + /// Called on activate Print button void OnPrintButtonClick( wxCommandEvent& event ); void OnButtonCancelClick( wxCommandEvent& event ) { Close(); } @@ -54,12 +58,7 @@ private: }; -/*************************************************************/ void FOOTPRINT_EDIT_FRAME::ToPrinter( wxCommandEvent& event ) -/*************************************************************/ -/* Virtual function: - * Display the print dialog - */ { if( s_PrintData == NULL ) // First print { @@ -74,34 +73,27 @@ void FOOTPRINT_EDIT_FRAME::ToPrinter( wxCommandEvent& event ) s_PrintData->SetOrientation( GetPageSettings().IsPortrait() ? wxPORTRAIT : wxLANDSCAPE ); - DIALOG_PRINT_FOR_MODEDIT* frame = new DIALOG_PRINT_FOR_MODEDIT( this ); + DIALOG_PRINT_FOR_MODEDIT dlg( this ); - frame->ShowModal(); - frame->Destroy(); + dlg.ShowModal(); } -/*************************************************************************************/ -DIALOG_PRINT_FOR_MODEDIT::DIALOG_PRINT_FOR_MODEDIT( EDA_DRAW_FRAME* parent ) : + +DIALOG_PRINT_FOR_MODEDIT::DIALOG_PRINT_FOR_MODEDIT( PCB_BASE_FRAME* parent ) : DIALOG_PRINT_FOR_MODEDIT_BASE( parent ) -/*************************************************************************************/ { - m_Parent = parent; + m_parent = parent; s_Parameters.m_ForceCentered = true; - m_Config = wxGetApp().GetSettings(); + m_config = wxGetApp().GetSettings(); InitValues(); m_buttonPrint->SetDefault(); GetSizer()->SetSizeHints( this ); - Center(); } -/************************************************************************/ void DIALOG_PRINT_FOR_MODEDIT::InitValues( ) -/************************************************************************/ { - SetFocus(); - if( s_pageSetupData == NULL ) { s_pageSetupData = new wxPageSetupDialogData; @@ -115,13 +107,12 @@ void DIALOG_PRINT_FOR_MODEDIT::InitValues( ) // Read the scale adjust option int scale_Select = 3; // default selected scale = ScaleList[3] = 1 - if( m_Config ) + if( m_config ) { - m_Config->Read( OPTKEY_PRINT_MODULE_SCALE, &scale_Select ); - m_Config->Read( OPTKEY_PRINT_MONOCHROME_MODE, &s_Parameters.m_Print_Black_and_White, 1); + m_config->Read( OPTKEY_PRINT_MODULE_SCALE, &scale_Select ); + m_config->Read( OPTKEY_PRINT_MONOCHROME_MODE, &s_Parameters.m_Print_Black_and_White, 1); } - extern int g_DrawDefaultLineThickness; s_Parameters.m_PenDefaultSize = g_DrawDefaultLineThickness; m_ScaleOption->SetSelection( scale_Select ); @@ -130,25 +121,20 @@ void DIALOG_PRINT_FOR_MODEDIT::InitValues( ) } -/********************************************************************/ + void DIALOG_PRINT_FOR_MODEDIT::OnCloseWindow( wxCloseEvent& event ) -/********************************************************************/ { - if( m_Config ) + if( m_config ) { - m_Config->Write( OPTKEY_PRINT_MODULE_SCALE, m_ScaleOption->GetSelection() ); - m_Config->Write( OPTKEY_PRINT_MONOCHROME_MODE, s_Parameters.m_Print_Black_and_White); + m_config->Write( OPTKEY_PRINT_MODULE_SCALE, m_ScaleOption->GetSelection() ); + m_config->Write( OPTKEY_PRINT_MONOCHROME_MODE, s_Parameters.m_Print_Black_and_White); } EndModal( 0 ); } -/**********************************************************/ -void DIALOG_PRINT_FOR_MODEDIT::OnPrintSetup( wxCommandEvent& event ) -/**********************************************************/ -/* Open a dialog box for printer setup (printer options, page size ...) - */ +void DIALOG_PRINT_FOR_MODEDIT::OnPrintSetup( wxCommandEvent& event ) { wxPrintDialogData printDialogData( *s_PrintData ); @@ -163,9 +149,9 @@ void DIALOG_PRINT_FOR_MODEDIT::OnPrintSetup( wxCommandEvent& event ) } -/************************************************************/ + void DIALOG_PRINT_FOR_MODEDIT::OnPrintPreview( wxCommandEvent& event ) -/************************************************************/ + /* Open and display a previewer frame for printing */ @@ -176,8 +162,8 @@ void DIALOG_PRINT_FOR_MODEDIT::OnPrintPreview( wxCommandEvent& event ) // Pass two printout objects: for preview, and possible printing. wxString title = _( "Print Preview" ); wxPrintPreview* preview = - new wxPrintPreview( new BOARD_PRINTOUT_CONTROLER( s_Parameters, m_Parent, title ), - new BOARD_PRINTOUT_CONTROLER( s_Parameters, m_Parent, title ), + new wxPrintPreview( new BOARD_PRINTOUT_CONTROLER( s_Parameters, m_parent, title ), + new BOARD_PRINTOUT_CONTROLER( s_Parameters, m_parent, title ), s_PrintData ); if( preview == NULL ) @@ -187,9 +173,9 @@ void DIALOG_PRINT_FOR_MODEDIT::OnPrintPreview( wxCommandEvent& event ) } // Uses the parent position and size. - // @todo uses last position and size ans store them when exit in m_Config - wxPoint WPos = m_Parent->GetPosition(); - wxSize WSize = m_Parent->GetSize(); + // @todo uses last position and size ans store them when exit in m_config + wxPoint WPos = m_parent->GetPosition(); + wxSize WSize = m_parent->GetSize(); wxPreviewFrame* frame = new wxPreviewFrame( preview, this, title, WPos, WSize ); @@ -198,24 +184,23 @@ void DIALOG_PRINT_FOR_MODEDIT::OnPrintPreview( wxCommandEvent& event ) } -/***************************************************************************/ void DIALOG_PRINT_FOR_MODEDIT::OnPrintButtonClick( wxCommandEvent& event ) -/***************************************************************************/ - -/* Called on activate Print button - */ { + PCB_PLOT_PARAMS plot_opts = m_parent->GetPlotSettings(); + s_Parameters.m_Print_Black_and_White = m_ModeColorOption->GetSelection(); s_Parameters.m_PrintScale = s_ScaleList[m_ScaleOption->GetSelection()]; - g_PcbPlotOptions.m_FineScaleAdjustX = s_Parameters.m_XScaleAdjust; - g_PcbPlotOptions.m_FineScaleAdjustY = s_Parameters.m_YScaleAdjust; - g_PcbPlotOptions.m_PlotScale = s_Parameters.m_PrintScale; + plot_opts.m_FineScaleAdjustX = s_Parameters.m_XScaleAdjust; + plot_opts.m_FineScaleAdjustY = s_Parameters.m_YScaleAdjust; + plot_opts.m_PlotScale = s_Parameters.m_PrintScale; + + m_parent->SetPlotSettings( plot_opts ); wxPrintDialogData printDialogData( *s_PrintData ); wxPrinter printer( &printDialogData ); - BOARD_PRINTOUT_CONTROLER printout( s_Parameters, m_Parent, _( "Print Footprint" ) ); + BOARD_PRINTOUT_CONTROLER printout( s_Parameters, m_parent, _( "Print Footprint" ) ); #if !defined(__WINDOWS__) && !wxCHECK_VERSION(2,9,0) wxDC* dc = printout.GetDC(); @@ -232,4 +217,6 @@ void DIALOG_PRINT_FOR_MODEDIT::OnPrintButtonClick( wxCommandEvent& event ) { *s_PrintData = printer.GetPrintDialogData().GetPrintData(); } + + } diff --git a/pcbnew/dialogs/dialog_print_for_modedit_base.cpp b/pcbnew/dialogs/dialog_print_for_modedit_base.cpp index 0ee33e086b..00b02079df 100644 --- a/pcbnew/dialogs/dialog_print_for_modedit_base.cpp +++ b/pcbnew/dialogs/dialog_print_for_modedit_base.cpp @@ -1,80 +1,87 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_print_for_modedit_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_PRINT_FOR_MODEDIT_BASE::DIALOG_PRINT_FOR_MODEDIT_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); - - wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bmiddleLeftSizer; - bmiddleLeftSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_ScaleOptionChoices[] = { _("fit in page"), _("Scale 0.5"), _("Scale 0.7"), _("Scale 1"), _("Scale 1.4"), _("Scale 2"), _("Scale 3"), _("Scale 4"), _("Scale 8"), _("Scale 16") }; - int m_ScaleOptionNChoices = sizeof( m_ScaleOptionChoices ) / sizeof( wxString ); - m_ScaleOption = new wxRadioBox( this, wxID_ANY, _("Approx. Scale:"), wxDefaultPosition, wxDefaultSize, m_ScaleOptionNChoices, m_ScaleOptionChoices, 1, wxRA_SPECIFY_COLS ); - m_ScaleOption->SetSelection( 3 ); - bmiddleLeftSizer->Add( m_ScaleOption, 0, wxALL, 5 ); - - bMainSizer->Add( bmiddleLeftSizer, 0, wxEXPAND, 5 ); - - wxBoxSizer* bmiddleRightSizer; - bmiddleRightSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_ModeColorOptionChoices[] = { _("Color"), _("Black and white") }; - int m_ModeColorOptionNChoices = sizeof( m_ModeColorOptionChoices ) / sizeof( wxString ); - m_ModeColorOption = new wxRadioBox( this, wxID_PRINT_MODE, _("Print Mode"), wxDefaultPosition, wxDefaultSize, m_ModeColorOptionNChoices, m_ModeColorOptionChoices, 1, wxRA_SPECIFY_COLS ); - m_ModeColorOption->SetSelection( 1 ); - m_ModeColorOption->SetToolTip( _("Choose if you want to draw the sheet like it appears on screen,\nor in black and white mode, better to print it when using black and white printers") ); - - bmiddleRightSizer->Add( m_ModeColorOption, 0, wxALL|wxEXPAND, 5 ); - - bMainSizer->Add( bmiddleRightSizer, 1, 0, 5 ); - - wxBoxSizer* bbuttonsSizer; - bbuttonsSizer = new wxBoxSizer( wxVERTICAL ); - - m_buttonOption = new wxButton( this, wxID_PRINT_OPTIONS, _("Page Options"), wxDefaultPosition, wxDefaultSize, 0 ); - bbuttonsSizer->Add( m_buttonOption, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - m_buttonPreview = new wxButton( this, wxID_PREVIEW, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 ); - bbuttonsSizer->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - m_buttonPrint = new wxButton( this, wxID_PRINT_ALL, _("Print"), wxDefaultPosition, wxDefaultSize, 0 ); - bbuttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); - bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - bMainSizer->Add( bbuttonsSizer, 0, 0, 5 ); - - this->SetSizer( bMainSizer ); - this->Layout(); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnCloseWindow ) ); - m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintSetup ), NULL, this ); - m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintPreview ), NULL, this ); - m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintButtonClick ), NULL, this ); - m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnButtonCancelClick ), NULL, this ); -} - -DIALOG_PRINT_FOR_MODEDIT_BASE::~DIALOG_PRINT_FOR_MODEDIT_BASE() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnCloseWindow ) ); - m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintSetup ), NULL, this ); - m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintPreview ), NULL, this ); - m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintButtonClick ), NULL, this ); - m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnButtonCancelClick ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_print_for_modedit_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_PRINT_FOR_MODEDIT_BASE::DIALOG_PRINT_FOR_MODEDIT_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + + wxBoxSizer* bMainSizer; + bMainSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bmiddleLeftSizer; + bmiddleLeftSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_ScaleOptionChoices[] = { _("fit in page"), _("Scale 0.5"), _("Scale 0.7"), _("Scale 1"), _("Scale 1.4"), _("Scale 2"), _("Scale 3"), _("Scale 4"), _("Scale 8"), _("Scale 16") }; + int m_ScaleOptionNChoices = sizeof( m_ScaleOptionChoices ) / sizeof( wxString ); + m_ScaleOption = new wxRadioBox( this, wxID_ANY, _("Approx. Scale:"), wxDefaultPosition, wxDefaultSize, m_ScaleOptionNChoices, m_ScaleOptionChoices, 1, wxRA_SPECIFY_COLS ); + m_ScaleOption->SetSelection( 3 ); + bmiddleLeftSizer->Add( m_ScaleOption, 0, wxALL, 5 ); + + + bMainSizer->Add( bmiddleLeftSizer, 0, wxEXPAND, 5 ); + + wxBoxSizer* bmiddleRightSizer; + bmiddleRightSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_ModeColorOptionChoices[] = { _("Color"), _("Black and white") }; + int m_ModeColorOptionNChoices = sizeof( m_ModeColorOptionChoices ) / sizeof( wxString ); + m_ModeColorOption = new wxRadioBox( this, wxID_PRINT_MODE, _("Print Mode"), wxDefaultPosition, wxDefaultSize, m_ModeColorOptionNChoices, m_ModeColorOptionChoices, 1, wxRA_SPECIFY_COLS ); + m_ModeColorOption->SetSelection( 1 ); + m_ModeColorOption->SetToolTip( _("Choose if you want to draw the sheet like it appears on screen,\nor in black and white mode, better to print it when using black and white printers") ); + + bmiddleRightSizer->Add( m_ModeColorOption, 0, wxALL|wxEXPAND, 5 ); + + + bMainSizer->Add( bmiddleRightSizer, 1, 0, 5 ); + + wxBoxSizer* bbuttonsSizer; + bbuttonsSizer = new wxBoxSizer( wxVERTICAL ); + + m_buttonOption = new wxButton( this, wxID_PRINT_OPTIONS, _("Page Options"), wxDefaultPosition, wxDefaultSize, 0 ); + bbuttonsSizer->Add( m_buttonOption, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonPreview = new wxButton( this, wxID_PREVIEW, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 ); + bbuttonsSizer->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonPrint = new wxButton( this, wxID_PRINT_ALL, _("Print"), wxDefaultPosition, wxDefaultSize, 0 ); + bbuttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); + bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + + bMainSizer->Add( bbuttonsSizer, 0, 0, 5 ); + + + this->SetSizer( bMainSizer ); + this->Layout(); + bMainSizer->Fit( this ); + + this->Centre( wxBOTH ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnCloseWindow ) ); + m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintSetup ), NULL, this ); + m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintPreview ), NULL, this ); + m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintButtonClick ), NULL, this ); + m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnButtonCancelClick ), NULL, this ); +} + +DIALOG_PRINT_FOR_MODEDIT_BASE::~DIALOG_PRINT_FOR_MODEDIT_BASE() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnCloseWindow ) ); + m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintSetup ), NULL, this ); + m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintPreview ), NULL, this ); + m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnPrintButtonClick ), NULL, this ); + m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_FOR_MODEDIT_BASE::OnButtonCancelClick ), NULL, this ); + +} diff --git a/pcbnew/dialogs/dialog_print_for_modedit_base.fbp b/pcbnew/dialogs/dialog_print_for_modedit_base.fbp index efbc572a49..dd61d5cdb5 100644 --- a/pcbnew/dialogs/dialog_print_for_modedit_base.fbp +++ b/pcbnew/dialogs/dialog_print_for_modedit_base.fbp @@ -1,694 +1,696 @@ - - - - - - C++ - 1 - source_name - 0 - res - UTF-8 - connect - dialog_print_for_modedit_base - 1000 - none - 1 - DialogPrintModedit_base - - . - - 1 - 1 - 1 - 0 - - 1 - 1 - 1 - 1 - 0 - - - - - 1 - - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - -1,-1 - 1 - DIALOG_PRINT_FOR_MODEDIT_BASE - 1 - - - 1 - - - Resizable - - 1 - 375,254 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Print - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - OnCloseWindow - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bMainSizer - wxHORIZONTAL - none - - 5 - wxEXPAND - 0 - - - bmiddleLeftSizer - wxVERTICAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "fit in page" "Scale 0.5" "Scale 0.7" "Scale 1" "Scale 1.4" "Scale 2" "Scale 3" "Scale 4" "Scale 8" "Scale 16" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Approx. Scale: - - 1 - - 0 - - - 0 - - 1 - m_ScaleOption - 1 - - - protected - 1 - - - Resizable - - 3 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 1 - - - bmiddleRightSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Color" "Black and white" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PRINT_MODE - Print Mode - - 1 - - 0 - - - 0 - - 1 - m_ModeColorOption - 1 - - - protected - 1 - - - Resizable - - 1 - 1 - - wxRA_SPECIFY_COLS - - 0 - Choose if you want to draw the sheet like it appears on screen, or in black and white mode, better to print it when using black and white printers - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 0 - - - bbuttonsSizer - wxVERTICAL - none - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PRINT_OPTIONS - Page Options - - - 0 - - - 0 - - 1 - m_buttonOption - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnPrintSetup - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PREVIEW - Preview - - - 0 - - - 0 - - 1 - m_buttonPreview - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnPrintPreview - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PRINT_ALL - Print - - - 0 - - - 0 - - 1 - m_buttonPrint - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnPrintButtonClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_CANCEL - Close - - - 0 - - - 0 - - 1 - m_buttonQuit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnButtonCancelClick - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_print_for_modedit_base + 1000 + none + 1 + DialogPrintModedit_base + + . + + 1 + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + DIALOG_PRINT_FOR_MODEDIT_BASE + 1 + + + 1 + + Resizable + 1 + -1,-1 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Print + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + OnCloseWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bMainSizer + wxHORIZONTAL + none + + 5 + wxEXPAND + 0 + + + bmiddleLeftSizer + wxVERTICAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "fit in page" "Scale 0.5" "Scale 0.7" "Scale 1" "Scale 1.4" "Scale 2" "Scale 3" "Scale 4" "Scale 8" "Scale 16" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Approx. Scale: + 1 + + 0 + + + 0 + + 1 + m_ScaleOption + 1 + + + protected + 1 + + Resizable + 3 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 1 + + + bmiddleRightSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Color" "Black and white" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PRINT_MODE + Print Mode + 1 + + 0 + + + 0 + + 1 + m_ModeColorOption + 1 + + + protected + 1 + + Resizable + 1 + 1 + + wxRA_SPECIFY_COLS + + 0 + Choose if you want to draw the sheet like it appears on screen, or in black and white mode, better to print it when using black and white printers + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + + bbuttonsSizer + wxVERTICAL + none + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PRINT_OPTIONS + Page Options + + 0 + + + 0 + + 1 + m_buttonOption + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPrintSetup + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PREVIEW + Preview + + 0 + + + 0 + + 1 + m_buttonPreview + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPrintPreview + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PRINT_ALL + Print + + 0 + + + 0 + + 1 + m_buttonPrint + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPrintButtonClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_CANCEL + Close + + 0 + + + 0 + + 1 + m_buttonQuit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnButtonCancelClick + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pcbnew/dialogs/dialog_print_for_modedit_base.h b/pcbnew/dialogs/dialog_print_for_modedit_base.h index f6f874df7d..0d48748338 100644 --- a/pcbnew/dialogs/dialog_print_for_modedit_base.h +++ b/pcbnew/dialogs/dialog_print_for_modedit_base.h @@ -1,63 +1,64 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_PRINT_FOR_MODEDIT_BASE_H__ -#define __DIALOG_PRINT_FOR_MODEDIT_BASE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_PRINT_FOR_MODEDIT_BASE -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_PRINT_FOR_MODEDIT_BASE : public wxDialog -{ - private: - - protected: - enum - { - wxID_PRINT_MODE = 1000, - wxID_PRINT_OPTIONS, - wxID_PRINT_ALL, - }; - - wxRadioBox* m_ScaleOption; - wxRadioBox* m_ModeColorOption; - wxButton* m_buttonOption; - wxButton* m_buttonPreview; - wxButton* m_buttonPrint; - wxButton* m_buttonQuit; - - // Virtual event handlers, overide them in your derived class - virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); } - virtual void OnPrintSetup( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPrintPreview( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPrintButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnButtonCancelClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_PRINT_FOR_MODEDIT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Print"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 375,254 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_PRINT_FOR_MODEDIT_BASE(); - -}; - -#endif //__DIALOG_PRINT_FOR_MODEDIT_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_PRINT_FOR_MODEDIT_BASE_H__ +#define __DIALOG_PRINT_FOR_MODEDIT_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_PRINT_FOR_MODEDIT_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_PRINT_FOR_MODEDIT_BASE : public DIALOG_SHIM +{ + private: + + protected: + enum + { + wxID_PRINT_MODE = 1000, + wxID_PRINT_OPTIONS, + wxID_PRINT_ALL + }; + + wxRadioBox* m_ScaleOption; + wxRadioBox* m_ModeColorOption; + wxButton* m_buttonOption; + wxButton* m_buttonPreview; + wxButton* m_buttonPrint; + wxButton* m_buttonQuit; + + // Virtual event handlers, overide them in your derived class + virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); } + virtual void OnPrintSetup( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPrintPreview( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPrintButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnButtonCancelClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_PRINT_FOR_MODEDIT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Print"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_PRINT_FOR_MODEDIT_BASE(); + +}; + +#endif //__DIALOG_PRINT_FOR_MODEDIT_BASE_H__ diff --git a/pcbnew/dialogs/dialog_print_using_printer.cpp b/pcbnew/dialogs/dialog_print_using_printer.cpp index e4985b19ad..095ef993c0 100644 --- a/pcbnew/dialogs/dialog_print_using_printer.cpp +++ b/pcbnew/dialogs/dialog_print_using_printer.cpp @@ -42,24 +42,28 @@ static wxPageSetupDialogData* s_pageSetupData = (wxPageSetupDialogData*) NULL; static PRINT_PARAMETERS s_Parameters; -/* Dialog to print schematic. Class derived from DIALOG_PRINT_USING_PRINTER_base +/** + * Dialog to print schematic. Class derived from DIALOG_PRINT_USING_PRINTER_base * created by wxFormBuilder */ class DIALOG_PRINT_USING_PRINTER : public DIALOG_PRINT_USING_PRINTER_base { -private: - PCB_EDIT_FRAME* m_Parent; - wxConfig* m_Config; - wxCheckBox* m_BoxSelectLayer[32]; - static bool m_ExcludeEdgeLayer; - static wxPoint s_LastPos; - static wxSize s_LastSize; - public: DIALOG_PRINT_USING_PRINTER( PCB_EDIT_FRAME* parent ); - ~DIALOG_PRINT_USING_PRINTER() {}; + + bool IsMirrored() { return m_Print_Mirror->IsChecked(); } + bool ExcludeEdges() { return m_Exclude_Edges_Pcb->IsChecked(); } + bool PrintUsingSinglePage() { return m_PagesOption->GetSelection(); } + int SetLayerMaskFromListSelection(); + private: + + PCB_EDIT_FRAME* m_parent; + wxConfig* m_config; + wxCheckBox* m_BoxSelectLayer[32]; + static bool m_ExcludeEdgeLayer; + void OnCloseWindow( wxCloseEvent& event ); void OnPageSetup( wxCommandEvent& event ); void OnPrintPreview( wxCommandEvent& event ); @@ -70,31 +74,13 @@ private: void SetPrintParameters( ); void SetPenWidth(); void InitValues( ); - - bool Show( bool show ); // overload stock function - -public: - bool IsMirrored() { return m_Print_Mirror->IsChecked(); } - bool ExcludeEdges() { return m_Exclude_Edges_Pcb->IsChecked(); } - bool PrintUsingSinglePage() { return m_PagesOption->GetSelection(); } - int SetLayerMaskFromListSelection(); }; + bool DIALOG_PRINT_USING_PRINTER::m_ExcludeEdgeLayer; -// We want our dialog to remember its previous screen position -wxPoint DIALOG_PRINT_USING_PRINTER::s_LastPos( -1, -1 ); -wxSize DIALOG_PRINT_USING_PRINTER::s_LastSize; - - -/*******************************************************/ void PCB_EDIT_FRAME::ToPrinter( wxCommandEvent& event ) -/*******************************************************/ - -/* Virtual function: - * Display the print dialog - */ { const PAGE_INFO& pageInfo = GetPageSettings(); @@ -136,13 +122,11 @@ void PCB_EDIT_FRAME::ToPrinter( wxCommandEvent& event ) } -/*************************************************************************************/ DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER( PCB_EDIT_FRAME* parent ) : DIALOG_PRINT_USING_PRINTER_base( parent ) -/*************************************************************************************/ { - m_Parent = parent; - m_Config = wxGetApp().GetSettings(); + m_parent = parent; + m_config = wxGetApp().GetSettings(); InitValues( ); @@ -160,14 +144,11 @@ DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER( PCB_EDIT_FRAME* parent ) } -/************************************************************************/ void DIALOG_PRINT_USING_PRINTER::InitValues( ) -/************************************************************************/ { - SetFocus(); int layer_max = NB_LAYERS; wxString msg; - BOARD* board = m_Parent->GetBoard(); + BOARD* board = m_parent->GetBoard(); s_Parameters.m_PageSetupData = s_pageSetupData; @@ -206,7 +187,7 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) layerKey.Printf( OPTKEY_LAYERBASE, layer ); bool option; - if( m_Config->Read( layerKey, &option ) ) + if( m_config->Read( layerKey, &option ) ) m_BoxSelectLayer[layer]->SetValue( option ); else { @@ -222,15 +203,15 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) // Read the scale adjust option int scale_idx = 4; // default selected scale = ScaleList[4] = 1.000 - if( m_Config ) + if( m_config ) { - m_Config->Read( OPTKEY_PRINT_X_FINESCALE_ADJ, &s_Parameters.m_XScaleAdjust ); - m_Config->Read( OPTKEY_PRINT_Y_FINESCALE_ADJ, &s_Parameters.m_YScaleAdjust ); - m_Config->Read( OPTKEY_PRINT_SCALE, &scale_idx ); - m_Config->Read( OPTKEY_PRINT_PAGE_FRAME, &s_Parameters.m_Print_Sheet_Ref, 1); - m_Config->Read( OPTKEY_PRINT_MONOCHROME_MODE, &s_Parameters.m_Print_Black_and_White, 1); + m_config->Read( OPTKEY_PRINT_X_FINESCALE_ADJ, &s_Parameters.m_XScaleAdjust ); + m_config->Read( OPTKEY_PRINT_Y_FINESCALE_ADJ, &s_Parameters.m_YScaleAdjust ); + m_config->Read( OPTKEY_PRINT_SCALE, &scale_idx ); + m_config->Read( OPTKEY_PRINT_PAGE_FRAME, &s_Parameters.m_Print_Sheet_Ref, 1); + m_config->Read( OPTKEY_PRINT_MONOCHROME_MODE, &s_Parameters.m_Print_Black_and_White, 1); int tmp; - m_Config->Read( OPTKEY_PRINT_PADS_DRILL, &tmp, PRINT_PARAMETERS::SMALL_DRILL_SHAPE ); + m_config->Read( OPTKEY_PRINT_PADS_DRILL, &tmp, PRINT_PARAMETERS::SMALL_DRILL_SHAPE ); s_Parameters.m_DrillShapeOpt = (PRINT_PARAMETERS::DrillShapeOptT) tmp; // Test for a reasonnable scale value. Set to 1 if problem @@ -252,7 +233,7 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) layerKey.Printf( OPTKEY_LAYERBASE, layer ); option = false; - if( m_Config->Read( layerKey, &option ) ) + if( m_config->Read( layerKey, &option ) ) { m_BoxSelectLayer[layer]->SetValue( option ); if( option ) @@ -279,7 +260,7 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) s_Parameters.m_PenDefaultSize = g_DrawDefaultLineThickness; AddUnitSymbol( *m_TextPenWidth, g_UserUnit ); m_DialogPenWidth->SetValue( - ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, m_Parent->GetInternalUnits() ) ); + ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, m_parent->GetInternalUnits() ) ); // Create scale adjust option msg.Printf( wxT( "%f" ), s_Parameters.m_XScaleAdjust ); @@ -296,35 +277,7 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) } -/*************************************************/ -bool DIALOG_PRINT_USING_PRINTER::Show( bool show ) -/*************************************************/ -{ - bool ret; - - if( show ) - { - if( s_LastPos.x != -1 ) - { - SetSize( s_LastPos.x, s_LastPos.y, s_LastSize.x, s_LastSize.y, 0 ); - } - ret = DIALOG_PRINT_USING_PRINTER_base::Show( show ); - } - else - { - // Save the dialog's position before hiding - s_LastPos = GetPosition(); - s_LastSize = GetSize(); - - ret = DIALOG_PRINT_USING_PRINTER_base::Show( show ); - } - - return ret; -} - -/**************************************************************/ int DIALOG_PRINT_USING_PRINTER::SetLayerMaskFromListSelection() -/**************************************************************/ { int page_count; int layers_count = NB_LAYERS; @@ -355,37 +308,35 @@ int DIALOG_PRINT_USING_PRINTER::SetLayerMaskFromListSelection() } -/********************************************************************/ void DIALOG_PRINT_USING_PRINTER::OnCloseWindow( wxCloseEvent& event ) -/********************************************************************/ { SetPrintParameters(); - if( m_Config ) + if( m_config ) { - m_Config->Write( OPTKEY_PRINT_X_FINESCALE_ADJ, s_Parameters.m_XScaleAdjust ); - m_Config->Write( OPTKEY_PRINT_Y_FINESCALE_ADJ, s_Parameters.m_YScaleAdjust ); - m_Config->Write( OPTKEY_PRINT_SCALE, m_ScaleOption->GetSelection() ); - m_Config->Write( OPTKEY_PRINT_PAGE_FRAME, s_Parameters.m_Print_Sheet_Ref); - m_Config->Write( OPTKEY_PRINT_MONOCHROME_MODE, s_Parameters.m_Print_Black_and_White); - m_Config->Write( OPTKEY_PRINT_PADS_DRILL, (long) s_Parameters.m_DrillShapeOpt ); + m_config->Write( OPTKEY_PRINT_X_FINESCALE_ADJ, s_Parameters.m_XScaleAdjust ); + m_config->Write( OPTKEY_PRINT_Y_FINESCALE_ADJ, s_Parameters.m_YScaleAdjust ); + m_config->Write( OPTKEY_PRINT_SCALE, m_ScaleOption->GetSelection() ); + m_config->Write( OPTKEY_PRINT_PAGE_FRAME, s_Parameters.m_Print_Sheet_Ref); + m_config->Write( OPTKEY_PRINT_MONOCHROME_MODE, s_Parameters.m_Print_Black_and_White); + m_config->Write( OPTKEY_PRINT_PADS_DRILL, (long) s_Parameters.m_DrillShapeOpt ); wxString layerKey; for( int layer = 0; layer < NB_LAYERS; ++layer ) { if( m_BoxSelectLayer[layer] == NULL ) continue; layerKey.Printf( OPTKEY_LAYERBASE, layer ); - m_Config->Write( layerKey, m_BoxSelectLayer[layer]->IsChecked() ); + m_config->Write( layerKey, m_BoxSelectLayer[layer]->IsChecked() ); } } EndModal( 0 ); } -/******************************************************************/ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( ) -/******************************************************************/ { + PCB_PLOT_PARAMS plot_opts = m_parent->GetPlotSettings(); + s_Parameters.m_PrintMirror = m_Print_Mirror->GetValue(); s_Parameters.m_Print_Sheet_Ref = m_Print_Sheet_Ref->GetValue(); s_Parameters.m_Print_Black_and_White = @@ -397,12 +348,11 @@ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( ) if( m_PagesOption ) s_Parameters.m_OptionPrintPage = m_PagesOption->GetSelection() != 0; - SetLayerMaskFromListSelection(); int idx = m_ScaleOption->GetSelection(); s_Parameters.m_PrintScale = s_ScaleList[idx]; - g_PcbPlotOptions.m_PlotScale = s_Parameters.m_PrintScale; + plot_opts.m_PlotScale = s_Parameters.m_PrintScale; if( m_FineAdjustXscaleOpt ) { @@ -419,20 +369,22 @@ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( ) DisplayInfoMessage( NULL, _( "Warning: Scale option set to a very small value" ) ); m_FineAdjustYscaleOpt->GetValue().ToDouble( &s_Parameters.m_YScaleAdjust ); } - g_PcbPlotOptions.m_FineScaleAdjustX = s_Parameters.m_XScaleAdjust; - g_PcbPlotOptions.m_FineScaleAdjustY = s_Parameters.m_YScaleAdjust; + + plot_opts.m_FineScaleAdjustX = s_Parameters.m_XScaleAdjust; + plot_opts.m_FineScaleAdjustY = s_Parameters.m_YScaleAdjust; + + m_parent->SetPlotSettings( plot_opts ); + SetPenWidth(); } -/**********************************************/ void DIALOG_PRINT_USING_PRINTER::SetPenWidth() -/***********************************************/ { // Get the new pen width value, and verify min et max value // NOTE: s_Parameters.m_PenDefaultSize is in internal units - s_Parameters.m_PenDefaultSize = ReturnValueFromTextCtrl( *m_DialogPenWidth, m_Parent->GetInternalUnits() ); + s_Parameters.m_PenDefaultSize = ReturnValueFromTextCtrl( *m_DialogPenWidth, m_parent->GetInternalUnits() ); if( s_Parameters.m_PenDefaultSize > WIDTH_MAX_VALUE ) { @@ -447,7 +399,7 @@ void DIALOG_PRINT_USING_PRINTER::SetPenWidth() g_DrawDefaultLineThickness = s_Parameters.m_PenDefaultSize; m_DialogPenWidth->SetValue( - ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, m_Parent->GetInternalUnits() ) ); + ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, m_parent->GetInternalUnits() ) ); } void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event ) @@ -462,9 +414,7 @@ void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event ) } -/**********************************************************/ void DIALOG_PRINT_USING_PRINTER::OnPageSetup( wxCommandEvent& event ) -/**********************************************************/ { wxPageSetupDialog pageSetupDialog(this, s_pageSetupData); pageSetupDialog.ShowModal(); @@ -474,17 +424,15 @@ void DIALOG_PRINT_USING_PRINTER::OnPageSetup( wxCommandEvent& event ) } -/************************************************************/ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event ) -/************************************************************/ { SetPrintParameters( ); // Pass two printout objects: for preview, and possible printing. wxString title = _( "Print Preview" ); wxPrintPreview* preview = - new wxPrintPreview( new BOARD_PRINTOUT_CONTROLER( s_Parameters, m_Parent, title ), - new BOARD_PRINTOUT_CONTROLER( s_Parameters, m_Parent, title ), + new wxPrintPreview( new BOARD_PRINTOUT_CONTROLER( s_Parameters, m_parent, title ), + new BOARD_PRINTOUT_CONTROLER( s_Parameters, m_parent, title ), s_PrintData ); if( preview == NULL ) @@ -504,9 +452,9 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event ) } // Uses the parent position and size. - // @todo uses last position and size ans store them when exit in m_Config - wxPoint WPos = m_Parent->GetPosition(); - wxSize WSize = m_Parent->GetSize(); + // @todo uses last position and size ans store them when exit in m_config + wxPoint WPos = m_parent->GetPosition(); + wxSize WSize = m_parent->GetSize(); wxPreviewFrame* frame = new wxPreviewFrame( preview, this, title, WPos, WSize ); @@ -515,9 +463,7 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintPreview( wxCommandEvent& event ) } -/***************************************************************************/ void DIALOG_PRINT_USING_PRINTER::OnPrintButtonClick( wxCommandEvent& event ) -/***************************************************************************/ { SetPrintParameters( ); @@ -534,7 +480,7 @@ void DIALOG_PRINT_USING_PRINTER::OnPrintButtonClick( wxCommandEvent& event ) wxPrinter printer( &printDialogData ); wxString title = _( "Print" ); - BOARD_PRINTOUT_CONTROLER printout( s_Parameters, m_Parent, title ); + BOARD_PRINTOUT_CONTROLER printout( s_Parameters, m_parent, title ); // Alexander's patch had this removed altogether, waiting for testing. #if 0 && !defined(__WINDOWS__) && !wxCHECK_VERSION(2,9,0) diff --git a/pcbnew/dialogs/dialog_print_using_printer_base.cpp b/pcbnew/dialogs/dialog_print_using_printer_base.cpp index fc553b9c60..8ce17dfddc 100644 --- a/pcbnew/dialogs/dialog_print_using_printer_base.cpp +++ b/pcbnew/dialogs/dialog_print_using_printer_base.cpp @@ -1,165 +1,177 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_print_using_printer_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_PRINT_USING_PRINTER_base::DIALOG_PRINT_USING_PRINTER_base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); - - wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxStaticBoxSizer* sbLayersSizer; - sbLayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers:") ), wxVERTICAL ); - - wxBoxSizer* bleftSizer; - bleftSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_CopperLayersBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Copper Layers:") ), wxVERTICAL ); - - bleftSizer->Add( m_CopperLayersBoxSizer, 1, wxALL, 5 ); - - m_TechnicalLayersBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Technical Layers:") ), wxVERTICAL ); - - bleftSizer->Add( m_TechnicalLayersBoxSizer, 1, wxALL, 5 ); - - sbLayersSizer->Add( bleftSizer, 1, wxEXPAND, 5 ); - - m_Exclude_Edges_Pcb = new wxCheckBox( this, wxID_ANY, _("Exclude Edges_Pcb Layer"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Exclude_Edges_Pcb->SetToolTip( _("Exclude contents of Edges_Pcb layer from all other layers") ); - - sbLayersSizer->Add( m_Exclude_Edges_Pcb, 0, wxALL|wxEXPAND, 5 ); - - bMainSizer->Add( sbLayersSizer, 1, wxEXPAND, 5 ); - - wxBoxSizer* bmiddleLeftSizer; - bmiddleLeftSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_ScaleOptionChoices[] = { _("fit in page"), _("Scale 0.5"), _("Scale 0.7"), _("Approx. Scale 1"), _("Accurate Scale 1"), _("Scale 1.4"), _("Scale 2"), _("Scale 3"), _("Scale 4") }; - int m_ScaleOptionNChoices = sizeof( m_ScaleOptionChoices ) / sizeof( wxString ); - m_ScaleOption = new wxRadioBox( this, wxID_ANY, _("Approx. Scale:"), wxDefaultPosition, wxDefaultSize, m_ScaleOptionNChoices, m_ScaleOptionChoices, 1, wxRA_SPECIFY_COLS ); - m_ScaleOption->SetSelection( 4 ); - bmiddleLeftSizer->Add( m_ScaleOption, 0, wxALL, 5 ); - - m_FineAdjustXscaleTitle = new wxStaticText( this, wxID_ANY, _("X Scale Adjust"), wxDefaultPosition, wxDefaultSize, 0 ); - m_FineAdjustXscaleTitle->Wrap( -1 ); - bmiddleLeftSizer->Add( m_FineAdjustXscaleTitle, 0, wxRIGHT|wxLEFT, 5 ); - - m_FineAdjustXscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_FineAdjustXscaleOpt->SetToolTip( _("Set X scale adjust for exact scale plotting") ); - - bmiddleLeftSizer->Add( m_FineAdjustXscaleOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_FineAdjustYscaleTitle = new wxStaticText( this, wxID_ANY, _("Y Scale Adjust"), wxDefaultPosition, wxDefaultSize, 0 ); - m_FineAdjustYscaleTitle->Wrap( -1 ); - bmiddleLeftSizer->Add( m_FineAdjustYscaleTitle, 0, wxRIGHT|wxLEFT, 5 ); - - m_FineAdjustYscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_FineAdjustYscaleOpt->SetToolTip( _("Set Y scale adjust for exact scale plotting") ); - - bmiddleLeftSizer->Add( m_FineAdjustYscaleOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - bMainSizer->Add( bmiddleLeftSizer, 0, wxEXPAND, 5 ); - - wxBoxSizer* bmiddleRightSizer; - bmiddleRightSizer = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbOptionsSizer; - sbOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL ); - - m_TextPenWidth = new wxStaticText( this, wxID_ANY, _("Default pen size"), wxDefaultPosition, wxDefaultSize, 0 ); - m_TextPenWidth->Wrap( -1 ); - m_TextPenWidth->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") ); - - sbOptionsSizer->Add( m_TextPenWidth, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_DialogPenWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - sbOptionsSizer->Add( m_DialogPenWidth, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_Print_Sheet_Ref = new wxCheckBox( this, wxID_FRAME_SEL, _("Print frame ref"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Print_Sheet_Ref->SetValue(true); - m_Print_Sheet_Ref->SetToolTip( _("Print (or not) the Frame references.") ); - - sbOptionsSizer->Add( m_Print_Sheet_Ref, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_Print_Mirror = new wxCheckBox( this, wxID_ANY, _("Mirror"), wxDefaultPosition, wxDefaultSize, 0 ); - sbOptionsSizer->Add( m_Print_Mirror, 0, wxALL, 5 ); - - bmiddleRightSizer->Add( sbOptionsSizer, 0, wxEXPAND|wxALL, 5 ); - - wxString m_Drill_Shape_OptChoices[] = { _("No drill mark"), _("Small mark"), _("Real drill") }; - int m_Drill_Shape_OptNChoices = sizeof( m_Drill_Shape_OptChoices ) / sizeof( wxString ); - m_Drill_Shape_Opt = new wxRadioBox( this, wxID_ANY, _("Pads Drill Opt"), wxDefaultPosition, wxDefaultSize, m_Drill_Shape_OptNChoices, m_Drill_Shape_OptChoices, 1, wxRA_SPECIFY_COLS ); - m_Drill_Shape_Opt->SetSelection( 1 ); - bmiddleRightSizer->Add( m_Drill_Shape_Opt, 0, wxALL|wxEXPAND, 5 ); - - wxString m_ModeColorOptionChoices[] = { _("Color"), _("Black and white") }; - int m_ModeColorOptionNChoices = sizeof( m_ModeColorOptionChoices ) / sizeof( wxString ); - m_ModeColorOption = new wxRadioBox( this, wxID_PRINT_MODE, _("Print Mode"), wxDefaultPosition, wxDefaultSize, m_ModeColorOptionNChoices, m_ModeColorOptionChoices, 1, wxRA_SPECIFY_COLS ); - m_ModeColorOption->SetSelection( 1 ); - m_ModeColorOption->SetToolTip( _("Choose if you want to draw the sheet like it appears on screen,\nor in black and white mode, better to print it when using black and white printers") ); - - bmiddleRightSizer->Add( m_ModeColorOption, 0, wxALL|wxEXPAND, 5 ); - - bMainSizer->Add( bmiddleRightSizer, 0, wxEXPAND, 5 ); - - wxBoxSizer* bbuttonsSizer; - bbuttonsSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_PagesOptionChoices[] = { _("1 Page per Layer"), _("Single page") }; - int m_PagesOptionNChoices = sizeof( m_PagesOptionChoices ) / sizeof( wxString ); - m_PagesOption = new wxRadioBox( this, wxID_PAGE_MODE, _("Page Print"), wxDefaultPosition, wxDefaultSize, m_PagesOptionNChoices, m_PagesOptionChoices, 1, wxRA_SPECIFY_COLS ); - m_PagesOption->SetSelection( 0 ); - bbuttonsSizer->Add( m_PagesOption, 0, wxALL|wxEXPAND, 5 ); - - - bbuttonsSizer->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_buttonOption = new wxButton( this, wxID_PRINT_OPTIONS, _("Page Options"), wxDefaultPosition, wxDefaultSize, 0 ); - bbuttonsSizer->Add( m_buttonOption, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - m_buttonPreview = new wxButton( this, wxID_PREVIEW, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 ); - bbuttonsSizer->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - m_buttonPrint = new wxButton( this, wxID_PRINT_ALL, _("Print"), wxDefaultPosition, wxDefaultSize, 0 ); - bbuttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonQuit->SetDefault(); - bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - - - bbuttonsSizer->Add( 0, 0, 1, wxEXPAND, 5 ); - - bMainSizer->Add( bbuttonsSizer, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); - - this->SetSizer( bMainSizer ); - this->Layout(); - - // Connect Events - this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) ); - m_ScaleOption->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnScaleSelectionClick ), NULL, this ); - m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPageSetup ), NULL, this ); - m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this ); - m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this ); - m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this ); -} - -DIALOG_PRINT_USING_PRINTER_base::~DIALOG_PRINT_USING_PRINTER_base() -{ - // Disconnect Events - this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) ); - m_ScaleOption->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnScaleSelectionClick ), NULL, this ); - m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPageSetup ), NULL, this ); - m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this ); - m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this ); - m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this ); - -} +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_print_using_printer_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_PRINT_USING_PRINTER_base::DIALOG_PRINT_USING_PRINTER_base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + + wxBoxSizer* bMainSizer; + bMainSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxStaticBoxSizer* sbLayersSizer; + sbLayersSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Layers:") ), wxVERTICAL ); + + wxBoxSizer* bleftSizer; + bleftSizer = new wxBoxSizer( wxHORIZONTAL ); + + m_CopperLayersBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Copper Layers:") ), wxVERTICAL ); + + + bleftSizer->Add( m_CopperLayersBoxSizer, 1, wxALL, 5 ); + + m_TechnicalLayersBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Technical Layers:") ), wxVERTICAL ); + + + bleftSizer->Add( m_TechnicalLayersBoxSizer, 1, wxALL, 5 ); + + + sbLayersSizer->Add( bleftSizer, 1, wxEXPAND, 5 ); + + m_Exclude_Edges_Pcb = new wxCheckBox( this, wxID_ANY, _("Exclude Edges_Pcb Layer"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Exclude_Edges_Pcb->SetToolTip( _("Exclude contents of Edges_Pcb layer from all other layers") ); + + sbLayersSizer->Add( m_Exclude_Edges_Pcb, 0, wxALL|wxEXPAND, 5 ); + + + bMainSizer->Add( sbLayersSizer, 1, wxEXPAND, 5 ); + + wxBoxSizer* bmiddleLeftSizer; + bmiddleLeftSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_ScaleOptionChoices[] = { _("fit in page"), _("Scale 0.5"), _("Scale 0.7"), _("Approx. Scale 1"), _("Accurate Scale 1"), _("Scale 1.4"), _("Scale 2"), _("Scale 3"), _("Scale 4") }; + int m_ScaleOptionNChoices = sizeof( m_ScaleOptionChoices ) / sizeof( wxString ); + m_ScaleOption = new wxRadioBox( this, wxID_ANY, _("Approx. Scale:"), wxDefaultPosition, wxDefaultSize, m_ScaleOptionNChoices, m_ScaleOptionChoices, 1, wxRA_SPECIFY_COLS ); + m_ScaleOption->SetSelection( 4 ); + bmiddleLeftSizer->Add( m_ScaleOption, 0, wxALL, 5 ); + + m_FineAdjustXscaleTitle = new wxStaticText( this, wxID_ANY, _("X Scale Adjust"), wxDefaultPosition, wxDefaultSize, 0 ); + m_FineAdjustXscaleTitle->Wrap( -1 ); + bmiddleLeftSizer->Add( m_FineAdjustXscaleTitle, 0, wxRIGHT|wxLEFT, 5 ); + + m_FineAdjustXscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_FineAdjustXscaleOpt->SetToolTip( _("Set X scale adjust for exact scale plotting") ); + + bmiddleLeftSizer->Add( m_FineAdjustXscaleOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_FineAdjustYscaleTitle = new wxStaticText( this, wxID_ANY, _("Y Scale Adjust"), wxDefaultPosition, wxDefaultSize, 0 ); + m_FineAdjustYscaleTitle->Wrap( -1 ); + bmiddleLeftSizer->Add( m_FineAdjustYscaleTitle, 0, wxRIGHT|wxLEFT, 5 ); + + m_FineAdjustYscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_FineAdjustYscaleOpt->SetToolTip( _("Set Y scale adjust for exact scale plotting") ); + + bmiddleLeftSizer->Add( m_FineAdjustYscaleOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + + bMainSizer->Add( bmiddleLeftSizer, 0, wxEXPAND, 5 ); + + wxBoxSizer* bmiddleRightSizer; + bmiddleRightSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbOptionsSizer; + sbOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL ); + + m_TextPenWidth = new wxStaticText( this, wxID_ANY, _("Default pen size"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextPenWidth->Wrap( -1 ); + m_TextPenWidth->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") ); + + sbOptionsSizer->Add( m_TextPenWidth, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_DialogPenWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbOptionsSizer->Add( m_DialogPenWidth, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_Print_Sheet_Ref = new wxCheckBox( this, wxID_FRAME_SEL, _("Print frame ref"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Print_Sheet_Ref->SetValue(true); + m_Print_Sheet_Ref->SetToolTip( _("Print (or not) the Frame references.") ); + + sbOptionsSizer->Add( m_Print_Sheet_Ref, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_Print_Mirror = new wxCheckBox( this, wxID_ANY, _("Mirror"), wxDefaultPosition, wxDefaultSize, 0 ); + sbOptionsSizer->Add( m_Print_Mirror, 0, wxALL, 5 ); + + + bmiddleRightSizer->Add( sbOptionsSizer, 0, wxEXPAND|wxALL, 5 ); + + wxString m_Drill_Shape_OptChoices[] = { _("No drill mark"), _("Small mark"), _("Real drill") }; + int m_Drill_Shape_OptNChoices = sizeof( m_Drill_Shape_OptChoices ) / sizeof( wxString ); + m_Drill_Shape_Opt = new wxRadioBox( this, wxID_ANY, _("Pads Drill Opt"), wxDefaultPosition, wxDefaultSize, m_Drill_Shape_OptNChoices, m_Drill_Shape_OptChoices, 1, wxRA_SPECIFY_COLS ); + m_Drill_Shape_Opt->SetSelection( 1 ); + bmiddleRightSizer->Add( m_Drill_Shape_Opt, 0, wxALL|wxEXPAND, 5 ); + + wxString m_ModeColorOptionChoices[] = { _("Color"), _("Black and white") }; + int m_ModeColorOptionNChoices = sizeof( m_ModeColorOptionChoices ) / sizeof( wxString ); + m_ModeColorOption = new wxRadioBox( this, wxID_PRINT_MODE, _("Print Mode"), wxDefaultPosition, wxDefaultSize, m_ModeColorOptionNChoices, m_ModeColorOptionChoices, 1, wxRA_SPECIFY_COLS ); + m_ModeColorOption->SetSelection( 1 ); + m_ModeColorOption->SetToolTip( _("Choose if you want to draw the sheet like it appears on screen,\nor in black and white mode, better to print it when using black and white printers") ); + + bmiddleRightSizer->Add( m_ModeColorOption, 0, wxALL|wxEXPAND, 5 ); + + + bMainSizer->Add( bmiddleRightSizer, 0, wxEXPAND, 5 ); + + wxBoxSizer* bbuttonsSizer; + bbuttonsSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_PagesOptionChoices[] = { _("1 Page per Layer"), _("Single page") }; + int m_PagesOptionNChoices = sizeof( m_PagesOptionChoices ) / sizeof( wxString ); + m_PagesOption = new wxRadioBox( this, wxID_PAGE_MODE, _("Page Print"), wxDefaultPosition, wxDefaultSize, m_PagesOptionNChoices, m_PagesOptionChoices, 1, wxRA_SPECIFY_COLS ); + m_PagesOption->SetSelection( 0 ); + bbuttonsSizer->Add( m_PagesOption, 0, wxALL|wxEXPAND, 5 ); + + + bbuttonsSizer->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_buttonOption = new wxButton( this, wxID_PRINT_OPTIONS, _("Page Options"), wxDefaultPosition, wxDefaultSize, 0 ); + bbuttonsSizer->Add( m_buttonOption, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonPreview = new wxButton( this, wxID_PREVIEW, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 ); + bbuttonsSizer->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonPrint = new wxButton( this, wxID_PRINT_ALL, _("Print"), wxDefaultPosition, wxDefaultSize, 0 ); + bbuttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonQuit->SetDefault(); + bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + + bbuttonsSizer->Add( 0, 0, 1, wxEXPAND, 5 ); + + + bMainSizer->Add( bbuttonsSizer, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + + + this->SetSizer( bMainSizer ); + this->Layout(); + bMainSizer->Fit( this ); + + this->Centre( wxBOTH ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) ); + m_ScaleOption->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnScaleSelectionClick ), NULL, this ); + m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPageSetup ), NULL, this ); + m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this ); + m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this ); + m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this ); +} + +DIALOG_PRINT_USING_PRINTER_base::~DIALOG_PRINT_USING_PRINTER_base() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) ); + m_ScaleOption->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnScaleSelectionClick ), NULL, this ); + m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPageSetup ), NULL, this ); + m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this ); + m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this ); + m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this ); + +} diff --git a/pcbnew/dialogs/dialog_print_using_printer_base.fbp b/pcbnew/dialogs/dialog_print_using_printer_base.fbp index 1e2d2e8958..d20b3170f9 100644 --- a/pcbnew/dialogs/dialog_print_using_printer_base.fbp +++ b/pcbnew/dialogs/dialog_print_using_printer_base.fbp @@ -1,1759 +1,1761 @@ - - - - - - C++ - 1 - source_name - 0 - res - UTF-8 - connect - dialog_print_using_printer_base - 1000 - none - 1 - DialogPrint_base - - . - - 1 - 1 - 1 - 0 - - 1 - 1 - 1 - 1 - 0 - - - - - 1 - - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - impl_virtual - - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - -1,-1 - 1 - DIALOG_PRINT_USING_PRINTER_base - 1 - - - 1 - - - Resizable - - 1 - 551,315 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - - Print - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - OnCloseWindow - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bMainSizer - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - wxID_ANY - Layers: - - sbLayersSizer - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - - bleftSizer - wxHORIZONTAL - none - - 5 - wxALL - 1 - - wxID_ANY - Copper Layers: - - m_CopperLayersBoxSizer - wxVERTICAL - protected - - - - - 5 - wxALL - 1 - - wxID_ANY - Technical Layers: - - m_TechnicalLayersBoxSizer - wxVERTICAL - protected - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Exclude Edges_Pcb Layer - - - 0 - - - 0 - - 1 - m_Exclude_Edges_Pcb - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Exclude contents of Edges_Pcb layer from all other layers - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bmiddleLeftSizer - wxVERTICAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "fit in page" "Scale 0.5" "Scale 0.7" "Approx. Scale 1" "Accurate Scale 1" "Scale 1.4" "Scale 2" "Scale 3" "Scale 4" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Approx. Scale: - - 1 - - 0 - - - 0 - - 1 - m_ScaleOption - 1 - - - protected - 1 - - - Resizable - - 4 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - OnScaleSelectionClick - - - - - - - - - - 5 - wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - X Scale Adjust - - - 0 - - - 0 - - 1 - m_FineAdjustXscaleTitle - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_FineAdjustXscaleOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Set X scale adjust for exact scale plotting - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Y Scale Adjust - - - 0 - - - 0 - - 1 - m_FineAdjustYscaleTitle - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - - 1 - m_FineAdjustYscaleOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Set Y scale adjust for exact scale plotting - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 0 - - - bmiddleRightSizer - wxVERTICAL - none - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Options: - - sbOptionsSizer - wxVERTICAL - none - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Default pen size - - - 0 - - - 0 - - 1 - m_TextPenWidth - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Pen size used to draw items that have no pen size specified. Used mainly to draw items in sketch mode. - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - 0 - - 0 - -1,-1 - 1 - m_DialogPenWidth - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_FRAME_SEL - Print frame ref - - - 0 - - - 0 - - 1 - m_Print_Sheet_Ref - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Print (or not) the Frame references. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Mirror - - - 0 - - - 0 - - 1 - m_Print_Mirror - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "No drill mark" "Small mark" "Real drill" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Pads Drill Opt - - 1 - - 0 - - - 0 - - 1 - m_Drill_Shape_Opt - 1 - - - protected - 1 - - - Resizable - - 1 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Color" "Black and white" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PRINT_MODE - Print Mode - - 1 - - 0 - - - 0 - - 1 - m_ModeColorOption - 1 - - - protected - 1 - - - Resizable - - 1 - 1 - - wxRA_SPECIFY_COLS - - 0 - Choose if you want to draw the sheet like it appears on screen, or in black and white mode, better to print it when using black and white printers - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxEXPAND - 0 - - - bbuttonsSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "1 Page per Layer" "Single page" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PAGE_MODE - Page Print - - 1 - - 0 - - - 0 - - 1 - m_PagesOption - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PRINT_OPTIONS - Page Options - - - 0 - - - 0 - - 1 - m_buttonOption - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnPageSetup - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PREVIEW - Preview - - - 0 - - - 0 - - 1 - m_buttonPreview - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnPrintPreview - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_PRINT_ALL - Print - - - 0 - - - 0 - - 1 - m_buttonPrint - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnPrintButtonClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_CANCEL - Close - - - 0 - - - 0 - - 1 - m_buttonQuit - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnButtonCancelClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - - - - - + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + dialog_print_using_printer_base + 1000 + none + 1 + DialogPrint_base + + . + + 1 + 1 + 1 + 1 + 0 + + 1 + 1 + 1 + 1 + + 0 + + + + + + + 1 + wxBOTH + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + impl_virtual + + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + DIALOG_PRINT_USING_PRINTER_base + 1 + + + 1 + + Resizable + 1 + -1,-1 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + DIALOG_SHIM; dialog_shim.h + Print + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + OnCloseWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bMainSizer + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + wxID_ANY + Layers: + + sbLayersSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + + bleftSizer + wxHORIZONTAL + none + + 5 + wxALL + 1 + + wxID_ANY + Copper Layers: + + m_CopperLayersBoxSizer + wxVERTICAL + protected + + + + + 5 + wxALL + 1 + + wxID_ANY + Technical Layers: + + m_TechnicalLayersBoxSizer + wxVERTICAL + protected + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Exclude Edges_Pcb Layer + + 0 + + + 0 + + 1 + m_Exclude_Edges_Pcb + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Exclude contents of Edges_Pcb layer from all other layers + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bmiddleLeftSizer + wxVERTICAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "fit in page" "Scale 0.5" "Scale 0.7" "Approx. Scale 1" "Accurate Scale 1" "Scale 1.4" "Scale 2" "Scale 3" "Scale 4" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Approx. Scale: + 1 + + 0 + + + 0 + + 1 + m_ScaleOption + 1 + + + protected + 1 + + Resizable + 4 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + OnScaleSelectionClick + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + X Scale Adjust + + 0 + + + 0 + + 1 + m_FineAdjustXscaleTitle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_FineAdjustXscaleOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Set X scale adjust for exact scale plotting + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Y Scale Adjust + + 0 + + + 0 + + 1 + m_FineAdjustYscaleTitle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_FineAdjustYscaleOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Set Y scale adjust for exact scale plotting + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + + bmiddleRightSizer + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Options: + + sbOptionsSizer + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Default pen size + + 0 + + + 0 + + 1 + m_TextPenWidth + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Pen size used to draw items that have no pen size specified. Used mainly to draw items in sketch mode. + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + -1,-1 + 1 + m_DialogPenWidth + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_FRAME_SEL + Print frame ref + + 0 + + + 0 + + 1 + m_Print_Sheet_Ref + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Print (or not) the Frame references. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Mirror + + 0 + + + 0 + + 1 + m_Print_Mirror + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "No drill mark" "Small mark" "Real drill" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Pads Drill Opt + 1 + + 0 + + + 0 + + 1 + m_Drill_Shape_Opt + 1 + + + protected + 1 + + Resizable + 1 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Color" "Black and white" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PRINT_MODE + Print Mode + 1 + + 0 + + + 0 + + 1 + m_ModeColorOption + 1 + + + protected + 1 + + Resizable + 1 + 1 + + wxRA_SPECIFY_COLS + + 0 + Choose if you want to draw the sheet like it appears on screen, or in black and white mode, better to print it when using black and white printers + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxEXPAND + 0 + + + bbuttonsSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "1 Page per Layer" "Single page" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PAGE_MODE + Page Print + 1 + + 0 + + + 0 + + 1 + m_PagesOption + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PRINT_OPTIONS + Page Options + + 0 + + + 0 + + 1 + m_buttonOption + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPageSetup + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PREVIEW + Preview + + 0 + + + 0 + + 1 + m_buttonPreview + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPrintPreview + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_PRINT_ALL + Print + + 0 + + + 0 + + 1 + m_buttonPrint + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPrintButtonClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_CANCEL + Close + + 0 + + + 0 + + 1 + m_buttonQuit + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnButtonCancelClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + + + + + diff --git a/pcbnew/dialogs/dialog_print_using_printer_base.h b/pcbnew/dialogs/dialog_print_using_printer_base.h index 4b4049b8ef..0d6d810ddd 100644 --- a/pcbnew/dialogs/dialog_print_using_printer_base.h +++ b/pcbnew/dialogs/dialog_print_using_printer_base.h @@ -1,83 +1,84 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOG_PRINT_USING_PRINTER_BASE_H__ -#define __DIALOG_PRINT_USING_PRINTER_BASE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_PRINT_USING_PRINTER_base -/////////////////////////////////////////////////////////////////////////////// -class DIALOG_PRINT_USING_PRINTER_base : public wxDialog -{ - private: - - protected: - enum - { - wxID_FRAME_SEL = 1000, - wxID_PRINT_MODE, - wxID_PAGE_MODE, - wxID_PRINT_OPTIONS, - wxID_PRINT_ALL, - }; - - wxStaticBoxSizer* m_CopperLayersBoxSizer; - wxStaticBoxSizer* m_TechnicalLayersBoxSizer; - wxCheckBox* m_Exclude_Edges_Pcb; - wxRadioBox* m_ScaleOption; - wxStaticText* m_FineAdjustXscaleTitle; - wxTextCtrl* m_FineAdjustXscaleOpt; - wxStaticText* m_FineAdjustYscaleTitle; - wxTextCtrl* m_FineAdjustYscaleOpt; - wxStaticText* m_TextPenWidth; - wxTextCtrl* m_DialogPenWidth; - wxCheckBox* m_Print_Sheet_Ref; - wxCheckBox* m_Print_Mirror; - wxRadioBox* m_Drill_Shape_Opt; - wxRadioBox* m_ModeColorOption; - wxRadioBox* m_PagesOption; - wxButton* m_buttonOption; - wxButton* m_buttonPreview; - wxButton* m_buttonPrint; - wxButton* m_buttonQuit; - - // Virtual event handlers, overide them in your derived class - virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); } - virtual void OnScaleSelectionClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPageSetup( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPrintPreview( wxCommandEvent& event ) { event.Skip(); } - virtual void OnPrintButtonClick( wxCommandEvent& event ) { event.Skip(); } - virtual void OnButtonCancelClick( wxCommandEvent& event ) { event.Skip(); } - - - public: - - DIALOG_PRINT_USING_PRINTER_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Print"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 551,315 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_PRINT_USING_PRINTER_base(); - -}; - -#endif //__DIALOG_PRINT_USING_PRINTER_BASE_H__ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Mar 19 2012) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __DIALOG_PRINT_USING_PRINTER_BASE_H__ +#define __DIALOG_PRINT_USING_PRINTER_BASE_H__ + +#include +#include +#include +#include "dialog_shim.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_PRINT_USING_PRINTER_base +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_PRINT_USING_PRINTER_base : public DIALOG_SHIM +{ + private: + + protected: + enum + { + wxID_FRAME_SEL = 1000, + wxID_PRINT_MODE, + wxID_PAGE_MODE, + wxID_PRINT_OPTIONS, + wxID_PRINT_ALL + }; + + wxStaticBoxSizer* m_CopperLayersBoxSizer; + wxStaticBoxSizer* m_TechnicalLayersBoxSizer; + wxCheckBox* m_Exclude_Edges_Pcb; + wxRadioBox* m_ScaleOption; + wxStaticText* m_FineAdjustXscaleTitle; + wxTextCtrl* m_FineAdjustXscaleOpt; + wxStaticText* m_FineAdjustYscaleTitle; + wxTextCtrl* m_FineAdjustYscaleOpt; + wxStaticText* m_TextPenWidth; + wxTextCtrl* m_DialogPenWidth; + wxCheckBox* m_Print_Sheet_Ref; + wxCheckBox* m_Print_Mirror; + wxRadioBox* m_Drill_Shape_Opt; + wxRadioBox* m_ModeColorOption; + wxRadioBox* m_PagesOption; + wxButton* m_buttonOption; + wxButton* m_buttonPreview; + wxButton* m_buttonPrint; + wxButton* m_buttonQuit; + + // Virtual event handlers, overide them in your derived class + virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); } + virtual void OnScaleSelectionClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPageSetup( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPrintPreview( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPrintButtonClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnButtonCancelClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + DIALOG_PRINT_USING_PRINTER_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Print"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_PRINT_USING_PRINTER_base(); + +}; + +#endif //__DIALOG_PRINT_USING_PRINTER_BASE_H__ diff --git a/pcbnew/gen_drill_report_files.cpp b/pcbnew/gen_drill_report_files.cpp index b022f71464..27acfa0f9c 100644 --- a/pcbnew/gen_drill_report_files.cpp +++ b/pcbnew/gen_drill_report_files.cpp @@ -37,6 +37,9 @@ void GenDrillMapFile( BOARD* aPcb, FILE* aFile, const wxString& aFullFileName, wxPoint offset; wxString msg; PLOTTER* plotter = NULL; + + const PCB_PLOT_PARAMS& plot_opts = aPcb->GetPlotOptions(); + LOCALE_IO toggle; // use standard notation for float numbers // Calculate dimensions and center of PCB @@ -58,53 +61,53 @@ void GenDrillMapFile( BOARD* aPcb, FILE* aFile, const wxString& aFullFileName, break; case PLOT_FORMAT_HPGL: // Scale for HPGL format. - { - offset.x = 0; - offset.y = 0; - scale = 1; - HPGL_PLOTTER* hpgl_plotter = new HPGL_PLOTTER; - plotter = hpgl_plotter; - hpgl_plotter->set_pen_number( g_PcbPlotOptions.m_HPGLPenNum ); - hpgl_plotter->set_pen_speed( g_PcbPlotOptions.m_HPGLPenSpeed ); - hpgl_plotter->set_pen_overlap( 0 ); - plotter->SetPageSettings( aSheet ); - plotter->set_viewport( offset, scale, 0 ); - } - break; + { + offset.x = 0; + offset.y = 0; + scale = 1; + HPGL_PLOTTER* hpgl_plotter = new HPGL_PLOTTER; + plotter = hpgl_plotter; + hpgl_plotter->set_pen_number( plot_opts.m_HPGLPenNum ); + hpgl_plotter->set_pen_speed( plot_opts.m_HPGLPenSpeed ); + hpgl_plotter->set_pen_overlap( 0 ); + plotter->SetPageSettings( aSheet ); + plotter->set_viewport( offset, scale, 0 ); + } + break; case PLOT_FORMAT_POST: - { - PAGE_INFO pageA4( wxT( "A4" ) ); - wxSize pageSizeIU = pageA4.GetSizeIU(); + { + PAGE_INFO pageA4( wxT( "A4" ) ); + wxSize pageSizeIU = pageA4.GetSizeIU(); - // Keep size for drill legend - double Xscale = (double) ( pageSizeIU.x * 0.8 ) / dX; - double Yscale = (double) ( pageSizeIU.y * 0.6 ) / dY; + // Keep size for drill legend + double Xscale = (double) ( pageSizeIU.x * 0.8 ) / dX; + double Yscale = (double) ( pageSizeIU.y * 0.6 ) / dY; - scale = MIN( Xscale, Yscale ); + scale = MIN( Xscale, Yscale ); - offset.x = (int) ( (double) BoardCentre.x - ( (double) pageSizeIU.x / 2.0 ) / scale ); - offset.y = (int) ( (double) BoardCentre.y - ( (double) pageSizeIU.y / 2.0 ) / scale ); + offset.x = (int) ( (double) BoardCentre.x - ( (double) pageSizeIU.x / 2.0 ) / scale ); + offset.y = (int) ( (double) BoardCentre.y - ( (double) pageSizeIU.y / 2.0 ) / scale ); - offset.y += pageSizeIU.y / 8; // offset to legend - PS_PLOTTER* ps_plotter = new PS_PLOTTER; - plotter = ps_plotter; - ps_plotter->SetPageSettings( pageA4 ); - plotter->set_viewport( offset, scale, 0 ); + offset.y += pageSizeIU.y / 8; // offset to legend + PS_PLOTTER* ps_plotter = new PS_PLOTTER; + plotter = ps_plotter; + ps_plotter->SetPageSettings( pageA4 ); + plotter->set_viewport( offset, scale, 0 ); + } break; - } case PLOT_FORMAT_DXF: - { - offset.x = 0; - offset.y = 0; - scale = 1; - DXF_PLOTTER* dxf_plotter = new DXF_PLOTTER; - plotter = dxf_plotter; - plotter->SetPageSettings( aSheet ); - plotter->set_viewport( offset, scale, 0 ); + { + offset.x = 0; + offset.y = 0; + scale = 1; + DXF_PLOTTER* dxf_plotter = new DXF_PLOTTER; + plotter = dxf_plotter; + plotter->SetPageSettings( aSheet ); + plotter->set_viewport( offset, scale, 0 ); + } break; - } default: wxASSERT( false ); @@ -122,19 +125,19 @@ void GenDrillMapFile( BOARD* aPcb, FILE* aFile, const wxString& aFullFileName, switch( PtStruct->Type() ) { case PCB_LINE_T: - PlotDrawSegment( plotter, (DRAWSEGMENT*) PtStruct, EDGE_LAYER, FILLED ); + PlotDrawSegment( plotter, plot_opts, (DRAWSEGMENT*) PtStruct, EDGE_LAYER, FILLED ); break; case PCB_TEXT_T: - PlotTextePcb( plotter, (TEXTE_PCB*) PtStruct, EDGE_LAYER, FILLED ); + PlotTextePcb( plotter, plot_opts, (TEXTE_PCB*) PtStruct, EDGE_LAYER, FILLED ); break; case PCB_DIMENSION_T: - PlotDimension( plotter, (DIMENSION*) PtStruct, EDGE_LAYER, FILLED ); + PlotDimension( plotter, plot_opts, (DIMENSION*) PtStruct, EDGE_LAYER, FILLED ); break; case PCB_TARGET_T: - PlotPcbTarget( plotter, (PCB_TARGET*) PtStruct, EDGE_LAYER, FILLED ); + PlotPcbTarget( plotter, plot_opts, (PCB_TARGET*) PtStruct, EDGE_LAYER, FILLED ); break; case PCB_MARKER_T: // do not draw @@ -182,7 +185,7 @@ void GenDrillMapFile( BOARD* aPcb, FILE* aFile, const wxString& aFullFileName, plotY += intervalle; - plot_diam = (int) ( aToolListBuffer[ii].m_Diameter ); + plot_diam = (int) aToolListBuffer[ii].m_Diameter; x = (int) ( (double) plotX - 200.0 * CharScale - (double)plot_diam / 2.0 ); y = (int) ( (double) plotY + (double) CharSize * CharScale ); plotter->marker( wxPoint( x, y ), plot_diam, ii ); diff --git a/pcbnew/gen_modules_placefile.cpp b/pcbnew/gen_modules_placefile.cpp index 2afd95a003..45334a7d4f 100644 --- a/pcbnew/gen_modules_placefile.cpp +++ b/pcbnew/gen_modules_placefile.cpp @@ -59,32 +59,35 @@ public: int m_Layer; // its side (LAYER_N_BACK, or LAYER_N_FRONT) }; -/* + +/** * The dialog to create footprint position files, * and choose options (one or 2 files, units and force all SMD footprints in list) */ class DIALOG_GEN_MODULE_POSITION : public DIALOG_GEN_MODULE_POSITION_BASE { -private: - PCB_EDIT_FRAME* m_parent; - static int m_unitsOpt; - static int m_fileOpt; - public: - DIALOG_GEN_MODULE_POSITION( PCB_EDIT_FRAME * parent): - DIALOG_GEN_MODULE_POSITION_BASE( parent ) + DIALOG_GEN_MODULE_POSITION( PCB_EDIT_FRAME * aParent ): + DIALOG_GEN_MODULE_POSITION_BASE( aParent ), + m_parent( aParent ), + m_plotOpts( aParent->GetPlotSettings() ) { - m_parent = parent; } private: - void OnInitDialog( wxInitDialogEvent& event ); - void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ); - void OnCancelButton( wxCommandEvent& event ) + PCB_EDIT_FRAME* m_parent; + PCB_PLOT_PARAMS m_plotOpts; + + static int m_unitsOpt; + static int m_fileOpt; + + void OnInitDialog( wxInitDialogEvent& event ); + void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ); + void OnCancelButton( wxCommandEvent& event ) { EndModal( wxID_CANCEL ); } - void OnOKButton( wxCommandEvent& event ); + void OnOKButton( wxCommandEvent& event ); bool CreateFiles(); @@ -115,6 +118,7 @@ private: } }; + // Static members to remember choices int DIALOG_GEN_MODULE_POSITION::m_unitsOpt = 0; int DIALOG_GEN_MODULE_POSITION::m_fileOpt = 0; @@ -122,7 +126,7 @@ int DIALOG_GEN_MODULE_POSITION::m_fileOpt = 0; void DIALOG_GEN_MODULE_POSITION::OnInitDialog( wxInitDialogEvent& event ) { // Output directory - m_outputDirectoryName->SetValue( g_PcbPlotOptions.GetOutputDirectory() ); + m_outputDirectoryName->SetValue( m_plotOpts.GetOutputDirectory() ); m_radioBoxUnits->SetSelection( m_unitsOpt ); m_radioBoxFilesCount->SetSelection( m_fileOpt ); @@ -176,11 +180,15 @@ void DIALOG_GEN_MODULE_POSITION::OnOKButton( wxCommandEvent& event ) wxString dirStr; dirStr = m_outputDirectoryName->GetValue(); dirStr.Replace( wxT( "\\" ), wxT( "/" ) ); - g_PcbPlotOptions.SetOutputDirectory( dirStr ); + + m_plotOpts.SetOutputDirectory( dirStr ); + + m_parent->SetPlotSettings( m_plotOpts ); CreateFiles(); } + bool DIALOG_GEN_MODULE_POSITION::CreateFiles() { BOARD * brd = m_parent->GetBoard(); diff --git a/pcbnew/gendrill.cpp b/pcbnew/gendrill.cpp index a360d523eb..0ea551856b 100644 --- a/pcbnew/gendrill.cpp +++ b/pcbnew/gendrill.cpp @@ -116,20 +116,20 @@ void DIALOG_GENDRILL::GenDrillAndReportFiles() UpdateConfig(); // set params and Save drill options - m_Parent->ClearMsgPanel(); + m_parent->ClearMsgPanel(); if( m_microViasCount || m_blindOrBuriedViasCount ) hasBuriedVias = true; for( ; ; ) { - Build_Holes_List( m_Parent->GetBoard(), s_HoleListBuffer, + Build_Holes_List( m_parent->GetBoard(), s_HoleListBuffer, s_ToolListBuffer, layer1, layer2, gen_through_holes ? false : true, gen_NPTH_holes ); if( s_ToolListBuffer.size() > 0 ) // holes? { - fn = m_Parent->GetScreen()->GetFileName(); + fn = m_parent->GetScreen()->GetFileName(); layer_extend.Empty(); if( gen_NPTH_holes ) @@ -169,7 +169,7 @@ void DIALOG_GENDRILL::GenDrillAndReportFiles() return; } - EXCELLON_WRITER excellonWriter( m_Parent->GetBoard(), + EXCELLON_WRITER excellonWriter( m_parent->GetBoard(), aFile, m_FileDrillOffset, &s_HoleListBuffer, &s_ToolListBuffer ); excellonWriter.SetFormat( !m_UnitDrillIsInch, @@ -226,7 +226,7 @@ void DIALOG_GENDRILL::GenDrillAndReportFiles() layer1++; layer2++; // use next layer pair - if( layer2 == m_Parent->GetBoard()->GetCopperLayerCount() - 1 ) + if( layer2 == m_parent->GetBoard()->GetCopperLayerCount() - 1 ) layer2 = LAYER_N_FRONT; // the last layer is always the // component layer } @@ -237,7 +237,7 @@ void DIALOG_GENDRILL::GenDrillAndReportFiles() if( m_Choice_Drill_Report->GetSelection() > 0 ) { - fn = m_Parent->GetScreen()->GetFileName(); + fn = m_parent->GetScreen()->GetFileName(); GenDrillReport( fn.GetFullName() ); } @@ -628,10 +628,10 @@ void DIALOG_GENDRILL::GenDrillMap( const wxString aFileName, return; } - GenDrillMapFile( m_Parent->GetBoard(), + GenDrillMapFile( m_parent->GetBoard(), plotfile, dlg.GetPath(), - m_Parent->GetPageSettings(), + m_parent->GetPageSettings(), s_HoleListBuffer, s_ToolListBuffer, m_UnitDrillIsInch, @@ -667,8 +667,8 @@ void DIALOG_GENDRILL::GenDrillReport( const wxString aFileName ) return; } - GenDrillReportFile( report_dest, m_Parent->GetBoard(), - m_Parent->GetScreen()->GetFileName(), + GenDrillReportFile( report_dest, m_parent->GetBoard(), + m_parent->GetScreen()->GetFileName(), m_UnitDrillIsInch, s_HoleListBuffer, s_ToolListBuffer ); diff --git a/pcbnew/ioascii.cpp b/pcbnew/ioascii.cpp index 2fbe22ff29..91a9ebb11c 100644 --- a/pcbnew/ioascii.cpp +++ b/pcbnew/ioascii.cpp @@ -355,11 +355,12 @@ int PCB_BASE_FRAME::ReadSetup( LINE_READER* aReader ) if( strnicmp( line, "PcbPlotParams", 13 ) == 0 ) { + PCB_PLOT_PARAMS plot_opts; PCB_PLOT_PARAMS_PARSER parser( &line[13], aReader->GetSource() ); try { - g_PcbPlotOptions.Parse( &parser ); + plot_opts.Parse( &parser ); } catch( IO_ERROR& e ) { @@ -370,6 +371,8 @@ int PCB_BASE_FRAME::ReadSetup( LINE_READER* aReader ) wxMessageBox( msg, _( "Open Board File" ), wxOK | wxICON_ERROR ); } + GetBoard()->SetPlotOptions( plot_opts ); + continue; } @@ -801,7 +804,7 @@ static int WriteSetup( FILE* aFile, PCB_EDIT_FRAME* aFrame, BOARD* aBoard ) STRING_FORMATTER sf; - g_PcbPlotOptions.Format( &sf, 0 ); + aBoard->GetPlotOptions().Format( &sf, 0 ); wxString record = FROM_UTF8( sf.GetString().c_str() ); record.Replace( wxT("\n"), wxT(""), true ); diff --git a/pcbnew/kicad_plugin.cpp b/pcbnew/kicad_plugin.cpp index 6efe49df63..fa62afd7c6 100644 --- a/pcbnew/kicad_plugin.cpp +++ b/pcbnew/kicad_plugin.cpp @@ -573,8 +573,13 @@ void KICAD_PLUGIN::loadSETUP() if( TESTLINE( "PcbPlotParams" ) ) { + PCB_PLOT_PARAMS plot_opts; + PCB_PLOT_PARAMS_PARSER parser( line + SZ( "PcbPlotParams" ), m_reader->GetSource() ); - g_PcbPlotOptions.Parse( &parser ); + + plot_opts.Parse( &parser ); + + m_board->SetPlotOptions( plot_opts ); } else if( TESTLINE( "AuxiliaryAxisOrg" ) ) @@ -2906,11 +2911,10 @@ void KICAD_PLUGIN::saveSETUP() const fprintf( m_fp, "AuxiliaryAxisOrg %s\n", fmtBIUPoint( m_board->GetOriginAxisPosition() ).c_str() ); - /* @todo no globals { STRING_FORMATTER sf; - g_PcbPlotOptions.Format( &sf, 0 ); + m_board->GetPlotOptions().Format( &sf, 0 ); wxString record = FROM_UTF8( sf.GetString().c_str() ); @@ -2919,7 +2923,6 @@ void KICAD_PLUGIN::saveSETUP() const fprintf( m_fp, "PcbPlotParams %s\n", TO_UTF8( record ) ); } - */ fprintf( m_fp, "VisibleElements %X\n", bds.GetVisibleElements() ); diff --git a/pcbnew/module_editor_frame.h b/pcbnew/module_editor_frame.h index 6e545ad27a..dc79ce4fb5 100644 --- a/pcbnew/module_editor_frame.h +++ b/pcbnew/module_editor_frame.h @@ -6,6 +6,7 @@ #ifndef MODULE_EDITOR_FRAME_H_ #define MODULE_EDITOR_FRAME_H_ +#include class FOOTPRINT_EDIT_FRAME : public PCB_BASE_FRAME { @@ -20,9 +21,12 @@ public: ~FOOTPRINT_EDIT_FRAME(); - BOARD_DESIGN_SETTINGS& GetDesignSettings() const; // overload PCB_BASE_FRAME, get parent's + BOARD_DESIGN_SETTINGS& GetDesignSettings() const; // overload PCB_BASE_FRAME, get parent's void SetDesignSettings( const BOARD_DESIGN_SETTINGS& aSettings ); // overload + const PCB_PLOT_PARAMS& GetPlotSettings() const; // overload PCB_BASE_FRAME, get parent's + void SetPlotSettings( const PCB_PLOT_PARAMS& aSettings ); // overload + void InstallOptionsFrame( const wxPoint& pos ); void OnCloseWindow( wxCloseEvent& Event ); diff --git a/pcbnew/moduleframe.cpp b/pcbnew/moduleframe.cpp index 2fe1ecfe75..ca97a58b01 100644 --- a/pcbnew/moduleframe.cpp +++ b/pcbnew/moduleframe.cpp @@ -265,6 +265,30 @@ void FOOTPRINT_EDIT_FRAME::SetDesignSettings( const BOARD_DESIGN_SETTINGS& aSett } +const PCB_PLOT_PARAMS& FOOTPRINT_EDIT_FRAME::GetPlotSettings() const +{ + // get the settings from the parent editor, not our BOARD. + + PCB_BASE_FRAME* parentFrame = (PCB_BASE_FRAME*) GetParent(); + + wxASSERT( parentFrame ); + + return parentFrame->GetPlotSettings(); +} + + +void FOOTPRINT_EDIT_FRAME::SetPlotSettings( const PCB_PLOT_PARAMS& aSettings ) +{ + // set the settings into parent editor, not our BOARD. + + PCB_BASE_FRAME* parentFrame = (PCB_BASE_FRAME*) GetParent(); + + wxASSERT( parentFrame ); + + parentFrame->SetPlotSettings( aSettings ); +} + + void FOOTPRINT_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event ) { if( GetScreen()->IsModify() ) diff --git a/pcbnew/pcb_plot_params.cpp b/pcbnew/pcb_plot_params.cpp index 96d99bdf25..5dbe6909c0 100644 --- a/pcbnew/pcb_plot_params.cpp +++ b/pcbnew/pcb_plot_params.cpp @@ -41,9 +41,14 @@ #define HPGL_PEN_OVERLAY_MIN 0 #define HPGL_PEN_OVERLAY_MAX 0x100 -extern int g_DrawDefaultLineThickness; -PCB_PLOT_PARAMS g_PcbPlotOptions; +/** + * Default line thickness in PCnew units used to draw or plot items having a + * default thickness line value (Frame references) (i.e. = 0 ). + * 0 = single pixel line width. + */ +int g_DrawDefaultLineThickness = 60; + using namespace PCBPLOTPARAMS_T; @@ -109,7 +114,7 @@ PCB_PLOT_PARAMS::PCB_PLOT_PARAMS() void PCB_PLOT_PARAMS::Format( OUTPUTFORMATTER* aFormatter, - int aNestLevel ) const throw( IO_ERROR ) + int aNestLevel, int aControl ) const throw( IO_ERROR ) { const char* falseStr = getTokenName( T_false ); const char* trueStr = getTokenName( T_true ); diff --git a/pcbnew/pcb_plot_params.h b/pcbnew/pcb_plot_params.h index 146a72b2a3..1dfced44b2 100644 --- a/pcbnew/pcb_plot_params.h +++ b/pcbnew/pcb_plot_params.h @@ -28,6 +28,8 @@ #include class PCB_PLOT_PARAMS_PARSER; +class LINE_READER; + /** * Class PCB_PLOT_PARAMS @@ -99,7 +101,7 @@ private: public: PCB_PLOT_PARAMS(); - void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel ) const throw( IO_ERROR ); + void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControl=0 ) const throw( IO_ERROR ); void Parse( PCB_PLOT_PARAMS_PARSER* aParser ) throw( IO_ERROR, PARSE_ERROR ); bool operator==( const PCB_PLOT_PARAMS &aPcbPlotParams ) const; @@ -157,6 +159,12 @@ public: }; -extern PCB_PLOT_PARAMS g_PcbPlotOptions; +/** + * Default line thickness in PCnew units used to draw or plot items having a + * default thickness line value (Frame references) (i.e. = 0 ). + * 0 = single pixel line width. + */ +extern int g_DrawDefaultLineThickness; + #endif // PCB_PLOT_PARAMS_H_ diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index 790d5de0ed..c774239236 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -54,8 +54,6 @@ #include -extern int g_DrawDefaultLineThickness; - // Keys used in read/write config #define OPTKEY_DEFAULT_LINEWIDTH_VALUE wxT( "PlotLineWidth" ) #define PCB_SHOW_FULL_RATSNET_OPT wxT( "PcbFulRatsnest" ) diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index c188009bf2..dd3304462e 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -49,10 +49,6 @@ // Colors for layers and items COLORS_DESIGN_SETTINGS g_ColorsSettings; -int g_DrawDefaultLineThickness = 60; /* Default line thickness in PCnew units used to draw - * or plot items having a default thickness line value - * (Frame references) (i.e. = 0 ). 0 = single pixel line - * width */ bool Drc_On = true; bool g_AutoDeleteOldTrack = true; diff --git a/pcbnew/pcbplot.cpp b/pcbnew/pcbplot.cpp index 8f7d00c605..827c7fe5f3 100644 --- a/pcbnew/pcbplot.cpp +++ b/pcbnew/pcbplot.cpp @@ -21,7 +21,7 @@ #include #include -/* Keywords to r/w options in m_Config */ +/* Keywords to r/w options in m_config */ #define CONFIG_XFINESCALE_ADJ wxT( "PlotXFineScaleAdj" ) #define CONFIG_YFINESCALE_ADJ wxT( "PlotYFineScaleAdj" ) #define CONFIG_PS_FINEWIDTH_ADJ wxT( "PSPlotFineWidthAdj" ) @@ -30,8 +30,6 @@ #define MIN_SCALE 0.01 #define MAX_SCALE 100.0 -extern int g_DrawDefaultLineThickness; - static bool setDouble( double* aDouble, double aValue, double aMin, double aMax ) { @@ -51,28 +49,30 @@ static bool setDouble( double* aDouble, double aValue, double aMin, double aMax } -/*******************************/ -/* Dialog box for plot control */ -/*******************************/ +/** + * Class DIALOG_PLOT + * + */ class DIALOG_PLOT : public DIALOG_PLOT_BASE { -private: - PCB_EDIT_FRAME* m_Parent; - wxConfig* m_Config; - std::vector layerList; // List to hold CheckListBox layer numbers - double m_XScaleAdjust; - double m_YScaleAdjust; - double m_PSWidthAdjust; // Global width correction for exact width postscript output. - double m_WidthAdjustMinValue; // Global width correction - double m_WidthAdjustMaxValue; // margins. - static wxPoint prevPosition; // Dialog position & size - static wxSize prevSize; - public: DIALOG_PLOT( PCB_EDIT_FRAME* parent ); + private: + PCB_EDIT_FRAME* m_parent; + BOARD* m_board; + wxConfig* m_config; + std::vector layerList; // List to hold CheckListBox layer numbers + double m_XScaleAdjust; + double m_YScaleAdjust; + double m_PSWidthAdjust; // Global width correction for exact width postscript output. + double m_WidthAdjustMinValue; // Global width correction + double m_WidthAdjustMaxValue; // margins. + + PCB_PLOT_PARAMS m_plotOpts; + void Init_Dialog(); void Plot( wxCommandEvent& event ); void OnQuit( wxCommandEvent& event ); @@ -85,27 +85,20 @@ private: }; -wxPoint DIALOG_PLOT::prevPosition( -1, -1 ); -wxSize DIALOG_PLOT::prevSize; - const int UNITS_MILS = 1000; - -DIALOG_PLOT::DIALOG_PLOT( PCB_EDIT_FRAME* parent ) : - DIALOG_PLOT_BASE( parent ) +DIALOG_PLOT::DIALOG_PLOT( PCB_EDIT_FRAME* aParent ) : + DIALOG_PLOT_BASE( aParent ), + m_parent( aParent ), + m_board( aParent->GetBoard() ), + m_plotOpts( aParent->GetPlotSettings() ) { - m_Parent = parent; - m_Config = wxGetApp().GetSettings(); + m_config = wxGetApp().GetSettings(); Init_Dialog(); GetSizer()->Fit( this ); GetSizer()->SetSizeHints( this ); - - if( prevPosition.x != -1 ) - SetSize( prevPosition.x, prevPosition.y, prevSize.x, prevSize.y ); - else - Center(); } @@ -114,42 +107,40 @@ void DIALOG_PLOT::Init_Dialog() wxString msg; wxFileName fileName; - BOARD* board = m_Parent->GetBoard(); - - m_Config->Read( CONFIG_XFINESCALE_ADJ, &m_XScaleAdjust ); - m_Config->Read( CONFIG_YFINESCALE_ADJ, &m_YScaleAdjust ); - m_Config->Read( CONFIG_PS_FINEWIDTH_ADJ, &m_PSWidthAdjust); + m_config->Read( CONFIG_XFINESCALE_ADJ, &m_XScaleAdjust ); + m_config->Read( CONFIG_YFINESCALE_ADJ, &m_YScaleAdjust ); + m_config->Read( CONFIG_PS_FINEWIDTH_ADJ, &m_PSWidthAdjust); // The reasonable width correction value must be in a range of // [-(MinTrackWidth-1), +(MinClearanceValue-1)] decimils. - m_WidthAdjustMinValue = -(board->GetDesignSettings().m_TrackMinWidth - 1); - m_WidthAdjustMaxValue = board->GetSmallestClearanceValue() - 1; + m_WidthAdjustMinValue = -(m_board->GetDesignSettings().m_TrackMinWidth - 1); + m_WidthAdjustMaxValue = m_board->GetSmallestClearanceValue() - 1; - m_plotFormatOpt->SetSelection( g_PcbPlotOptions.GetPlotFormat() ); + m_plotFormatOpt->SetSelection( m_plotOpts.GetPlotFormat() ); // Set units and value for HPGL pen size. AddUnitSymbol( *m_textPenSize, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, g_PcbPlotOptions.GetHpglPenDiameter(), UNITS_MILS ); + msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetHpglPenDiameter(), UNITS_MILS ); m_HPGLPenSizeOpt->AppendText( msg ); // Set units to cm/s for standard HPGL pen speed. - msg = ReturnStringFromValue( UNSCALED_UNITS, g_PcbPlotOptions.GetHpglPenSpeed(), 1 ); + msg = ReturnStringFromValue( UNSCALED_UNITS, m_plotOpts.GetHpglPenSpeed(), 1 ); m_HPGLPenSpeedOpt->AppendText( msg ); // Set units and value for HPGL pen overlay. AddUnitSymbol( *m_textPenOvr, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, g_PcbPlotOptions.GetHpglPenOverlay(), UNITS_MILS ); + msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetHpglPenOverlay(), UNITS_MILS ); m_HPGLPenOverlayOpt->AppendText( msg ); AddUnitSymbol( *m_textDefaultPenSize, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, g_PcbPlotOptions.GetPlotLineWidth(), + msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetPlotLineWidth(), PCB_INTERNAL_UNIT ); m_linesWidth->AppendText( msg ); // Set units for PS global width correction. AddUnitSymbol( *m_textPSFineAdjustWidth, g_UserUnit ); - m_useAuxOriginCheckBox->SetValue( g_PcbPlotOptions.GetUseAuxOrigin() ); + m_useAuxOriginCheckBox->SetValue( m_plotOpts.GetUseAuxOrigin() ); // Test for a reasonable scale value. Set to 1 if problem if( m_XScaleAdjust < MIN_SCALE || m_YScaleAdjust < MIN_SCALE @@ -169,8 +160,8 @@ void DIALOG_PLOT::Init_Dialog() msg.Printf( wxT( "%f" ), To_User_Unit( g_UserUnit, m_PSWidthAdjust, PCB_INTERNAL_UNIT ) ); m_PSFineAdjustWidthOpt->AppendText( msg ); - m_plotPSNegativeOpt->SetValue( g_PcbPlotOptions.m_PlotPSNegative ); - m_forcePSA4OutputOpt->SetValue( g_PcbPlotOptions.GetPsA4Output() ); + m_plotPSNegativeOpt->SetValue( m_plotOpts.m_PlotPSNegative ); + m_forcePSA4OutputOpt->SetValue( m_plotOpts.GetPsA4Output() ); // List layers in same order than in setup layers dialog // (Front or Top to Back or Bottom) @@ -183,28 +174,28 @@ void DIALOG_PLOT::Init_Dialog() wxASSERT( layer < NB_LAYERS ); - if( !board->IsLayerEnabled( layer ) ) + if( !m_board->IsLayerEnabled( layer ) ) continue; layerList.push_back( layer ); - checkIndex = m_layerCheckListBox->Append( board->GetLayerName( layer ) ); + checkIndex = m_layerCheckListBox->Append( m_board->GetLayerName( layer ) ); - if( g_PcbPlotOptions.GetLayerSelection() & ( 1 << layer ) ) + if( m_plotOpts.GetLayerSelection() & ( 1 << layer ) ) m_layerCheckListBox->Check( checkIndex ); } // Option for using proper Gerber extensions - m_useGerberExtensions->SetValue( g_PcbPlotOptions.GetUseGerberExtensions() ); + m_useGerberExtensions->SetValue( m_plotOpts.GetUseGerberExtensions() ); // Option for excluding contents of "Edges Pcb" layer - m_excludeEdgeLayerOpt->SetValue( g_PcbPlotOptions.m_ExcludeEdgeLayer ); + m_excludeEdgeLayerOpt->SetValue( m_plotOpts.m_ExcludeEdgeLayer ); - m_subtractMaskFromSilk->SetValue( g_PcbPlotOptions.GetSubtractMaskFromSilk() ); + m_subtractMaskFromSilk->SetValue( m_plotOpts.GetSubtractMaskFromSilk() ); // Option to plot page references: - if( m_Parent->GetPrintBorderAndTitleBlock() ) + if( m_parent->GetPrintBorderAndTitleBlock() ) { - m_plotSheetRef->SetValue( g_PcbPlotOptions.m_PlotFrameRef ); + m_plotSheetRef->SetValue( m_plotOpts.m_PlotFrameRef ); } else { @@ -213,39 +204,36 @@ void DIALOG_PLOT::Init_Dialog() } // Option to plot pads on silkscreen layers or all layers - m_plotPads_on_Silkscreen->SetValue( g_PcbPlotOptions.m_PlotPadsOnSilkLayer ); + m_plotPads_on_Silkscreen->SetValue( m_plotOpts.m_PlotPadsOnSilkLayer ); // Options to plot texts on footprints - m_plotModuleValueOpt->SetValue( g_PcbPlotOptions.m_PlotValue ); - m_plotModuleRefOpt->SetValue( g_PcbPlotOptions.m_PlotReference ); - m_plotTextOther->SetValue( g_PcbPlotOptions.m_PlotTextOther ); - m_plotInvisibleText->SetValue( g_PcbPlotOptions.m_PlotInvisibleTexts ); + m_plotModuleValueOpt->SetValue( m_plotOpts.m_PlotValue ); + m_plotModuleRefOpt->SetValue( m_plotOpts.m_PlotReference ); + m_plotTextOther->SetValue( m_plotOpts.m_PlotTextOther ); + m_plotInvisibleText->SetValue( m_plotOpts.m_PlotInvisibleTexts ); // Options to plot pads and vias holes - m_drillShapeOpt->SetSelection( g_PcbPlotOptions.m_DrillShapeOpt ); + m_drillShapeOpt->SetSelection( m_plotOpts.m_DrillShapeOpt ); // Scale option - m_scaleOpt->SetSelection( g_PcbPlotOptions.GetScaleSelection() ); + m_scaleOpt->SetSelection( m_plotOpts.GetScaleSelection() ); // Plot mode - m_plotModeOpt->SetSelection( g_PcbPlotOptions.m_PlotMode ); + m_plotModeOpt->SetSelection( m_plotOpts.m_PlotMode ); // Plot mirror option - m_plotMirrorOpt->SetValue( g_PcbPlotOptions.m_PlotMirror ); + m_plotMirrorOpt->SetValue( m_plotOpts.m_PlotMirror ); // Put vias on mask layer - m_plotNoViaOnMaskOpt->SetValue( g_PcbPlotOptions.m_PlotViaOnMaskLayer ); + m_plotNoViaOnMaskOpt->SetValue( m_plotOpts.m_PlotViaOnMaskLayer ); // Output directory - m_outputDirectoryName->SetValue( g_PcbPlotOptions.GetOutputDirectory() ); + m_outputDirectoryName->SetValue( m_plotOpts.GetOutputDirectory() ); // Update options values: wxCommandEvent cmd_event; SetPlotFormat( cmd_event ); OnSetScaleOpt( cmd_event ); - - // without this line, the ESC key does not work - SetFocus(); } @@ -257,17 +245,14 @@ void DIALOG_PLOT::OnQuit( wxCommandEvent& event ) void DIALOG_PLOT::OnClose( wxCloseEvent& event ) { - prevPosition = GetPosition(); - prevSize = GetSize(); applyPlotSettings(); - EndModal( 0 ); } void DIALOG_PLOT::CreateDrillFile( wxCommandEvent& event ) { - ( (PCB_EDIT_FRAME*) m_Parent )->InstallDrillFrame( event ); + ( (PCB_EDIT_FRAME*) m_parent )->InstallDrillFrame( event ); } @@ -307,7 +292,7 @@ void DIALOG_PLOT::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) wxYES_NO | wxICON_QUESTION | wxYES_DEFAULT ); if( dialog.ShowModal() == wxID_YES ) { - wxString boardFilePath = ( (wxFileName) m_Parent->GetScreen()->GetFileName()).GetPath(); + wxString boardFilePath = ( (wxFileName) m_parent->GetScreen()->GetFileName()).GetPath(); if( !dirName.MakeRelativeTo( boardFilePath ) ) wxMessageBox( _( "Cannot make path relative (target volume different from board file volume)!" ), @@ -525,7 +510,7 @@ void DIALOG_PLOT::applyPlotSettings() m_messagesBox->AppendText( msg ); } - m_Config->Write( CONFIG_XFINESCALE_ADJ, m_XScaleAdjust ); + m_config->Write( CONFIG_XFINESCALE_ADJ, m_XScaleAdjust ); // Y scale msg = m_fineAdjustYscaleOpt->GetValue(); @@ -539,7 +524,7 @@ void DIALOG_PLOT::applyPlotSettings() m_messagesBox->AppendText( msg ); } - m_Config->Write( CONFIG_YFINESCALE_ADJ, m_YScaleAdjust ); + m_config->Write( CONFIG_YFINESCALE_ADJ, m_YScaleAdjust ); // PS Width correction msg = m_PSFineAdjustWidthOpt->GetValue(); @@ -558,7 +543,7 @@ void DIALOG_PLOT::applyPlotSettings() m_messagesBox->AppendText( msg ); } - m_Config->Write( CONFIG_PS_FINEWIDTH_ADJ, m_PSWidthAdjust ); + m_config->Write( CONFIG_PS_FINEWIDTH_ADJ, m_PSWidthAdjust ); tempOptions.SetUseGerberExtensions( m_useGerberExtensions->GetValue() ); @@ -583,10 +568,11 @@ void DIALOG_PLOT::applyPlotSettings() dirStr.Replace( wxT( "\\" ), wxT( "/" ) ); tempOptions.SetOutputDirectory( dirStr ); - if( g_PcbPlotOptions != tempOptions ) + if( m_plotOpts != tempOptions ) { - g_PcbPlotOptions = tempOptions; - m_Parent->OnModify(); + m_parent->SetPlotSettings( tempOptions ); + m_plotOpts = tempOptions; + m_parent->OnModify(); } } @@ -597,13 +583,11 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) wxFileName fn; wxString ext; - BOARD* board = m_Parent->GetBoard(); - applyPlotSettings(); // Create output directory if it does not exist - wxFileName outputDir = wxFileName::DirName( g_PcbPlotOptions.GetOutputDirectory() ); - wxString boardFilePath = ( (wxFileName) m_Parent->GetScreen()->GetFileName()).GetPath(); + wxFileName outputDir = wxFileName::DirName( m_plotOpts.GetOutputDirectory() ); + wxString boardFilePath = ( (wxFileName) m_parent->GetScreen()->GetFileName()).GetPath(); if( !outputDir.MakeAbsolute( boardFilePath ) ) { @@ -631,28 +615,28 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) } } - g_PcbPlotOptions.m_AutoScale = false; - g_PcbPlotOptions.m_PlotScale = 1; + m_plotOpts.m_AutoScale = false; + m_plotOpts.m_PlotScale = 1; - switch( g_PcbPlotOptions.GetScaleSelection() ) + switch( m_plotOpts.GetScaleSelection() ) { default: break; case 0: - g_PcbPlotOptions.m_AutoScale = true; + m_plotOpts.m_AutoScale = true; break; case 2: - g_PcbPlotOptions.m_PlotScale = 1.5; + m_plotOpts.m_PlotScale = 1.5; break; case 3: - g_PcbPlotOptions.m_PlotScale = 2; + m_plotOpts.m_PlotScale = 2; break; case 4: - g_PcbPlotOptions.m_PlotScale = 3; + m_plotOpts.m_PlotScale = 3; break; } @@ -662,22 +646,22 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) * settings resulting in a divide by zero fault. */ if( m_fineAdjustXscaleOpt->IsEnabled() && m_XScaleAdjust != 0.0 ) - g_PcbPlotOptions.m_FineScaleAdjustX = m_XScaleAdjust; + m_plotOpts.m_FineScaleAdjustX = m_XScaleAdjust; if( m_fineAdjustYscaleOpt->IsEnabled() && m_YScaleAdjust != 0.0 ) - g_PcbPlotOptions.m_FineScaleAdjustY = m_YScaleAdjust; + m_plotOpts.m_FineScaleAdjustY = m_YScaleAdjust; if( m_PSFineAdjustWidthOpt->IsEnabled() ) - g_PcbPlotOptions.m_FineWidthAdjust = m_PSWidthAdjust; + m_plotOpts.m_FineWidthAdjust = m_PSWidthAdjust; - switch( g_PcbPlotOptions.GetPlotFormat() ) + switch( m_plotOpts.GetPlotFormat() ) { case PLOT_FORMAT_POST: ext = wxT( "ps" ); break; case PLOT_FORMAT_GERBER: - g_PcbPlotOptions.m_PlotScale = 1.0; // No scale option allowed in gerber format + m_plotOpts.m_PlotScale = 1.0; // No scale option allowed in gerber format ext = wxT( "pho" ); break; @@ -686,39 +670,41 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) break; case PLOT_FORMAT_DXF: - g_PcbPlotOptions.m_PlotScale = 1.0; + m_plotOpts.m_PlotScale = 1.0; ext = wxT( "dxf" ); break; } // Test for a reasonable scale value - if( g_PcbPlotOptions.m_PlotScale < MIN_SCALE ) + if( m_plotOpts.m_PlotScale < MIN_SCALE ) DisplayInfoMessage( this, _( "Warning: Scale option set to a very small value" ) ); - if( g_PcbPlotOptions.m_PlotScale > MAX_SCALE ) + if( m_plotOpts.m_PlotScale > MAX_SCALE ) DisplayInfoMessage( this, _( "Warning: Scale option set to a very large value" ) ); + m_parent->SetPlotSettings( m_plotOpts ); + long layerMask = 1; for( layer = 0; layer < NB_LAYERS; layer++, layerMask <<= 1 ) { bool success = false; - if( g_PcbPlotOptions.GetLayerSelection() & layerMask ) + if( m_plotOpts.GetLayerSelection() & layerMask ) { - fn = m_Parent->GetScreen()->GetFileName(); + fn = m_parent->GetScreen()->GetFileName(); fn.SetPath( outputDir.GetPath() ); // Create file name. - wxString layername = board->GetLayerName( layer ); + wxString layername = m_board->GetLayerName( layer ); layername.Trim( true ); layername.Trim( false ); // remove leading and trailing spaces if any fn.SetName( fn.GetName() + wxT( "-" ) + layername ); // Use Gerber Extensions based on layer number // (See http://en.wikipedia.org/wiki/Gerber_File) - if( ( g_PcbPlotOptions.GetPlotFormat() == PLOT_FORMAT_GERBER ) + if( ( m_plotOpts.GetPlotFormat() == PLOT_FORMAT_GERBER ) && m_useGerberExtensions->GetValue() ) { switch( layer ) @@ -799,28 +785,28 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) fn.SetExt( ext ); } - switch( g_PcbPlotOptions.GetPlotFormat() ) + switch( m_plotOpts.GetPlotFormat() ) { case PLOT_FORMAT_POST: - success = m_Parent->ExportToPostScriptFile( fn.GetFullPath(), layer, - g_PcbPlotOptions.GetPsA4Output(), - g_PcbPlotOptions.m_PlotMode ); + success = m_parent->ExportToPostScriptFile( fn.GetFullPath(), layer, + m_plotOpts.GetPsA4Output(), + m_plotOpts.m_PlotMode ); break; case PLOT_FORMAT_GERBER: - success = m_Parent->ExportToGerberFile( fn.GetFullPath(), layer, - g_PcbPlotOptions.GetUseAuxOrigin(), - g_PcbPlotOptions.m_PlotMode ); + success = m_parent->ExportToGerberFile( fn.GetFullPath(), layer, + m_plotOpts.GetUseAuxOrigin(), + m_plotOpts.m_PlotMode ); break; case PLOT_FORMAT_HPGL: - success = m_Parent->ExportToHpglFile( fn.GetFullPath(), layer, - g_PcbPlotOptions.m_PlotMode ); + success = m_parent->ExportToHpglFile( fn.GetFullPath(), layer, + m_plotOpts.m_PlotMode ); break; case PLOT_FORMAT_DXF: - success = m_Parent->ExportToDxfFile( fn.GetFullPath(), layer, - g_PcbPlotOptions.m_PlotMode ); + success = m_parent->ExportToDxfFile( fn.GetFullPath(), layer, + m_plotOpts.m_PlotMode ); break; } @@ -839,7 +825,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) // If no layer selected, we have nothing plotted. // Prompt user if it happens because he could think there is a bug in Pcbnew. - if( !g_PcbPlotOptions.GetLayerSelection() ) + if( !m_plotOpts.GetLayerSelection() ) DisplayError( this, _( "No layer selected" ) ); } diff --git a/pcbnew/pcbplot.h b/pcbnew/pcbplot.h index cc20900f1f..255137c1a5 100644 --- a/pcbnew/pcbplot.h +++ b/pcbnew/pcbplot.h @@ -2,10 +2,10 @@ * @file pcbnew/pcbplot.h */ -#ifndef PCBPLOT_H -#define PCBPLOT_H +#ifndef PCBPLOT_H_ +#define PCBPLOT_H_ -#include "pcb_plot_params.h" +#include class PLOTTER; @@ -29,36 +29,34 @@ class ZONE_CONTAINER; // Conversion unit constants. // Convert pcb dimension of 0.1 mil to PS units of inches. -#define SCALE_PS .0001 +#define SCALE_PS .0001 + // Convert dimension 0.1 mil -> HPGL units: -#define SCALE_HPGL 0.102041 +#define SCALE_HPGL 0.102041 // Small drill marks diameter value (in internal value = 1/10000 inch) #define SMALL_DRILL 150 -void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int masque_layer, +void PlotTextePcb( PLOTTER* plotter, const PCB_PLOT_PARAMS& aPlotOpts, TEXTE_PCB* pt_texte, int masque_layer, EDA_DRAW_MODE_T trace_mode ); -/* Plat PCB text type, ie other than text on modules - * prepare the plot settings of text */ -void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* PtSegm, int masque_layer, +void PlotDrawSegment( PLOTTER* plotter, const PCB_PLOT_PARAMS& aPlotOpts, DRAWSEGMENT* PtSegm, int masque_layer, EDA_DRAW_MODE_T trace_mode ); -void PlotDimension( PLOTTER* plotter, DIMENSION* Dimension, int masque_layer, +void PlotDimension( PLOTTER* plotter, const PCB_PLOT_PARAMS& aPlotOpts, DIMENSION* Dimension, int masque_layer, EDA_DRAW_MODE_T trace_mode ); -void PlotPcbTarget( PLOTTER* plotter, PCB_TARGET* PtMire, int masque_layer, +void PlotPcbTarget( PLOTTER* plotter, const PCB_PLOT_PARAMS& aPlotOpts, PCB_TARGET* PtMire, int masque_layer, EDA_DRAW_MODE_T trace_mode ); -void Plot_1_EdgeModule( PLOTTER* plotter, EDGE_MODULE* PtEdge, +void Plot_1_EdgeModule( PLOTTER* plotter, const PCB_PLOT_PARAMS& aPlotOpts, EDGE_MODULE* PtEdge, EDA_DRAW_MODE_T trace_mode, int masque_layer ); -void PlotFilledAreas( PLOTTER* plotter, ZONE_CONTAINER* aZone, +void PlotFilledAreas( PLOTTER* plotter, const PCB_PLOT_PARAMS& aPlotOpts, ZONE_CONTAINER* aZone, EDA_DRAW_MODE_T trace_mode ); // PLOTGERB.CPP void SelectD_CODE_For_LineDraw( PLOTTER* plotter, int aSize ); - -#endif // #define PCBPLOT_H +#endif // PCBPLOT_H_ diff --git a/pcbnew/plot_rtn.cpp b/pcbnew/plot_rtn.cpp index 70197e6d06..a6e2e610ad 100644 --- a/pcbnew/plot_rtn.cpp +++ b/pcbnew/plot_rtn.cpp @@ -27,19 +27,21 @@ #include #include -static void Plot_Edges_Modules( PLOTTER* plotter, BOARD* pcb, int aLayerMask, - EDA_DRAW_MODE_T trace_mode ); -static void PlotTextModule( PLOTTER* plotter, TEXTE_MODULE* pt_texte, - EDA_DRAW_MODE_T trace_mode ); +static void Plot_Edges_Modules( PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpts, + BOARD* pcb, int aLayerMask, EDA_DRAW_MODE_T trace_mode ); + +static void PlotTextModule( PLOTTER* aPlotter, TEXTE_MODULE* pt_texte, EDA_DRAW_MODE_T trace_mode ); /* Creates the plot for silkscreen layers */ -void PCB_BASE_FRAME::PlotSilkScreen( PLOTTER* plotter, int aLayerMask, EDA_DRAW_MODE_T trace_mode ) +void PCB_BASE_FRAME::PlotSilkScreen( PLOTTER* aPlotter, int aLayerMask, EDA_DRAW_MODE_T trace_mode ) { bool trace_val, trace_ref; TEXTE_MODULE* pt_texte; + const PCB_PLOT_PARAMS& plot_opts = GetPlotSettings(); + // Plot edge layer and graphic items for( EDA_ITEM* item = m_Pcb->m_Drawings; item; item = item->Next() ) @@ -47,19 +49,19 @@ void PCB_BASE_FRAME::PlotSilkScreen( PLOTTER* plotter, int aLayerMask, EDA_DRAW_ switch( item->Type() ) { case PCB_LINE_T: - PlotDrawSegment( plotter, (DRAWSEGMENT*) item, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, plot_opts, (DRAWSEGMENT*) item, aLayerMask, trace_mode ); break; case PCB_TEXT_T: - PlotTextePcb( plotter, (TEXTE_PCB*) item, aLayerMask, trace_mode ); + PlotTextePcb( aPlotter, plot_opts, (TEXTE_PCB*) item, aLayerMask, trace_mode ); break; case PCB_DIMENSION_T: - PlotDimension( plotter, (DIMENSION*) item, aLayerMask, trace_mode ); + PlotDimension( aPlotter, plot_opts, (DIMENSION*) item, aLayerMask, trace_mode ); break; case PCB_TARGET_T: - PlotPcbTarget( plotter, (PCB_TARGET*) item, aLayerMask, trace_mode ); + PlotPcbTarget( aPlotter, plot_opts, (PCB_TARGET*) item, aLayerMask, trace_mode ); break; case PCB_MARKER_T: @@ -72,13 +74,13 @@ void PCB_BASE_FRAME::PlotSilkScreen( PLOTTER* plotter, int aLayerMask, EDA_DRAW_ } // Plot footprint outlines : - Plot_Edges_Modules( plotter, m_Pcb, aLayerMask, trace_mode ); + Plot_Edges_Modules( aPlotter, plot_opts, m_Pcb, aLayerMask, trace_mode ); // Plot pads (creates pads outlines, for pads on silkscreen layers) int layersmask_plotpads = aLayerMask; // Calculate the mask layers of allowed layers for pads - if( !g_PcbPlotOptions.m_PlotPadsOnSilkLayer ) // Do not plot pads on silk screen layers + if( !plot_opts.m_PlotPadsOnSilkLayer ) // Do not plot pads on silk screen layers layersmask_plotpads &= ~(SILKSCREEN_LAYER_BACK | SILKSCREEN_LAYER_FRONT ); if( layersmask_plotpads ) @@ -96,24 +98,24 @@ void PCB_BASE_FRAME::PlotSilkScreen( PLOTTER* plotter, int aLayerMask, EDA_DRAW_ switch( pad->GetShape() ) { case PAD_CIRCLE: - plotter->flash_pad_circle( shape_pos, pad->GetSize().x, LINE ); + aPlotter->flash_pad_circle( shape_pos, pad->GetSize().x, LINE ); break; case PAD_OVAL: - plotter->flash_pad_oval( shape_pos, pad->GetSize(), pad->GetOrientation(), LINE ); + aPlotter->flash_pad_oval( shape_pos, pad->GetSize(), pad->GetOrientation(), LINE ); break; case PAD_TRAPEZOID: { wxPoint coord[4]; pad->BuildPadPolygon( coord, wxSize(0,0), 0 ); - plotter->flash_pad_trapez( shape_pos, coord, pad->GetOrientation(), LINE ); + aPlotter->flash_pad_trapez( shape_pos, coord, pad->GetOrientation(), LINE ); } break; case PAD_RECT: default: - plotter->flash_pad_rect( shape_pos, pad->GetSize(), pad->GetOrientation(), LINE ); + aPlotter->flash_pad_rect( shape_pos, pad->GetSize(), pad->GetOrientation(), LINE ); break; } } @@ -121,13 +123,13 @@ void PCB_BASE_FRAME::PlotSilkScreen( PLOTTER* plotter, int aLayerMask, EDA_DRAW_ } // Plot footprints fields (ref, value ...) - for( MODULE* Module = m_Pcb->m_Modules; Module; Module = Module->Next() ) + for( MODULE* module = m_Pcb->m_Modules; module; module = module->Next() ) { // see if we want to plot VALUE and REF fields - trace_val = g_PcbPlotOptions.m_PlotValue; - trace_ref = g_PcbPlotOptions.m_PlotReference; + trace_val = plot_opts.m_PlotValue; + trace_ref = plot_opts.m_PlotReference; - TEXTE_MODULE* text = Module->m_Reference; + TEXTE_MODULE* text = module->m_Reference; unsigned textLayer = text->GetLayer(); if( textLayer >= 32 ) @@ -136,7 +138,7 @@ void PCB_BASE_FRAME::PlotSilkScreen( PLOTTER* plotter, int aLayerMask, EDA_DRAW_ errMsg.Printf( _( "Your BOARD has a bad layer number of %u for \ module\n %s's \"reference\" text." ), - textLayer, GetChars( Module->GetReference() ) ); + textLayer, GetChars( module->GetReference() ) ); DisplayError( this, errMsg ); return; } @@ -144,10 +146,10 @@ module\n %s's \"reference\" text." ), if( ( ( 1 << textLayer ) & aLayerMask ) == 0 ) trace_ref = false; - if( !text->IsVisible() && !g_PcbPlotOptions.m_PlotInvisibleTexts ) + if( !text->IsVisible() && !plot_opts.m_PlotInvisibleTexts ) trace_ref = false; - text = Module->m_Value; + text = module->m_Value; textLayer = text->GetLayer(); if( textLayer > 32 ) @@ -156,7 +158,7 @@ module\n %s's \"reference\" text." ), errMsg.Printf( _( "Your BOARD has a bad layer number of %u for \ module\n %s's \"value\" text." ), - textLayer, GetChars( Module->GetReference() ) ); + textLayer, GetChars( module->GetReference() ) ); DisplayError( this, errMsg ); return; } @@ -164,27 +166,27 @@ module\n %s's \"value\" text." ), if( ( (1 << textLayer) & aLayerMask ) == 0 ) trace_val = false; - if( !text->IsVisible() && !g_PcbPlotOptions.m_PlotInvisibleTexts ) + if( !text->IsVisible() && !plot_opts.m_PlotInvisibleTexts ) trace_val = false; // Plot text fields, if allowed if( trace_ref ) - PlotTextModule( plotter, Module->m_Reference, trace_mode ); + PlotTextModule( aPlotter, module->m_Reference, trace_mode ); if( trace_val ) - PlotTextModule( plotter, Module->m_Value, trace_mode ); + PlotTextModule( aPlotter, module->m_Value, trace_mode ); - for( pt_texte = (TEXTE_MODULE*) Module->m_Drawings.GetFirst(); + for( pt_texte = (TEXTE_MODULE*) module->m_Drawings.GetFirst(); pt_texte != NULL; pt_texte = pt_texte->Next() ) { if( pt_texte->Type() != PCB_MODULE_TEXT_T ) continue; - if( !g_PcbPlotOptions.m_PlotTextOther ) + if( !plot_opts.m_PlotTextOther ) continue; - if( !pt_texte->IsVisible() && !g_PcbPlotOptions.m_PlotInvisibleTexts ) + if( !pt_texte->IsVisible() && !plot_opts.m_PlotInvisibleTexts ) continue; textLayer = pt_texte->GetLayer(); @@ -195,7 +197,7 @@ module\n %s's \"value\" text." ), errMsg.Printf( _( "Your BOARD has a bad layer number of %u \ for module\n %s's \"module text\" text of %s." ), - textLayer, GetChars( Module->GetReference() ), + textLayer, GetChars( module->GetReference() ), GetChars( pt_texte->m_Text ) ); DisplayError( this, errMsg ); return; @@ -204,7 +206,7 @@ for module\n %s's \"module text\" text of %s." ), if( !( ( 1 << textLayer ) & aLayerMask ) ) continue; - PlotTextModule( plotter, pt_texte, trace_mode ); + PlotTextModule( aPlotter, pt_texte, trace_mode ); } } @@ -216,7 +218,7 @@ for module\n %s's \"module text\" text of %s." ), if( ( ( 1 << edge_zone->GetLayer() ) & aLayerMask ) == 0 ) continue; - PlotFilledAreas( plotter, edge_zone, trace_mode ); + PlotFilledAreas( aPlotter, plot_opts, edge_zone, trace_mode ); } // Plot segments used to fill zone areas (outdated, but here for old boards @@ -226,12 +228,12 @@ for module\n %s's \"module text\" text of %s." ), if( ( ( 1 << seg->GetLayer() ) & aLayerMask ) == 0 ) continue; - plotter->thick_segment( seg->m_Start, seg->m_End, seg->m_Width, trace_mode ); + aPlotter->thick_segment( seg->m_Start, seg->m_End, seg->m_Width, trace_mode ); } } -static void PlotTextModule( PLOTTER* plotter, TEXTE_MODULE* pt_texte, EDA_DRAW_MODE_T trace_mode ) +static void PlotTextModule( PLOTTER* aPlotter, TEXTE_MODULE* pt_texte, EDA_DRAW_MODE_T trace_mode ) { wxSize size; wxPoint pos; @@ -257,7 +259,7 @@ static void PlotTextModule( PLOTTER* plotter, TEXTE_MODULE* pt_texte, EDA_DRAW_M // So we set bold flag to true bool allow_bold = pt_texte->m_Bold || thickness; - plotter->text( pos, BLACK, + aPlotter->text( pos, BLACK, pt_texte->m_Text, orient, size, pt_texte->m_HJustify, pt_texte->m_VJustify, @@ -265,7 +267,7 @@ static void PlotTextModule( PLOTTER* plotter, TEXTE_MODULE* pt_texte, EDA_DRAW_M } -void PlotDimension( PLOTTER* plotter, DIMENSION* aDim, int aLayerMask, +void PlotDimension( PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpts, DIMENSION* aDim, int aLayerMask, EDA_DRAW_MODE_T trace_mode ) { if( (GetLayerMask( aDim->GetLayer() ) & aLayerMask) == 0 ) @@ -276,39 +278,39 @@ void PlotDimension( PLOTTER* plotter, DIMENSION* aDim, int aLayerMask, draw.SetWidth( (trace_mode==LINE) ? -1 : aDim->GetWidth() ); draw.SetLayer( aDim->GetLayer() ); - PlotTextePcb( plotter, &aDim->m_Text, aLayerMask, trace_mode ); + PlotTextePcb( aPlotter, aPlotOpts, &aDim->m_Text, aLayerMask, trace_mode ); draw.SetStart( wxPoint( aDim->m_crossBarOx, aDim->m_crossBarOy )); draw.SetEnd( wxPoint( aDim->m_crossBarFx, aDim->m_crossBarFy )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); draw.SetStart( wxPoint( aDim->m_featureLineGOx, aDim->m_featureLineGOy )); draw.SetEnd( wxPoint( aDim->m_featureLineGFx, aDim->m_featureLineGFy )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); draw.SetStart( wxPoint( aDim->m_featureLineDOx, aDim->m_featureLineDOy )); draw.SetEnd( wxPoint( aDim->m_featureLineDFx, aDim->m_featureLineDFy )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); draw.SetStart( wxPoint( aDim->m_arrowD1Ox, aDim->m_arrowD1Oy )); draw.SetEnd( wxPoint( aDim->m_arrowD1Fx, aDim->m_arrowD1Fy )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); draw.SetStart( wxPoint( aDim->m_arrowD2Ox, aDim->m_arrowD2Oy )); draw.SetEnd( wxPoint( aDim->m_arrowD2Fx, aDim->m_arrowD2Fy )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); draw.SetStart( wxPoint( aDim->m_arrowG1Ox, aDim->m_arrowG1Oy )); draw.SetEnd( wxPoint( aDim->m_arrowG1Fx, aDim->m_arrowG1Fy )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); draw.SetStart( wxPoint( aDim->m_arrowG2Ox, aDim->m_arrowG2Oy )); draw.SetEnd( wxPoint( aDim->m_arrowG2Fx, aDim->m_arrowG2Fy )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); } -void PlotPcbTarget( PLOTTER* plotter, PCB_TARGET* aMire, int aLayerMask, +void PlotPcbTarget( PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpts, PCB_TARGET* aMire, int aLayerMask, EDA_DRAW_MODE_T trace_mode ) { int dx1, dx2, dy1, dy2, radius; @@ -324,7 +326,7 @@ void PlotPcbTarget( PLOTTER* plotter, PCB_TARGET* aMire, int aLayerMask, draw.SetStart( aMire->GetPosition() ); draw.SetEnd( wxPoint( draw.GetStart().x + ( aMire->GetSize() / 4 ), draw.GetStart().y )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); draw.SetShape( S_SEGMENT ); @@ -345,18 +347,18 @@ void PlotPcbTarget( PLOTTER* plotter, PCB_TARGET* aMire, int aLayerMask, draw.SetStart( wxPoint( mirePos.x - dx1, mirePos.y - dy1 )); draw.SetEnd( wxPoint( mirePos.x + dx1, mirePos.y + dy1 )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); draw.SetStart( wxPoint( mirePos.x - dx2, mirePos.y - dy2 )); draw.SetEnd( wxPoint( mirePos.x + dx2, mirePos.y + dy2 )); - PlotDrawSegment( plotter, &draw, aLayerMask, trace_mode ); + PlotDrawSegment( aPlotter, aPlotOpts, &draw, aLayerMask, trace_mode ); } // Plot footprints graphic items (outlines) -void Plot_Edges_Modules( PLOTTER* plotter, BOARD* pcb, int aLayerMask, EDA_DRAW_MODE_T trace_mode ) +void Plot_Edges_Modules( PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpts, BOARD* aPcb, int aLayerMask, EDA_DRAW_MODE_T trace_mode ) { - for( MODULE* module = pcb->m_Modules; module; module = module->Next() ) + for( MODULE* module = aPcb->m_Modules; module; module = module->Next() ) { for( EDGE_MODULE* edge = (EDGE_MODULE*) module->m_Drawings.GetFirst(); edge; @@ -368,14 +370,15 @@ void Plot_Edges_Modules( PLOTTER* plotter, BOARD* pcb, int aLayerMask, EDA_DRAW_ if( ( GetLayerMask( edge->GetLayer() ) & aLayerMask ) == 0 ) continue; - Plot_1_EdgeModule( plotter, edge, trace_mode, aLayerMask ); + Plot_1_EdgeModule( aPlotter, aPlotOpts, edge, trace_mode, aLayerMask ); } } } //* Plot a graphic item (outline) relative to a footprint -void Plot_1_EdgeModule( PLOTTER* plotter, EDGE_MODULE* aEdge, EDA_DRAW_MODE_T trace_mode, int masque_layer ) +void Plot_1_EdgeModule( PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpts, + EDGE_MODULE* aEdge, EDA_DRAW_MODE_T trace_mode, int masque_layer ) { int type_trace; // Type of item to plot. int thickness; // Segment thickness. @@ -393,13 +396,13 @@ void Plot_1_EdgeModule( PLOTTER* plotter, EDGE_MODULE* aEdge, EDA_DRAW_MODE_T tr switch( type_trace ) { case S_SEGMENT: - plotter->thick_segment( pos, end, thickness, trace_mode ); + aPlotter->thick_segment( pos, end, thickness, trace_mode ); break; case S_CIRCLE: radius = (int) hypot( (double) ( end.x - pos.x ), (double) ( end.y - pos.y ) ); - plotter->thick_circle( pos, radius * 2, thickness, trace_mode ); + aPlotter->thick_circle( pos, radius * 2, thickness, trace_mode ); break; case S_ARC: @@ -411,16 +414,16 @@ void Plot_1_EdgeModule( PLOTTER* plotter, EDGE_MODULE* aEdge, EDA_DRAW_MODE_T tr double endAngle = startAngle + aEdge->GetAngle(); - if ( ( g_PcbPlotOptions.GetPlotFormat() == PLOT_FORMAT_DXF ) && + if ( ( aPlotOpts.GetPlotFormat() == PLOT_FORMAT_DXF ) && ( masque_layer & ( SILKSCREEN_LAYER_BACK | DRAW_LAYER | COMMENT_LAYER ) ) ) - plotter->thick_arc( pos, + aPlotter->thick_arc( pos, -startAngle, -endAngle, radius, thickness, trace_mode ); else - plotter->thick_arc( pos, + aPlotter->thick_arc( pos, -endAngle, -startAngle, radius, @@ -457,7 +460,7 @@ void Plot_1_EdgeModule( PLOTTER* plotter, EDGE_MODULE* aEdge, EDA_DRAW_MODE_T tr cornerList.push_back( corner ); } - plotter->PlotPoly( cornerList, FILLED_SHAPE, thickness ); + aPlotter->PlotPoly( cornerList, FILLED_SHAPE, thickness ); } break; } @@ -465,7 +468,7 @@ void Plot_1_EdgeModule( PLOTTER* plotter, EDGE_MODULE* aEdge, EDA_DRAW_MODE_T tr // Plot a PCB Text, i;e. a text found on a copper or technical layer -void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int aLayerMask, +void PlotTextePcb( PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpts, TEXTE_PCB* pt_texte, int aLayerMask, EDA_DRAW_MODE_T trace_mode ) { int orient, thickness; @@ -504,7 +507,7 @@ void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int aLayerMask, for( unsigned i = 0; i < list->Count(); i++ ) { wxString txt = list->Item( i ); - plotter->text( pos, BLACK, + aPlotter->text( pos, BLACK, txt, orient, size, pt_texte->m_HJustify, pt_texte->m_VJustify, @@ -512,11 +515,11 @@ void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int aLayerMask, pos += offset; } - delete (list); + delete list; } else { - plotter->text( pos, BLACK, + aPlotter->text( pos, BLACK, pt_texte->m_Text, orient, size, pt_texte->m_HJustify, pt_texte->m_VJustify, @@ -527,7 +530,7 @@ void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int aLayerMask, /* Plot areas (given by .m_FilledPolysList member) in a zone */ -void PlotFilledAreas( PLOTTER* plotter, ZONE_CONTAINER* aZone, EDA_DRAW_MODE_T trace_mode ) +void PlotFilledAreas( PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpts, ZONE_CONTAINER* aZone, EDA_DRAW_MODE_T trace_mode ) { unsigned imax = aZone->m_FilledPolysList.size(); @@ -563,7 +566,7 @@ void PlotFilledAreas( PLOTTER* plotter, ZONE_CONTAINER* aZone, EDA_DRAW_MODE_T t // Plot the current filled area polygon if( aZone->m_FillMode == 0 ) // We are using solid polygons { // (if != 0: using segments ) - plotter->PlotPoly( cornerList, FILLED_SHAPE ); + aPlotter->PlotPoly( cornerList, FILLED_SHAPE ); } else // We are using areas filled by { // segments: plot them ) @@ -571,7 +574,7 @@ void PlotFilledAreas( PLOTTER* plotter, ZONE_CONTAINER* aZone, EDA_DRAW_MODE_T t { wxPoint start = aZone->m_FillSegmList[iseg].m_Start; wxPoint end = aZone->m_FillSegmList[iseg].m_End; - plotter->thick_segment( start, + aPlotter->thick_segment( start, end, aZone->m_ZoneMinThickness, trace_mode ); @@ -580,19 +583,19 @@ void PlotFilledAreas( PLOTTER* plotter, ZONE_CONTAINER* aZone, EDA_DRAW_MODE_T t // Plot the current filled area outline if( aZone->m_ZoneMinThickness > 0 ) - plotter->PlotPoly( cornerList, NO_FILL, aZone->m_ZoneMinThickness ); + aPlotter->PlotPoly( cornerList, NO_FILL, aZone->m_ZoneMinThickness ); } else { if( aZone->m_ZoneMinThickness > 0 ) { for( unsigned jj = 1; jjthick_segment( cornerList[jj -1], cornerList[jj], + aPlotter->thick_segment( cornerList[jj -1], cornerList[jj], ( trace_mode == LINE ) ? -1 : aZone->m_ZoneMinThickness, trace_mode ); } - plotter->set_current_line_width( -1 ); + aPlotter->set_current_line_width( -1 ); } cornerList.clear(); @@ -603,7 +606,7 @@ void PlotFilledAreas( PLOTTER* plotter, ZONE_CONTAINER* aZone, EDA_DRAW_MODE_T t /* Plot items type DRAWSEGMENT on layers allowed by aLayerMask */ -void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* aSeg, int aLayerMask, +void PlotDrawSegment( PLOTTER* aPlotter, const PCB_PLOT_PARAMS& aPlotOpts, DRAWSEGMENT* aSeg, int aLayerMask, EDA_DRAW_MODE_T trace_mode ) { int thickness; @@ -613,21 +616,21 @@ void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* aSeg, int aLayerMask, return; if( trace_mode == LINE ) - thickness = g_PcbPlotOptions.m_PlotLineWidth; + thickness = aPlotOpts.m_PlotLineWidth; else thickness = aSeg->GetWidth(); wxPoint start( aSeg->GetStart() ); wxPoint end( aSeg->GetEnd() ); - plotter->set_current_line_width( thickness ); + aPlotter->set_current_line_width( thickness ); switch( aSeg->GetShape() ) { case S_CIRCLE: radius = (int) hypot( (double) ( end.x - start.x ), (double) ( end.y - start.y ) ); - plotter->thick_circle( start, radius * 2, thickness, trace_mode ); + aPlotter->thick_circle( start, radius * 2, thickness, trace_mode ); break; case S_ARC: @@ -635,7 +638,7 @@ void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* aSeg, int aLayerMask, (double) ( end.y - start.y ) ); StAngle = ArcTangente( end.y - start.y, end.x - start.x ); EndAngle = StAngle + aSeg->GetAngle(); - plotter->thick_arc( start, -EndAngle, -StAngle, radius, thickness, trace_mode ); + aPlotter->thick_arc( start, -EndAngle, -StAngle, radius, thickness, trace_mode ); break; case S_CURVE: @@ -643,7 +646,7 @@ void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* aSeg, int aLayerMask, const std::vector& bezierPoints = aSeg->GetBezierPoints(); for( unsigned i = 1; i < bezierPoints.size(); i++ ) - plotter->thick_segment( bezierPoints[i - 1], + aPlotter->thick_segment( bezierPoints[i - 1], bezierPoints[i], thickness, trace_mode ); @@ -651,18 +654,20 @@ void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* aSeg, int aLayerMask, break; default: - plotter->thick_segment( start, end, thickness, trace_mode ); + aPlotter->thick_segment( start, end, thickness, trace_mode ); } } -void PCB_BASE_FRAME::Plot_Layer( PLOTTER* plotter, int Layer, EDA_DRAW_MODE_T trace_mode ) +void PCB_BASE_FRAME::Plot_Layer( PLOTTER* aPlotter, int Layer, EDA_DRAW_MODE_T trace_mode ) { + const PCB_PLOT_PARAMS& plot_opts = GetPlotSettings(); + // Specify that the contents of the "Edges Pcb" layer are to be plotted // in addition to the contents of the currently specified layer. int layer_mask = GetLayerMask( Layer ); - if( !g_PcbPlotOptions.m_ExcludeEdgeLayer ) + if( !plot_opts.m_ExcludeEdgeLayer ) layer_mask |= EDGE_LAYER; switch( Layer ) @@ -683,15 +688,15 @@ void PCB_BASE_FRAME::Plot_Layer( PLOTTER* plotter, int Layer, EDA_DRAW_MODE_T tr case LAYER_N_14: case LAYER_N_15: case LAST_COPPER_LAYER: - Plot_Standard_Layer( plotter, layer_mask, true, trace_mode, - g_PcbPlotOptions.m_SkipNPTH_Pads ); + Plot_Standard_Layer( aPlotter, layer_mask, true, trace_mode, + plot_opts.m_SkipNPTH_Pads ); // Adding drill marks, if required and if the plotter is able to plot them: - if( g_PcbPlotOptions.m_DrillShapeOpt != PCB_PLOT_PARAMS::NO_DRILL_SHAPE ) + if( plot_opts.m_DrillShapeOpt != PCB_PLOT_PARAMS::NO_DRILL_SHAPE ) { - if( plotter->GetPlotterType() == PLOT_FORMAT_POST ) - PlotDrillMark( plotter, trace_mode, - g_PcbPlotOptions.m_DrillShapeOpt == + if( aPlotter->GetPlotterType() == PLOT_FORMAT_POST ) + PlotDrillMark( aPlotter, trace_mode, + plot_opts.m_DrillShapeOpt == PCB_PLOT_PARAMS::SMALL_DRILL_SHAPE ); } @@ -699,22 +704,22 @@ void PCB_BASE_FRAME::Plot_Layer( PLOTTER* plotter, int Layer, EDA_DRAW_MODE_T tr case SOLDERMASK_N_BACK: case SOLDERMASK_N_FRONT: - Plot_Standard_Layer( plotter, layer_mask, - g_PcbPlotOptions.m_PlotViaOnMaskLayer, trace_mode ); + Plot_Standard_Layer( aPlotter, layer_mask, + plot_opts.m_PlotViaOnMaskLayer, trace_mode ); break; case SOLDERPASTE_N_BACK: case SOLDERPASTE_N_FRONT: - Plot_Standard_Layer( plotter, layer_mask, false, trace_mode ); + Plot_Standard_Layer( aPlotter, layer_mask, false, trace_mode ); break; case SILKSCREEN_N_FRONT: case SILKSCREEN_N_BACK: - PlotSilkScreen( plotter, layer_mask, trace_mode ); + PlotSilkScreen( aPlotter, layer_mask, trace_mode ); // Gerber: Subtract soldermask from silkscreen if enabled - if( plotter->GetPlotterType() == PLOT_FORMAT_GERBER - && g_PcbPlotOptions.GetSubtractMaskFromSilk() ) + if( aPlotter->GetPlotterType() == PLOT_FORMAT_GERBER + && plot_opts.GetSubtractMaskFromSilk() ) { if( Layer == SILKSCREEN_N_FRONT ) { @@ -726,16 +731,16 @@ void PCB_BASE_FRAME::Plot_Layer( PLOTTER* plotter, int Layer, EDA_DRAW_MODE_T tr } // Set layer polarity to negative - plotter->SetLayerPolarity( false ); - Plot_Standard_Layer( plotter, layer_mask, - g_PcbPlotOptions.m_PlotViaOnMaskLayer, + aPlotter->SetLayerPolarity( false ); + Plot_Standard_Layer( aPlotter, layer_mask, + plot_opts.m_PlotViaOnMaskLayer, trace_mode ); } break; default: - PlotSilkScreen( plotter, layer_mask, trace_mode ); + PlotSilkScreen( aPlotter, layer_mask, trace_mode ); break; } } @@ -754,25 +759,27 @@ void PCB_BASE_FRAME::Plot_Standard_Layer( PLOTTER* aPlotter, wxSize size; wxString msg; + const PCB_PLOT_PARAMS& plot_opts = GetPlotSettings(); + // Plot pcb draw items. for( BOARD_ITEM* item = m_Pcb->m_Drawings; item; item = item->Next() ) { switch( item->Type() ) { case PCB_LINE_T: - PlotDrawSegment( aPlotter, (DRAWSEGMENT*) item, aLayerMask, aPlotMode ); + PlotDrawSegment( aPlotter, plot_opts, (DRAWSEGMENT*) item, aLayerMask, aPlotMode ); break; case PCB_TEXT_T: - PlotTextePcb( aPlotter, (TEXTE_PCB*) item, aLayerMask, aPlotMode ); + PlotTextePcb( aPlotter, plot_opts, (TEXTE_PCB*) item, aLayerMask, aPlotMode ); break; case PCB_DIMENSION_T: - PlotDimension( aPlotter, (DIMENSION*) item, aLayerMask, aPlotMode ); + PlotDimension( aPlotter, plot_opts, (DIMENSION*) item, aLayerMask, aPlotMode ); break; case PCB_TARGET_T: - PlotPcbTarget( aPlotter, (PCB_TARGET*) item, aLayerMask, aPlotMode ); + PlotPcbTarget( aPlotter, plot_opts, (PCB_TARGET*) item, aLayerMask, aPlotMode ); break; case PCB_MARKER_T: @@ -785,7 +792,7 @@ void PCB_BASE_FRAME::Plot_Standard_Layer( PLOTTER* aPlotter, } // Draw footprint shapes without pads (pads will plotted later) - for( MODULE* module = m_Pcb->m_Modules; module; module = module->Next() ) + for( MODULE* module = m_Pcb->m_Modules; module; module = module->Next() ) { for( BOARD_ITEM* item = module->m_Drawings; item; item = item->Next() ) { @@ -793,7 +800,7 @@ void PCB_BASE_FRAME::Plot_Standard_Layer( PLOTTER* aPlotter, { case PCB_MODULE_EDGE_T: if( aLayerMask & GetLayerMask( item->GetLayer() ) ) - Plot_1_EdgeModule( aPlotter, (EDGE_MODULE*) item, aPlotMode, aLayerMask ); + Plot_1_EdgeModule( aPlotter, plot_opts, (EDGE_MODULE*) item, aPlotMode, aLayerMask ); break; @@ -804,17 +811,17 @@ void PCB_BASE_FRAME::Plot_Standard_Layer( PLOTTER* aPlotter, } // Plot footprint pads - for( MODULE* module = m_Pcb->m_Modules; module; module = module->Next() ) + for( MODULE* module = m_Pcb->m_Modules; module; module = module->Next() ) { - for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() ) + for( D_PAD* pad = module->m_Pads; pad; pad = pad->Next() ) { - wxPoint shape_pos; - if( (pad->GetLayerMask() & aLayerMask) == 0 ) continue; - shape_pos = pad->ReturnShapePos(); + wxPoint shape_pos = pad->ReturnShapePos(); + pos = shape_pos; + wxSize margin; double width_adj = 0; @@ -973,7 +980,7 @@ void PCB_BASE_FRAME::Plot_Standard_Layer( PLOTTER* aPlotter, if( ( ( 1 << edge_zone->GetLayer() ) & aLayerMask ) == 0 ) continue; - PlotFilledAreas( aPlotter, edge_zone, aPlotMode ); + PlotFilledAreas( aPlotter, plot_opts, edge_zone, aPlotMode ); } } @@ -999,6 +1006,8 @@ void PCB_BASE_FRAME::PlotDrillMark( PLOTTER* aPlotter, D_PAD* pad; TRACK* pts; + const PCB_PLOT_PARAMS& plot_opts = GetPlotSettings(); + if( aTraceMode == FILLED ) { aPlotter->set_color( WHITE ); @@ -1012,7 +1021,7 @@ void PCB_BASE_FRAME::PlotDrillMark( PLOTTER* aPlotter, pos = pts->m_Start; // It is quite possible that the real drill value is less then small drill value. - if( g_PcbPlotOptions.m_DrillShapeOpt == PCB_PLOT_PARAMS::SMALL_DRILL_SHAPE ) + if( plot_opts.m_DrillShapeOpt == PCB_PLOT_PARAMS::SMALL_DRILL_SHAPE ) diam.x = diam.y = MIN( SMALL_DRILL, pts->GetDrillValue() ); else diam.x = diam.y = pts->GetDrillValue(); diff --git a/pcbnew/plotdxf.cpp b/pcbnew/plotdxf.cpp index 7b6e4514fd..7e35020a89 100644 --- a/pcbnew/plotdxf.cpp +++ b/pcbnew/plotdxf.cpp @@ -20,6 +20,8 @@ bool PCB_BASE_FRAME::ExportToDxfFile( const wxString& aFullFileName, int aLayer, { LOCALE_IO toggle; + const PCB_PLOT_PARAMS& plot_opts = GetPlotSettings(); + FILE* output_file = wxFopen( aFullFileName, wxT( "wt" ) ); if( output_file == NULL ) @@ -34,7 +36,7 @@ bool PCB_BASE_FRAME::ExportToDxfFile( const wxString& aFullFileName, int aLayer, plotter->set_filename( aFullFileName ); plotter->start_plot( output_file ); - if( g_PcbPlotOptions.m_PlotFrameRef ) + if( plot_opts.m_PlotFrameRef ) PlotWorkSheet( plotter, GetScreen() ); Plot_Layer( plotter, aLayer, aTraceMode ); diff --git a/pcbnew/plotgerb.cpp b/pcbnew/plotgerb.cpp index d0c0747614..3fb3f43866 100644 --- a/pcbnew/plotgerb.cpp +++ b/pcbnew/plotgerb.cpp @@ -27,16 +27,17 @@ bool PCB_BASE_FRAME::ExportToGerberFile( const wxString& aFullFileName, int aLay bool aPlotOriginIsAuxAxis, EDA_DRAW_MODE_T aTraceMode ) { FILE* output_file = wxFopen( aFullFileName, wxT( "wt" ) ); - if( output_file == NULL ) { return false; } + PCB_PLOT_PARAMS plot_opts = GetPlotSettings(); + wxPoint offset; // Calculate scaling from Pcbnew units (in 0.1 mil or 0.0001 inch) to gerber units - double scale = g_PcbPlotOptions.m_PlotScale; + double scale = plot_opts.m_PlotScale; if( aPlotOriginIsAuxAxis ) { @@ -54,7 +55,7 @@ bool PCB_BASE_FRAME::ExportToGerberFile( const wxString& aFullFileName, int aLay // No mirror and scaling for gerbers! plotter->set_viewport( offset, scale, 0 ); - plotter->set_default_line_width( g_PcbPlotOptions.m_PlotLineWidth ); + plotter->set_default_line_width( plot_opts.m_PlotLineWidth ); plotter->set_creator( wxT( "PCBNEW-RS274X" ) ); plotter->set_filename( aFullFileName ); @@ -63,16 +64,21 @@ bool PCB_BASE_FRAME::ExportToGerberFile( const wxString& aFullFileName, int aLay // Skip NPTH pads on copper layers // ( only if hole size == pad size ): if( (aLayer >= LAYER_N_BACK) && (aLayer <= LAYER_N_FRONT) ) - g_PcbPlotOptions.m_SkipNPTH_Pads = true; + plot_opts.m_SkipNPTH_Pads = true; + + SetPlotSettings( plot_opts ); // Sheet refs on gerber CAN be useful... and they're always 1:1 - if( g_PcbPlotOptions.m_PlotFrameRef ) + if( plot_opts.m_PlotFrameRef ) PlotWorkSheet( plotter, GetScreen() ); Plot_Layer( plotter, aLayer, aTraceMode ); + plotter->end_plot(); - g_PcbPlotOptions.m_SkipNPTH_Pads = false; + plot_opts.m_SkipNPTH_Pads = false; + + SetPlotSettings( plot_opts ); } else // error in start_plot( ): failed opening a temporary file { diff --git a/pcbnew/plothpgl.cpp b/pcbnew/plothpgl.cpp index eb1850197b..da1815d98b 100644 --- a/pcbnew/plothpgl.cpp +++ b/pcbnew/plothpgl.cpp @@ -26,7 +26,6 @@ bool PCB_BASE_FRAME::ExportToHpglFile( const wxString& aFullFileName, int aLayer double scale; wxPoint offset; LOCALE_IO toggle; - FILE* output_file = wxFopen( aFullFileName, wxT( "wt" ) ); if( output_file == NULL ) @@ -34,24 +33,26 @@ bool PCB_BASE_FRAME::ExportToHpglFile( const wxString& aFullFileName, int aLayer return false; } + PCB_PLOT_PARAMS plot_opts = GetPlotSettings(); + // Compute pen_dim (from g_m_HPGLPenDiam in mils) in pcb units, // with plot scale (if Scale is 2, pen diameter is always g_m_HPGLPenDiam // so apparent pen diam is real pen diam / Scale - int pen_diam = wxRound( (g_PcbPlotOptions.m_HPGLPenDiam * U_PCB) / - g_PcbPlotOptions.m_PlotScale ); + int pen_diam = wxRound( (plot_opts.m_HPGLPenDiam * U_PCB) / + plot_opts.m_PlotScale ); // compute pen_overlay (from g_m_HPGLPenOvr in mils) with plot scale - if( g_PcbPlotOptions.m_HPGLPenOvr < 0 ) - g_PcbPlotOptions.m_HPGLPenOvr = 0; + if( plot_opts.m_HPGLPenOvr < 0 ) + plot_opts.m_HPGLPenOvr = 0; - if( g_PcbPlotOptions.m_HPGLPenOvr >= g_PcbPlotOptions.m_HPGLPenDiam ) - g_PcbPlotOptions.m_HPGLPenOvr = g_PcbPlotOptions.m_HPGLPenDiam - 1; + if( plot_opts.m_HPGLPenOvr >= plot_opts.m_HPGLPenDiam ) + plot_opts.m_HPGLPenOvr = plot_opts.m_HPGLPenDiam - 1; - int pen_overlay = wxRound( g_PcbPlotOptions.m_HPGLPenOvr * 10.0 / - g_PcbPlotOptions.m_PlotScale ); + int pen_overlay = wxRound( plot_opts.m_HPGLPenOvr * 10.0 / + plot_opts.m_PlotScale ); - if( g_PcbPlotOptions.m_PlotScale != 1.0 || g_PcbPlotOptions.m_AutoScale ) + if( plot_opts.m_PlotScale != 1.0 || plot_opts.m_AutoScale ) { // when scale != 1.0 we must calculate the position in page // because actual position has no meaning @@ -66,7 +67,7 @@ bool PCB_BASE_FRAME::ExportToHpglFile( const wxString& aFullFileName, int aLayer boardSize = bbbox.GetSize(); boardCenter = bbbox.Centre(); - if( g_PcbPlotOptions.m_AutoScale ) // Optimum scale + if( plot_opts.m_AutoScale ) // Optimum scale { // Fit to 80% of the page double Xscale = ( ( pageSizeIU.x * 0.8 ) / boardSize.x ); @@ -75,7 +76,7 @@ bool PCB_BASE_FRAME::ExportToHpglFile( const wxString& aFullFileName, int aLayer } else { - scale = g_PcbPlotOptions.m_PlotScale; + scale = plot_opts.m_PlotScale; } // Calculate the page size offset. @@ -96,18 +97,21 @@ bool PCB_BASE_FRAME::ExportToHpglFile( const wxString& aFullFileName, int aLayer plotter->SetPageSettings( GetPageSettings() ); - plotter->set_viewport( offset, scale, g_PcbPlotOptions.m_PlotMirror ); - plotter->set_default_line_width( g_PcbPlotOptions.m_PlotLineWidth ); + // why did we have to change these settings above? + SetPlotSettings( plot_opts ); + + plotter->set_viewport( offset, scale, plot_opts.m_PlotMirror ); + plotter->set_default_line_width( plot_opts.m_PlotLineWidth ); plotter->set_creator( wxT( "PCBNEW-HPGL" ) ); plotter->set_filename( aFullFileName ); - plotter->set_pen_speed( g_PcbPlotOptions.m_HPGLPenSpeed ); - plotter->set_pen_number( g_PcbPlotOptions.m_HPGLPenNum ); + plotter->set_pen_speed( plot_opts.m_HPGLPenSpeed ); + plotter->set_pen_number( plot_opts.m_HPGLPenNum ); plotter->set_pen_overlap( pen_overlay ); plotter->set_pen_diameter( pen_diam ); plotter->start_plot( output_file ); // The worksheet is not significant with scale!=1... It is with paperscale!=1, anyway - if( g_PcbPlotOptions.m_PlotFrameRef && !center ) + if( plot_opts.m_PlotFrameRef && !center ) PlotWorkSheet( plotter, GetScreen() ); Plot_Layer( plotter, aLayer, aTraceMode ); diff --git a/pcbnew/plotps.cpp b/pcbnew/plotps.cpp index f0cdcd5d47..a253c0bad7 100644 --- a/pcbnew/plotps.cpp +++ b/pcbnew/plotps.cpp @@ -25,6 +25,7 @@ bool PCB_BASE_FRAME::ExportToPostScriptFile( const wxString& aFullFileName, int bool aUseA4, EDA_DRAW_MODE_T aTraceMode ) { const PAGE_INFO& pageInfo = GetPageSettings(); + PCB_PLOT_PARAMS plotOpts = GetPlotSettings(); wxSize paperSizeIU; wxSize boardSize; @@ -45,7 +46,7 @@ bool PCB_BASE_FRAME::ExportToPostScriptFile( const wxString& aFullFileName, int return false; } - if( g_PcbPlotOptions.m_PlotScale != 1.0 || g_PcbPlotOptions.m_AutoScale ) + if( plotOpts.m_PlotScale != 1.0 || plotOpts.m_AutoScale ) { // when scale != 1.0 we must calculate the position in page // because actual position has no meaning @@ -53,8 +54,8 @@ bool PCB_BASE_FRAME::ExportToPostScriptFile( const wxString& aFullFileName, int } // Set default line width - if( g_PcbPlotOptions.m_PlotLineWidth < 1 ) - g_PcbPlotOptions.m_PlotLineWidth = 1; + if( plotOpts.m_PlotLineWidth < 1 ) + plotOpts.m_PlotLineWidth = 1; wxSize pageSizeIU = GetPageSizeIU(); @@ -76,7 +77,7 @@ bool PCB_BASE_FRAME::ExportToPostScriptFile( const wxString& aFullFileName, int boardSize = bbbox.GetSize(); boardCenter = bbbox.Centre(); - if( g_PcbPlotOptions.m_AutoScale ) // Optimum scale + if( plotOpts.m_AutoScale ) // Optimum scale { // Fit to 80% of the page double Xscale = (paperSizeIU.x * 0.8) / boardSize.x; @@ -86,7 +87,7 @@ bool PCB_BASE_FRAME::ExportToPostScriptFile( const wxString& aFullFileName, int } else { - scale = g_PcbPlotOptions.m_PlotScale * paperscale; + scale = plotOpts.m_PlotScale * paperscale; } if( center ) @@ -104,23 +105,26 @@ bool PCB_BASE_FRAME::ExportToPostScriptFile( const wxString& aFullFileName, int plotter->SetPageSettings( *sheetPS ); - plotter->set_scale_adjust( g_PcbPlotOptions.m_FineScaleAdjustX, - g_PcbPlotOptions.m_FineScaleAdjustY ); - plotter->set_plot_width_adj( g_PcbPlotOptions.m_FineWidthAdjust ); - plotter->set_viewport( offset, scale, g_PcbPlotOptions.m_PlotMirror ); - plotter->set_default_line_width( g_PcbPlotOptions.m_PlotLineWidth ); + // why did we have to change these settings? + SetPlotSettings( plotOpts ); + + plotter->set_scale_adjust( plotOpts.m_FineScaleAdjustX, + plotOpts.m_FineScaleAdjustY ); + plotter->set_plot_width_adj( plotOpts.m_FineWidthAdjust ); + plotter->set_viewport( offset, scale, plotOpts.m_PlotMirror ); + plotter->set_default_line_width( plotOpts.m_PlotLineWidth ); plotter->set_creator( wxT( "PCBNEW-PS" ) ); plotter->set_filename( aFullFileName ); plotter->start_plot( output_file ); /* The worksheet is not significant with scale!=1... It is with paperscale!=1, anyway */ - if( g_PcbPlotOptions.m_PlotFrameRef && !center ) + if( plotOpts.m_PlotFrameRef && !center ) PlotWorkSheet( plotter, GetScreen() ); // If plot a negative board: // Draw a black rectangle (background for plot board in white) // and switch the current color to WHITE - if( g_PcbPlotOptions.m_PlotPSNegative ) + if( plotOpts.m_PlotPSNegative ) { int margin = 500; // Add a 0.5 inch margin around the board plotter->set_negative( true ); diff --git a/pcbnew/tracepcb.cpp b/pcbnew/tracepcb.cpp index 2d05df8dc4..937f82c238 100644 --- a/pcbnew/tracepcb.cpp +++ b/pcbnew/tracepcb.cpp @@ -46,9 +46,6 @@ #include -extern int g_DrawDefaultLineThickness; // Default line thickness, used to draw Frame references - - // Local functions: /* Trace the pads of a module in sketch mode. * Used to display pads when when the module visibility is set to not visible From 86da74e0bcd46e6cf4142737e7a8d0f414ad7d9e Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Thu, 5 Apr 2012 13:29:42 -0500 Subject: [PATCH 45/68] todo --- TODO.txt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/TODO.txt b/TODO.txt index fd79e2825c..11f66c9023 100644 --- a/TODO.txt +++ b/TODO.txt @@ -61,7 +61,7 @@ Dick's Peronal TODO Items (Last Update: 20-Feb-2012) 1) Finish removing global access requirements from KICAD_PLUGIN, so that: *) a BOARD is a fully self contained document description. *) plugin developers do not have to access globals, which assumes there were ever - only be one BOARD in RAM. Problems remain with BASE_SCREEN and PLOT params. + only be one BOARD in RAM. Problems remain with BASE_SCREEN 2) Extend PLUGIN API to facillitate loading and saving of modules. @@ -69,11 +69,8 @@ Dick's Peronal TODO Items (Last Update: 20-Feb-2012) 4) Check back with Vladimir about finishing the nanometer work. -5) Do an s-expression PCBNEW PLUGIN at least the output side for discussion, - assuming Wayne does not get to this first. - -6) Do an EAGLE XML import PCBNEW PLUGIN, and possible add export support to it. +5) Do an EAGLE XML import PCBNEW PLUGIN, and possible add export support to it. This is PLUGIN::Load() and maybe PLUGIN::Save(). -7) Get back to the SWEET work. +6) Get back to the SWEET work. From 504fd3e282e74db5419e4af7c18b251b3c086ac9 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Thu, 5 Apr 2012 20:56:06 +0200 Subject: [PATCH 46/68] Finish Pcb Calculator work --- .../dialogs/pcb_calculator_frame_base.cpp | 17 +- .../dialogs/pcb_calculator_frame_base.fbp | 269 ++++++++++++------ .../dialogs/pcb_calculator_frame_base.h | 6 +- pcb_calculator/pcb_calculator.h | 24 +- pcb_calculator/pcb_calculator_frame.cpp | 34 ++- pcb_calculator/regulators_funct.cpp | 55 +++- 6 files changed, 303 insertions(+), 102 deletions(-) diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp index 1d90c7ab17..63ef5b328f 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp @@ -192,8 +192,17 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow sbSizerRegulatorsChooser->Add( m_staticTextRegFile, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_regulators_filePicker = new wxFilePickerCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, _("Select a Pcb Calculator data file"), wxT("*.pcbcalc"), wxDefaultPosition, wxDefaultSize, wxFLP_SAVE|wxFLP_USE_TEXTCTRL ); - sbSizerRegulatorsChooser->Add( m_regulators_filePicker, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + wxBoxSizer* bSizerDataFile; + bSizerDataFile = new wxBoxSizer( wxHORIZONTAL ); + + m_regulators_fileNameCtrl = new wxTextCtrl( m_panelRegulators, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerDataFile->Add( m_regulators_fileNameCtrl, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_buttonDataFile = new wxButton( m_panelRegulators, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerDataFile->Add( m_buttonDataFile, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + sbSizerRegulatorsChooser->Add( bSizerDataFile, 1, wxEXPAND, 5 ); wxBoxSizer* bSizerReulBtn; bSizerReulBtn = new wxBoxSizer( wxHORIZONTAL ); @@ -1253,7 +1262,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_choiceRegType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulTypeSelection ), NULL, this ); m_buttonCalculate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorCalcButtonClick ), NULL, this ); m_choiceRegulatorSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorSelection ), NULL, this ); - m_regulators_filePicker->Connect( wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler( PCB_CALCULATOR_FRAME_BASE::OnDataFileSelection ), NULL, this ); + m_buttonDataFile->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnDataFileSelection ), NULL, this ); m_buttonEditItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this ); m_buttonAddItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this ); m_buttonRemoveItem->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this ); @@ -1282,7 +1291,7 @@ PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE() m_choiceRegType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulTypeSelection ), NULL, this ); m_buttonCalculate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorCalcButtonClick ), NULL, this ); m_choiceRegulatorSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRegulatorSelection ), NULL, this ); - m_regulators_filePicker->Disconnect( wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler( PCB_CALCULATOR_FRAME_BASE::OnDataFileSelection ), NULL, this ); + m_buttonDataFile->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnDataFileSelection ), NULL, this ); m_buttonEditItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnEditRegulator ), NULL, this ); m_buttonAddItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAddRegulator ), NULL, this ); m_buttonRemoveItem->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnRemoveRegulator ), NULL, this ); diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp index b5e78c2458..3103035ae3 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp @@ -2881,91 +2881,192 @@ 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - Select a Pcb Calculator data file - - 0 + wxEXPAND + 1 + - 1 - m_regulators_filePicker - 1 - - - protected - 1 - - Resizable - 1 - - wxFLP_SAVE|wxFLP_USE_TEXTCTRL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - *.pcbcalc - - - - - - - OnDataFileSelection - - - - - - - - - - - - - - - - - - - - + bSizerDataFile + wxHORIZONTAL + none + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + m_regulators_fileNameCtrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Browse + + 0 + + + 0 + + 1 + m_buttonDataFile + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnDataFileSelection + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.h b/pcb_calculator/dialogs/pcb_calculator_frame_base.h index 25f01a9342..a4e7f80ae5 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.h +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.h @@ -30,7 +30,6 @@ #include #include #include -#include #include #include #include @@ -80,7 +79,8 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame wxButton* m_buttonCalculate; wxChoice* m_choiceRegulatorSelector; wxStaticText* m_staticTextRegFile; - wxFilePickerCtrl* m_regulators_filePicker; + wxTextCtrl* m_regulators_fileNameCtrl; + wxButton* m_buttonDataFile; wxButton* m_buttonEditItem; wxButton* m_buttonAddItem; wxButton* m_buttonRemoveItem; @@ -263,7 +263,7 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame virtual void OnRegulTypeSelection( wxCommandEvent& event ) { event.Skip(); } virtual void OnRegulatorCalcButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnRegulatorSelection( wxCommandEvent& event ) { event.Skip(); } - virtual void OnDataFileSelection( wxFileDirPickerEvent& event ) { event.Skip(); } + virtual void OnDataFileSelection( wxCommandEvent& event ) { event.Skip(); } virtual void OnEditRegulator( wxCommandEvent& event ) { event.Skip(); } virtual void OnAddRegulator( wxCommandEvent& event ) { event.Skip(); } virtual void OnRemoveRegulator( wxCommandEvent& event ) { event.Skip(); } diff --git a/pcb_calculator/pcb_calculator.h b/pcb_calculator/pcb_calculator.h index afbd959a8e..4c09da39d9 100644 --- a/pcb_calculator/pcb_calculator.h +++ b/pcb_calculator/pcb_calculator.h @@ -61,15 +61,18 @@ private: // R/W data files: bool ReadDataFile(); bool WriteDataFile(); - const wxString GetDataFilename() - { - return m_regulators_filePicker->GetPath(); - } - void SetDataFilename( const wxString & aFilename) - { - m_regulators_filePicker->SetPath( aFilename ); - } + /** + * @return the full filename of the selected pcb_calculator data file + */ + const wxString GetDataFilename(); + + /** + * Initialize the full filename of the selected pcb_calculator data file + * force the standard extension of the file (.pcbcalc) + * @param aFilename = the full filename, with or without extension + */ + void SetDataFilename( const wxString & aFilename); // tracks width versus current functions: /** @@ -177,7 +180,7 @@ private: void OnRegulatorCalcButtonClick( wxCommandEvent& event ); void OnRegulTypeSelection( wxCommandEvent& event ); void OnRegulatorSelection( wxCommandEvent& event ); - void OnDataFileSelection( wxFileDirPickerEvent& event ); + void OnDataFileSelection( wxCommandEvent& event ); void OnAddRegulator( wxCommandEvent& event ); void OnEditRegulator( wxCommandEvent& event ); void OnRemoveRegulator( wxCommandEvent& event ); @@ -241,4 +244,7 @@ public: }; + +extern const wxString DataFileNameExt; + #endif // PCB_CALCULATOR_H diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp index e026362df8..64d0a50775 100644 --- a/pcb_calculator/pcb_calculator_frame.cpp +++ b/pcb_calculator/pcb_calculator_frame.cpp @@ -49,6 +49,9 @@ #define KEYWORD_REGUL_LAST_PARAM wxT( "RegulLastParam" ) #define KEYWORD_DATAFILE_FILENAME wxT( "DataFilename" ) +// extention of pcb_calculator data filename: +const wxString DataFileNameExt( wxT("pcbcalc") ); + PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow* parent ) : PCB_CALCULATOR_FRAME_BASE( parent ) { @@ -93,7 +96,6 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow* parent ) : ElectricalSpacingUpdateData( m_ElectricalSpacingUnitsSelector->GetUnitScale() ); - m_choiceRegulatorSelector->Append( m_RegulatorList.GetRegList() ); SelectLastSelectedRegulator(); @@ -327,6 +329,36 @@ void PCB_CALCULATOR_FRAME::OnPaintTranslinePanel( wxPaintEvent& event ) event.Skip(); } +/* returns the full filename of the selected pcb_calculator data file + * the extention file is forced + */ +const wxString PCB_CALCULATOR_FRAME::GetDataFilename() +{ + if( m_regulators_fileNameCtrl->GetValue().IsEmpty() ) + return wxEmptyString; + + wxFileName fn( m_regulators_fileNameCtrl->GetValue() ); + fn.SetExt( DataFileNameExt ); + return fn.GetFullPath(); +} + +/* Initialize the full filename of the selected pcb_calculator data file + * force the standard extension of the file (.pcbcalc) + * aFilename = the full filename, with or without extension + */ +void PCB_CALCULATOR_FRAME::SetDataFilename( const wxString & aFilename) +{ + if( aFilename.IsEmpty() ) + m_regulators_fileNameCtrl->SetValue( wxEmptyString ); + + else + { + wxFileName fn( aFilename ); + fn.SetExt( DataFileNameExt ); + m_regulators_fileNameCtrl->SetValue( fn.GetFullPath() ); + } +} + /** * @copydoc diff --git a/pcb_calculator/regulators_funct.cpp b/pcb_calculator/regulators_funct.cpp index d7840161dc..c3090001c2 100644 --- a/pcb_calculator/regulators_funct.cpp +++ b/pcb_calculator/regulators_funct.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -110,6 +111,12 @@ bool DIALOG_EDITOR_DATA::IsOK() ok = false; if( m_textCtrlVref->GetValue().IsEmpty() ) ok = false; + else + { + double vref = ReturnDoubleFromString( m_textCtrlVref->GetValue() ); + if( fabs(vref) < 0.01 ) + ok = false; + } if( m_choiceRegType->GetSelection() == 1 ) { if( m_RegulIadjValue->GetValue().IsEmpty() ) @@ -207,8 +214,54 @@ void PCB_CALCULATOR_FRAME::OnRegulatorSelection( wxCommandEvent& event ) RegulatorPageUpdate(); } -void PCB_CALCULATOR_FRAME::OnDataFileSelection( wxFileDirPickerEvent& event ) +/* + * Called when ckicking on button Browse: + * Select a new data file, and load it on request + */ +void PCB_CALCULATOR_FRAME::OnDataFileSelection( wxCommandEvent& event ) { + wxString fullfilename = GetDataFilename(); + + wxString wildcard; + wildcard.Printf( _("Pcb Calculator data file (*.%s)|*.%s"), + GetChars( DataFileNameExt ), + GetChars( DataFileNameExt ) ); + + wxFileDialog dlg( m_panelRegulators, + _("Select a Pcb Calculator data file"), + wxEmptyString, fullfilename, + wildcard, wxFD_OPEN ); + + if (dlg.ShowModal() == wxID_CANCEL) + return; + + fullfilename = dlg.GetPath(); + + if( fullfilename == GetDataFilename() ) + return; + + SetDataFilename( fullfilename ); + if( wxFileExists( fullfilename ) && m_RegulatorList.GetCount() > 0 ) // Read file + { + if( wxMessageBox( _("Do you want to load this file and replace current regulator list?" ) ) + != wxID_OK ) + return; + } + + if( ReadDataFile() ) + { + m_RegulatorListChanged = false; + m_choiceRegulatorSelector->Clear(); + m_choiceRegulatorSelector->Append( m_RegulatorList.GetRegList() ); + SelectLastSelectedRegulator(); + } + + else + { + wxString msg; + msg.Printf( _("Unable to read data file <%s>"), GetChars( fullfilename ) ); + wxMessageBox( msg ); + } } void PCB_CALCULATOR_FRAME::OnAddRegulator( wxCommandEvent& event ) From d55c34f662e54e44a1170ac4e1dfd8b0a1b1fb8c Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 6 Apr 2012 20:03:16 +0200 Subject: [PATCH 47/68] Pcbnew: fix Bug #975014 --- pcbnew/class_module_transform_functions.cpp | 4 ++-- pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pcbnew/class_module_transform_functions.cpp b/pcbnew/class_module_transform_functions.cpp index dd04878340..171afdfbe1 100644 --- a/pcbnew/class_module_transform_functions.cpp +++ b/pcbnew/class_module_transform_functions.cpp @@ -283,8 +283,8 @@ void MODULE::SetPosition( const wxPoint& newpos ) wxPoint delta = newpos - m_Pos; m_Pos += delta; - m_Reference->m_Pos += delta; - m_Value->m_Pos += delta; + m_Reference->SetPosition( m_Reference->GetPosition() + delta ); + m_Value->SetPosition( m_Value->GetPosition() + delta ); for( D_PAD* pad = m_Pads; pad; pad = pad->Next() ) { diff --git a/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp b/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp index 540be1f5cb..bab2d056a9 100644 --- a/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp +++ b/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp @@ -480,6 +480,10 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) m_CurrentModule->Draw( m_Parent->GetCanvas(), m_DC, GR_XOR ); } + // Init Fields (should be first, because they can be moved or/and flipped later): + m_CurrentModule->m_Reference->Copy( m_ReferenceCopy ); + m_CurrentModule->m_Value->Copy( m_ValueCopy ); + // Initialize masks clearances m_CurrentModule->SetLocalClearance( ReturnValueFromTextCtrl( *m_NetClearanceValueCtrl, m_Parent->GetInternalUnits() ) ); @@ -549,10 +553,6 @@ void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) m_CurrentModule->m_CntRot90 = m_CostRot90Ctrl->GetValue(); m_CurrentModule->m_CntRot180 = m_CostRot180Ctrl->GetValue(); - // Init Fields: - m_CurrentModule->m_Reference->Copy( m_ReferenceCopy ); - m_CurrentModule->m_Value->Copy( m_ValueCopy ); - /* Now, set orientation. must be made after others changes, * because rotation changes fields positions on board according to the new orientation * (relative positions are not modified) From 7f2ecfe721176c7f6c17c27068ce921f92dfaa16 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Fri, 6 Apr 2012 14:31:28 -0500 Subject: [PATCH 48/68] USE_NEW_PCBNEW_LOAD and USE_NEW_PCBNEW_SAVE are enabled by default. This uses the new LEGACY_PLUGIN, so we can force more usage & testing of it before ioascii.cpp and item_io.cpp are deleted, along with BOARD_ITEM::Save() and BOARD_ITEM::ReadDescr() associated functions. --- CMakeLists.txt | 4 ++-- TODO.txt | 9 +++++---- pcbnew/kicad_plugin.cpp | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 25b1c47d7d..fb9418ed11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,8 +22,8 @@ set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules) option(USE_PNG_BITMAPS "use PNG bitmaps instead of XPM (default ON)" ON) -option(USE_NEW_PCBNEW_LOAD "use new plugin support for legacy file format" OFF) -option(USE_NEW_PCBNEW_SAVE "use new plugin support for legacy file format" OFF) +option(USE_NEW_PCBNEW_LOAD "use new plugin support for legacy file format" ON) +option(USE_NEW_PCBNEW_SAVE "use new plugin support for legacy file format" ON) option(USE_PCBNEW_NANOMETRES "Use nanometers for Pcbnew internal units instead of deci-mils (default OFF).") diff --git a/TODO.txt b/TODO.txt index 11f66c9023..bf0d3a2f05 100644 --- a/TODO.txt +++ b/TODO.txt @@ -52,7 +52,7 @@ PCBNew See the @todos in class_zone.cpp -Dick's Peronal TODO Items (Last Update: 20-Feb-2012) +Dick's Peronal TODO Items (Last Update: 5-April-2012) ----------------------------------------------------- 0) Check that the new load visibility BOARD settings is properly setting the toolbar buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so @@ -60,8 +60,9 @@ Dick's Peronal TODO Items (Last Update: 20-Feb-2012) 1) Finish removing global access requirements from KICAD_PLUGIN, so that: *) a BOARD is a fully self contained document description. - *) plugin developers do not have to access globals, which assumes there were ever - only be one BOARD in RAM. Problems remain with BASE_SCREEN + *) plugin developers do not have to access globals, since a plugin could + very well be a dynamically loaded DLL/DSO. + A problem remain with BASE_SCREEN 2) Extend PLUGIN API to facillitate loading and saving of modules. @@ -69,7 +70,7 @@ Dick's Peronal TODO Items (Last Update: 20-Feb-2012) 4) Check back with Vladimir about finishing the nanometer work. -5) Do an EAGLE XML import PCBNEW PLUGIN, and possible add export support to it. +5) Do an EAGLE XML import PCBNEW PLUGIN, and possibly add export support to it. This is PLUGIN::Load() and maybe PLUGIN::Save(). 6) Get back to the SWEET work. diff --git a/pcbnew/kicad_plugin.cpp b/pcbnew/kicad_plugin.cpp index fa62afd7c6..4d8b3f7a45 100644 --- a/pcbnew/kicad_plugin.cpp +++ b/pcbnew/kicad_plugin.cpp @@ -783,10 +783,10 @@ void KICAD_PLUGIN::loadSETUP() else if( TESTLINE( "GridOrigin" ) ) { + /* @todo BIU gx = biuParse( line + SZ( "GridOrigin" ), &data ); BIU gy = biuParse( data ); - /* @todo GetScreen()->m_GridOrigin.x = Ox; GetScreen()->m_GridOrigin.y = Oy; */ From 880844d1786eb88d7981a689233979aac98c03e1 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sat, 7 Apr 2012 13:09:57 +0200 Subject: [PATCH 49/68] Remove old xpm icons files --- CMakeLists.txt | 13 +- CMakeModules/config.h.cmake | 2 - bitmap2component/bitmap2component.rc | 4 - bitmaps_xpm/CMakeLists.txt | 452 - bitmaps_xpm/add_arc.xpm | 75 - bitmaps_xpm/add_bus.xpm | 28 - bitmaps_xpm/add_bus2bus.xpm | 62 - bitmaps_xpm/add_circle.xpm | 60 - bitmaps_xpm/add_component.xpm | 91 - bitmaps_xpm/add_corner.xpm | 34 - bitmaps_xpm/add_dashed_line.xpm | 39 - bitmaps_xpm/add_dimension.xpm | 34 - bitmaps_xpm/add_entry.xpm | 34 - bitmaps_xpm/add_glabel.xpm | 78 - bitmaps_xpm/add_hierar_pin.xpm | 61 - bitmaps_xpm/add_hierar_subsheet.xpm | 59 - bitmaps_xpm/add_hierarchical_label.xpm | 75 - bitmaps_xpm/add_junction.xpm | 84 - bitmaps_xpm/add_line.xpm | 27 - bitmaps_xpm/add_line2bus.xpm | 55 - bitmaps_xpm/add_line_label.xpm | 48 - bitmaps_xpm/add_mires.xpm | 88 - bitmaps_xpm/add_polygon.xpm | 78 - bitmaps_xpm/add_power.xpm | 50 - bitmaps_xpm/add_rectangle.xpm | 48 - bitmaps_xpm/add_text.xpm | 28 - bitmaps_xpm/add_tracks.xpm | 41 - bitmaps_xpm/add_zone.xpm | 27 - bitmaps_xpm/add_zone_cutout.xpm | 27 - bitmaps_xpm/anchor.xpm | 26 - bitmaps_xpm/annotate.xpm | 118 - bitmaps_xpm/annotate_down_right.xpm | 38 - bitmaps_xpm/annotate_right_down.xpm | 38 - bitmaps_xpm/apply.xpm | 40 - bitmaps_xpm/auto_associe.xpm | 149 - bitmaps_xpm/auto_delete_track.xpm | 40 - bitmaps_xpm/auto_track_width.xpm | 39 - bitmaps_xpm/axis3d.xpm | 27 - bitmaps_xpm/axis3d_back.xpm | 27 - bitmaps_xpm/axis3d_bottom.xpm | 27 - bitmaps_xpm/axis3d_front.xpm | 27 - bitmaps_xpm/axis3d_left.xpm | 27 - bitmaps_xpm/axis3d_right.xpm | 27 - bitmaps_xpm/axis3d_top.xpm | 27 - bitmaps_xpm/bom.xpm | 25 - bitmaps_xpm/book.xpm | 47 - bitmaps_xpm/break_bus.xpm | 59 - bitmaps_xpm/break_line.xpm | 58 - bitmaps_xpm/browse_files.xpm | 90 - bitmaps_xpm/cancel.xpm | 127 - bitmaps_xpm/cancel_tool.xpm | 123 - bitmaps_xpm/checked_ok.xpm | 38 - .../component_select_alternate_shape.xpm | 33 - bitmaps_xpm/component_select_unit.xpm | 31 - bitmaps_xpm/config.xpm | 79 - bitmaps_xpm/copper_layers_setup.xpm | 23 - bitmaps_xpm/copy_button.xpm | 31 - bitmaps_xpm/copyblock.xpm | 42 - bitmaps_xpm/copycomponent.xpm | 38 - bitmaps_xpm/create_cmp_file.xpm | 118 - bitmaps_xpm/cursor.xpm | 97 - bitmaps_xpm/cursor_shape.xpm | 77 - bitmaps_xpm/cut_button.xpm | 30 - bitmaps_xpm/cvpcb.xpm | 71 - bitmaps_xpm/dashline.xpm | 31 - bitmaps_xpm/datasheet.xpm | 46 - bitmaps_xpm/delete.xpm | 176 - bitmaps_xpm/delete_arc.xpm | 162 - bitmaps_xpm/delete_association.xpm | 172 - bitmaps_xpm/delete_body.xpm | 39 - bitmaps_xpm/delete_bus.xpm | 154 - bitmaps_xpm/delete_circle.xpm | 150 - bitmaps_xpm/delete_connection.xpm | 181 - bitmaps_xpm/delete_cotation.xpm | 134 - bitmaps_xpm/delete_field.xpm | 148 - bitmaps_xpm/delete_glabel.xpm | 157 - bitmaps_xpm/delete_line.xpm | 155 - bitmaps_xpm/delete_module.xpm | 153 - bitmaps_xpm/delete_net.xpm | 152 - bitmaps_xpm/delete_node.xpm | 156 - bitmaps_xpm/delete_pad.xpm | 144 - bitmaps_xpm/delete_pin.xpm | 153 - bitmaps_xpm/delete_pinsheet.xpm | 183 - bitmaps_xpm/delete_polygon.xpm | 144 - bitmaps_xpm/delete_rectangle.xpm | 138 - bitmaps_xpm/delete_segment.xpm | 135 - bitmaps_xpm/delete_sheet.xpm | 158 - bitmaps_xpm/delete_text.xpm | 138 - bitmaps_xpm/delete_track.xpm | 139 - bitmaps_xpm/directory.xpm | 160 - bitmaps_xpm/display_options.xpm | 114 - bitmaps_xpm/down.xpm | 49 - bitmaps_xpm/drag_module.xpm | 87 - bitmaps_xpm/drag_outline_segment.xpm | 64 - bitmaps_xpm/drag_pad.xpm | 72 - bitmaps_xpm/drag_segment_withslope.xpm | 64 - bitmaps_xpm/drag_track_segment.xpm | 65 - bitmaps_xpm/drc.xpm | 111 - bitmaps_xpm/drc_off.xpm | 104 - bitmaps_xpm/edges_sketch.xpm | 27 - bitmaps_xpm/edit.xpm | 52 - bitmaps_xpm/edit_comp_footprint.xpm | 99 - bitmaps_xpm/edit_comp_ref.xpm | 96 - bitmaps_xpm/edit_comp_value.xpm | 97 - bitmaps_xpm/edit_component.xpm | 104 - bitmaps_xpm/edit_module.xpm | 72 - bitmaps_xpm/edit_part.xpm | 106 - bitmaps_xpm/edit_sheet.xpm | 73 - bitmaps_xpm/edit_text.xpm | 32 - bitmaps_xpm/editor.xpm | 84 - bitmaps_xpm/eeschema.xpm | 102 - bitmaps_xpm/enter_sheet.xpm | 68 - bitmaps_xpm/erc.xpm | 119 - bitmaps_xpm/erc_green.xpm | 20 - bitmaps_xpm/ercerr.xpm | 20 - bitmaps_xpm/ercwarn.xpm | 20 - bitmaps_xpm/exit.xpm | 87 - bitmaps_xpm/export.xpm | 67 - bitmaps_xpm/export_footprint_names.xpm | 38 - bitmaps_xpm/export_module.xpm | 110 - bitmaps_xpm/export_options_pad.xpm | 95 - bitmaps_xpm/fabrication.xpm | 38 - bitmaps_xpm/file_footprint.xpm | 62 - bitmaps_xpm/fill_zone.xpm | 41 - bitmaps_xpm/find_xpm.xpm | 34 - bitmaps_xpm/flag.xpm | 48 - bitmaps_xpm/fonts.xpm | 70 - bitmaps_xpm/footprint_text.xpm | 29 - bitmaps_xpm/gbr_select_mode0.xpm | 38 - bitmaps_xpm/gbr_select_mode1.xpm | 38 - bitmaps_xpm/gbr_select_mode2.xpm | 38 - bitmaps_xpm/general_deletions.xpm | 182 - bitmaps_xpm/general_ratsnet.xpm | 66 - bitmaps_xpm/gerber_file.xpm | 38 - bitmaps_xpm/gerber_open_dcode_file.xpm | 38 - bitmaps_xpm/gerber_recent_files.xpm | 38 - bitmaps_xpm/gerbview_clear_layers.xpm | 38 - bitmaps_xpm/gerbview_drill_file.xpm | 38 - bitmaps_xpm/gl_change.xpm | 54 - bitmaps_xpm/glabel2label.xpm | 54 - bitmaps_xpm/glabel2text.xpm | 66 - bitmaps_xpm/global_options_pad.xpm | 105 - bitmaps_xpm/green.xpm | 33 - bitmaps_xpm/grid.xpm | 30 - bitmaps_xpm/grid_select.xpm | 33 - bitmaps_xpm/grid_select_axis.xpm | 28 - bitmaps_xpm/hammer.xpm | 29 - bitmaps_xpm/help.xpm | 130 - bitmaps_xpm/hidden_pin.xpm | 157 - bitmaps_xpm/hierarchy_cursor.xpm | 85 - bitmaps_xpm/hierarchy_nav.xpm | 31 - bitmaps_xpm/hotkeys.xpm | 37 - bitmaps_xpm/icon_3d.xpm | 45 - bitmaps_xpm/icon_bitmap2component.xpm | 54 - bitmaps_xpm/icon_cvpcb.xpm | 412 - bitmaps_xpm/icon_cvpcb_small.xpm | 156 - bitmaps_xpm/icon_eeschema.xpm | 240 - bitmaps_xpm/icon_gerbview.xpm | 358 - bitmaps_xpm/icon_gerbview_small.xpm | 190 - bitmaps_xpm/icon_kicad.xpm | 58 - bitmaps_xpm/icon_modedit.xpm | 386 - bitmaps_xpm/icon_pcbcalculator.xpm | 54 - bitmaps_xpm/icon_pcbnew.xpm | 176 - bitmaps_xpm/icon_txt.xpm | 125 - bitmaps_xpm/icons/icon_bitmap2component.ico | Bin 2238 -> 0 bytes bitmaps_xpm/icons/icon_cvpcb.ico | Bin 3262 -> 0 bytes bitmaps_xpm/icons/icon_eeschema.ico | Bin 2238 -> 0 bytes bitmaps_xpm/icons/icon_gerbview.ico | Bin 3262 -> 0 bytes bitmaps_xpm/icons/icon_kicad.ico | Bin 3262 -> 0 bytes bitmaps_xpm/icons/icon_kicad.png | Bin 2294 -> 0 bytes bitmaps_xpm/icons/icon_kicad.xpm | 496 - bitmaps_xpm/icons/icon_pcbcalculator.ico | Bin 3262 -> 0 bytes bitmaps_xpm/icons/icon_pcbnew.ico | Bin 3262 -> 0 bytes bitmaps_xpm/image.xpm | 237 - bitmaps_xpm/import.xpm | 76 - bitmaps_xpm/import3d.xpm | 47 - bitmaps_xpm/import_cmp_from_lib.xpm | 38 - bitmaps_xpm/import_footprint_names.xpm | 38 - bitmaps_xpm/import_hierarchical_label.xpm | 116 - bitmaps_xpm/import_module.xpm | 103 - bitmaps_xpm/info.xpm | 87 - bitmaps_xpm/insert_module_board.xpm | 73 - bitmaps_xpm/invert_module.xpm | 55 - bitmaps_xpm/invisible_text.xpm | 28 - bitmaps_xpm/jigsaw.xpm | 28 - bitmaps_xpm/kicad_icon_small.xpm | 42 - bitmaps_xpm/label.xpm | 28 - bitmaps_xpm/label2glabel.xpm | 58 - bitmaps_xpm/label2text.xpm | 59 - bitmaps_xpm/lang_catalan.xpm | 41 - bitmaps_xpm/lang_chinese.xpm | 43 - bitmaps_xpm/lang_cs.xpm | 29 - bitmaps_xpm/lang_de.xpm | 29 - bitmaps_xpm/lang_default.xpm | 76 - bitmaps_xpm/lang_en.xpm | 45 - bitmaps_xpm/lang_es.xpm | 29 - bitmaps_xpm/lang_fi.xpm | 33 - bitmaps_xpm/lang_fr.xpm | 29 - bitmaps_xpm/lang_gr.xpm | 38 - bitmaps_xpm/lang_hu.xpm | 29 - bitmaps_xpm/lang_it.xpm | 29 - bitmaps_xpm/lang_jp.xpm | 28 - bitmaps_xpm/lang_ko.xpm | 44 - bitmaps_xpm/lang_nl.xpm | 30 - bitmaps_xpm/lang_pl.xpm | 28 - bitmaps_xpm/lang_pt.xpm | 40 - bitmaps_xpm/lang_ru.xpm | 29 - bitmaps_xpm/lang_sl.xpm | 29 - bitmaps_xpm/language.xpm | 116 - bitmaps_xpm/layers_manager.xpm | 38 - bitmaps_xpm/leave_sheet.xpm | 82 - bitmaps_xpm/left.xpm | 50 - bitmaps_xpm/lib_next.xpm | 87 - bitmaps_xpm/lib_previous.xpm | 88 - bitmaps_xpm/libedit.xpm | 154 - bitmaps_xpm/libedit_icon.xpm | 152 - bitmaps_xpm/libedprt.xpm | 32 - bitmaps_xpm/library.xpm | 31 - bitmaps_xpm/library_browse.xpm | 154 - bitmaps_xpm/library_update.xpm | 31 - bitmaps_xpm/libsavem.xpm | 33 - bitmaps_xpm/libview.xpm | 38 - bitmaps_xpm/lines90.xpm | 48 - bitmaps_xpm/load_module_board.xpm | 104 - bitmaps_xpm/load_module_lib.xpm | 167 - bitmaps_xpm/local_ratsnest.xpm | 85 - bitmaps_xpm/locked.xpm | 114 - bitmaps_xpm/mirepcb.xpm | 30 - bitmaps_xpm/mirror_h.xpm | 53 - bitmaps_xpm/mirror_v.xpm | 55 - bitmaps_xpm/mode_module.xpm | 120 - bitmaps_xpm/mode_track.xpm | 66 - bitmaps_xpm/modedit.xpm | 114 - bitmaps_xpm/modratsnest.xpm | 32 - bitmaps_xpm/modul_edit.xpm | 61 - bitmaps_xpm/module.xpm | 29 - bitmaps_xpm/module_check.xpm | 153 - bitmaps_xpm/module_filtered_list.xpm | 29 - bitmaps_xpm/module_full_list.xpm | 29 - bitmaps_xpm/module_options.xpm | 89 - bitmaps_xpm/module_ratsnest.xpm | 63 - bitmaps_xpm/morgan1.xpm | 103 - bitmaps_xpm/morgan2.xpm | 101 - bitmaps_xpm/move.xpm | 72 - bitmaps_xpm/move_arc.xpm | 80 - bitmaps_xpm/move_circle.xpm | 73 - bitmaps_xpm/move_field.xpm | 86 - bitmaps_xpm/move_glabel.xpm | 90 - bitmaps_xpm/move_line.xpm | 72 - bitmaps_xpm/move_module.xpm | 79 - bitmaps_xpm/move_pad.xpm | 68 - bitmaps_xpm/move_pin.xpm | 80 - bitmaps_xpm/move_pinsheet.xpm | 105 - bitmaps_xpm/move_polygon.xpm | 70 - bitmaps_xpm/move_rectangle.xpm | 64 - bitmaps_xpm/move_sheet.xpm | 92 - bitmaps_xpm/move_text.xpm | 70 - bitmaps_xpm/move_track.xpm | 65 - bitmaps_xpm/move_track_segment.xpm | 65 - bitmaps_xpm/mw_add_gap.xpm | 37 - bitmaps_xpm/mw_add_line.xpm | 30 - bitmaps_xpm/mw_add_shape.xpm | 45 - bitmaps_xpm/mw_add_stub.xpm | 38 - bitmaps_xpm/mw_add_stub_arc.xpm | 79 - bitmaps_xpm/mw_toolbar.xpm | 91 - bitmaps_xpm/net_highlight.xpm | 98 - bitmaps_xpm/net_locked.xpm | 114 - bitmaps_xpm/net_unlocked.xpm | 114 - bitmaps_xpm/netlist.xpm | 68 - bitmaps_xpm/new.xpm | 47 - bitmaps_xpm/new_component.xpm | 37 - bitmaps_xpm/new_cvpcb.xpm | 111 - bitmaps_xpm/new_footprint.xpm | 39 - bitmaps_xpm/new_library.xpm | 157 - bitmaps_xpm/new_module.xpm | 97 - bitmaps_xpm/new_pcb.xpm | 59 - bitmaps_xpm/new_project.xpm | 54 - bitmaps_xpm/new_sch.xpm | 90 - bitmaps_xpm/new_txt.xpm | 102 - bitmaps_xpm/noconn.xpm | 29 - bitmaps_xpm/normal.xpm | 131 - bitmaps_xpm/online_help.xpm | 38 - bitmaps_xpm/open_document.xpm | 38 - bitmaps_xpm/open_library.xpm | 159 - bitmaps_xpm/open_project.xpm | 91 - bitmaps_xpm/opt_show_polygon.xpm | 27 - bitmaps_xpm/options_all_tracks.xpm | 63 - bitmaps_xpm/options_all_tracks_and_vias.xpm | 73 - bitmaps_xpm/options_all_vias.xpm | 80 - bitmaps_xpm/options_arc.xpm | 73 - bitmaps_xpm/options_circle.xpm | 78 - bitmaps_xpm/options_module.xpm | 77 - bitmaps_xpm/options_new_pad.xpm | 77 - bitmaps_xpm/options_pad.xpm | 57 - bitmaps_xpm/options_pin.xpm | 72 - bitmaps_xpm/options_pinsheet.xpm | 102 - bitmaps_xpm/options_rectangle.xpm | 68 - bitmaps_xpm/options_segment.xpm | 55 - bitmaps_xpm/options_text.xpm | 64 - bitmaps_xpm/options_track.xpm | 69 - bitmaps_xpm/options_tracks.xpm | 60 - bitmaps_xpm/options_vias.xpm | 68 - bitmaps_xpm/orient.xpm | 138 - bitmaps_xpm/ortho.xpm | 21 - bitmaps_xpm/pad.xpm | 30 - bitmaps_xpm/pad_sketch.xpm | 27 - bitmaps_xpm/pads_mask_layers.xpm | 38 - bitmaps_xpm/palette.xpm | 33 - bitmaps_xpm/part_properties.xpm | 109 - bitmaps_xpm/paste.xpm | 78 - bitmaps_xpm/pcbnew.xpm | 80 - bitmaps_xpm/pcboffset.xpm | 31 - bitmaps_xpm/pin.xpm | 32 - bitmaps_xpm/pin2pin.xpm | 86 - bitmaps_xpm/pin_name_to.xpm | 82 - bitmaps_xpm/pin_number_to.xpm | 82 - bitmaps_xpm/pin_size_to.xpm | 77 - bitmaps_xpm/pin_to.xpm | 72 - bitmaps_xpm/pinorient_down.xpm | 24 - bitmaps_xpm/pinorient_left.xpm | 24 - bitmaps_xpm/pinorient_right.xpm | 24 - bitmaps_xpm/pinorient_up.xpm | 24 - bitmaps_xpm/pinshape_active_low_input.xpm | 23 - bitmaps_xpm/pinshape_active_low_output.xpm | 23 - bitmaps_xpm/pinshape_clock_active_low.xpm | 23 - bitmaps_xpm/pinshape_clock_fall.xpm | 23 - bitmaps_xpm/pinshape_clock_invert.xpm | 23 - bitmaps_xpm/pinshape_clock_normal.xpm | 23 - bitmaps_xpm/pinshape_invert.xpm | 23 - bitmaps_xpm/pinshape_nonlogic.xpm | 23 - bitmaps_xpm/pinshape_normal.xpm | 23 - bitmaps_xpm/pintype_3states.xpm | 24 - bitmaps_xpm/pintype_bidi.xpm | 24 - bitmaps_xpm/pintype_input.xpm | 24 - bitmaps_xpm/pintype_noconnect.xpm | 24 - bitmaps_xpm/pintype_notspecif.xpm | 24 - bitmaps_xpm/pintype_opencoll.xpm | 24 - bitmaps_xpm/pintype_openemit.xpm | 24 - bitmaps_xpm/pintype_output.xpm | 24 - bitmaps_xpm/pintype_passive.xpm | 24 - bitmaps_xpm/pintype_powerinput.xpm | 24 - bitmaps_xpm/pintype_poweroutput.xpm | 24 - bitmaps_xpm/plot_hpg.xpm | 41 - bitmaps_xpm/plot_ps.xpm | 38 - bitmaps_xpm/plot_xpm.xpm | 36 - bitmaps_xpm/polar.xpm | 57 - bitmaps_xpm/post_compo.xpm | 86 - bitmaps_xpm/post_drill.xpm | 59 - bitmaps_xpm/post_module.xpm | 76 - bitmaps_xpm/preference.xpm | 30 - bitmaps_xpm/print_button.xpm | 32 - bitmaps_xpm/ratsnest.xpm | 32 - bitmaps_xpm/read_setup.xpm | 109 - bitmaps_xpm/red.xpm | 36 - bitmaps_xpm/redo.xpm | 67 - bitmaps_xpm/reload.xpm | 176 - bitmaps_xpm/reload2.xpm | 134 - bitmaps_xpm/reset_text.xpm | 27 - bitmaps_xpm/resize_sheet.xpm | 39 - bitmaps_xpm/right.xpm | 49 - bitmaps_xpm/rotate_ccw.xpm | 112 - bitmaps_xpm/rotate_cw.xpm | 116 - bitmaps_xpm/rotate_field.xpm | 100 - bitmaps_xpm/rotate_glabel.xpm | 115 - bitmaps_xpm/rotate_module_neg.xpm | 113 - bitmaps_xpm/rotate_module_pos.xpm | 101 - bitmaps_xpm/rotate_neg_x.xpm | 32 - bitmaps_xpm/rotate_neg_y.xpm | 32 - bitmaps_xpm/rotate_neg_z.xpm | 32 - bitmaps_xpm/rotate_pin.xpm | 96 - bitmaps_xpm/rotate_pos_x.xpm | 32 - bitmaps_xpm/rotate_pos_y.xpm | 32 - bitmaps_xpm/rotate_pos_z.xpm | 32 - bitmaps_xpm/save.xpm | 107 - bitmaps_xpm/save_as.xpm | 135 - bitmaps_xpm/save_library.xpm | 123 - bitmaps_xpm/save_netlist.xpm | 115 - bitmaps_xpm/save_project.xpm | 87 - bitmaps_xpm/save_setup.xpm | 98 - bitmaps_xpm/schematic.xpm | 35 - bitmaps_xpm/select_grid.xpm | 30 - bitmaps_xpm/select_layer_pair.xpm | 99 - bitmaps_xpm/select_w_layer.xpm | 48 - bitmaps_xpm/shape_3d.xpm | 33 - bitmaps_xpm/sheetset.xpm | 31 - bitmaps_xpm/show_footprint.xpm | 38 - bitmaps_xpm/show_zone.xpm | 95 - bitmaps_xpm/show_zone_disable.xpm | 96 - bitmaps_xpm/show_zone_outline_only.xpm | 95 - bitmaps_xpm/showdcode.xpm | 31 - bitmaps_xpm/showmodedge.xpm | 29 - bitmaps_xpm/showtrack.xpm | 30 - bitmaps_xpm/sources/Add_Cotation.svg | 2903 -- bitmaps_xpm/sources/Add_HLabel.svg | 152 - bitmaps_xpm/sources/Add_Junction.svg | 169 - bitmaps_xpm/sources/Add_Label.svg | 154 - bitmaps_xpm/sources/Add_Pin.svg | 387 - bitmaps_xpm/sources/Add_Text.svg | 195 - bitmaps_xpm/sources/BOM.svg | 512 - bitmaps_xpm/sources/Enter_Sheet.svg | 224 - bitmaps_xpm/sources/Export.svg | 181 - bitmaps_xpm/sources/Move.svg | 180 - bitmaps_xpm/sources/New_Project.svg | 213 - bitmaps_xpm/sources/Plot.svg | 212 - bitmaps_xpm/sources/Plot_HPG.svg | 204 - bitmaps_xpm/sources/Plot_PS.svg | 200 - bitmaps_xpm/sources/Polar_Coord.svg | 1713 -- bitmaps_xpm/sources/RotateHLabel.svg | 1323 - bitmaps_xpm/sources/Rotate_CCW.svg | 255 - bitmaps_xpm/sources/Rotate_CW.svg | 269 - bitmaps_xpm/sources/addCompo.svg | 177 - bitmaps_xpm/sources/addVCC.svg | 155 - bitmaps_xpm/sources/annotate_down_right.svg | 169 - bitmaps_xpm/sources/annotate_right_down.svg | 169 - bitmaps_xpm/sources/copyComponent.svg | 283 - bitmaps_xpm/sources/datasheet.svg | 2256 -- .../sources/export_footprint_names.svg | 1172 - bitmaps_xpm/sources/fabrication.svg | 371 - bitmaps_xpm/sources/gbr_select_mode0.svg | 325 - bitmaps_xpm/sources/gbr_select_mode1.svg | 325 - bitmaps_xpm/sources/gbr_select_mode2.svg | 252 - bitmaps_xpm/sources/gerber_file.svg | 387 - .../sources/gerber_open_dcode_file.svg | 157 - bitmaps_xpm/sources/gerber_recent_files.svg | 2463 -- bitmaps_xpm/sources/gerbview_clear_layers.svg | 554 - bitmaps_xpm/sources/gerbview_drill_file.svg | 281 - bitmaps_xpm/sources/gerbview_icon.svg | 25203 ---------------- bitmaps_xpm/sources/image.svg | 2884 -- bitmaps_xpm/sources/import_GLabel.svg | 261 - .../sources/import_footprint_names.svg | 1172 - bitmaps_xpm/sources/layers_manager.svg | 422 - .../sources/load_component_from_lib.svg | 217 - bitmaps_xpm/sources/logos_32.svg | 2268 -- bitmaps_xpm/sources/new_component.svg | 182 - bitmaps_xpm/sources/open_document.svg | 592 - bitmaps_xpm/sources/pads_mask_layers.svg | 124 - bitmaps_xpm/sources/pin2pin.svg | 3093 -- bitmaps_xpm/sources/show_footprint.svg | 2535 -- bitmaps_xpm/sources/window_close.svg | 306 - bitmaps_xpm/sources/zoom.svg | 794 - bitmaps_xpm/sources/zoom_area.svg | 911 - bitmaps_xpm/sources/zoom_center_on_screen.svg | 803 - bitmaps_xpm/sources/zoom_fit_in_page.svg | 945 - bitmaps_xpm/sources/zoom_in.svg | 703 - bitmaps_xpm/sources/zoom_out.svg | 635 - bitmaps_xpm/sources/zoom_selection.svg | 805 - bitmaps_xpm/swap_layer.xpm | 30 - bitmaps_xpm/text_sketch.xpm | 26 - bitmaps_xpm/three_d.xpm | 28 - bitmaps_xpm/tool_ratsnest.xpm | 77 - bitmaps_xpm/tools.xpm | 25 - bitmaps_xpm/track_locked.xpm | 113 - bitmaps_xpm/track_sketch.xpm | 29 - bitmaps_xpm/track_unlocked.xpm | 105 - bitmaps_xpm/transistor.xpm | 41 - bitmaps_xpm/treensel.xpm | 35 - bitmaps_xpm/treesel.xpm | 33 - bitmaps_xpm/undelete.xpm | 117 - bitmaps_xpm/undo.xpm | 79 - bitmaps_xpm/unit_inch.xpm | 43 - bitmaps_xpm/unit_mm.xpm | 47 - bitmaps_xpm/unknown.xpm | 73 - bitmaps_xpm/unlocked.xpm | 112 - bitmaps_xpm/unzip.xpm | 40 - bitmaps_xpm/up.xpm | 50 - bitmaps_xpm/update_module_board.xpm | 105 - bitmaps_xpm/via_sketch.xpm | 29 - bitmaps_xpm/viewlibs_icon.xpm | 385 - bitmaps_xpm/web_support.xpm | 166 - bitmaps_xpm/width_net.xpm | 30 - bitmaps_xpm/width_segment.xpm | 27 - bitmaps_xpm/width_track.xpm | 33 - bitmaps_xpm/width_track_via.xpm | 34 - bitmaps_xpm/width_vias.xpm | 29 - bitmaps_xpm/window_close.xpm | 38 - bitmaps_xpm/zip.xpm | 40 - bitmaps_xpm/zip_tool.xpm | 41 - bitmaps_xpm/zoom.xpm | 38 - bitmaps_xpm/zoom_area.xpm | 38 - bitmaps_xpm/zoom_auto.xpm | 38 - bitmaps_xpm/zoom_center_on_screen.xpm | 38 - bitmaps_xpm/zoom_fit_in_page.xpm | 38 - bitmaps_xpm/zoom_in.xpm | 38 - bitmaps_xpm/zoom_out.xpm | 38 - bitmaps_xpm/zoom_redraw.xpm | 38 - bitmaps_xpm/zoom_selection.xpm | 38 - common/basicframe.cpp | 7 - common/bitmap.cpp | 19 - cvpcb/cvpcb.rc | 4 - eeschema/eeschema.rc | 4 - gerbview/gerbview.rc | 4 - include/bitmaps.h | 13 - kicad/kicad.rc | 4 - pcb_calculator/pcb_calculator.rc | 4 - pcbnew/pcbnew.rc | 4 - 495 files changed, 1 insertion(+), 94365 deletions(-) delete mode 100644 bitmaps_xpm/CMakeLists.txt delete mode 100644 bitmaps_xpm/add_arc.xpm delete mode 100644 bitmaps_xpm/add_bus.xpm delete mode 100644 bitmaps_xpm/add_bus2bus.xpm delete mode 100644 bitmaps_xpm/add_circle.xpm delete mode 100644 bitmaps_xpm/add_component.xpm delete mode 100644 bitmaps_xpm/add_corner.xpm delete mode 100644 bitmaps_xpm/add_dashed_line.xpm delete mode 100644 bitmaps_xpm/add_dimension.xpm delete mode 100644 bitmaps_xpm/add_entry.xpm delete mode 100644 bitmaps_xpm/add_glabel.xpm delete mode 100644 bitmaps_xpm/add_hierar_pin.xpm delete mode 100644 bitmaps_xpm/add_hierar_subsheet.xpm delete mode 100644 bitmaps_xpm/add_hierarchical_label.xpm delete mode 100644 bitmaps_xpm/add_junction.xpm delete mode 100644 bitmaps_xpm/add_line.xpm delete mode 100644 bitmaps_xpm/add_line2bus.xpm delete mode 100644 bitmaps_xpm/add_line_label.xpm delete mode 100644 bitmaps_xpm/add_mires.xpm delete mode 100644 bitmaps_xpm/add_polygon.xpm delete mode 100644 bitmaps_xpm/add_power.xpm delete mode 100644 bitmaps_xpm/add_rectangle.xpm delete mode 100644 bitmaps_xpm/add_text.xpm delete mode 100644 bitmaps_xpm/add_tracks.xpm delete mode 100644 bitmaps_xpm/add_zone.xpm delete mode 100644 bitmaps_xpm/add_zone_cutout.xpm delete mode 100644 bitmaps_xpm/anchor.xpm delete mode 100644 bitmaps_xpm/annotate.xpm delete mode 100644 bitmaps_xpm/annotate_down_right.xpm delete mode 100644 bitmaps_xpm/annotate_right_down.xpm delete mode 100644 bitmaps_xpm/apply.xpm delete mode 100644 bitmaps_xpm/auto_associe.xpm delete mode 100644 bitmaps_xpm/auto_delete_track.xpm delete mode 100644 bitmaps_xpm/auto_track_width.xpm delete mode 100644 bitmaps_xpm/axis3d.xpm delete mode 100644 bitmaps_xpm/axis3d_back.xpm delete mode 100644 bitmaps_xpm/axis3d_bottom.xpm delete mode 100644 bitmaps_xpm/axis3d_front.xpm delete mode 100644 bitmaps_xpm/axis3d_left.xpm delete mode 100644 bitmaps_xpm/axis3d_right.xpm delete mode 100644 bitmaps_xpm/axis3d_top.xpm delete mode 100644 bitmaps_xpm/bom.xpm delete mode 100644 bitmaps_xpm/book.xpm delete mode 100644 bitmaps_xpm/break_bus.xpm delete mode 100644 bitmaps_xpm/break_line.xpm delete mode 100644 bitmaps_xpm/browse_files.xpm delete mode 100644 bitmaps_xpm/cancel.xpm delete mode 100644 bitmaps_xpm/cancel_tool.xpm delete mode 100644 bitmaps_xpm/checked_ok.xpm delete mode 100644 bitmaps_xpm/component_select_alternate_shape.xpm delete mode 100644 bitmaps_xpm/component_select_unit.xpm delete mode 100644 bitmaps_xpm/config.xpm delete mode 100644 bitmaps_xpm/copper_layers_setup.xpm delete mode 100644 bitmaps_xpm/copy_button.xpm delete mode 100644 bitmaps_xpm/copyblock.xpm delete mode 100644 bitmaps_xpm/copycomponent.xpm delete mode 100644 bitmaps_xpm/create_cmp_file.xpm delete mode 100644 bitmaps_xpm/cursor.xpm delete mode 100644 bitmaps_xpm/cursor_shape.xpm delete mode 100644 bitmaps_xpm/cut_button.xpm delete mode 100644 bitmaps_xpm/cvpcb.xpm delete mode 100644 bitmaps_xpm/dashline.xpm delete mode 100644 bitmaps_xpm/datasheet.xpm delete mode 100644 bitmaps_xpm/delete.xpm delete mode 100644 bitmaps_xpm/delete_arc.xpm delete mode 100644 bitmaps_xpm/delete_association.xpm delete mode 100644 bitmaps_xpm/delete_body.xpm delete mode 100644 bitmaps_xpm/delete_bus.xpm delete mode 100644 bitmaps_xpm/delete_circle.xpm delete mode 100644 bitmaps_xpm/delete_connection.xpm delete mode 100644 bitmaps_xpm/delete_cotation.xpm delete mode 100644 bitmaps_xpm/delete_field.xpm delete mode 100644 bitmaps_xpm/delete_glabel.xpm delete mode 100644 bitmaps_xpm/delete_line.xpm delete mode 100644 bitmaps_xpm/delete_module.xpm delete mode 100644 bitmaps_xpm/delete_net.xpm delete mode 100644 bitmaps_xpm/delete_node.xpm delete mode 100644 bitmaps_xpm/delete_pad.xpm delete mode 100644 bitmaps_xpm/delete_pin.xpm delete mode 100644 bitmaps_xpm/delete_pinsheet.xpm delete mode 100644 bitmaps_xpm/delete_polygon.xpm delete mode 100644 bitmaps_xpm/delete_rectangle.xpm delete mode 100644 bitmaps_xpm/delete_segment.xpm delete mode 100644 bitmaps_xpm/delete_sheet.xpm delete mode 100644 bitmaps_xpm/delete_text.xpm delete mode 100644 bitmaps_xpm/delete_track.xpm delete mode 100644 bitmaps_xpm/directory.xpm delete mode 100644 bitmaps_xpm/display_options.xpm delete mode 100644 bitmaps_xpm/down.xpm delete mode 100644 bitmaps_xpm/drag_module.xpm delete mode 100644 bitmaps_xpm/drag_outline_segment.xpm delete mode 100644 bitmaps_xpm/drag_pad.xpm delete mode 100644 bitmaps_xpm/drag_segment_withslope.xpm delete mode 100644 bitmaps_xpm/drag_track_segment.xpm delete mode 100644 bitmaps_xpm/drc.xpm delete mode 100644 bitmaps_xpm/drc_off.xpm delete mode 100644 bitmaps_xpm/edges_sketch.xpm delete mode 100644 bitmaps_xpm/edit.xpm delete mode 100644 bitmaps_xpm/edit_comp_footprint.xpm delete mode 100644 bitmaps_xpm/edit_comp_ref.xpm delete mode 100644 bitmaps_xpm/edit_comp_value.xpm delete mode 100644 bitmaps_xpm/edit_component.xpm delete mode 100644 bitmaps_xpm/edit_module.xpm delete mode 100644 bitmaps_xpm/edit_part.xpm delete mode 100644 bitmaps_xpm/edit_sheet.xpm delete mode 100644 bitmaps_xpm/edit_text.xpm delete mode 100644 bitmaps_xpm/editor.xpm delete mode 100644 bitmaps_xpm/eeschema.xpm delete mode 100644 bitmaps_xpm/enter_sheet.xpm delete mode 100644 bitmaps_xpm/erc.xpm delete mode 100644 bitmaps_xpm/erc_green.xpm delete mode 100644 bitmaps_xpm/ercerr.xpm delete mode 100644 bitmaps_xpm/ercwarn.xpm delete mode 100644 bitmaps_xpm/exit.xpm delete mode 100644 bitmaps_xpm/export.xpm delete mode 100644 bitmaps_xpm/export_footprint_names.xpm delete mode 100644 bitmaps_xpm/export_module.xpm delete mode 100644 bitmaps_xpm/export_options_pad.xpm delete mode 100644 bitmaps_xpm/fabrication.xpm delete mode 100644 bitmaps_xpm/file_footprint.xpm delete mode 100644 bitmaps_xpm/fill_zone.xpm delete mode 100644 bitmaps_xpm/find_xpm.xpm delete mode 100644 bitmaps_xpm/flag.xpm delete mode 100644 bitmaps_xpm/fonts.xpm delete mode 100644 bitmaps_xpm/footprint_text.xpm delete mode 100644 bitmaps_xpm/gbr_select_mode0.xpm delete mode 100644 bitmaps_xpm/gbr_select_mode1.xpm delete mode 100644 bitmaps_xpm/gbr_select_mode2.xpm delete mode 100644 bitmaps_xpm/general_deletions.xpm delete mode 100644 bitmaps_xpm/general_ratsnet.xpm delete mode 100644 bitmaps_xpm/gerber_file.xpm delete mode 100644 bitmaps_xpm/gerber_open_dcode_file.xpm delete mode 100644 bitmaps_xpm/gerber_recent_files.xpm delete mode 100644 bitmaps_xpm/gerbview_clear_layers.xpm delete mode 100644 bitmaps_xpm/gerbview_drill_file.xpm delete mode 100644 bitmaps_xpm/gl_change.xpm delete mode 100644 bitmaps_xpm/glabel2label.xpm delete mode 100644 bitmaps_xpm/glabel2text.xpm delete mode 100644 bitmaps_xpm/global_options_pad.xpm delete mode 100644 bitmaps_xpm/green.xpm delete mode 100644 bitmaps_xpm/grid.xpm delete mode 100644 bitmaps_xpm/grid_select.xpm delete mode 100644 bitmaps_xpm/grid_select_axis.xpm delete mode 100644 bitmaps_xpm/hammer.xpm delete mode 100644 bitmaps_xpm/help.xpm delete mode 100644 bitmaps_xpm/hidden_pin.xpm delete mode 100644 bitmaps_xpm/hierarchy_cursor.xpm delete mode 100644 bitmaps_xpm/hierarchy_nav.xpm delete mode 100644 bitmaps_xpm/hotkeys.xpm delete mode 100644 bitmaps_xpm/icon_3d.xpm delete mode 100644 bitmaps_xpm/icon_bitmap2component.xpm delete mode 100644 bitmaps_xpm/icon_cvpcb.xpm delete mode 100644 bitmaps_xpm/icon_cvpcb_small.xpm delete mode 100644 bitmaps_xpm/icon_eeschema.xpm delete mode 100644 bitmaps_xpm/icon_gerbview.xpm delete mode 100644 bitmaps_xpm/icon_gerbview_small.xpm delete mode 100644 bitmaps_xpm/icon_kicad.xpm delete mode 100644 bitmaps_xpm/icon_modedit.xpm delete mode 100644 bitmaps_xpm/icon_pcbcalculator.xpm delete mode 100644 bitmaps_xpm/icon_pcbnew.xpm delete mode 100644 bitmaps_xpm/icon_txt.xpm delete mode 100644 bitmaps_xpm/icons/icon_bitmap2component.ico delete mode 100644 bitmaps_xpm/icons/icon_cvpcb.ico delete mode 100644 bitmaps_xpm/icons/icon_eeschema.ico delete mode 100644 bitmaps_xpm/icons/icon_gerbview.ico delete mode 100644 bitmaps_xpm/icons/icon_kicad.ico delete mode 100644 bitmaps_xpm/icons/icon_kicad.png delete mode 100644 bitmaps_xpm/icons/icon_kicad.xpm delete mode 100644 bitmaps_xpm/icons/icon_pcbcalculator.ico delete mode 100644 bitmaps_xpm/icons/icon_pcbnew.ico delete mode 100644 bitmaps_xpm/image.xpm delete mode 100644 bitmaps_xpm/import.xpm delete mode 100644 bitmaps_xpm/import3d.xpm delete mode 100644 bitmaps_xpm/import_cmp_from_lib.xpm delete mode 100644 bitmaps_xpm/import_footprint_names.xpm delete mode 100644 bitmaps_xpm/import_hierarchical_label.xpm delete mode 100644 bitmaps_xpm/import_module.xpm delete mode 100644 bitmaps_xpm/info.xpm delete mode 100644 bitmaps_xpm/insert_module_board.xpm delete mode 100644 bitmaps_xpm/invert_module.xpm delete mode 100644 bitmaps_xpm/invisible_text.xpm delete mode 100644 bitmaps_xpm/jigsaw.xpm delete mode 100644 bitmaps_xpm/kicad_icon_small.xpm delete mode 100644 bitmaps_xpm/label.xpm delete mode 100644 bitmaps_xpm/label2glabel.xpm delete mode 100644 bitmaps_xpm/label2text.xpm delete mode 100644 bitmaps_xpm/lang_catalan.xpm delete mode 100644 bitmaps_xpm/lang_chinese.xpm delete mode 100644 bitmaps_xpm/lang_cs.xpm delete mode 100644 bitmaps_xpm/lang_de.xpm delete mode 100644 bitmaps_xpm/lang_default.xpm delete mode 100644 bitmaps_xpm/lang_en.xpm delete mode 100644 bitmaps_xpm/lang_es.xpm delete mode 100644 bitmaps_xpm/lang_fi.xpm delete mode 100644 bitmaps_xpm/lang_fr.xpm delete mode 100644 bitmaps_xpm/lang_gr.xpm delete mode 100644 bitmaps_xpm/lang_hu.xpm delete mode 100644 bitmaps_xpm/lang_it.xpm delete mode 100644 bitmaps_xpm/lang_jp.xpm delete mode 100644 bitmaps_xpm/lang_ko.xpm delete mode 100644 bitmaps_xpm/lang_nl.xpm delete mode 100644 bitmaps_xpm/lang_pl.xpm delete mode 100644 bitmaps_xpm/lang_pt.xpm delete mode 100644 bitmaps_xpm/lang_ru.xpm delete mode 100644 bitmaps_xpm/lang_sl.xpm delete mode 100644 bitmaps_xpm/language.xpm delete mode 100644 bitmaps_xpm/layers_manager.xpm delete mode 100644 bitmaps_xpm/leave_sheet.xpm delete mode 100644 bitmaps_xpm/left.xpm delete mode 100644 bitmaps_xpm/lib_next.xpm delete mode 100644 bitmaps_xpm/lib_previous.xpm delete mode 100644 bitmaps_xpm/libedit.xpm delete mode 100644 bitmaps_xpm/libedit_icon.xpm delete mode 100644 bitmaps_xpm/libedprt.xpm delete mode 100644 bitmaps_xpm/library.xpm delete mode 100644 bitmaps_xpm/library_browse.xpm delete mode 100644 bitmaps_xpm/library_update.xpm delete mode 100644 bitmaps_xpm/libsavem.xpm delete mode 100644 bitmaps_xpm/libview.xpm delete mode 100644 bitmaps_xpm/lines90.xpm delete mode 100644 bitmaps_xpm/load_module_board.xpm delete mode 100644 bitmaps_xpm/load_module_lib.xpm delete mode 100644 bitmaps_xpm/local_ratsnest.xpm delete mode 100644 bitmaps_xpm/locked.xpm delete mode 100644 bitmaps_xpm/mirepcb.xpm delete mode 100644 bitmaps_xpm/mirror_h.xpm delete mode 100644 bitmaps_xpm/mirror_v.xpm delete mode 100644 bitmaps_xpm/mode_module.xpm delete mode 100644 bitmaps_xpm/mode_track.xpm delete mode 100644 bitmaps_xpm/modedit.xpm delete mode 100644 bitmaps_xpm/modratsnest.xpm delete mode 100644 bitmaps_xpm/modul_edit.xpm delete mode 100644 bitmaps_xpm/module.xpm delete mode 100644 bitmaps_xpm/module_check.xpm delete mode 100644 bitmaps_xpm/module_filtered_list.xpm delete mode 100644 bitmaps_xpm/module_full_list.xpm delete mode 100644 bitmaps_xpm/module_options.xpm delete mode 100644 bitmaps_xpm/module_ratsnest.xpm delete mode 100644 bitmaps_xpm/morgan1.xpm delete mode 100644 bitmaps_xpm/morgan2.xpm delete mode 100644 bitmaps_xpm/move.xpm delete mode 100644 bitmaps_xpm/move_arc.xpm delete mode 100644 bitmaps_xpm/move_circle.xpm delete mode 100644 bitmaps_xpm/move_field.xpm delete mode 100644 bitmaps_xpm/move_glabel.xpm delete mode 100644 bitmaps_xpm/move_line.xpm delete mode 100644 bitmaps_xpm/move_module.xpm delete mode 100644 bitmaps_xpm/move_pad.xpm delete mode 100644 bitmaps_xpm/move_pin.xpm delete mode 100644 bitmaps_xpm/move_pinsheet.xpm delete mode 100644 bitmaps_xpm/move_polygon.xpm delete mode 100644 bitmaps_xpm/move_rectangle.xpm delete mode 100644 bitmaps_xpm/move_sheet.xpm delete mode 100644 bitmaps_xpm/move_text.xpm delete mode 100644 bitmaps_xpm/move_track.xpm delete mode 100644 bitmaps_xpm/move_track_segment.xpm delete mode 100644 bitmaps_xpm/mw_add_gap.xpm delete mode 100644 bitmaps_xpm/mw_add_line.xpm delete mode 100644 bitmaps_xpm/mw_add_shape.xpm delete mode 100644 bitmaps_xpm/mw_add_stub.xpm delete mode 100644 bitmaps_xpm/mw_add_stub_arc.xpm delete mode 100644 bitmaps_xpm/mw_toolbar.xpm delete mode 100644 bitmaps_xpm/net_highlight.xpm delete mode 100644 bitmaps_xpm/net_locked.xpm delete mode 100644 bitmaps_xpm/net_unlocked.xpm delete mode 100644 bitmaps_xpm/netlist.xpm delete mode 100644 bitmaps_xpm/new.xpm delete mode 100644 bitmaps_xpm/new_component.xpm delete mode 100644 bitmaps_xpm/new_cvpcb.xpm delete mode 100644 bitmaps_xpm/new_footprint.xpm delete mode 100644 bitmaps_xpm/new_library.xpm delete mode 100644 bitmaps_xpm/new_module.xpm delete mode 100644 bitmaps_xpm/new_pcb.xpm delete mode 100644 bitmaps_xpm/new_project.xpm delete mode 100644 bitmaps_xpm/new_sch.xpm delete mode 100644 bitmaps_xpm/new_txt.xpm delete mode 100644 bitmaps_xpm/noconn.xpm delete mode 100644 bitmaps_xpm/normal.xpm delete mode 100644 bitmaps_xpm/online_help.xpm delete mode 100644 bitmaps_xpm/open_document.xpm delete mode 100644 bitmaps_xpm/open_library.xpm delete mode 100644 bitmaps_xpm/open_project.xpm delete mode 100644 bitmaps_xpm/opt_show_polygon.xpm delete mode 100644 bitmaps_xpm/options_all_tracks.xpm delete mode 100644 bitmaps_xpm/options_all_tracks_and_vias.xpm delete mode 100644 bitmaps_xpm/options_all_vias.xpm delete mode 100644 bitmaps_xpm/options_arc.xpm delete mode 100644 bitmaps_xpm/options_circle.xpm delete mode 100644 bitmaps_xpm/options_module.xpm delete mode 100644 bitmaps_xpm/options_new_pad.xpm delete mode 100644 bitmaps_xpm/options_pad.xpm delete mode 100644 bitmaps_xpm/options_pin.xpm delete mode 100644 bitmaps_xpm/options_pinsheet.xpm delete mode 100644 bitmaps_xpm/options_rectangle.xpm delete mode 100644 bitmaps_xpm/options_segment.xpm delete mode 100644 bitmaps_xpm/options_text.xpm delete mode 100644 bitmaps_xpm/options_track.xpm delete mode 100644 bitmaps_xpm/options_tracks.xpm delete mode 100644 bitmaps_xpm/options_vias.xpm delete mode 100644 bitmaps_xpm/orient.xpm delete mode 100644 bitmaps_xpm/ortho.xpm delete mode 100644 bitmaps_xpm/pad.xpm delete mode 100644 bitmaps_xpm/pad_sketch.xpm delete mode 100644 bitmaps_xpm/pads_mask_layers.xpm delete mode 100644 bitmaps_xpm/palette.xpm delete mode 100644 bitmaps_xpm/part_properties.xpm delete mode 100644 bitmaps_xpm/paste.xpm delete mode 100644 bitmaps_xpm/pcbnew.xpm delete mode 100644 bitmaps_xpm/pcboffset.xpm delete mode 100644 bitmaps_xpm/pin.xpm delete mode 100644 bitmaps_xpm/pin2pin.xpm delete mode 100644 bitmaps_xpm/pin_name_to.xpm delete mode 100644 bitmaps_xpm/pin_number_to.xpm delete mode 100644 bitmaps_xpm/pin_size_to.xpm delete mode 100644 bitmaps_xpm/pin_to.xpm delete mode 100644 bitmaps_xpm/pinorient_down.xpm delete mode 100644 bitmaps_xpm/pinorient_left.xpm delete mode 100644 bitmaps_xpm/pinorient_right.xpm delete mode 100644 bitmaps_xpm/pinorient_up.xpm delete mode 100644 bitmaps_xpm/pinshape_active_low_input.xpm delete mode 100644 bitmaps_xpm/pinshape_active_low_output.xpm delete mode 100644 bitmaps_xpm/pinshape_clock_active_low.xpm delete mode 100644 bitmaps_xpm/pinshape_clock_fall.xpm delete mode 100644 bitmaps_xpm/pinshape_clock_invert.xpm delete mode 100644 bitmaps_xpm/pinshape_clock_normal.xpm delete mode 100644 bitmaps_xpm/pinshape_invert.xpm delete mode 100644 bitmaps_xpm/pinshape_nonlogic.xpm delete mode 100644 bitmaps_xpm/pinshape_normal.xpm delete mode 100644 bitmaps_xpm/pintype_3states.xpm delete mode 100644 bitmaps_xpm/pintype_bidi.xpm delete mode 100644 bitmaps_xpm/pintype_input.xpm delete mode 100644 bitmaps_xpm/pintype_noconnect.xpm delete mode 100644 bitmaps_xpm/pintype_notspecif.xpm delete mode 100644 bitmaps_xpm/pintype_opencoll.xpm delete mode 100644 bitmaps_xpm/pintype_openemit.xpm delete mode 100644 bitmaps_xpm/pintype_output.xpm delete mode 100644 bitmaps_xpm/pintype_passive.xpm delete mode 100644 bitmaps_xpm/pintype_powerinput.xpm delete mode 100644 bitmaps_xpm/pintype_poweroutput.xpm delete mode 100644 bitmaps_xpm/plot_hpg.xpm delete mode 100644 bitmaps_xpm/plot_ps.xpm delete mode 100644 bitmaps_xpm/plot_xpm.xpm delete mode 100644 bitmaps_xpm/polar.xpm delete mode 100644 bitmaps_xpm/post_compo.xpm delete mode 100644 bitmaps_xpm/post_drill.xpm delete mode 100644 bitmaps_xpm/post_module.xpm delete mode 100644 bitmaps_xpm/preference.xpm delete mode 100644 bitmaps_xpm/print_button.xpm delete mode 100644 bitmaps_xpm/ratsnest.xpm delete mode 100644 bitmaps_xpm/read_setup.xpm delete mode 100644 bitmaps_xpm/red.xpm delete mode 100644 bitmaps_xpm/redo.xpm delete mode 100644 bitmaps_xpm/reload.xpm delete mode 100644 bitmaps_xpm/reload2.xpm delete mode 100644 bitmaps_xpm/reset_text.xpm delete mode 100644 bitmaps_xpm/resize_sheet.xpm delete mode 100644 bitmaps_xpm/right.xpm delete mode 100644 bitmaps_xpm/rotate_ccw.xpm delete mode 100644 bitmaps_xpm/rotate_cw.xpm delete mode 100644 bitmaps_xpm/rotate_field.xpm delete mode 100644 bitmaps_xpm/rotate_glabel.xpm delete mode 100644 bitmaps_xpm/rotate_module_neg.xpm delete mode 100644 bitmaps_xpm/rotate_module_pos.xpm delete mode 100644 bitmaps_xpm/rotate_neg_x.xpm delete mode 100644 bitmaps_xpm/rotate_neg_y.xpm delete mode 100644 bitmaps_xpm/rotate_neg_z.xpm delete mode 100644 bitmaps_xpm/rotate_pin.xpm delete mode 100644 bitmaps_xpm/rotate_pos_x.xpm delete mode 100644 bitmaps_xpm/rotate_pos_y.xpm delete mode 100644 bitmaps_xpm/rotate_pos_z.xpm delete mode 100644 bitmaps_xpm/save.xpm delete mode 100644 bitmaps_xpm/save_as.xpm delete mode 100644 bitmaps_xpm/save_library.xpm delete mode 100644 bitmaps_xpm/save_netlist.xpm delete mode 100644 bitmaps_xpm/save_project.xpm delete mode 100644 bitmaps_xpm/save_setup.xpm delete mode 100644 bitmaps_xpm/schematic.xpm delete mode 100644 bitmaps_xpm/select_grid.xpm delete mode 100644 bitmaps_xpm/select_layer_pair.xpm delete mode 100644 bitmaps_xpm/select_w_layer.xpm delete mode 100644 bitmaps_xpm/shape_3d.xpm delete mode 100644 bitmaps_xpm/sheetset.xpm delete mode 100644 bitmaps_xpm/show_footprint.xpm delete mode 100644 bitmaps_xpm/show_zone.xpm delete mode 100644 bitmaps_xpm/show_zone_disable.xpm delete mode 100644 bitmaps_xpm/show_zone_outline_only.xpm delete mode 100644 bitmaps_xpm/showdcode.xpm delete mode 100644 bitmaps_xpm/showmodedge.xpm delete mode 100644 bitmaps_xpm/showtrack.xpm delete mode 100644 bitmaps_xpm/sources/Add_Cotation.svg delete mode 100644 bitmaps_xpm/sources/Add_HLabel.svg delete mode 100644 bitmaps_xpm/sources/Add_Junction.svg delete mode 100644 bitmaps_xpm/sources/Add_Label.svg delete mode 100644 bitmaps_xpm/sources/Add_Pin.svg delete mode 100644 bitmaps_xpm/sources/Add_Text.svg delete mode 100644 bitmaps_xpm/sources/BOM.svg delete mode 100644 bitmaps_xpm/sources/Enter_Sheet.svg delete mode 100644 bitmaps_xpm/sources/Export.svg delete mode 100644 bitmaps_xpm/sources/Move.svg delete mode 100644 bitmaps_xpm/sources/New_Project.svg delete mode 100644 bitmaps_xpm/sources/Plot.svg delete mode 100644 bitmaps_xpm/sources/Plot_HPG.svg delete mode 100644 bitmaps_xpm/sources/Plot_PS.svg delete mode 100644 bitmaps_xpm/sources/Polar_Coord.svg delete mode 100644 bitmaps_xpm/sources/RotateHLabel.svg delete mode 100644 bitmaps_xpm/sources/Rotate_CCW.svg delete mode 100644 bitmaps_xpm/sources/Rotate_CW.svg delete mode 100644 bitmaps_xpm/sources/addCompo.svg delete mode 100644 bitmaps_xpm/sources/addVCC.svg delete mode 100644 bitmaps_xpm/sources/annotate_down_right.svg delete mode 100644 bitmaps_xpm/sources/annotate_right_down.svg delete mode 100644 bitmaps_xpm/sources/copyComponent.svg delete mode 100644 bitmaps_xpm/sources/datasheet.svg delete mode 100644 bitmaps_xpm/sources/export_footprint_names.svg delete mode 100644 bitmaps_xpm/sources/fabrication.svg delete mode 100644 bitmaps_xpm/sources/gbr_select_mode0.svg delete mode 100644 bitmaps_xpm/sources/gbr_select_mode1.svg delete mode 100644 bitmaps_xpm/sources/gbr_select_mode2.svg delete mode 100644 bitmaps_xpm/sources/gerber_file.svg delete mode 100644 bitmaps_xpm/sources/gerber_open_dcode_file.svg delete mode 100644 bitmaps_xpm/sources/gerber_recent_files.svg delete mode 100644 bitmaps_xpm/sources/gerbview_clear_layers.svg delete mode 100644 bitmaps_xpm/sources/gerbview_drill_file.svg delete mode 100644 bitmaps_xpm/sources/gerbview_icon.svg delete mode 100644 bitmaps_xpm/sources/image.svg delete mode 100644 bitmaps_xpm/sources/import_GLabel.svg delete mode 100644 bitmaps_xpm/sources/import_footprint_names.svg delete mode 100644 bitmaps_xpm/sources/layers_manager.svg delete mode 100644 bitmaps_xpm/sources/load_component_from_lib.svg delete mode 100644 bitmaps_xpm/sources/logos_32.svg delete mode 100644 bitmaps_xpm/sources/new_component.svg delete mode 100644 bitmaps_xpm/sources/open_document.svg delete mode 100644 bitmaps_xpm/sources/pads_mask_layers.svg delete mode 100644 bitmaps_xpm/sources/pin2pin.svg delete mode 100644 bitmaps_xpm/sources/show_footprint.svg delete mode 100644 bitmaps_xpm/sources/window_close.svg delete mode 100644 bitmaps_xpm/sources/zoom.svg delete mode 100644 bitmaps_xpm/sources/zoom_area.svg delete mode 100644 bitmaps_xpm/sources/zoom_center_on_screen.svg delete mode 100644 bitmaps_xpm/sources/zoom_fit_in_page.svg delete mode 100644 bitmaps_xpm/sources/zoom_in.svg delete mode 100644 bitmaps_xpm/sources/zoom_out.svg delete mode 100644 bitmaps_xpm/sources/zoom_selection.svg delete mode 100644 bitmaps_xpm/swap_layer.xpm delete mode 100644 bitmaps_xpm/text_sketch.xpm delete mode 100644 bitmaps_xpm/three_d.xpm delete mode 100644 bitmaps_xpm/tool_ratsnest.xpm delete mode 100644 bitmaps_xpm/tools.xpm delete mode 100644 bitmaps_xpm/track_locked.xpm delete mode 100644 bitmaps_xpm/track_sketch.xpm delete mode 100644 bitmaps_xpm/track_unlocked.xpm delete mode 100644 bitmaps_xpm/transistor.xpm delete mode 100644 bitmaps_xpm/treensel.xpm delete mode 100644 bitmaps_xpm/treesel.xpm delete mode 100644 bitmaps_xpm/undelete.xpm delete mode 100644 bitmaps_xpm/undo.xpm delete mode 100644 bitmaps_xpm/unit_inch.xpm delete mode 100644 bitmaps_xpm/unit_mm.xpm delete mode 100644 bitmaps_xpm/unknown.xpm delete mode 100644 bitmaps_xpm/unlocked.xpm delete mode 100644 bitmaps_xpm/unzip.xpm delete mode 100644 bitmaps_xpm/up.xpm delete mode 100644 bitmaps_xpm/update_module_board.xpm delete mode 100644 bitmaps_xpm/via_sketch.xpm delete mode 100644 bitmaps_xpm/viewlibs_icon.xpm delete mode 100644 bitmaps_xpm/web_support.xpm delete mode 100644 bitmaps_xpm/width_net.xpm delete mode 100644 bitmaps_xpm/width_segment.xpm delete mode 100644 bitmaps_xpm/width_track.xpm delete mode 100644 bitmaps_xpm/width_track_via.xpm delete mode 100644 bitmaps_xpm/width_vias.xpm delete mode 100644 bitmaps_xpm/window_close.xpm delete mode 100644 bitmaps_xpm/zip.xpm delete mode 100644 bitmaps_xpm/zip_tool.xpm delete mode 100644 bitmaps_xpm/zoom.xpm delete mode 100644 bitmaps_xpm/zoom_area.xpm delete mode 100644 bitmaps_xpm/zoom_auto.xpm delete mode 100644 bitmaps_xpm/zoom_center_on_screen.xpm delete mode 100644 bitmaps_xpm/zoom_fit_in_page.xpm delete mode 100644 bitmaps_xpm/zoom_in.xpm delete mode 100644 bitmaps_xpm/zoom_out.xpm delete mode 100644 bitmaps_xpm/zoom_redraw.xpm delete mode 100644 bitmaps_xpm/zoom_selection.xpm diff --git a/CMakeLists.txt b/CMakeLists.txt index fb9418ed11..6e515314b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,8 +20,6 @@ set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules) # reports. # -option(USE_PNG_BITMAPS "use PNG bitmaps instead of XPM (default ON)" ON) - option(USE_NEW_PCBNEW_LOAD "use new plugin support for legacy file format" ON) option(USE_NEW_PCBNEW_SAVE "use new plugin support for legacy file format" ON) option(USE_PCBNEW_NANOMETRES @@ -86,10 +84,6 @@ if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_C_FLAGS_DEBUG "-Wall -g3 -ggdb3 -DDEBUG") set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g3 -ggdb3 -DDEBUG") - if( USE_PNG_BITMAPS ) - #Add -DUSE_PNG_BITMAPS to windres.exe command line - set(CMAKE_RC_COMPILER windres.exe -DUSE_PNG_BITMAPS) - endif( USE_PNG_BITMAPS ) endif(CMAKE_COMPILER_IS_GNUCXX) if(wxUSE_UNICODE) @@ -255,12 +249,7 @@ set(INC_AFTER # Binaries # ############ -if( USE_PNG_BITMAPS ) - add_subdirectory(bitmaps_png) -else() - add_subdirectory(bitmaps_xpm) -endif() - +add_subdirectory(bitmaps_png) add_subdirectory(common) add_subdirectory(3d-viewer) add_subdirectory(cvpcb) diff --git a/CMakeModules/config.h.cmake b/CMakeModules/config.h.cmake index 056d6ac7b7..95c5155d68 100644 --- a/CMakeModules/config.h.cmake +++ b/CMakeModules/config.h.cmake @@ -55,8 +55,6 @@ #cmakedefine USE_IMAGES_IN_MENUS 1 -#cmakedefine USE_PNG_BITMAPS 1 - #cmakedefine USE_NEW_PCBNEW_LOAD #cmakedefine USE_NEW_PCBNEW_SAVE #cmakedefine USE_PCBNEW_NANAMETERS diff --git a/bitmap2component/bitmap2component.rc b/bitmap2component/bitmap2component.rc index 6acd99a63c..37c3b72bef 100644 --- a/bitmap2component/bitmap2component.rc +++ b/bitmap2component/bitmap2component.rc @@ -1,7 +1,3 @@ -#ifdef USE_PNG_BITMAPS icon_bitmap2component ICON "../bitmaps_png/icons/icon_bitmap2component.ico" -#else -icon_bitmap2component ICON "../bitmaps_xpm/icons/icon_bitmap2component.ico" -#endif #include "wx/msw/wx.rc" diff --git a/bitmaps_xpm/CMakeLists.txt b/bitmaps_xpm/CMakeLists.txt deleted file mode 100644 index 61795c0e9d..0000000000 --- a/bitmaps_xpm/CMakeLists.txt +++ /dev/null @@ -1,452 +0,0 @@ -# Generate a static library target named "bitmaps" -# (with filename libbitmaps.a on Linux) - -# Copy the *.xpm files to ${XPM_CPP_PATH}/*.cpp, on change only. -# Compile those *.cpp files and put them into the library, then done. - -# bitmap file names should be all lowercase and basename thereof should also -# be a valid C++ identifier name. This means no leading number, or embedded - or + - -set(BITMAP_SRCS - add_arc.xpm - add_bus2bus.xpm - add_bus.xpm - add_circle.xpm - add_component.xpm - add_corner.xpm - add_dashed_line.xpm - add_dimension.xpm - add_entry.xpm - add_glabel.xpm - add_hierarchical_label.xpm - add_hierar_pin.xpm - add_hierar_subsheet.xpm - add_junction.xpm - add_line2bus.xpm - add_line_label.xpm - add_line.xpm - add_mires.xpm - add_polygon.xpm - add_power.xpm - add_rectangle.xpm - add_text.xpm - add_tracks.xpm - add_zone_cutout.xpm - add_zone.xpm - anchor.xpm - annotate_down_right.xpm - annotate_right_down.xpm - annotate.xpm - apply.xpm - auto_associe.xpm - auto_delete_track.xpm - auto_track_width.xpm - axis3d_back.xpm - axis3d_bottom.xpm - axis3d_front.xpm - axis3d_left.xpm - axis3d_right.xpm - axis3d_top.xpm - axis3d.xpm - bom.xpm - book.xpm - break_bus.xpm - break_line.xpm - browse_files.xpm - cancel_tool.xpm - cancel.xpm - create_cmp_file.xpm - checked_ok.xpm - component_select_unit.xpm - component_select_alternate_shape.xpm - config.xpm - copyblock.xpm - copycomponent.xmp - copy_button.xpm - copper_layers_setup.cpp - cursor_shape.xpm - cursor.xpm - cut_button.xpm - cvpcb.xpm - dashline.xpm - datasheet.xpm - delete_body.xpm - delete_arc.xpm - delete_association.xpm - delete_bus.xpm - delete_circle.xpm - delete_connection.xpm - delete_cotation.xpm - delete_field.xpm - delete_glabel.xpm - delete_line.xpm - delete_module.xpm - delete_net.xpm - delete_node.xpm - delete_pad.xpm - delete_pinsheet.xpm - delete_pin.xpm - delete_polygon.xpm - delete_rectangle.xpm - delete_segment.xpm - delete_sheet.xpm - delete_text.xpm - delete_track.xpm - delete.xpm - directory.xpm - display_options.xpm - down.xpm - drag_module.xpm - drag_outline_segment.xpm - drag_pad.xpm - drag_segment_withslope.xpm - drag_track_segment.xpm - drc_off.xpm - drc.xpm - edges_sketch.xpm - edit_comp_footprint.xpm - edit_component.xpm - edit_comp_ref.xpm - edit_comp_value.xpm - edit_module.xpm - editor.xpm - edit_part.xpm - edit_sheet.xpm - edit_text.xpm - edit.xpm - eeschema.xpm - enter_sheet.xpm - ercerr.xpm - erc_green.xpm - ercwarn.xpm - erc.xpm - exit.xpm - export_footprint_names.xpm - export_module.xpm - export_options_pad.xpm - export.xpm - fabrication.xpm - file_footprint.xpm - fill_zone.xpm - find_xpm.xpm - flag.xpm - fonts.xpmr - footprint_text.xpm - gbr_select_mode0.xpm - gbr_select_mode1.xpm - gbr_select_mode2.xpm - gerber_file.xpm - gerber_recent_files.xpm - gerbview_drill_file.xpm - gerbview_clear_layers.xpm - gerber_open_dcode_file.xpm - general_deletions.xpm - general_ratsnet.xpm - glabel2label.xpm - glabel2text.xpm - gl_change.xpm - global_options_pad.xpm - green.xpm - grid_select.xpm - grid_select_axis.xpm - grid.xpm - hammer.xpm - help.xpm - hidden_pin.xpm - hierarchy_cursor.xpm - hierarchy_nav.xpm - hotkeys.xpm - icon_3d.xpm - icon_cvpcb_small.xpm - icon_cvpcb.xpm - icon_eeschema.xpm - icon_gerbview_small.xpm - icon_gerbview.xpm - icon_kicad.xpm - icon_modedit.xpm - icon_pcbnew.xpm - icon_pcbcalculator.xpm - icon_bitmap2component.xpm - icon_txt.xpm - import3d.xpm - image.xpm - import_cmp_from_lib.xpm - import_footprint_names.xpm - import_hierarchical_label.xpm - import_module.xpm - import.xpm - info.xpm - insert_module_board.xpm - invert_module.xpm - invisible_text.xpm - jigsaw.xpm - kicad_icon_small.xpm - label2glabel.xpm - label2text.xpm - label.xpm - lang_catalan.xpm - lang_chinese.xpm - lang_cs.xpm - lang_default.xpm - lang_de.xpm - lang_en.xpm - lang_es.xpm - lang_fr.xpm - lang_fi.xpm - lang_gr.xpm - lang_hu.xpm - lang_it.xpm - lang_jp.xpm - lang_ko.xpm - lang_nl.xpm - lang_pl.xpm - lang_pt.xpm - lang_ru.xpm - lang_sl.xpm - language.xpm - layers_manager.xpm - leave_sheet.xpm - left.xpm - libedit_icon.xpm - libedit.xpm - libedprt.xpm - lib_next.xpm - lib_previous.xpm - library_browse.xpm - library_update.xpm - library.xpm - libsavem.xpm - libview.xpm - lines90.xpm - load_module_board.xpm - load_module_lib.xpm - local_ratsnest.xpm - locked.xpm - mirepcb.xpm - mirror_h.xpm - mirror_v.xpm - modedit.xpm - mode_module.xpm - mode_track.xpm - modratsnest.xpm - module_check.xpm - modul_edit.xpm - module_filtered_list.xpm - module_full_list.xpm - module_options.xpm -# module_ratsnest.xpm - module.xpm - morgan1.xpm - morgan2.xpm - move_arc.xpm - move_circle.xpm - move_field.xpm - move_glabel.xpm - move_line.xpm - move_module.xpm - move_pad.xpm - move_pinsheet.xpm - move_pin.xpm - move_polygon.xpm - move_rectangle.xpm - move_sheet.xpm - move_text.xpm - move_track_segment.xpm - move_track.xpm - move.xpm - mw_add_gap.xpm - mw_add_line.xpm - mw_add_shape.xpm - mw_add_stub_arc.xpm - mw_add_stub.xpm - mw_toolbar.xpm - net_highlight.xpm - netlist.xpm - net_locked.xpm - net_unlocked.xpm - new_component.xpm - new_cvpcb.xpm - new_footprint.xpm - new_library.xpm - new_module.xpm - new_pcb.xpm - new_project.xpm - new_sch.xpm - new_txt.xpm - new.xpm - noconn.xpm - normal.xpm - online_help.xpm - open_library.xpm - open_project.xpm - open_document.xpm - options_all_tracks_and_vias.xpm - options_all_tracks.xpm - options_all_vias.xpm - options_arc.xpm - options_circle.xpm - options_module.xpm - options_new_pad.xpm - options_pad.xpm - options_pinsheet.xpm - options_pin.xpm - options_rectangle.xpm - options_segment.xpm - options_text.xpm - options_tracks.xpm - options_track.xpm - options_vias.xpm - opt_show_polygon.xpm - orient.xpm - ortho.xpm - pad_sketch.xpm - pad.xpm - pads_mask_layers.xpm - palette.xpm - part_properties.xpm - paste.xpm - pcbnew.xpm - pcboffset.xpm - pin2pin.xpm - pin_name_to.xpm - pin_number_to.xpm - pin_size_to.xpm - pinorient_right.xpm - pinorient_left.xpm - pinorient_up.xpm - pinorient_down.xpm - pinshape_normal.xpm - pinshape_invert.xpm - pinshape_clock_normal.xpm - pinshape_clock_invert.xpm - pinshape_active_low_input.xpm - pinshape_clock_active_low.xpm - pinshape_active_low_output.xpm - pinshape_clock_fall.xpm - pinshape_nonlogic.xpm - pintype_input.xpm - pintype_output.xpm - pintype_bidi.xpm - pintype_3states.xpm - pintype_passive.xpm - pintype_notspecif.xpm - pintype_powerinput.xpm - pintype_poweroutput.xpm - pintype_opencoll.xpm - pintype_openemit.xpm - pintype_noconnect.xpm - pin_to.xpm - pin.xpm - plot_hpg.xpm - plot_ps.xpm - plot_xpm.xpm - polar.xpm - post_compo.xpm - post_drill.xpm - post_module.xpm - preference.xpm - print_button.xpm - ratsnest.xpm - read_setup.xpm - redo.xpm - red.xpm - reload2.xpm - reload.xpm - reset_text.xpm - resize_sheet.xpm - right.xpm - rotate_field.xpm - rotate_glabel.xpm - rotate_module_neg.xpm - rotate_module_pos.xpm - rotate_pin.xpm - rotate_ccw.xpm - rotate_cw.xpm - rotate_neg_x.xpm - rotate_pos_x.xpm - rotate_neg_y.xpm - rotate_pos_y.xpm - rotate_neg_z.xpm - rotate_pos_z.xpm - save_as.xpm - save_library.xpm - save_netlist.xpm - save_project.xpm - save_setup.xpm - save.xpm - schematic.xpm - select_grid.xpm - select_layer_pair.xpm - select_w_layer.xpm - shape_3d.xpm - sheetset.xpm - showdcode.xpm - show_footprint.xpm - showmodedge.xpm - showtrack.xpm - show_zone.xpm - show_zone_disable.xpm - show_zone_outline_only.xpm - swap_layer.xpm - text_sketch.xpm - three_d.xpm - tool_ratsnest.xpm - tools.xpm - track_locked.xpm - track_sketch.xpm - track_unlocked.xpm - transistor.xpm - treensel.xpm - treesel.xpm - undelete.xpm - undo.xpm - unit_inch.xpm - unit_mm.xpm - unknown.xpm - unlocked.xpm - unzip.xpm - update_module_board.xpm - up.xpm - via_sketch.xpm - viewlibs_icon.xpm - web_support.xpm - width_net.xpm - width_segment.xpm - width_track_via.xpm - width_track.xpm - width_vias.xpm - window_close.xpm - zip_tool.xpm - zip.xpm - zoom.xpm - zoom_area.xpm - zoom_fit_in_page.xpm - zoom_center_on_screen.xpm - zoom_in.xpm - zoom_out.xpm - zoom_redraw.xpm - zoom_selection.xpm -) - - -# Get the path of the *.xpm files into "PATH" -set(PATH ${CMAKE_CURRENT_SOURCE_DIR}) -#message("PATH = ${PATH}") - -# The name of the directory to put the copied and renamed *.xpm files into. -# As files are copied they are renamed to *.cpp. -set(XPM_CPP_PATH "${CMAKE_BINARY_DIR}/bitmaps/auto_renamed_to_cpp" - CACHE PATH "path to store renamed .xpm files for compilation") - -foreach(LOOP_VAR ${BITMAP_SRCS}) - get_filename_component(BASENAME ${LOOP_VAR} NAME_WE) - set(CPP_BITMAP "${XPM_CPP_PATH}/${BASENAME}.cpp") - add_custom_command( - OUTPUT ${CPP_BITMAP} - COMMAND "${CMAKE_COMMAND}" -E copy "${PATH}/${BASENAME}.xpm" "${CPP_BITMAP}" - DEPENDS ${BASENAME}.xpm) - list(APPEND CPP_BITMAPS ${CPP_BITMAP}) - set_source_files_properties(${CPP_BITMAP} PROPERTIES COMPILE_FLAGS -DXPMMAIN) -endforeach(LOOP_VAR) - -add_library(bitmaps STATIC ${CPP_BITMAPS}) diff --git a/bitmaps_xpm/add_arc.xpm b/bitmaps_xpm/add_arc.xpm deleted file mode 100644 index 2b4fb7e293..0000000000 --- a/bitmaps_xpm/add_arc.xpm +++ /dev/null @@ -1,75 +0,0 @@ -/* XPM */ - -#include "bitmaps.h" - -#ifndef XPMMAIN -extern const char *add_arc_xpm[]; - -#else -const char * add_arc_xpm[] = { -"16 16 48 1", -" c None", -". c #222224", -"+ c #07071F", -"@ c #000087", -"# c #00009C", -"$ c #00009B", -"% c #474747", -"& c #FEE2CA", -"* c #C59A74", -"= c #000047", -"- c #00009A", -"; c #000095", -"> c #473C33", -", c #FEBB7F", -"' c #C57B3A", -") c #000015", -"! c #000017", -"~ c #00003A", -"{ c #000075", -"] c #000097", -"^ c #000096", -"/ c #211306", -"( c #060300", -"_ c #000000", -": c #000083", -"< c #000094", -"[ c #00008D", -"} c #000090", -"| c #000055", -"1 c #000081", -"2 c #222222", -"3 c #080807", -"4 c #000091", -"5 c #00008B", -"6 c #070300", -"7 c #14141F", -"8 c #12112D", -"9 c #000059", -"0 c #161616", -"a c #F2D7C1", -"b c #F2BD8E", -"c c #120C10", -"d c #161210", -"e c #F2B279", -"f c #F29747", -"g c #130901", -"h c #140B04", -"i c #140900", -" ", -" .+@#$#$ ", -" %&*=$$$$-; ", -" >,')! ~{]$^ ", -" /(_ :$< ", -" [$} ", -" ]$| ", -" -$1 ", -" 23 $4 ", -" %&*_ $; ", -" >,'_ $5 ", -" /6 789 ", -" 0abc ", -" defg ", -" hi_ ", -" "}; -#endif diff --git a/bitmaps_xpm/add_bus.xpm b/bitmaps_xpm/add_bus.xpm deleted file mode 100644 index 8eae84aa84..0000000000 --- a/bitmaps_xpm/add_bus.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_bus_xpm[]; - -#else -const char * add_bus_xpm[] = { -"16 16 4 1", -" c None", -"! c black", -"# c #0046D9", -"$ c #9B9B9B", -" ", -"###### ", -"###### ", -" $$$##$ ", -" ##$ ", -" ##$ ", -" ##$ ", -" ##$ ", -" ##$ ", -" ##$ ", -" ########### ", -" ########### ", -" $$$$$$$$$$", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/add_bus2bus.xpm b/bitmaps_xpm/add_bus2bus.xpm deleted file mode 100644 index 4c759e6876..0000000000 --- a/bitmaps_xpm/add_bus2bus.xpm +++ /dev/null @@ -1,62 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_bus2bus_xpm[]; - -#else -const char * add_bus2bus_xpm[] = { -"16 16 38 1", -" c None", -". c #AFAFFF", -"+ c #9B9B9B", -"@ c #00009A", -"# c #02029B", -"$ c #A4A4CA", -"% c #91919A", -"& c #00009B", -"* c #03039A", -"= c #5F5F9A", -"- c #ACACFD", -"; c #16169B", -"> c #0F0F9B", -", c #7A7A9B", -"' c #A9A9FC", -") c #25259A", -"! c #8C8C9A", -"~ c #AAAAFC", -"{ c #41419A", -"] c #96969A", -"^ c #0D0D9A", -"/ c #909099", -"( c #08089A", -"_ c #A9A9F9", -": c #97979A", -"< c #19199A", -"[ c #01019B", -"} c #A5A5CD", -"| c #AEAEFC", -"1 c #929299", -"2 c #0F0F9A", -"3 c #5D5D9B", -"4 c #18189A", -"5 c #77779B", -"6 c #22229A", -"7 c #898999", -"8 c #3E3E9B", -"9 c #96969B", -" .. ", -" ..+ @....... ", -" ..+ @#.......$", -" ..%@&*=++++++++", -" .-;&>, ", -" .'&)! @....... ", -" .~{]^@#.......$", -" ../@&*=++++++++", -" .-;&>, ", -" .'&)! (........", -" ._{:<[&.......}", -" .|12&*3++++++++", -" ..4&>5 ", -" ..&67 ", -" ..89 ", -" .}+ "}; -#endif diff --git a/bitmaps_xpm/add_circle.xpm b/bitmaps_xpm/add_circle.xpm deleted file mode 100644 index 4f508bc970..0000000000 --- a/bitmaps_xpm/add_circle.xpm +++ /dev/null @@ -1,60 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_circle_xpm[]; - -#else -const char * add_circle_xpm[] = { -"16 16 36 1", -" c None", -". c #00009B", -"+ c #000096", -"@ c #00008C", -"# c #000053", -"$ c #00008A", -"% c #00009A", -"& c #000073", -"* c #00007A", -"= c #000092", -"- c #00006F", -"; c #161616", -"> c #161513", -", c #12122F", -"' c #121125", -") c #F2D7C1", -"! c #F2BD8E", -"~ c #140D08", -"{ c #151519", -"] c #130D07", -"^ c #161210", -"/ c #F2B279", -"( c #F29747", -"_ c #140A01", -": c #151213", -"< c #130901", -"[ c #140B04", -"} c #140900", -"| c #000000", -"1 c #120A18", -"2 c #12080C", -"3 c #00003F", -"4 c #000094", -"5 c #000044", -"6 c #000083", -"7 c #00006A", -" .... ", -" .......+ ", -" ..@# #$.% ", -" ..& *.= ", -" .@ =.- ", -"..# ;> ,' ", -".. ;)!~ {)!] ", -".. ^/(_ :/(< ", -"..# [}| 12| ", -" .$ .@3| ", -" +.* ..4 ", -" %.= ..%5 ", -" =......45 ", -" -64467 ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/add_component.xpm b/bitmaps_xpm/add_component.xpm deleted file mode 100644 index 01bf0b01dd..0000000000 --- a/bitmaps_xpm/add_component.xpm +++ /dev/null @@ -1,91 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_component_xpm[]; - -#else -const char * add_component_xpm[] = { -"16 16 67 1", -" c None", -"! c black", -"# c #D72E2E", -"$ c #D72F2F", -"% c #D62E2E", -"& c #D83434", -"' c #FEFEFF", -"( c #FBFBFF", -") c #F6F6FF", -"* c #F1F1FF", -"+ c #EBE9FC", -", c #E3C3D7", -"- c #DA6C77", -". c #D13838", -"0 c #FF0000", -"1 c #FAFAFF", -"2 c #F5F5FF", -"3 c #F0F0FF", -"4 c #EBEBFF", -"5 c #E6E6FF", -"6 c #E1E1FF", -"7 c #DBDBFF", -"8 c #D6555F", -"9 c #BD5C5C", -": c #9B9B9B", -"; c #F4F4FF", -"< c #EFEFFF", -"= c #EAEAFF", -"> c #E5E5FF", -"? c #E0E0FF", -"@ c #D6D6FF", -"A c #D390AC", -"B c #CB4444", -"C c #E4E4FF", -"D c #DFDFFF", -"E c #DADAFF", -"F c #D5D5FF", -"G c #D0D0FF", -"H c #CCB8E6", -"I c #D73334", -"J c #E9E9FF", -"K c #D4D4FF", -"L c #CFCFFF", -"M c #CACAFF", -"N c #CB8BAF", -"O c #CB4141", -"P c #E3E3FF", -"Q c #DEDEFF", -"R c #D9D9FF", -"S c #C9C9FF", -"T c #C4C4FF", -"U c #D05364", -"V c #B96262", -"W c #9C9C9C", -"X c #DDDDFF", -"Y c #D8D8FF", -"Z c #D3D3FF", -"[ c #CECEFF", -"] c #C9C7FC", -"^ c #C7A8D8", -"_ c #CE647C", -"` c #CD3E3E", -"a c #9E9595", -"b c #D62F2F", -"c c #CC4141", -"d c #BC5C5C", -"e c #9D9595", -" ", -" ", -" ", -" ######$% ", -" &'()*+,-. ", -"0##&123456789 ", -" :&;<=>?7@AB ", -" &<=CDEFGH###0", -" IJCDEKLMNO:::", -" IPQRKLSTUVW ", -"0##IXYZ[]^_`a ", -" :#####bcde: ", -" :::::::: ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/add_corner.xpm b/bitmaps_xpm/add_corner.xpm deleted file mode 100644 index 2f2c69b4a0..0000000000 --- a/bitmaps_xpm/add_corner.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_corner_xpm[]; - -#else -const char * add_corner_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 7 1", -" c None", -"X c #808080", -". c #008000", -"+ c #FFFF00", -"@ c #800000", -"o c #C0C0C0", -"O c #808000", -/* pixels */ -" .XX ", -" .XX ", -" XooO ", -" ooX ", -"..X ooooX ..... ", -"X.XoooooX XXXXXX", -"XX ooo++O XXXXXX", -" X OOO@ X ", -" X X ", -" X.XX ", -" .XX ", -" .XX ", -" .XX ", -" .XX ", -" .XX ", -" XX " -}; -#endif diff --git a/bitmaps_xpm/add_dashed_line.xpm b/bitmaps_xpm/add_dashed_line.xpm deleted file mode 100644 index 603fe6f668..0000000000 --- a/bitmaps_xpm/add_dashed_line.xpm +++ /dev/null @@ -1,39 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_dashed_line_xpm[]; - -#else -const char * add_dashed_line_xpm[] = { -"16 16 15 1", -" c None", -". c #03039B", -"+ c #8E8E9B", -"@ c #00009B", -"# c #1F1F9B", -"$ c #93939B", -"% c #00009A", -"& c #46469A", -"* c #9B9B9B", -"= c #93939A", -"- c #16169A", -"; c #0B0B9B", -"> c #97979B", -", c #1E1E9B", -"' c #91919B", -" ", -" .+ ", -" @#$ ", -" @#$ ", -" @#$ ", -" ", -" %&* ", -" %#= ", -" %#= ", -" -= ", -" ;* ", -" @#> ", -" @#$ ", -" @,$ ", -" ' ", -" "}; -#endif diff --git a/bitmaps_xpm/add_dimension.xpm b/bitmaps_xpm/add_dimension.xpm deleted file mode 100644 index 20515062b7..0000000000 --- a/bitmaps_xpm/add_dimension.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -const char * add_dimension_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 14 1", -" c None", -". c #000000", -"+ c #00009B", -"@ c #000097", -"# c #000099", -"$ c #00008B", -"% c #000095", -"& c #000088", -"* c #000072", -"= c #000066", -"- c #000093", -"; c #00008F", -"> c #000082", -", c #00009C", -" ", -" . . ", -" .. . ", -" .... ", -" . . ", -"+ +@ . . # + ", -"+$@ %+ ", -"+#+++++++++++++ ", -"+&* =-+.", -"+ ;> , + ", -"+ + ", -"+ + ", -"+ + ", -"+ + ", -"+ + ", -" "}; diff --git a/bitmaps_xpm/add_entry.xpm b/bitmaps_xpm/add_entry.xpm deleted file mode 100644 index 92547a3b83..0000000000 --- a/bitmaps_xpm/add_entry.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_entry_xpm[]; - -#else -const char * add_entry_xpm[] = { -"16 16 10 1", -" c None", -". c #006800", -"+ c #006900", -"@ c #6C8B6C", -"# c #9B9B9B", -"$ c #6C8C6C", -"% c #9A9A9A", -"& c #6B8B6B", -"* c #9C9C9C", -"= c #6A8B6A", -" ", -" ", -" . ", -" +@ ", -" +@# ", -" +$% ", -" +$% ", -" +&# ", -" .&* ", -" .&* ", -" .&# ", -" +=# ", -" =# ", -" % ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/add_glabel.xpm b/bitmaps_xpm/add_glabel.xpm deleted file mode 100644 index 40f53896d0..0000000000 --- a/bitmaps_xpm/add_glabel.xpm +++ /dev/null @@ -1,78 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_glabel_xpm[]; - -#else -const char * add_glabel_xpm[] = { -"16 16 54 1", -" c None", -". c #695F00", -"+ c #837E52", -"@ c #6D640F", -"# c #6F6714", -"$ c #706818", -"% c #9C9C9C", -"& c #9191FF", -"* c #9B9BFF", -"= c #A5A5FF", -"- c #857F66", -"; c #746D25", -"> c #827D4F", -", c #7E7841", -"' c #8F8C76", -") c #9E9EFF", -"! c #A8A8FF", -"~ c #B2B2FF", -"{ c #BBBBF9", -"] c #7D7539", -"^ c #7A7437", -"/ c #95948B", -"( c #878460", -"_ c #7D773E", -": c #ACACFF", -"< c #B6B6FF", -"[ c #C0C0FF", -"} c #CACAFF", -"| c #BFBDCC", -"1 c #8C896D", -"2 c #6C6209", -"3 c #989894", -"4 c #B9B9FF", -"5 c #C3C3FF", -"6 c #CECEFF", -"7 c #D5D5F9", -"8 c #847C39", -"9 c #7B7437", -"0 c #9B9B9B", -"a c #797233", -"b c #817C4D", -"c c #756D25", -"d c #898664", -"e c #C7C7FF", -"f c #D1D1FF", -"g c #DBDBFF", -"h c #9B9566", -"i c #999997", -"j c #96958D", -"k c #86825B", -"l c #766F2B", -"m c #706716", -"n c #97968F", -"o c #9A9A9A", -" ", -" ", -" ", -" .. ", -" ...+ ..... ", -" .@#$% .&*=-; ", -" .>,.' .)!~{]^ ", -" ../(._ .:<[}|.1", -" .....23.4567890", -"..abbc.d.efgh;i0", -"..j00k.l....mn0 ", -" o0 0o00000 ", -" ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/add_hierar_pin.xpm b/bitmaps_xpm/add_hierar_pin.xpm deleted file mode 100644 index 33db62effc..0000000000 --- a/bitmaps_xpm/add_hierar_pin.xpm +++ /dev/null @@ -1,61 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_hierar_pin_xpm[]; - -#else -const char * add_hierar_pin_xpm[] = { -"16 16 37 1", -" c None", -"! c black", -"# c white", -"$ c #FDFDFD", -"% c #FCFCFC", -"& c #666666", -"' c #D99300", -"( c #F0F0F0", -") c #707070", -"* c #151515", -"+ c #747474", -", c #4A4A48", -"- c #ECECEC", -". c #EAEAEA", -"0 c #FF0000", -"1 c #D1D1D1", -"2 c #C4C4C4", -"3 c #287C00", -"4 c #EBEBEB", -"5 c #C3C3C3", -"6 c #3CBA00", -"7 c #0D0D0D", -"8 c #C2C2C2", -"9 c #0055F0", -": c #0C0C0C", -"; c #C0C0C0", -"< c #090909", -"= c #BFBFBF", -"> c #060606", -"? c #BEBEBE", -"@ c #040404", -"A c #BDBDBD", -"B c #010101", -"C c #BCBCBC", -"D c #BABABA", -"E c #B8B8B8", -"F c #9F9F9F", -" !!!!!!!!!!!! ", -"!####$$$$$%&'! ", -"!###$((((((&''! ", -"!###$((((((&'''!", -"!#)!!!!****!+,*!", -"!#!----...!0!12!", -"!#!333--44!00!5!", -"!#!6663-44!!!78!", -"!996663399945:;!", -"!#!6663-44945<=!", -"!#!333-444995>?!", -"!#!----444445@A!", -"!#!5552555555BC!", -"!#)!!!!!!!!!!)D!", -"!EEEEEEEEEEEEEF!", -" !!!!!!!!!!!!!! "}; -#endif diff --git a/bitmaps_xpm/add_hierar_subsheet.xpm b/bitmaps_xpm/add_hierar_subsheet.xpm deleted file mode 100644 index 7d88146de3..0000000000 --- a/bitmaps_xpm/add_hierar_subsheet.xpm +++ /dev/null @@ -1,59 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_hierarchical_subsheet_xpm[]; - -#else -const char * add_hierarchical_subsheet_xpm[] = { -"16 16 35 1", -" c None", -"! c black", -"# c white", -"$ c #FDFDFD", -"% c #FCFCFC", -"& c #666666", -"' c #F00000", -"( c #F0F0F0", -") c #707070", -"* c #151515", -"+ c #747474", -", c #4A4A48", -"- c #ECECEC", -". c #EAEAEA", -"0 c #FFCE6C", -"1 c #D1D1D1", -"2 c #C4C4C4", -"3 c #EBEBEB", -"4 c #C3C3C3", -"5 c #0D0D0D", -"6 c #C2C2C2", -"7 c #0C0C0C", -"8 c #C0C0C0", -"9 c #090909", -": c #BFBFBF", -"; c #060606", -"< c #BEBEBE", -"= c #040404", -"> c #BDBDBD", -"? c #010101", -"@ c #BCBCBC", -"A c #BABABA", -"B c #C1C1C1", -"C c #BBBBBB", -"D c #9F9F9F", -" !!!!!!!!!!!! ", -"!####$$$$$%&'! ", -"!###$((((((&''! ", -"!###$((((((&'''!", -"!#)!!!!****!+,*!", -"!#!----...!0!12!", -"!#!-----33!00!4!", -"!#!-----33!!!56!", -"!#!-----3333478!", -"!#!-----333349:!", -"!#!----333334;!", -"!#!4442444444?@!", -"!#)!!!!!!!!!!)A!", -"!###B@@@CCAAAAD!", -" !!!!!!!!!!!!!! "}; -#endif diff --git a/bitmaps_xpm/add_hierarchical_label.xpm b/bitmaps_xpm/add_hierarchical_label.xpm deleted file mode 100644 index 911c81edd6..0000000000 --- a/bitmaps_xpm/add_hierarchical_label.xpm +++ /dev/null @@ -1,75 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_hierarchical_label_xpm[]; - -#else -const char *add_hierarchical_label_xpm[]={ -"16 16 51 1", -"c c None", -"# c None", -"b c #303030", -"e c #695f00", -"G c #6c6209", -"g c #6d640f", -"h c #6f6714", -"V c #706716", -"i c #706818", -"o c #746d25", -"O c #756d25", -"U c #766f2b", -"x c #7a7437", -"M c #7b7437", -"w c #7d7539", -"z c #7d773e", -". c #800080", -"f c #837e52", -"L c #847c39", -"n c #857f66", -"P c #898664", -"F c #8c896d", -"r c #8f8c76", -"k c #9191ff", -"q c #97968f", -"H c #989894", -"T c #999997", -"W c #9a9a9a", -"N c #9b9566", -"p c #9b9b9b", -"l c #9b9bff", -"j c #9c9c9c", -"s c #9e9eff", -"m c #a5a5ff", -"t c #a8a8ff", -"A c #acacff", -"u c #b2b2ff", -"B c #b6b6ff", -"I c #b9b9ff", -"v c #bbbbf9", -"E c #bfbdcc", -"C c #c0c0ff", -"J c #c3c3ff", -"Q c #c7c7ff", -"D c #cacaff", -"y c #ceceff", -"R c #d1d1ff", -"K c #d5d5f9", -"S c #dbdbff", -"d c #dcdcdc", -"a c #ffffff", -".....###########", -"aaab..c#########", -"aaabd..c########", -"aaabdd..########", -"aaabbbb.########", -"aaaeedd.########", -"aaeeefd.eeeee###", -"aaeghij.eklmno##", -"aaepqer.estuvwx#", -"aeeyyez.eABCDEeF", -"aeeeeeGHeIJyKLMp", -"eeNNNOePeQRSNoTp", -"eeyyyyeUeeeeVqp#", -"ddddddd.Wppppp##", -"ddddddd.########", -"........########"}; -#endif diff --git a/bitmaps_xpm/add_junction.xpm b/bitmaps_xpm/add_junction.xpm deleted file mode 100644 index 818da15017..0000000000 --- a/bitmaps_xpm/add_junction.xpm +++ /dev/null @@ -1,84 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_junction_xpm[]; - -#else -const char * add_junction_xpm[] = { -"16 16 60 1", -" c None", -". c #007D00", -"+ c #4D8B4D", -"@ c #9B9B9B", -"# c #000000", -"$ c #000700", -"% c #0A130A", -"& c #282828", -"* c #222222", -"= c #868483", -"- c #E1D5CA", -"; c #B7A595", -"> c #564A3F", -", c #080707", -"' c #151515", -") c #EAE2DB", -"! c #FFEBDA", -"~ c #FFE0C5", -"{ c #FFD5B1", -"] c #FFCA9C", -"^ c #806044", -"/ c #004C00", -"( c #645F59", -"_ c #FFE6CF", -": c #FFDBBB", -"< c #FFD0A6", -"[ c #FFC591", -"} c #FFBA7D", -"| c #E49C5D", -"1 c #000D00", -"2 c #2F552F", -"3 c #64584D", -"4 c #FFD5B0", -"5 c #FFCA9B", -"6 c #FFBF87", -"7 c #FFB472", -"8 c #FFA95D", -"9 c #E48D41", -"0 c #080F08", -"a c #757575", -"b c #16120F", -"c c #EAB485", -"d c #FFB97C", -"e c #FFAF67", -"f c #FFA453", -"g c #FF993E", -"h c #804715", -"i c #3A3A3A", -"j c #414141", -"k c #22180F", -"l c #865931", -"m c #E18B40", -"n c #B76925", -"o c #562E0A", -"p c #131110", -"q c #8E8E8E", -"r c #686868", -"s c #242424", -"t c #3F3F3F", -"u c #909090", -" .. ", -" .+@ ", -" .+@ ", -" #$%& ", -" *=-;>, ", -" ')!~{]^* ", -".../(_:<[}|1... ", -".++234567890+++@", -" @@abcdefghi@@@@", -" jklmnopq ", -" rs$%tu ", -" @.+@ ", -" .+@ ", -" .+@ ", -" .+@ ", -" @@ "}; -#endif diff --git a/bitmaps_xpm/add_line.xpm b/bitmaps_xpm/add_line.xpm deleted file mode 100644 index 0090806970..0000000000 --- a/bitmaps_xpm/add_line.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_line_xpm[]; - -#else -const char * add_line_xpm[] = { -"16 16 3 1", -" c None", -". c #006900", -"+ c #9B9B9B", -" ", -" ", -"...... ", -" ++++.+ ", -" .+ ", -" .+ ", -" .+ ", -" .+ ", -" .+ ", -" .+ ", -" .+ ", -" .......... ", -" ++++++++++", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/add_line2bus.xpm b/bitmaps_xpm/add_line2bus.xpm deleted file mode 100644 index f9b1e5d0e7..0000000000 --- a/bitmaps_xpm/add_line2bus.xpm +++ /dev/null @@ -1,55 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_line2bus_xpm[]; - -#else -const char * add_line2bus_xpm[] = { -"16 16 31 1", -" c None", -"! c black", -"# c #9B9BFF", -"$ c #006900", -"% c #95F400", -"& c #9B9B9B", -"' c #397B39", -"( c #026902", -") c #437E43", -"* c #FFFBF0", -"+ c #879487", -", c #046A04", -"- c #498049", -". c #788F78", -"0 c #126F12", -"1 c #4C814C", -"2 c #006800", -"3 c #397C39", -"4 c #4D814D", -"5 c #437F43", -"6 c #126E12", -"7 c #387B38", -"8 c #9A9A9A", -"9 c #4D824D", -": c #016901", -"; c #427E42", -"< c #488048", -"= c #799079", -"> c #4B814B", -"? c #869386", -"@ c #9B9BCD", -" ## $%%%%%%%%", -" ##& $'&&&&&&&&", -" ##& ()&********", -" ##+,-.$%%%%%%%%", -" ##01.23&&&&&&&&", -" ##4.(5&********", -" ##+,-.$%%%%%%%%", -" ##61.278&&&&&&&", -" ##9.:;&********", -" ##+,<=$%%%%%%%%", -" ##6>=23&&&&&&&&", -" ##9=(5& ", -" ##?,-& ", -" ##61& ", -" ##9& ", -" #@& "}; -#endif diff --git a/bitmaps_xpm/add_line_label.xpm b/bitmaps_xpm/add_line_label.xpm deleted file mode 100644 index 037e985be3..0000000000 --- a/bitmaps_xpm/add_line_label.xpm +++ /dev/null @@ -1,48 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_line_label_xpm[]; - -#else -const char * add_line_label_xpm[] = { -"16 16 24 1", -" c None", -". c #000000", -"+ c #020202", -"@ c #8D8D8D", -"# c #202020", -"$ c #555555", -"% c #9A9A9A", -"& c #8C8C8C", -"* c #080808", -"= c #161616", -"- c #9B9B9B", -"; c #131313", -"> c #969696", -", c #212121", -"' c #7C7C7C", -") c #414141", -"! c #515151", -"~ c #525252", -"{ c #070707", -"] c #0B0B0B", -"^ c #979797", -"/ c #1F1F1F", -"( c #6B6B6B", -"_ c #009B00", -" ", -" ..+ ", -" ..+@ ", -" .#.$% ", -" ..&*=- ", -" .;>,.' ", -" ......)- ", -" ..!~~{]^ ", -" ./-% #+( ", -" -- -- ", -" ", -"________________", -"________________", -"----------------", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/add_mires.xpm b/bitmaps_xpm/add_mires.xpm deleted file mode 100644 index 789b87b209..0000000000 --- a/bitmaps_xpm/add_mires.xpm +++ /dev/null @@ -1,88 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* add_mires_xpm[]; -#else -const char * add_mires_xpm[] = { -"16 16 64 1", -" c None", -"! c black", -"# c #1F1F1F", -"$ c #414141", -"% c #C4BD94", -"& c #F2EFC1", -"' c #A9A9A9", -"( c #939288", -") c #6C6642", -"* c #4B4B4B", -"+ c #E8DDA6", -", c #FFF8B5", -"- c #FFF8B3", -". c #949494", -"0 c #929292", -"1 c #8F8F8F", -"2 c #635E45", -"3 c #BDB384", -"4 c #FFF39E", -"5 c #FFF49D", -"6 c #FFF49C", -"7 c #7B7B7B", -"8 c #797979", -"9 c #767676", -": c #6C6C6C", -"; c #3F3606", -"< c #E8D97C", -"= c #FFEF86", -"> c #FFEF85", -"? c #FFEF83", -"@ c #626262", -"A c #5F5F5F", -"B c #5D5D5D", -"C c #545454", -"D c #201C04", -"E c #282827", -"F c #505050", -"G c #4E4E4E", -"H c #494949", -"I c #464646", -"J c #444444", -"K c #020200", -"L c #201B03", -"M c #141414", -"N c #292929", -"O c #313131", -"P c #2E2E2E", -"Q c #FFDF3C", -"R c #FFDA26", -"S c #FFD615", -"T c #D9B611", -"U c #3F3504", -"V c #FFD513", -"W c #FFD410", -"X c #FFD20C", -"Y c #7F6907", -"Z c #2D2502", -"[ c #FFD009", -"] c #FFCF07", -"^ c #AE8F08", -"_ c #3F3403", -"` c #201A00", -"a c #D9B005", -"b c #7F6806", -" # ", -" # ", -" !!#!! ", -" $%&'()! ", -" *+,-.012! ", -" !3456789:;! ", -" !<=>?@ABCD! ", -"##!EFG*HIJ#K!## ", -" !LMNOPQRST! ", -" !U!!!!VWXY! ", -" !Z!!![]^! ", -" !_`Kab! ", -" !!#!! ", -" # ", -" # ", -" "}; - -#endif diff --git a/bitmaps_xpm/add_polygon.xpm b/bitmaps_xpm/add_polygon.xpm deleted file mode 100644 index 799d936acc..0000000000 --- a/bitmaps_xpm/add_polygon.xpm +++ /dev/null @@ -1,78 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_polygon_xpm[]; - -#else -const char * add_polygon_xpm[] = { -"16 16 54 1", -" c None", -". c #161616", -"+ c #161513", -"@ c #080808", -"# c #222222", -"$ c #F2D7C0", -"% c #F2BC8E", -"& c #120C24", -"* c #00009B", -"= c #000047", -"- c #C5C4C4", -"; c #FEE2CA", -"> c #46372A", -", c #16120F", -"' c #F2B279", -") c #F29647", -"! c #12091F", -"~ c #C5A68C", -"{ c #FEBB7F", -"] c #462B17", -"^ c #000033", -"/ c #140C04", -"( c #130900", -"_ c #000000", -": c #070402", -"< c #1F1211", -"[ c #00005E", -"} c #000091", -"| c #00008C", -"1 c #00009A", -"2 c #00005F", -"3 c #000040", -"4 c #858484", -"5 c #857D75", -"6 c #26262B", -"7 c #FFE3CB", -"8 c #FFC796", -"9 c #25190E", -"0 c #856243", -"a c #855327", -"b c #00006E", -"c c #12122F", -"d c #12112D", -"e c #F2D7C1", -"f c #F2BD8E", -"g c #130D07", -"h c #161210", -"i c #F29747", -"j c #12091E", -"k c #120F2A", -"l c #130901", -"m c #140B04", -"n c #130800", -"o c #130A04", -" .+ @# ", -".$%&**=-;> ", -",')!**=~{]^ ", -" /(__ :<[} ", -" |12 ", -" 345_ ", -" 6789 ", -" _0a_ ", -" bb_ ", -" ** ", -" ** ", -" .+ cd_ ", -" .ef&*****cefg ", -" h'ij*****k'il ", -" mn__ _on_ ", -" "}; -#endif diff --git a/bitmaps_xpm/add_power.xpm b/bitmaps_xpm/add_power.xpm deleted file mode 100644 index c570578285..0000000000 --- a/bitmaps_xpm/add_power.xpm +++ /dev/null @@ -1,50 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_power_xpm[]; - -#else -const char * add_power_xpm[] = { -"16 16 26 1", -" c None", -". c #D72D2D", -"+ c #E88B8B", -"@ c #ECDBE9", -"# c #D87B8B", -"$ c #C54C4C", -"% c #DCDCFF", -"& c #CAB9E9", -"* c #D13838", -"= c #9A9A9A", -"- c #C76A8B", -"; c #BE5959", -"> c #9B9B9B", -", c #D72E2E", -"' c #A18E8E", -") c #C35252", -"! c #DC4848", -"~ c #EFDAE5", -"{ c #E5E5FF", -"] c #D6C1E5", -"^ c #D54148", -"/ c #B96464", -"( c #D74348", -"_ c #CCA2CB", -": c #D33F48", -"< c #B37070", -" ", -" ... ", -" .+@#$ ", -" .@%&*= ", -" .#&-;> ", -" $,;'= ", -" ,>= ", -" ,> ", -" ,> ", -" > ", -" ,,,,,,,,, ", -" )!~{]^/>> ", -" )(_:/>> ", -" ),/>> ", -" <>> ", -" "}; -#endif diff --git a/bitmaps_xpm/add_rectangle.xpm b/bitmaps_xpm/add_rectangle.xpm deleted file mode 100644 index 4ad115b8a6..0000000000 --- a/bitmaps_xpm/add_rectangle.xpm +++ /dev/null @@ -1,48 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_rectangle_xpm[]; - -#else -const char * add_rectangle_xpm[] = { -"16 16 24 1", -" c None", -". c #161616", -"+ c #161513", -"@ c #F2D7C0", -"# c #F2BC8E", -"$ c #120C24", -"% c #00009B", -"& c #16120F", -"* c #F2B279", -"= c #F29647", -"- c #12091F", -"; c #120A21", -"> c #12081D", -", c #000000", -"' c #12122F", -") c #12112D", -"! c #F2D7C1", -"~ c #F2BD8E", -"{ c #130D07", -"] c #120F2A", -"^ c #F29747", -"/ c #130901", -"( c #130A04", -"_ c #130800", -" .+ ", -".@#$%%%%%%%%%% ", -"&*=-%%%%%%%%%% ", -" ;>,, %% ", -" %%, %% ", -" %% %% ", -" %% %% ", -" %% %% ", -" %% %% ", -" %% %% ", -" %% %% ", -" %% '), ", -" %%%%%%%%%%'!~{ ", -" %%%%%%%%%%]*^/ ", -" ,(_, ", -" "}; -#endif diff --git a/bitmaps_xpm/add_text.xpm b/bitmaps_xpm/add_text.xpm deleted file mode 100644 index e12c5f5740..0000000000 --- a/bitmaps_xpm/add_text.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_text_xpm[]; - -#else -const char * add_text_xpm[] = { -"16 16 4 1", -" c None", -". c #00009B", -"+ c #000098", -"@ c #00005D", -" .............. ", -" .............. ", -" .+ .... +. ", -" .@ .... . ", -" .... ", -" .... ", -" .... ", -" .... ", -" .... ", -" .... ", -" .... ", -" .... ", -" .... ", -" .....+ ", -" ........ ", -" "}; -#endif diff --git a/bitmaps_xpm/add_tracks.xpm b/bitmaps_xpm/add_tracks.xpm deleted file mode 100644 index 51266ed602..0000000000 --- a/bitmaps_xpm/add_tracks.xpm +++ /dev/null @@ -1,41 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_tracks_xpm[]; - -#else -const char * add_tracks_xpm[] = { -"16 16 16 1", -" c None", -". c #007D00", -"+ c #006100", -"@ c #004400", -"# c #007800", -"$ c #007B00", -"% c #004000", -"& c #007C00", -"* c #006500", -"= c #007A00", -"- c #004600", -"; c #D72E2E", -"> c #A32222", -", c #C22929", -"' c #D22D2D", -") c #6D1717", -" ", -"........ ", -"........+ ", -" @.# ", -" $.% ", -" &.* ", -" .= ", -" $.- ", -" ;;; ........", -" ;;;;; .......", -";;> >;, ", -";; ;' ", -";;> ;;, ", -" ;;;;;) ", -" ,',) ", -" "}; - -#endif diff --git a/bitmaps_xpm/add_zone.xpm b/bitmaps_xpm/add_zone.xpm deleted file mode 100644 index 7d21a6178a..0000000000 --- a/bitmaps_xpm/add_zone.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_zone_xpm[]; - -#else -const char * add_zone_xpm[] = { -"16 16 3 1", -" c None", -". c #007D00", -"+ c #007E00", -"................", -".... ........", -"... .......", -".. ++ .....", -". .... ...", -". +. ..... ..", -". +. ...... ..", -". .... .. .", -".. ++ .. ", -"... .. ... ", -".... .... ...", -"............ ..", -"............. .", -".............. .", -"............... ", -"............... "}; -#endif diff --git a/bitmaps_xpm/add_zone_cutout.xpm b/bitmaps_xpm/add_zone_cutout.xpm deleted file mode 100644 index e43107c116..0000000000 --- a/bitmaps_xpm/add_zone_cutout.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *add_zone_cutout_xpm[]; - -#else -const char * add_zone_cutout_xpm[] = { -"16 16 3 1", -" c None", -". c #007D00", -"+ c #900000", -" ..............", -".... ........", -"... ++++ .......", -".. +++++++ .....", -". ++ ++ ...", -". ++ ++ ..", -". ++ ++ ..", -". ++ ++ .", -".. ++++++++++ ..", -"... +++++++ ... ", -".... .... ", -"............ ", -"............. ", -".............. ", -" ............. ", -" ............ "}; -#endif diff --git a/bitmaps_xpm/anchor.xpm b/bitmaps_xpm/anchor.xpm deleted file mode 100644 index 3c4b3a3c06..0000000000 --- a/bitmaps_xpm/anchor.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *anchor_xpm[]; - -#else -const char * anchor_xpm[] = { -"16 16 2 1", -" c None", -". c #000000", -" .. ", -" .... ", -" .. .. ", -" .. .. ", -" .... ", -" ............ ", -" ........... ", -" .. ", -". .. .", -".. .. ..", -".. .. ..", -".. .. ..", -". .. .... . .", -" ............ ", -" .......... ", -" ...... "}; -#endif diff --git a/bitmaps_xpm/annotate.xpm b/bitmaps_xpm/annotate.xpm deleted file mode 100644 index fbbce6d4a3..0000000000 --- a/bitmaps_xpm/annotate.xpm +++ /dev/null @@ -1,118 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *annotate_xpm[]; - -#else -const char *annotate_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 93 2", -" c None", -". c #000000", -"+ c #080808", -"@ c #B0B0B0", -"# c #1B1B1C", -"$ c #161616", -"% c #FBFBFF", -"& c #EAEAF3", -"* c #69696F", -"= c #0A0A0A", -"- c #F7F7FF", -"; c #F3F3FF", -"> c #EEEEFF", -", c #BBBBCC", -"' c #2E2E33", -") c #9B9B9B", -"! c #F4F4FF", -"~ c #EFEFFF", -"{ c #EBEBFF", -"] c #E6E6FF", -"^ c #DFDFFC", -"/ c #7D7D90", -"( c #111113", -"_ c #F0F0FF", -": c #ECECFF", -"< c #E7E7FF", -"[ c #C5C5DD", -"} c #0C0C0E", -"| c #9999B6", -"1 c #000001", -"2 c #DCDBD9", -"3 c #050506", -"4 c #0F0F0F", -"5 c #020202", -"6 c #EDEDFF", -"7 c #E8E8FF", -"8 c #E4E4FF", -"9 c #ECECED", -"0 c #B1B1AF", -"a c #0A0A0C", -"b c #474540", -"c c #9E9C95", -"d c #484641", -"e c #010101", -"f c #86857F", -"g c #0C0C0C", -"h c #090909", -"i c #E9E9FF", -"j c #E5E5FF", -"k c #E0E0FF", -"l c #9C9B97", -"m c #8F8E89", -"n c #9D9B94", -"o c #8E8C84", -"p c #95938C", -"q c #807D74", -"r c #E1E1FF", -"s c #DDDDFF", -"t c #8B8BA4", -"u c #020203", -"v c #595854", -"w c #605E57", -"x c #888782", -"y c #76746B", -"z c #E2E2FF", -"A c #D4D4F3", -"B c #43423F", -"C c #272623", -"D c #35332F", -"E c #6C6A62", -"F c #9A9AB0", -"G c #18181C", -"H c #EDEDEC", -"I c #B5B4AE", -"J c #585753", -"K c #201F1D", -"L c #090807", -"M c #171715", -"N c #E4E4E2", -"O c #7F7C73", -"P c #64625B", -"Q c #5F5D56", -"R c #676767", -"S c #050505", -"T c #878681", -"U c #151513", -"V c #8A8987", -"W c #DDDCDA", -"X c #8E8E8E", -"Y c #AEADA7", -"Z c #B4B3AD", -"` c #D3D2CF", -" . c #918F89", -" . . . . . ", -" . . . ", -" . . . . . . ", -" . + . . . ", -" . @ # $ . . . . ", -" . % & * = . ", -". . - ; > , ' $ ", -") . ! ~ { ] ^ / ( . . . ", -" . _ : < [ } } | 1 2 3 4 5 . ", -" . 6 7 8 } 9 0 a b c d e f g h ", -" . i j k } l m n n n o p q d h ", -". . ] r s t u n c v w x q y . ", -") . z A e . b c w B C D n E b . ", -" . F G e H I c J K L M N O P Q ", -" . g R 5 S d n T D U V W P b . ", -" . X ) . Y O Z N ` .P . "}; -#endif diff --git a/bitmaps_xpm/annotate_down_right.xpm b/bitmaps_xpm/annotate_down_right.xpm deleted file mode 100644 index 500ea17447..0000000000 --- a/bitmaps_xpm/annotate_down_right.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *annotate_down_right_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"= c #9A524C", -": c #405814", -"O c #932722", -". c #BAA7A6", -"X c #549454", -"+ c #7C210E", -" c None", -"$ c #8C0505", -"- c #AE7879", -"@ c #097409", -"* c #867258", -"& c #308430", -"# c #783820", -"; c #9E3838", -"% c #403F04", -"o c #7FA57F", -/* pixels */ -" .X. oX ", -"O+@#O .@@o ", -"O$%$$ &@@o ", -"*$$$= &@@@o ", -".$$$. -#%&&@o ", -" +$#.-;$$$+.X@o ", -" *+*O$$$$$= X@o ", -" o@X-=*:$$. X@o ", -" o@X .@%$= $#@O;", -" o@X &@$$. $$%$O", -" o@X&@&$; =$$$-", -" o@@@& -$$$ ", -" X@@@. $$= ", -" X@@o :+o ", -" o@o X@o ", -" o&. " -}; diff --git a/bitmaps_xpm/annotate_right_down.xpm b/bitmaps_xpm/annotate_right_down.xpm deleted file mode 100644 index d4b70c1f94..0000000000 --- a/bitmaps_xpm/annotate_right_down.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *annotate_right_down_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"o c #A25451", -"+ c #88A887", -"* c #424004", -"% c #308530", -"@ c #8B0405", -"# c #7C563C", -" c None", -"- c #B18B8C", -"O c #BAA6A6", -"X c #8E1C17", -"$ c #549354", -"; c #74381C", -"& c #067205", -". c #993F3B", -"= c #748157", -": c #AC7474", -/* pixels */ -" .XoO ", -"+X@@@X#$$$$$$$+ ", -"%&*@@@@&&&&&&&% ", -"O#@@@X=+++$&&&O ", -" X@.O O&&%O ", -" O o@O+&&% ", -" @@=&&$ ", -" -@X&&= ", -" o@**X@o ", -" O@@@@@X- ", -" +&@@@.- ", -" +&&;oO X@.: ", -"$&&&%%%%;@@@@;%+", -"%&&&&&&&&*@@@@&%", -" +++++++;@@@#++ ", -" .X: " -}; diff --git a/bitmaps_xpm/apply.xpm b/bitmaps_xpm/apply.xpm deleted file mode 100644 index 6eb61acbac..0000000000 --- a/bitmaps_xpm/apply.xpm +++ /dev/null @@ -1,40 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *apply_xpm[]; - -#else -const char * apply_xpm[] = { -"16 16 16 1", -" c None", -". c #000000", -"+ c #C8D7E5", -"@ c #8EA8C0", -"# c #9DB8D2", -"$ c #7E94AA", -"% c #8299AF", -"& c #D6E1EB", -"* c #C4CED6", -"= c #ACBED0", -"- c #404040", -"; c #ACB9C5", -"> c #727272", -", c #889FB6", -"' c #B1BFCB", -") c #98B2CC", -" ", -" ", -" ", -" .. ", -" .+@. ", -" .+#$. ", -" .. .+#%. ", -" .&&. .+#%. ", -" .*#=. .+#%. ", -" -=#=.&#%. ", -" .;####%. ", -" >,##%. ", -" .')$. ", -" ... ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/auto_associe.xpm b/bitmaps_xpm/auto_associe.xpm deleted file mode 100644 index 1bc850177c..0000000000 --- a/bitmaps_xpm/auto_associe.xpm +++ /dev/null @@ -1,149 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *auto_associe_xpm[]; - -#else -const char *auto_associe_xpm[] = { -/* width height num_colors const chars_per_pixel */ -"16 16 124 2", -" c None", -". c #160A00", -"+ c #FF7800", -"@ c #000000", -"# c #231000", -"$ c #E1DFDE", -"% c #44260C", -"& c #E86D00", -"* c #FFFFFF", -"= c #C35B00", -"- c #FAF6F3", -"; c #A38F7C", -"> c #C7B4A5", -", c #FDBD85", -"' c #FFBF87", -") c #FFF3EC", -"! c #FEE6D6", -"~ c #D8BDA8", -"{ c #C7874F", -"] c #F9B880", -"^ c #FFF5EF", -"/ c #FFE8D8", -"( c #FFDBC2", -"_ c #FFCEAB", -": c #F4C8A9", -"< c #D6B69C", -"[ c #F6EDE6", -"} c #F3F3F3", -"| c #878787", -"1 c #FFEADC", -"2 c #FFDDC5", -"3 c #FFD0AF", -"4 c #FFC298", -"5 c #FFB582", -"6 c #FDB380", -"7 c #EAC6A8", -"8 c #F7EADF", -"9 c #FDFDFD", -"0 c #272727", -"a c #FFDFC8", -"b c #FFD1B2", -"c c #FFC49C", -"d c #FFB785", -"e c #FFAA6F", -"f c #FF9D58", -"g c #FE9248", -"h c #F9C197", -"i c #FBEEE4", -"j c #FEFEFE", -"k c #C7C7C7", -"l c #FFD3B5", -"m c #FFC69F", -"n c #FFB988", -"o c #FFAC72", -"p c #FF9F5B", -"q c #FF9145", -"r c #FE8835", -"s c #030202", -"t c #030303", -"u c #FFC8A2", -"v c #FFBB8C", -"w c #FFAE75", -"x c #DD8C52", -"y c #0E0804", -"z c #BC9A7F", -"A c #080707", -"B c #DCDBD9", -"C c #080808", -"D c #CBCBCB", -"E c #020202", -"F c #FFBD8F", -"G c #FFB079", -"H c #FFA262", -"I c #EDEBEA", -"J c #B1B1AF", -"K c #0E0D0D", -"L c #484641", -"M c #9E9C95", -"N c #0E0E0E", -"O c #878680", -"P c #1F1F1F", -"Q c #FFB27C", -"R c #FFA465", -"S c #FE9A55", -"T c #0C0906", -"U c #9C9B96", -"V c #908F89", -"W c #8F8C84", -"X c #96938C", -"Y c #807C73", -"Z c #FFA669", -"` c #FAA162", -" . c #A37E60", -".. c #A09185", -"+. c #0E0A07", -"@. c #595854", -"#. c #605E57", -"$. c #888681", -"%. c #76736A", -"&. c #E1A074", -"*. c #442102", -"=. c #010000", -"-. c #484540", -";. c #605D56", -">. c #42413E", -",. c #272623", -"'. c #36332F", -"). c #6D6A62", -"!. c #474540", -"~. c #ECECEB", -"{. c #B5B3AD", -"]. c #9E9B94", -"^. c #595753", -"/. c #201F1D", -"(. c #090807", -"_. c #181715", -":. c #E5E4E2", -"<. c #64625B", -"[. c #5F5D56", -"}. c #35332F", -"|. c #151513", -"1. c #8B8987", -"2. c #DEDCDA", -"3. c #65625B", -" . + + + ", -" @ # + + + ", -" @ $ % & * = + * + @ @ ", -" @ * - ; > , ' ' * * + + + * @ ", -" @ * ) ! ~ { ] ' * * + + + * @ ", -"@ @ ^ / ( _ : < [ * * * * } | @ ", -" @ 1 2 3 4 5 6 7 8 * * 9 0 ", -" @ a b c d e f g h i j k @ ", -" @ l m n o p q r s t t k @ ", -" @ u v w x y y z A B C D E @ ", -"@ @ F G H y I J K L M L N O P @ ", -" @ Q R S T U V M M M W X Y L @ ", -" @ Z ` ...+.M M @.#.$.Y %.N @ ", -" @ &.*.=.@ -.M ;.>.,.'.M ).!.@ ", -" @ # @ ~.{.].^./.(._.:.Y <.[.", -" . @ @ -.].$.}.|.1.2.3.!.@ "}; -#endif diff --git a/bitmaps_xpm/auto_delete_track.xpm b/bitmaps_xpm/auto_delete_track.xpm deleted file mode 100644 index 74393de29a..0000000000 --- a/bitmaps_xpm/auto_delete_track.xpm +++ /dev/null @@ -1,40 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * auto_delete_track_xpm[]; - -#else -const char * auto_delete_track_xpm[] = -{ -"16 15 14 1", -"X c Black", -"% c #000080", -"W c #008000", -") c #008080", -"> c #00FF00", -"( c #800000", -": c #800080", -"- c #808080", -". c None", -"? c #FF0000", -"U c #FF00FF", -"$ c #FFFF00", -"o c White", -"z c Red", - -"zz..........Xoo$", -"zz.........Xoo$$", -"zz........Xoo$$%", -".zz......X>Xo$%-", -"..zz....X>$>X%--", -"...zz..X>$>WWX-X", -"....zz?UX>WW%)X.", -".o...?UoUXW%)X..", -".oo.?UoU?UX)X...", -"ooo.U?o?UU)X....", -"oooo?U?UU:(.....", -"oooo-?UU:(......", -"ooooo-(((zz.....", -".oooooo....zz...", -"..o..o.......zz." -}; -#endif diff --git a/bitmaps_xpm/auto_track_width.xpm b/bitmaps_xpm/auto_track_width.xpm deleted file mode 100644 index dd19aa3c76..0000000000 --- a/bitmaps_xpm/auto_track_width.xpm +++ /dev/null @@ -1,39 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *auto_track_width_xpm[]; - -#else -const char * auto_track_width_xpm[] = { -"16 16 14 1", -" c None", -", c #008080", -". c #00E000", -"+ c #006100", -"@ c #004400", -"# c #007800", -"$ c #007B00", -"% c #004000", -"& c #007C00", -"* c #006500", -"= c #007A00", -"- c #004600", -"x c #FF2D2D", -"o c #0000FF", -" ", -"........+ ", -".........+ ", -" @..# ", -" $.% o o ", -" &..* o ", -" xxxx..= o ", -" x xxx..- o ", -" x x ........", -" x x .......", -"x x , o ", -"x x ,, o ", -"x x,,,,,,,,,,o ", -"x x ,, o ", -"x x , o o ", -"x x "}; - -#endif diff --git a/bitmaps_xpm/axis3d.xpm b/bitmaps_xpm/axis3d.xpm deleted file mode 100644 index d311694c85..0000000000 --- a/bitmaps_xpm/axis3d.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * axis3d_xpm[]; - -#else -const char * axis3d_xpm[] = { -"16 15 3 1", -" c None", -". c Blue", -"x c Red", -" . ", -" ... ", -" . ", -" . ", -" . ", -" . ", -" . . ", -" ............", -" . . ", -" . ", -" . ", -" . ", -" .. ", -" . ", -" " -}; -#endif diff --git a/bitmaps_xpm/axis3d_back.xpm b/bitmaps_xpm/axis3d_back.xpm deleted file mode 100644 index 2ce00f6f89..0000000000 --- a/bitmaps_xpm/axis3d_back.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * axis3d_back_xpm[]; - -#else -const char * axis3d_back_xpm[] = { -"16 15 3 1", -" c None", -". c Blue", -"x c Red", -" . x ", -" ... x ", -" . x ", -" . xxxxx ", -" . xxx ", -" . x ", -" . . ", -" ............", -" . . ", -" . ", -" . ", -" . ", -" .. ", -" . ", -" " -}; -#endif diff --git a/bitmaps_xpm/axis3d_bottom.xpm b/bitmaps_xpm/axis3d_bottom.xpm deleted file mode 100644 index 8ef30d83bf..0000000000 --- a/bitmaps_xpm/axis3d_bottom.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * axis3d_bottom_xpm[]; - -#else -const char * axis3d_bottom_xpm[] = { -"16 15 3 1", -" c None", -". c Blue", -"x c Red", -" . ", -" ... ", -" . ", -" . ", -" . ", -" . ", -" . . ", -" ............", -" . . ", -" . x ", -" . xxx ", -" . xxxxx ", -" .. x ", -" . x ", -" x " -}; -#endif diff --git a/bitmaps_xpm/axis3d_front.xpm b/bitmaps_xpm/axis3d_front.xpm deleted file mode 100644 index cd1247d3d2..0000000000 --- a/bitmaps_xpm/axis3d_front.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * axis3d_front_xpm[]; - -#else -const char * axis3d_front_xpm[] = { -"16 15 3 1", -" c None", -". c Blue", -"x c Red", -" . ", -" ... ", -" . ", -" . ", -" . ", -" . ", -" . . ", -" ............", -" . x . ", -" . xxx ", -" . xxxxx ", -" . x ", -" .. x ", -" . x ", -" " -}; -#endif diff --git a/bitmaps_xpm/axis3d_left.xpm b/bitmaps_xpm/axis3d_left.xpm deleted file mode 100644 index 9b80974e2c..0000000000 --- a/bitmaps_xpm/axis3d_left.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * axis3d_left_xpm[]; - -#else -const char * axis3d_left_xpm[] = { -"16 15 3 1", -" c None", -". c Blue", -"x c Red", -" . ", -" ... ", -" . ", -" . ", -" x. ", -" xx ", -"xxxxxx . ", -" xx...........", -" x . ", -" . ", -" . ", -" . ", -" .. ", -" . ", -" " -}; -#endif diff --git a/bitmaps_xpm/axis3d_right.xpm b/bitmaps_xpm/axis3d_right.xpm deleted file mode 100644 index f75864f6e4..0000000000 --- a/bitmaps_xpm/axis3d_right.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * axis3d_right_xpm[]; - -#else -const char * axis3d_right_xpm[] = { -"16 15 3 1", -" c None", -". c Blue", -"x c Red", -" . ", -" ... ", -" . ", -" . ", -" . x ", -" . xx ", -" . xxxxxx", -" .......xx...", -" . x . ", -" . ", -" . ", -" . ", -" .. ", -" . ", -" " -}; -#endif diff --git a/bitmaps_xpm/axis3d_top.xpm b/bitmaps_xpm/axis3d_top.xpm deleted file mode 100644 index 647278b1f1..0000000000 --- a/bitmaps_xpm/axis3d_top.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * axis3d_top_xpm[]; - -#else -const char * axis3d_top_xpm[] = { -"16 15 3 1", -" c None", -". c Blue", -"x c Red", -" . x ", -" ... x ", -" . x ", -" . xxxxx ", -" . xxx ", -" . x ", -" . . ", -" ............", -" . . ", -" . ", -" . ", -" . ", -" .. ", -" . ", -" " -}; -#endif diff --git a/bitmaps_xpm/bom.xpm b/bitmaps_xpm/bom.xpm deleted file mode 100644 index f5903ffe44..0000000000 --- a/bitmaps_xpm/bom.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -const char *bom_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 5 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #BFE5FF", -"# c #696969", -"............... ", -".+++++++++++++. ", -".@#@..@....@#@. ", -".+++++++++++++. ", -".@#@..@..@@@#@. ", -".+++++++++++++. ", -".@#@..@....@#@. ", -".+++++++++++++. ", -".@#@..@...@@#@. ", -".+++++++++++++. ", -".@#@..@....@#@. ", -".+++++++++++++. ", -".@#@..@..@..#@. ", -".+++++++++++++. ", -"............... ", -" "}; diff --git a/bitmaps_xpm/book.xpm b/bitmaps_xpm/book.xpm deleted file mode 100644 index 56c8a08d70..0000000000 --- a/bitmaps_xpm/book.xpm +++ /dev/null @@ -1,47 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * book_xpm[]; - -#else -const char * book_xpm[] = { -"16 16 21 1", -" c None", -". c #007F7F", -"+ c #660000", -"@ c #CC0000", -"# c #E50000", -"$ c #FF0000", -"% c #F20000", -"& c #D80000", -"* c #720000", -"= c #7F0000", -"- c #BFBFBF", -"; c #E57F7F", -"> c #7F7F7F", -", c #FFFFFF", -"' c #F2BFBF", -") c #723F3F", -"! c #A5A5A5", -"~ c #E5E5E5", -"{ c #B2B2B2", -"] c #003F3F", -"^ c #000000", -" ", -" ......... ", -" +@#$$$$$%&+ ", -" +##$$$$$$$* ", -" +##$$$$$$$=- ", -" +##$$$$$$$=;> ", -" +##$$$$$$$=;,. ", -" +##$$$$$$$=;,. ", -" +##$$$$$$$=''. ", -" +##$$$$$$$=,;. ", -" +##$$$$$$%+,;. ", -" +&++++++++),;. ", -" ++!~~~~~~~~~,. ", -" ++!~~~~~~~~~{. ", -" ]^^^^^^^^^^^ ", -" " -}; -#endif - diff --git a/bitmaps_xpm/break_bus.xpm b/bitmaps_xpm/break_bus.xpm deleted file mode 100644 index da8e195ec0..0000000000 --- a/bitmaps_xpm/break_bus.xpm +++ /dev/null @@ -1,59 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *break_bus_xpm[]; -#else -const char * break_bus_xpm[] = { -"16 16 36 1", -" c None", -". c #D72E2E", -"+ c #D82E2E", -"@ c #D43232", -"# c #9B9B9B", -"$ c #D82F2F", -"% c #CF3A3A", -"& c #C45050", -"* c #D62D2D", -"= c #A98080", -"- c #B66868", -"; c #9C9C9C", -"> c #0000C3", -", c #1818BC", -"' c #0000C2", -") c #1212BE", -"! c #4E4EAE", -"~ c #0404C1", -"{ c #1111BE", -"] c #2C2CB7", -"^ c #7474A4", -"/ c #1B1BBB", -"( c #0A0AC0", -"_ c #6F6FA6", -": c #6767A8", -"< c #1C1CBB", -"[ c #2020BA", -"} c #0202C2", -"| c #0909C0", -"1 c #5656AC", -"2 c #97979B", -"3 c #5353AD", -"4 c #0C0CBF", -"5 c #7C7CA3", -"6 c #8E8E9E", -"7 c #6161A9", -" ", -" . ", -" +@ .# $ ", -" %& .# *= ", -" - #$=; ", -" ", -" >>, >') ", -" >>>'!>>>~{ ", -" >>>>>]^/>>>>( ", -"'>>>,_## :<>>>[ ", -" }|12# 34'5#", -" 6# 7# ", -" ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/break_line.xpm b/bitmaps_xpm/break_line.xpm deleted file mode 100644 index b18f95a386..0000000000 --- a/bitmaps_xpm/break_line.xpm +++ /dev/null @@ -1,58 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* break_line_xpm[]; -#else -const char * break_line_xpm[] = { -"16 16 34 1", -" c None", -". c #D72E2E", -"+ c #D82E2E", -"@ c #D43232", -"# c #9B9B9B", -"$ c #D82F2F", -"% c #CF3A3A", -"& c #C45050", -"* c #D62D2D", -"= c #A98080", -"- c #B66868", -"; c #9C9C9C", -"> c #007D00", -", c #017D01", -"' c #077E07", -") c #568D56", -"! c #0E7F0E", -"~ c #158115", -"{ c #418941", -"] c #8F988F", -"^ c #4C8B4C", -"/ c #0A7F0A", -"( c #1A821A", -"_ c #268426", -": c #819681", -"< c #3A883A", -"[ c #057E05", -"} c #118011", -"| c #6C916C", -"1 c #699169", -"2 c #0D7F0D", -"3 c #8B978B", -"4 c #969A96", -"5 c #809580", -" ", -" . ", -" +@ .# $ ", -" %& .# *= ", -" - #$=; ", -" ", -" > , ", -" >>')!>~ ", -" >,{] ^/,( ", -" >>_:# <,'( ", -"[}|# 1_23", -" 4 5 ", -" ", -" ", -" ", -" "}; - -#endif diff --git a/bitmaps_xpm/browse_files.xpm b/bitmaps_xpm/browse_files.xpm deleted file mode 100644 index 6db1253c43..0000000000 --- a/bitmaps_xpm/browse_files.xpm +++ /dev/null @@ -1,90 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * browse_files_xpm[]; -#else -const char * browse_files_xpm[] = { -"16 16 66 1", -" c None", -". c #000000", -"+ c #E4E5DE", -"@ c #D3D5CA", -"# c #A5A797", -"$ c #F3F4F0", -"% c #ABAE99", -"& c #BDC0AD", -"* c #BCBEAA", -"= c #B1B49F", -"- c #6E715C", -"; c #E6E7DD", -"> c #F5F6F3", -", c #818181", -"' c #E2E4D9", -") c #E1E3D8", -"! c #DFE1D6", -"~ c #C4C6B6", -"{ c #F7F7F6", -"] c #D3D6C5", -"^ c #808080", -"/ c #636363", -"( c #D2D2D2", -"_ c #F2F2F2", -": c #CACDB9", -"< c #C8CBB6", -"[ c #C6C9B3", -"} c #C4C8B1", -"| c #93967C", -"1 c #F0F0EB", -"2 c #C5C5C5", -"3 c #F5F5F5", -"4 c #FEFEFE", -"5 c #F0F1EC", -"6 c #D2D4C2", -"7 c #AEAEAE", -"8 c #E5E5E5", -"9 c #F8F8F8", -"0 c #E0E0E0", -"a c #C3C6AF", -"b c #C1C4AD", -"c c #909478", -"d c #EFF0EB", -"e c #CED1BD", -"f c #7B7B7B", -"g c #5D5D5D", -"h c #ADADAD", -"i c #BCBCBC", -"j c #626262", -"k c #666666", -"l c #BFC2AB", -"m c #BDC1A8", -"n c #8E9175", -"o c #EDEEE8", -"p c #7C7C7C", -"q c #525252", -"r c #BBBEA5", -"s c #BABDA3", -"t c #8B8F72", -"u c #ECEEE7", -"v c #B7BAA0", -"w c #E8E8E0", -"x c #C6C9BA", -"y c #8E9276", -"z c #8C9073", -"A c #646751", -" ", -" ", -" .... ", -" .+@@#. ", -" .$%&*=-....... ", -" .;>;,..,''))!~.", -" .{]^/(_/^:<[}|.", -" .1].234_.:<[}|.", -" .56.7890.[}abc.", -" .defghijkablmn.", -" .o: c #BF3B22", -"? c #C44D36", -"@ c #5C251B", -"A c #1D0F0C", -"B c #D66F5B", -"C c #B93B24", -"D c #922C1B", -"E c #4E160D", -"F c #2F1510", -"G c #BE3B22", -"H c #B23821", -"I c #3B1711", -"J c #CA6D5B", -"K c #B83E27", -"L c #822617", -"M c #2C0B05", -"N c #2B130E", -"O c #BD3B22", -"P c #BA3B22", -"Q c #B73922", -"R c #B45B4A", -"S c #CE523A", -"T c #992F1D", -"U c #200804", -"V c #3C1812", -"W c #BA3A22", -"X c #C84E37", -"Y c #B63922", -"Z c #2F0E07", -"[ c #49160C", -"] c #CE6653", -"^ c #BD3C24", -"_ c #BB3B22", -"` c #B43922", -"a c #2C140F", -"b c #1B0704", -"c c #D17F70", -"d c #BE3F27", -"e c #B63D26", -"f c #BC3B22", -"g c #B03720", -"h c #381914", -"i c #CB7868", -"j c #BD3F28", -"k c #922F1E", -"l c #090909", -"m c #B43A23", -"n c #25120F", -"o c #010101", -"p c #572119", -"q c #CC7261", -"r c #B93A22", -"s c #96311E", -"t c #200B08", -"u c #411710", -"v c #A23A26", -"w c #080505", -"x c #230A06", -"y c #CD7261", -"z c #BD3D25", -"{ c #98311E", -"| c #240D09", -"} c #C23B22", -"~ c #AD3620", -" ! c #26110D", -"!! c #0F0907", -"#! c #912F1E", -"$! c #94301E", -"%! c #180906", -"&! c #A13521", -"'! c #26110E", -"(! c #2C0E09", -")! c #1C0905", -"*! c #341A15", -"+! c #311712", -" ", -" # $ % & ' ", -" ( ) * + % , - . 0 ", -" 1 2 3 4 5 6 7 8 9 : ", -" ; < = > ? @ A B C D E ", -" F < G G H I ' J K L M ", -" N < O P Q R S T U ", -" V < W W X Y Z & ", -" & [ ] ^ W _ ` a ", -" b c d e Q f O g N ", -" h i j k l I < G G m n ", -" o p q r s t u ? > = v w ", -" x y z { | 5 4 } ~ ! ", -" !!#!$!%! % + X &!'! ", -" (!)! % *!+! ", -" "}; -#endif diff --git a/bitmaps_xpm/cancel_tool.xpm b/bitmaps_xpm/cancel_tool.xpm deleted file mode 100644 index 49238216b3..0000000000 --- a/bitmaps_xpm/cancel_tool.xpm +++ /dev/null @@ -1,123 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *cancel_tool_xpm[]; - -#else -const char * cancel_tool_xpm[] = { -"16 16 99 2", -" c None", -". c #411F18", -"+ c #371B16", -"@ c #060606", -"# c #010101", -"$ c #040404", -"% c #2C1510", -"& c #DB8B7C", -"* c #CE5E48", -"= c #4D1C13", -"- c #2C1613", -"; c #BF6D5D", -"> c #AB4531", -", c #070403", -"' c #000000", -") c #361A15", -"! c #D1624D", -"~ c #C75540", -"{ c #C44C36", -"] c #4B1A12", -"^ c #2E1813", -"/ c #D76F5A", -"( c #C04028", -"_ c #942D1B", -": c #0F0401", -"< c #FDFDFD", -"[ c #0A0807", -"} c #C14B35", -"| c #BF3B22", -"1 c #BD3A21", -"2 c #C24C35", -"3 c #582319", -"4 c #1C0E0B", -"5 c #D46E5A", -"6 c #B73A23", -"7 c #902B1A", -"8 c #4D150C", -"9 c #212120", -"0 c #2E140F", -"a c #C24C36", -"b c #BC3A21", -"c c #B03720", -"d c #C86C5A", -"e c #B63D26", -"f c #802516", -"g c #2B0A04", -"h c #EDEDED", -"i c #818181", -"j c #2B130E", -"k c #BB3A21", -"l c #B83A21", -"m c #CC5139", -"n c #972E1C", -"o c #1F0703", -"p c #C1C1C1", -"q c #1A0603", -"r c #CF7E6F", -"s c #BC3E26", -"t c #BA3A21", -"u c #AE361F", -"v c #29120D", -"w c #361813", -"x c #C97767", -"y c #BB3E27", -"z c #902E1D", -"A c #B23922", -"B c #22100E", -"C c #717171", -"D c #562018", -"E c #CA7160", -"F c #B73921", -"G c #94301D", -"H c #1E0A07", -"I c #40160F", -"J c #BE3A21", -"K c #A03925", -"L c #060404", -"M c #341E1B", -"N c #CB7160", -"O c #BB3C24", -"P c #96301D", -"Q c #230C08", -"R c #C03A21", -"S c #AB351F", -"T c #220F0B", -"U c #383331", -"V c #8F2E1D", -"W c #922F1D", -"X c #170805", -"Y c #070707", -"Z c #C64D36", -"` c #9F3420", -" . c #220F0C", -".. c #9DA08E", -"+. c #9F9F9F", -"@. c #371B17", -"#. c #190804", -"$. c #321914", -"%. c #301611", -" . + @ # $ ", -" % & * = - ; > , ", -" ' ' ) ! ~ { ] ^ / ( _ : ", -"' < ' [ } | 1 2 3 4 5 6 7 8 ", -"' < ' ' 9 0 a b b c d e f g ", -"' < h h h i j } k l m n o ", -" ' < h h p # q r s t k u v ", -" ' ' < p ' w x y z } b b A B ", -" ' < C D E F G H I 2 1 J K L ", -" ' < M N O P Q ] { R S T ", -" ' < U V W X Y = Z ` .", -"..' < h +.@.#. @ $.%. ", -"' < h h h h p ' ", -"' < ' ' ' ' h ' ", -"' < ' ' h ' ", -" ' ' ' ' "}; -#endif diff --git a/bitmaps_xpm/checked_ok.xpm b/bitmaps_xpm/checked_ok.xpm deleted file mode 100644 index 531372172e..0000000000 --- a/bitmaps_xpm/checked_ok.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *checked_ok_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"- c #C4F874", -"% c #B2E58B", -"o c #C7E5C4", -"= c #B7F456", -"O c #ACCEAC", -"$ c #2A8504", -" c None", -". c #7FAC78", -"+ c #1C510A", -"X c #0C2906", -"@ c #70B158", -"# c #91D35F", -"& c #32720A", -"; c #53B412", -"* c #77CE1C", -": c #AAFA18", -/* pixels */ -" ", -" ", -" ..X ", -" .ooOX", -" .ooo.+", -" +@# .ooo@$ ", -"+#%%& .%%O@$ ", -"X*=-# X#%%%;$ ", -" ;::=&#-%%;$ ", -" &:::::==*$ ", -" X*==:::*& ", -" ;--==*& ", -" +===*& ", -" X;;;& ", -" ", -" " -}; diff --git a/bitmaps_xpm/component_select_alternate_shape.xpm b/bitmaps_xpm/component_select_alternate_shape.xpm deleted file mode 100644 index 5249251cdb..0000000000 --- a/bitmaps_xpm/component_select_alternate_shape.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * component_select_alternate_shape_xpm[]; - -#else -const char * component_select_alternate_shape_xpm[] = { -"16 16 7 1", -"X c Black", -". c None", -"o c Black", -"= c Green", -"+ c #008000", -"' c Red", -"* c Cyan", -"....XXXXXXX.....", -".oooooX====XX...", -".......X=====X..", -".......X=====Xoo", -".......X=====X..", -".oooooX====XX...", -"...*XXXXXXX.....", -".***............", -"***.............", -"*...XXXXXX......", -"ooooX'''''X.....", -"....X''''''X....", -"....X'''''''Xooo", -"....X''''''X....", -"ooooX'''''X.....", -"....XXXXXX......" -}; -#endif - diff --git a/bitmaps_xpm/component_select_unit.xpm b/bitmaps_xpm/component_select_unit.xpm deleted file mode 100644 index 59d8f22963..0000000000 --- a/bitmaps_xpm/component_select_unit.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * component_select_unit_xpm[]; - -#else -const char * component_select_unit_xpm[] = { -"16 15 6 1", -"X c Black", -". c None", -"o c Black", -"= c Gray", -"+ c #008000", -"' c #0000C0", -"........XXXXXX..", -"....ooooX=====X.", -"........X======X", -"........X=======", -"......XXXXXX===X", -"..ooooX+++++X=X.", -"......X++++++X..", -"......X+++++++Xo", -"....XXXXXX+++X..", -"ooooX'''''X+X...", -"....X''''''X....", -"....X'''''''Xooo", -"....X''''''X....", -"ooooX'''''X.....", -"....XXXXXX......" -}; -#endif - diff --git a/bitmaps_xpm/config.xpm b/bitmaps_xpm/config.xpm deleted file mode 100644 index dc3c4c6de7..0000000000 --- a/bitmaps_xpm/config.xpm +++ /dev/null @@ -1,79 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *config_xpm[]; - -#else -const char * config_xpm[] = { -"16 16 55 1", -" c None", -". c #000000", -"+ c #F2F2F2", -"@ c #E0E0E0", -"# c #E1E1E1", -"$ c #C3C3C3", -"% c #C1C1C1", -"& c #C2C2C2", -"* c #969696", -"= c #999999", -"- c #9A9A9A", -"; c #E5E5E5", -"> c #DFDFDF", -", c #CACACA", -"' c #666666", -") c #858585", -"! c #898989", -"~ c #8A8A8A", -"{ c #B1B1B1", -"] c #A5A5A5", -"^ c #F3F3F3", -"/ c #959595", -"( c #D0D0D0", -"_ c #ADADAD", -": c #F0F0F0", -"< c #EFEFEF", -"[ c #EBEBEB", -"} c #DBDBDB", -"| c #B7B7B7", -"1 c #767676", -"2 c #6C6C6C", -"3 c #787878", -"4 c #979797", -"5 c #A9A9A9", -"6 c #7C7C7C", -"7 c #757575", -"8 c #727272", -"9 c #929292", -"0 c #7E7E7E", -"a c #8C8C8C", -"b c #B5B5B5", -"c c #EDEDED", -"d c #9C9C9C", -"e c #848484", -"f c #E2E2E2", -"g c #C4C4C4", -"h c #B9B9B9", -"i c #777777", -"j c #6D6D6D", -"k c #676767", -"l c #AAAAAA", -"m c #888888", -"n c #818181", -"o c #7B7B7B", -"p c #797979", -" .............. ", -".+@###########$.", -".#%%%%%%&&&&&&*.", -".#%=...-&&&&&$*.", -".#%.;>,.')!~{$*.", -".#%.>&].....^&/.", -".#%.(]=._:<[}$*.", -".#&-...')$$$$&/.", -".#&|12'3~...-&4.", -".#&56678.;>,.94.", -".#&0.....>&].a/.", -".#&bc<<<.(]=.a/.", -".#$$$$$$d...'e/.", -".f$$$$$ghijki_/.", -".l****444mmno/p.", -" .............. "}; -#endif diff --git a/bitmaps_xpm/copper_layers_setup.xpm b/bitmaps_xpm/copper_layers_setup.xpm deleted file mode 100644 index 41a9bfa400..0000000000 --- a/bitmaps_xpm/copper_layers_setup.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char * copper_layers_setup_xpm[] = { -"16 16 4 1", -" c None", -". c #B70000", -"s c #606020", -"# c #008F00", -".......... ", -".......... ", -".......... ", -"...ssssssssss ", -"...ssssssssss ", -"...ssssssssss ", -"...sss##########", -"...sss##########", -"...sss##########", -"...sss##########", -" sss##########", -" sss##########", -" sss##########", -" ##########", -" ##########", -" ##########"}; diff --git a/bitmaps_xpm/copy_button.xpm b/bitmaps_xpm/copy_button.xpm deleted file mode 100644 index d918fea46b..0000000000 --- a/bitmaps_xpm/copy_button.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *copy_button_xpm[]; - -#else -const char *copy_button_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c Gray100", -"o c #000080", -/* pixels */ -" ", -" ...... ", -" .XXXX.. ", -" .XXXX.X. ", -" .X..X.oooooo ", -" .XXXXXoXXXXoo ", -" .X....oXXXXoXo ", -" .XXXXXoX..Xoooo", -" .X....oXXXXXXXo", -" .XXXXXoX.....Xo", -" ......oXXXXXXXo", -" oX.....Xo", -" oXXXXXXXo", -" ooooooooo", -" " -}; -#endif - diff --git a/bitmaps_xpm/copyblock.xpm b/bitmaps_xpm/copyblock.xpm deleted file mode 100644 index a2fa230ace..0000000000 --- a/bitmaps_xpm/copyblock.xpm +++ /dev/null @@ -1,42 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *copyblock_xpm[]; - -#else -const char * copyblock_xpm[] = { -"16 16 18 1", -" c None", -". c #000000", -"+ c #B3B3B3", -"@ c #FFFFFF", -"# c #D6D6D6", -"$ c #646464", -"% c #4D4D4D", -"& c #505050", -"* c #696969", -"= c #787878", -"- c #4C4C4C", -"; c #E3E3E3", -"> c #5A5A5A", -", c #535353", -"' c #919191", -") c #A2A2A2", -"! c #5C5C5C", -"~ c #666666", -".......... ", -".+@@@@@@#. ", -".@@@@@@@@. ", -".@$%&@*=@. ", -".@@@@@@@@. ", -".@&-@&......... ", -".@@@@.+@@@@@@#. ", -".;>,'.@@@@@@@@. ", -".@@@@.@$%&@*=@. ", -".#@@@.@@@@@@@@. ", -"......@&-@)*+@. ", -" .@@@@@@@@. ", -" .;>,'@!~@. ", -" .@@@@@@@@. ", -" .#@@@@@@#. ", -" ......... "}; -#endif diff --git a/bitmaps_xpm/copycomponent.xpm b/bitmaps_xpm/copycomponent.xpm deleted file mode 100644 index e9970e1da7..0000000000 --- a/bitmaps_xpm/copycomponent.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *copycomponent_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"; c #DC4149", -"# c #9B979D", -"& c #332A95", -"% c #060383", -"O c #D2D2FB", -"o c #60AE68", -"= c #FA0606", -"X c #4C924C", -"@ c #AFAAE5", -"+ c #CDD0D4", -". c #0A840A", -"* c #A3A9A7", -" c #F8F9FC", -": c #E44A6C", -"$ c #7F74B4", -"- c #74124C", -/* pixels */ -" ......Xo ", -" . O O +o. ", -"... O@@OOXo ", -" #. O$%%&@*.+ ", -" . $%%%%+... ", -" .OOO@$%%$.**# ", -" .=====-%-X* ", -"...= $%-=+ ", -" === &%%%%%%+ ", -" *= OO&%%%%-+ ", -" =O OO&%%@=== ", -" = OOO@&@$=**#", -" =OOOOO@O;;* ", -" ===OOOOO@:=#+ ", -" #=======;#* ", -" #####**+ " -}; diff --git a/bitmaps_xpm/create_cmp_file.xpm b/bitmaps_xpm/create_cmp_file.xpm deleted file mode 100644 index e6a1a0ad5e..0000000000 --- a/bitmaps_xpm/create_cmp_file.xpm +++ /dev/null @@ -1,118 +0,0 @@ -/* XPM */ -const char * create_cmp_file_xpm[] = { -"16 16 99 2", -" c None", -". c #160A00", -"+ c #FF7800", -"@ c #000000", -"# c #231000", -"$ c #E1DFDE", -"% c #44260C", -"& c #E86D00", -"* c #FFFFFF", -"= c #C35B00", -"- c #FAF6F3", -"; c #A38F7C", -"> c #C7B4A5", -", c #FDBD85", -"' c #FFBF87", -") c #FFF3EC", -"! c #FEE6D6", -"~ c #D8BDA8", -"{ c #C7874F", -"] c #F9B880", -"^ c #FFF5EF", -"/ c #FFE8D8", -"( c #FFDBC2", -"_ c #B9957C", -": c #010101", -"< c #FFEADC", -"[ c #FFDDC5", -"} c #FFD0AF", -"| c #F6F7F9", -"1 c #CADCEA", -"2 c #C78980", -"3 c #D08E83", -"4 c #CF8D82", -"5 c #CF8E82", -"6 c #FFDFC8", -"7 c #FFD1B2", -"8 c #FFC49C", -"9 c #DAE6EF", -"0 c #8CA8BC", -"a c #B6867D", -"b c #C67568", -"c c #C67467", -"d c #C57366", -"e c #C57365", -"f c #FFD3B5", -"g c #FFC69F", -"h c #FFB988", -"i c #010100", -"j c #CEDFEB", -"k c #D6D6D5", -"l c #FDFDFD", -"m c #FCFCFC", -"n c #FFC8A2", -"o c #FFBB8C", -"p c #FFAE75", -"q c #D6D6D6", -"r c #D5D5D5", -"s c #FFBD8F", -"t c #FFB079", -"u c #FFA262", -"v c #8CA8BD", -"w c #FBFBFB", -"x c #F3F3F3", -"y c #E9E9E9", -"z c #FFB27C", -"A c #FFA465", -"B c #FE9A55", -"C c #D6D5D5", -"D c #D3D2D2", -"E c #C4C3C3", -"F c #C4C4C4", -"G c #C3C3C3", -"H c #FFA669", -"I c #FAA162", -"J c #A37E60", -"K c #CEDFEC", -"L c #EDEDED", -"M c #F1F0F0", -"N c #EAE9E9", -"O c #EAEAEA", -"P c #E1A074", -"Q c #442102", -"R c #CEDEEB", -"S c #ADBDCB", -"T c #C8D4DD", -"U c #C5CDD8", -"V c #BEC9D4", -"W c #BECAD5", -"X c #BDC9D4", -"Y c #8CA7BC", -"Z c #87A4BA", -"` c #7E98AC", -" . c #8098AC", -".. c #7F98AC", -"+. c #7D97AB", -"@. c #8BA6BB", -"#. c #A6AFBB", -"$. c #CDCCCC", -"%. c #9A9B9B", -" . + + + ", -" @ # + + + ", -" @ $ % & * = + * + @ @ ", -" @ * - ; > , ' ' * * + + + * @ ", -" @ * ) ! ~ { ] ' * * + + + * @ ", -"@ @ ^ / ( _ : : : : : : : : : @ ", -" @ < [ } : | 1 2 3 3 3 3 4 4 5 ", -" @ 6 7 8 : 9 0 a b c c c d e d ", -" @ f g h i j 0 k l l l l m m m ", -" @ n o p i j 0 q q q q q r r r ", -"@ @ s t u i j v q l l l l w x y ", -" @ z A B i j v q q q C D E F G ", -" @ H I J : K v L l l M N N O y ", -" @ P Q @ R v S T U V W V X X ", -" @ # @ R Y Y Z ` . . ...+.", -" . @ R Y @.#.G E $.N r %."}; diff --git a/bitmaps_xpm/cursor.xpm b/bitmaps_xpm/cursor.xpm deleted file mode 100644 index 522e226c6b..0000000000 --- a/bitmaps_xpm/cursor.xpm +++ /dev/null @@ -1,97 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *cursor_xpm[]; - -#else -const char * cursor_xpm[] = { -"16 16 73 1", -" c None", -". c #000000", -"+ c #0C0C0C", -"@ c #0D0D0D", -"# c #D3D3D3", -"$ c #434343", -"% c #1A1A1A", -"& c #E5E5E5", -"* c #FFFFFF", -"= c #919199", -"- c #0E0E0F", -"; c #202020", -"> c #D5D5D5", -", c #F9F9FF", -"' c #ECECFF", -") c #C6C6E2", -"! c #3A3A47", -"~ c #252525", -"{ c #C6C6C6", -"] c #F3F3FF", -"^ c #E6E6FF", -"/ c #D9D9FF", -"( c #CCCCFF", -"_ c #76769E", -": c #0B0B11", -"< c #2A2A2A", -"[ c #B3B3B7", -"} c #EDEDFF", -"| c #E0E0FF", -"1 c #D3D3FF", -"2 c #A3A3D2", -"3 c #535372", -"4 c #101018", -"5 c #2E2E2E", -"6 c #A0A0A7", -"7 c #E7E7FF", -"8 c #C0C0E1", -"9 c #BBBBE9", -"0 c #0C0C10", -"a c #565656", -"b c #989898", -"c c #323232", -"d c #8E8E98", -"e c #9E9EB3", -"f c #0B0B0D", -"g c #9C9CC8", -"h c #7A7AA7", -"i c #999999", -"j c #9B9B9B", -"k c #363636", -"l c #2D2D31", -"m c #5D5D5D", -"n c #3F3F53", -"o c #B4B4FF", -"p c #3C3C5B", -"q c #060606", -"r c #393939", -"s c #474747", -"t c #181819", -"u c #9595DB", -"v c #9898F0", -"w c #13131F", -"x c #606060", -"y c #454568", -"z c #9B9BFF", -"A c #60609E", -"B c #969696", -"C c #161619", -"D c #41416B", -"E c #2F2F2F", -"F c #5A5A5A", -"G c #3E3E3E", -"H c #8E8E8E", -" . ", -" .+ ", -" @#$. ", -" %&*=- ", -" ;>,')!. ", -" ~{]^/(_: ", -" <[}|1234. ", -" 567890ab ", -" cdefgh~ij ", -" kl c #7D7D7D", -", c #FFFFFF", -"' c #BDBDCB", -") c #28282F", -"! c #6D6D6D", -"~ c #F7F7FF", -"{ c #E6E6FF", -"] c #D1D1F9", -"^ c #61617D", -"/ c #050507", -"( c #363636", -"_ c #5E5E5E", -": c #F0F0FF", -"< c #DFDFFF", -"[ c #BFBFEC", -"} c #6E6E93", -"| c #1C1C27", -"1 c #4C4C4E", -"2 c #E8E8FF", -"3 c #9F9FBC", -"4 c #7B7B9D", -"5 c #343434", -"6 c #9A9A9A", -"7 c #38383B", -"8 c #52525D", -"9 c #1C1C1D", -"0 c #A6A6DE", -"a c #393953", -"b c #636363", -"c c #242424", -"d c #7E7E7E", -"e c #7A7A7A", -"f c #4E4E6C", -"g c #9B9BED", -"h c #12121F", -"i c #959595", -"j c #2D2D30", -"k c #9494EC", -"l c #54548A", -"m c #000000", -"n c #181827", -" . ", -" .+ ", -"..@#........... ", -" +$%&++++++++++ ", -" .*=- ", -" ;>,') ", -" .!~{]^/ ", -" (_:<[}| ", -" (123456+ ", -" .7890ab ", -" .cdefgh ", -" .i+ jklm ", -" .6 !n# ", -" .+ e++ ", -" .+ + ", -" + "}; -#endif diff --git a/bitmaps_xpm/cut_button.xpm b/bitmaps_xpm/cut_button.xpm deleted file mode 100644 index 27ee7a355c..0000000000 --- a/bitmaps_xpm/cut_button.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *cut_button_xpm[]; - -#else -const char *cut_button_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c #000080", -/* pixels */ -" ", -" . . ", -" . . ", -" . . ", -" .. .. ", -" . . ", -" ... ", -" . ", -" X.X ", -" X XXX ", -" XXX X X ", -" X X X X ", -" X X X X ", -" X X XX ", -" XX " -}; -#endif - diff --git a/bitmaps_xpm/cvpcb.xpm b/bitmaps_xpm/cvpcb.xpm deleted file mode 100644 index bf43c1ab87..0000000000 --- a/bitmaps_xpm/cvpcb.xpm +++ /dev/null @@ -1,71 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *cvpcb_xpm[]; - -#else -const char *cvpcb_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 46 1", -" c None", -". c #160A00", -"+ c #FF7800", -"@ c #000000", -"# c #231000", -"$ c #DC8E49", -"% c #421F00", -"& c #E86D00", -"* c #FFFFFF", -"= c #C35B00", -"- c #FF8215", -"; c #F5933C", -"> c #9E7B5B", -", c #C7B4A5", -"' c #FDBD85", -") c #FFBF87", -"! c #FF8D29", -"~ c #FD9F4D", -"{ c #CFA078", -"] c #C7874F", -"^ c #F9B880", -"/ c #FF8519", -"( c #FF9231", -"_ c #FF9F49", -": c #FFAC62", -"< c #ECB88A", -"[ c #D5B69B", -"} c #F6EDE6", -"| c #F3F3F3", -"1 c #878787", -"2 c #FFB97A", -"3 c #F9C598", -"4 c #E8C9AE", -"5 c #F7EADF", -"6 c #FDFDFD", -"7 c #272727", -"8 c #FFC592", -"9 c #FDD1AA", -"0 c #F6DDC6", -"a c #FBEEE4", -"b c #FEFEFE", -"c c #C7C7C7", -"d c #F4F4F4", -"e c #888888", -"f c #EC6F00", -"g c #C65D00", -" . +++ ", -" @# +++ ", -" @$% &*= +*+@@", -" @-;>,'))**+++*@", -" @-!~{]^)**+++*@", -"@@/(_:<[}****|1@", -" @/(_:2345**67 ", -" @/(_:2890abc@ ", -" @/(_:2890abc@ ", -" @/(_:2345**67 ", -"@@/(_:<[}****de@", -" @-!~{]^)**+++*@", -" @-;>,'))**+++*@", -" @$% f*g +*+@@", -" @# +++ ", -" . +++ "}; -#endif diff --git a/bitmaps_xpm/dashline.xpm b/bitmaps_xpm/dashline.xpm deleted file mode 100644 index e911d3003e..0000000000 --- a/bitmaps_xpm/dashline.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *dashedline_xpm[]; - -#else -const char *dashedline_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 2 1", -"- c Red", -" c None", - -/* pixels */ -" --- ", -" -- ", -" - - ", -" - ", -" - ", -" - ", -" - ", -" - ", -" - ", -" - ", -" - ", -" - ", -" -- ", -" -- ", -" -- ", -" -" -}; -#endif - diff --git a/bitmaps_xpm/datasheet.xpm b/bitmaps_xpm/datasheet.xpm deleted file mode 100644 index 9f6da724c4..0000000000 --- a/bitmaps_xpm/datasheet.xpm +++ /dev/null @@ -1,46 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *datasheet_xpm[]; - -#else -const char * datasheet_xpm[] = { -"16 16 22 1", -" c None", -". c #000000", -"+ c #010101", -"@ c #FEFEFE", -"# c #EBEBEB", -"$ c #696969", -"% c #272727", -"& c #FFFFFF", -"* c #787878", -"= c #D4D4D4", -"- c #212121", -"; c #3A3A3A", -"> c #757575", -", c #595959", -"' c #B0B0B0", -") c #8E8E8E", -"! c #C3C3C3", -"~ c #913131", -"{ c #8D2D2D", -"] c #852525", -"^ c #C69696", -"/ c #C29292", -" ..........+. ", -".@#########$%. ", -".&##.#.#.#.*=-. ", -".&#........;>,. ", -".&#';######.)!. ", -".&#';######.#!. ", -".&#.........#!. ", -".&##.#.#.#.##!. ", -".&###########!. ", -".~{{{{{{{{{{{]. ", -".~&&^{&&^{&&&]. ", -".~&{&{&{&{&{{]. ", -".~&{&{&{&{&&{]. ", -".~&&^{&{&{&{{]. ", -".~&]]]&&/]&]]]. ", -"............... "}; -#endif diff --git a/bitmaps_xpm/delete.xpm b/bitmaps_xpm/delete.xpm deleted file mode 100644 index cdc62d3309..0000000000 --- a/bitmaps_xpm/delete.xpm +++ /dev/null @@ -1,176 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_xpm[]; - -#else -const char * delete_xpm[] = { -"16 16 152 2", -" c None", -". c #0E0E0E", -"+ c #424242", -"@ c #4A4A4A", -"# c #3E3E3E", -"$ c #2C2C2C", -"% c #000000", -"& c #858371", -"* c #F0EDD8", -"= c #F2F1E9", -"- c #EEEDE4", -"; c #C7C6BA", -"> c #535246", -", c #101010", -"' c #C2C0A5", -") c #C1BFA5", -"! c #7A7967", -"~ c #484740", -"{ c #272725", -"] c #36352E", -"^ c #878572", -"/ c #A09E88", -"( c #A3A18A", -"_ c #A5A38C", -": c #2B2B2B", -"< c #D3D1BC", -"[ c #DCDAC4", -"} c #E2E0CF", -"| c #B9B7A2", -"1 c #64625B", -"2 c #393836", -"3 c #3C3C33", -"4 c #616053", -"5 c #9A9883", -"6 c #B7B59B", -"7 c #B3B298", -"8 c #A4A28B", -"9 c #E8E4D3", -"0 c #F4F1E9", -"a c #F2F1E4", -"b c #EAE9DA", -"c c #E5E2D2", -"d c #D5D2BE", -"e c #C3C1A7", -"f c #AFAD94", -"g c #C0BEA4", -"h c #C6C4AC", -"i c #B8B69C", -"j c #797766", -"k c #8A8975", -"l c #F1EDD2", -"m c #FBF8E9", -"n c #F9F5ED", -"o c #F8F7EE", -"p c #F8F7EC", -"q c #F5F3E6", -"r c #ECEAD9", -"s c #DEDDCB", -"t c #9D9B89", -"u c #636254", -"v c #58574A", -"w c #525146", -"x c #737165", -"y c #9F9D91", -"z c #E4E1C8", -"A c #E9E5CF", -"B c #E2E0CB", -"C c #D1D1CB", -"D c #8E8D7F", -"E c #767564", -"F c #686758", -"G c #434238", -"H c #292822", -"I c #1F1F1B", -"J c #343430", -"K c #4B4944", -"L c #686762", -"M c #706F66", -"N c #6B6B64", -"O c #6E6C5D", -"P c #58574B", -"Q c #393931", -"R c #171615", -"S c #1A1A16", -"T c #1F1E19", -"U c #2A2A23", -"V c #A0A095", -"W c #4D4D40", -"X c #363630", -"Y c #2A2A26", -"Z c #2F2F2A", -"` c #0F0F0D", -" . c #0B0B09", -".. c #10100D", -"+. c #3E3E38", -"@. c #34342B", -"#. c #24241F", -"$. c #2B2B24", -"%. c #A5A499", -"&. c #B7B6AE", -"*. c #717067", -"=. c #A1A192", -"-. c #747363", -";. c #404035", -">. c #69695B", -",. c #39392F", -"'. c #69695F", -"). c #3F3F34", -"!. c #262620", -"~. c #2C2C25", -"{. c #ADADA3", -"]. c #D9D9D2", -"^. c #8B8B7F", -"/. c #D6D5CE", -"(. c #88887B", -"_. c #58574F", -":. c #939387", -"<. c #4A4A3D", -"[. c #78786B", -"}. c #505042", -"|. c #292922", -"1. c #DADAD3", -"2. c #8F8E81", -"3. c #DDDDD4", -"4. c #ACAB99", -"5. c #5D5D52", -"6. c #A0A093", -"7. c #79796C", -"8. c #7E7E75", -"9. c #D8D8D1", -"0. c #8D8D80", -"a. c #DDDDD3", -"b. c #444438", -"c. c #282822", -"d. c #272721", -"e. c #43433D", -"f. c #8E8E86", -"g. c #5E5E55", -"h. c #DADAD0", -"i. c #949484", -"j. c #5D5D53", -"k. c #23231D", -"l. c #060606", -"m. c #42413A", -"n. c #8F8F7B", -"o. c #7A7A6C", -"p. c #44443C", -"q. c #6C6C5E", -"r. c #35352C", -"s. c #2E2E29", -"t. c #0F0F0F", -"u. c #050505", -" . + @ # $ % ", -" % % & * = - ; > % % ", -" , ' ) ! ~ { ] ^ / ( _ % ", -" : < [ } | 1 2 3 4 5 6 7 8 % ", -" % 9 0 a b c d e f g h i j % ", -" % k l m n o p q r s t u v % ", -" % w x y z A B C D E F G H % ", -" I J K L M N O P Q R S T ", -" U V W X Y Z ` ...+.@.#. ", -" $.%.&.*.=.-.;.>.,.'.).!. ", -" ~.{.].^./.(._.:.<.[.}.|. ", -" ~.{.1.2.3.4.5.6.W 7.}.|. ", -" $.8.9.0.a.4.5.6.W [.b.c. ", -" d.e.f.g.h.4.5.i.W j.c.k. ", -" l.l.m.n.o.p.q.r.s.% ", -" l.% t.u.% % "}; -#endif diff --git a/bitmaps_xpm/delete_arc.xpm b/bitmaps_xpm/delete_arc.xpm deleted file mode 100644 index 18eb72c62c..0000000000 --- a/bitmaps_xpm/delete_arc.xpm +++ /dev/null @@ -1,162 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_arc_xpm[]; - -#else -const char * delete_arc_xpm[] = { -"16 16 138 2", -" c None", -". c #00009B", -"+ c #000099", -"@ c #000097", -"# c #000096", -"$ c #000073", -"% c #000039", -"& c #000036", -"* c #000051", -"= c #000086", -"- c #00008E", -"; c #000093", -"> c #000085", -", c #000074", -"' c #0D0D0D", -") c #414141", -"! c #494949", -"~ c #3D3D3D", -"{ c #2B2B2B", -"] c #000001", -"^ c #010177", -"/ c #000082", -"( c #000000", -"_ c #838170", -": c #EEEBD6", -"< c #F0EFE7", -"[ c #ECEBE2", -"} c #C5C4B8", -"| c #525146", -"1 c #01013F", -"2 c #0F0F0F", -"3 c #C0BEA3", -"4 c #BFBDA3", -"5 c #797866", -"6 c #47463F", -"7 c #262624", -"8 c #35342D", -"9 c #858371", -"0 c #9E9C86", -"a c #A19F89", -"b c #A3A18B", -"c c #2A2A2A", -"d c #D1CFBA", -"e c #DAD8C2", -"f c #E0DECD", -"g c #B7B5A0", -"h c #63615A", -"i c #383735", -"j c #3B3B32", -"k c #605F52", -"l c #989681", -"m c #B5B39A", -"n c #B1B097", -"o c #A2A089", -"p c #E6E2D1", -"q c #F2EFE7", -"r c #F0EFE2", -"s c #E8E7D8", -"t c #E3E0D0", -"u c #D3D0BC", -"v c #C1BFA5", -"w c #ADAB92", -"x c #BEBCA2", -"y c #C4C2AB", -"z c #B6B49B", -"A c #787665", -"B c #888774", -"C c #EFEBD0", -"D c #F9F6E7", -"E c #F7F3EB", -"F c #F6F5EC", -"G c #F6F5EA", -"H c #F3F1E4", -"I c #EAE8D7", -"J c #DCDBC9", -"K c #9B9988", -"L c #626154", -"M c #575649", -"N c #515045", -"O c #727064", -"P c #9D9B8F", -"Q c #E2DFC6", -"R c #E7E3CD", -"S c #E0DEC9", -"T c #CFCFC9", -"U c #8C8B7E", -"V c #757463", -"W c #676658", -"X c #424138", -"Y c #282721", -"Z c #1E1E1A", -"` c #33332F", -" . c #4A4843", -".. c #676661", -"+. c #6F6E65", -"@. c #6A6A63", -"#. c #6D6B5C", -"$. c #57564A", -"%. c #383830", -"&. c #161514", -"*. c #191915", -"=. c #1E1D18", -"-. c #292922", -";. c #9E9E93", -">. c #4C4C3F", -",. c #35352F", -"'. c #292925", -"). c #2E2E29", -"!. c #0E0E0C", -"~. c #0A0A08", -"{. c #0F0F0C", -"]. c #3D3D37", -"^. c #33332A", -"/. c #23231E", -"(. c #2A2A23", -"_. c #A3A297", -":. c #B5B4AC", -"<. c #706F66", -"[. c #9F9F90", -"}. c #737262", -"|. c #3F3F34", -"1. c #68685A", -"2. c #38382E", -"3. c #68685E", -"4. c #3E3E33", -"5. c #25251F", -"6. c #2B2B24", -"7. c #ABABA1", -"8. c #D7D7D0", -"9. c #89897E", -"0. c #D4D3CC", -"a. c #86867A", -"b. c #57564E", -"c. c #919185", -"d. c #49493C", -"e. c #77776A", -"f. c #4F4F41", -"g. c #282821", -" . . . . . ", -" . . . . . . . . + @ ", -" # $ % & * = . . - ", -" ; . > ", -" # . , ", -" ' ) ! ~ { ] ^ / ", -" ( ( _ : < [ } | ] ] 1 ", -" 2 3 4 5 6 7 8 9 0 a b ( ", -" c d e f g h i j k l m n o ( ", -" ( p q r s t u v w x y z A ( ", -" ( B C D E F G H I J K L M ( ", -" ( N O P Q R S T U V W X Y ( ", -" Z ` ...+.@.#.$.%.&.*.=. ", -" -.;.>.,.'.).!.~.{.].^./. ", -" (._.:.<.[.}.|.1.2.3.4.5. ", -" 6.7.8.9.0.a.b.c.d.e.f.g. "}; -#endif diff --git a/bitmaps_xpm/delete_association.xpm b/bitmaps_xpm/delete_association.xpm deleted file mode 100644 index 2894e2ff39..0000000000 --- a/bitmaps_xpm/delete_association.xpm +++ /dev/null @@ -1,172 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_association_xpm[]; - -#else -const char * delete_association_xpm[] = { -"16 16 148 2", -" c None", -". c #160A00", -"+ c #FF7800", -"@ c #000000", -"# c #231000", -"$ c #E1DFDE", -"% c #44260C", -"& c #E86D00", -"* c #FFFFFF", -"= c #C35B00", -"- c #FAF6F3", -"; c #A38F7C", -"> c #C7B4A5", -", c #FDBD85", -"' c #FFBF87", -") c #FFF3EC", -"! c #FEE6D6", -"~ c #D8BDA8", -"{ c #C7874F", -"] c #F9B880", -"^ c #FFF5EF", -"/ c #FFE8D8", -"( c #FFDBC2", -"_ c #FFCEAB", -": c #F4C8A9", -"< c #D6B69C", -"[ c #F6EDE6", -"} c #F3F3F3", -"| c #878787", -"1 c #FFEADC", -"2 c #FFDDC5", -"3 c #EFC3A4", -"4 c #B68B6D", -"5 c #0E0E0E", -"6 c #424242", -"7 c #4A4A4A", -"8 c #3E3E3E", -"9 c #2C2C2C", -"0 c #010101", -"a c #C1C1C1", -"b c #222222", -"c c #FFDFC8", -"d c #C7A38B", -"e c #848270", -"f c #EFECD6", -"g c #F1F0E7", -"h c #EDECE3", -"i c #C6C5B9", -"j c #535246", -"k c #C3A28B", -"l c #101010", -"m c #C1BFA4", -"n c #C0BEA3", -"o c #7A7966", -"p c #48473F", -"q c #272724", -"r c #36352E", -"s c #868472", -"t c #9F9D87", -"u c #A2A089", -"v c #A3A18A", -"w c #2B2B2B", -"x c #D2D0BB", -"y c #DBD9C2", -"z c #E1DFCD", -"A c #B8B6A0", -"B c #64625A", -"C c #393836", -"D c #3C3C33", -"E c #616053", -"F c #999782", -"G c #B6B49A", -"H c #B1B096", -"I c #E7E3D1", -"J c #F3F0E7", -"K c #F1F0E2", -"L c #E9E8D8", -"M c #E4E1D1", -"N c #D4D1BD", -"O c #C2C0A6", -"P c #AEAC93", -"Q c #BFBDA3", -"R c #C5C3AB", -"S c #B7B59B", -"T c #797766", -"U c #010100", -"V c #898874", -"W c #F0ECD0", -"X c #FAF7E7", -"Y c #F8F4EB", -"Z c #F7F6ED", -"` c #F7F6EB", -" . c #F4F2E5", -".. c #EBE9D8", -"+. c #DDDBC9", -"@. c #9C9987", -"#. c #636153", -"$. c #58574A", -"%. c #7E5234", -"&. c #525145", -"*. c #737064", -"=. c #9E9C90", -"-. c #E3E0C7", -";. c #E8E4CE", -">. c #E1DFCA", -",. c #D0D0CA", -"'. c #8D8C7F", -"). c #767463", -"!. c #686657", -"~. c #434137", -"{. c #292822", -"]. c #E1A074", -"^. c #1E1E1A", -"/. c #33332F", -"(. c #4A4843", -"_. c #686661", -":. c #706F66", -"<. c #6B6A63", -"[. c #6D6B5C", -"}. c #57564A", -"|. c #393830", -"1. c #171615", -"2. c #1A1915", -"3. c #1E1D18", -"4. c #2A2922", -"5. c #9E9E93", -"6. c #4C4C3F", -"7. c #36352F", -"8. c #2A2925", -"9. c #2F2E29", -"0. c #0E0E0C", -"a. c #0A0A08", -"b. c #100F0C", -"c. c #3E3D37", -"d. c #34332A", -"e. c #23231E", -"f. c #2B2A23", -"g. c #A3A297", -"h. c #B5B4AC", -"i. c #716F66", -"j. c #A09F90", -"k. c #747262", -"l. c #3F3F34", -"m. c #68685A", -"n. c #39382E", -"o. c #69685E", -"p. c #3F3E33", -"q. c #25251F", -" . + + + ", -" @ # + + + ", -" @ $ % & * = + * + @ @ ", -" @ * - ; > , ' ' * * + + + * @ ", -" @ * ) ! ~ { ] ' * * + + + * @ ", -"@ @ ^ / ( _ : < [ * * * * } | @ ", -" @ 1 2 3 4 5 6 7 8 9 0 a b ", -" @ c d 0 0 e f g h i j 0 @ ", -" @ k l m n o p q r s t u v @ ", -" @ w x y z A B C D E F G H u @ ", -"@ @ 0 I J K L M N O P Q R S T @ ", -" @ U V W X Y Z ` ...+.@.#.$.@ ", -" @ %.&.*.=.-.;.>.,.'.).!.~.{.@ ", -" @ ].^./.(._.:.<.[.}.|.1.2.3.@ ", -" @ # 4.5.6.7.8.9.0.a.b.c.d.e. ", -" . f.g.h.i.j.k.l.m.n.o.p.q. "}; -#endif diff --git a/bitmaps_xpm/delete_body.xpm b/bitmaps_xpm/delete_body.xpm deleted file mode 100644 index e0e9f21586..0000000000 --- a/bitmaps_xpm/delete_body.xpm +++ /dev/null @@ -1,39 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * delete_body_xpm[]; - -#else -const char * delete_body_xpm[] = -{ -"16 15 13 1", -"X c Black", -"% c #000080", -"W c #008000", -") c #008080", -"> c #00FF00", -"( c #800000", -": c #800080", -"- c #808080", -". c None", -"? c #FF0000", -"U c #FF00FF", -"$ c #FFFF00", -"o c White", - -"............Xoo$", -"...........Xoo$$", -"..........Xoo$$%", -".........X>Xo$%-", -"........X>$>X%--", -".......X>$>WWX-X", -"......?UX>WW%)X.", -".o...?UoUXW%)X..", -".oo.?UoU?UX)X...", -"ooo.U?o?UU)X....", -"oooo?U?UU:(.....", -"oooo-?UU:(......", -"ooooo-(((.......", -".oooooo.........", -"..o..o.........." -}; -#endif diff --git a/bitmaps_xpm/delete_bus.xpm b/bitmaps_xpm/delete_bus.xpm deleted file mode 100644 index d5bf6926f1..0000000000 --- a/bitmaps_xpm/delete_bus.xpm +++ /dev/null @@ -1,154 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_bus_xpm[]; - -#else -const char * delete_bus_xpm[] = { -"16 16 130 2", -" c None", -". c #0000C3", -"+ c #9B9B9B", -"@ c #060606", -"# c #202020", -"$ c #242424", -"% c #1E1E1E", -"& c #151515", -"* c #000000", -"= c #48473F", -"- c #97968B", -"; c #9C9C98", -"> c #94948F", -", c #787872", -"' c #292822", -") c #080808", -"! c #605F51", -"~ c #5F5E51", -"{ c #7E7D6B", -"] c #9A988A", -"^ c #8B8A85", -"/ c #908F87", -"( c #A5A494", -"_ c #787766", -": c #504F44", -"< c #515045", -"[ c #161616", -"} c #706F65", -"| c #CDCBB3", -"1 c #CFCDB8", -"2 c #989683", -"3 c #55534C", -"4 c #2F2F2D", -"5 c #383830", -"6 c #737161", -"7 c #9B9984", -"8 c #ABA991", -"9 c #AAA990", -"0 c #515044", -"a c #DBD8C5", -"b c #E6E3D4", -"c c #E8E6D7", -"d c #CFCEBC", -"e c #A3A095", -"f c #858379", -"g c #7E7D6C", -"h c #868572", -"i c #ABA992", -"j c #BDBBA2", -"k c #B4B298", -"l c #8D8B77", -"m c #B7B5A2", -"n c #F0EDDB", -"o c #F4F2E4", -"p c #EFEDE1", -"q c #ECEADE", -"r c #E4E2D3", -"s c #DAD8C4", -"t c #CBC9B5", -"u c #CDCBB6", -"v c #B0AE99", -"w c #8C8A77", -"x c #676657", -"y c #6D6C5C", -"z c #B0AD9A", -"A c #CBC8BB", -"B c #ECE9D8", -"C c #EEECDC", -"D c #EBE9D9", -"E c #E1E0D6", -"F c #BBBAAA", -"G c #A8A796", -"H c #817F6F", -"I c #525145", -"J c #3F3F35", -"K c #383730", -"L c #525149", -"M c #747269", -"N c #A4A293", -"O c #ABA899", -"P c #A5A496", -"Q c #9E9D92", -"R c #727164", -"S c #565649", -"T c #3F3E36", -"U c #2E2D26", -"V c #23221D", -"W c #24241E", -"X c #696961", -"Y c #4B4A41", -"Z c #4E4D48", -"` c #4C4B45", -" . c #4C4C46", -".. c #3E3D34", -"+. c #313029", -"@. c #2A2926", -"#. c #262620", -"$. c #21201B", -"%. c #2A2A23", -"&. c #A1A095", -"*. c #808076", -"=. c #52524A", -"-. c #64645B", -";. c #505045", -">. c #272720", -",. c #393931", -"'. c #24241D", -"). c #39392F", -"!. c #24241F", -"~. c #2B2B24", -"{. c #A7A79C", -"]. c #C6C5BE", -"^. c #7D7C72", -"/. c #BAB9AE", -"(. c #7D7C6E", -"_. c #7D7D70", -":. c #404035", -"<. c #6F6F64", -"[. c #46463A", -"}. c #ABABA1", -"|. c #D7D7D0", -"1. c #8B8B7F", -"2. c #D7D7CF", -"3. c #989888", -"4. c #59594F", -"5. c #98988B", -"6. c #4A4A3E", -"7. c #77776A", -"8. c #4F4F41", -"9. c #282821", -". . . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . . + ", -". . . . . . . . . . . . . . . + ", -" + + + + + + + + + + + + + + + ", -" @ # $ % & * ", -" * * = - ; > , ' * * ", -" ) ! ~ { ] ^ / ( _ : < * ", -" [ } | 1 2 3 4 5 6 7 8 9 0 * ", -" & a b c d e f g h i j k l * ", -" * m n o p q r s t u v w x * ", -" * y z A B C D E F G H I J * ", -" K L M N O P Q R S T U V ", -" W X Y Z ` ...+.W @.#.$. ", -" %.&.*.=.-.;.>.,.'.=.).!. ", -" ~.{.].^./.(.Y _.:.<.[.>. ", -" ~.}.|.1.2.3.4.5.6.7.8.9. "}; -#endif diff --git a/bitmaps_xpm/delete_circle.xpm b/bitmaps_xpm/delete_circle.xpm deleted file mode 100644 index 03c8146056..0000000000 --- a/bitmaps_xpm/delete_circle.xpm +++ /dev/null @@ -1,150 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_circle_xpm[]; - -#else -const char * delete_circle_xpm[] = { -"16 16 126 2", -" c None", -". c #00009B", -"+ c #000096", -"@ c #00008C", -"# c #000053", -"$ c #00008A", -"% c #00009A", -"& c #000073", -"* c #00007A", -"= c #000092", -"- c #00006F", -"; c #000083", -"> c #0D0D0D", -", c #414141", -"' c #494949", -") c #3D3D3D", -"! c #2B2B2B", -"~ c #000001", -"{ c #010177", -"] c #000081", -"^ c #000000", -"/ c #838170", -"( c #EEEBD6", -"_ c #F0EFE7", -": c #ECEBE2", -"< c #C5C4B8", -"[ c #525146", -"} c #010101", -"| c #010140", -"1 c #0F0F0F", -"2 c #C0BEA3", -"3 c #BFBDA3", -"4 c #797866", -"5 c #47463F", -"6 c #262624", -"7 c #35342D", -"8 c #858371", -"9 c #9E9C87", -"0 c #A19F89", -"a c #A3A18B", -"b c #2A2A2B", -"c c #D1CFBA", -"d c #DAD8C2", -"e c #E0DECD", -"f c #B7B5A0", -"g c #63615A", -"h c #383735", -"i c #3B3B32", -"j c #605F53", -"k c #989682", -"l c #B5B39A", -"m c #B1B096", -"n c #A2A089", -"o c #E6E2D1", -"p c #F2EFE7", -"q c #F0EFE2", -"r c #E8E7D8", -"s c #E3E0D0", -"t c #D3D0BC", -"u c #C1BFA6", -"v c #ADAB93", -"w c #BEBCA3", -"x c #C4C2AB", -"y c #B6B49A", -"z c #787665", -"A c #888775", -"B c #EFEBD1", -"C c #F9F6E8", -"D c #F7F3EC", -"E c #F6F5ED", -"F c #F6F5EB", -"G c #F3F1E5", -"H c #EAE8D8", -"I c #DCDBCA", -"J c #9B9987", -"K c #626153", -"L c #575649", -"M c #00003B", -"N c #515046", -"O c #727065", -"P c #9D9B90", -"Q c #E2DFC7", -"R c #E7E3CE", -"S c #E0DECA", -"T c #CFCFCA", -"U c #8C8B7F", -"V c #757463", -"W c #676657", -"X c #424137", -"Y c #282721", -"Z c #1E1E1A", -"` c #33332F", -" . c #4A4844", -".. c #676662", -"+. c #6F6E66", -"@. c #6A6A64", -"#. c #6D6B5C", -"$. c #57564A", -"%. c #383830", -"&. c #161514", -"*. c #191915", -"=. c #1E1D18", -"-. c #292922", -";. c #9E9E93", -">. c #4C4C3F", -",. c #35352F", -"'. c #292925", -"). c #2E2E29", -"!. c #0E0E0C", -"~. c #0A0A08", -"{. c #0F0F0C", -"]. c #3D3D37", -"^. c #33332A", -"/. c #23231E", -"(. c #2A2A23", -"_. c #A3A297", -":. c #B5B4AC", -"<. c #706F66", -"[. c #9F9F90", -"}. c #737262", -"|. c #3F3F34", -"1. c #68685A", -"2. c #38382E", -"3. c #68685E", -"4. c #3E3E33", -"5. c #25251F", -" . . . . ", -" . . . . . . . + ", -" . . @ # # $ . % ", -" . . & * . = ", -" . @ = . - ", -". . # . ; ", -". . > , ' ) ! ~ { ] ", -". . ^ ^ / ( _ : < [ ~ ~ } ", -". . | 1 2 3 4 5 6 7 8 9 0 a ^ ", -" . b c d e f g h i j k l m n ^ ", -" + ~ o p q r s t u v w x y z ^ ", -" ~ A B C D E F G H I J K L ^ ", -" M N O P Q R S T U V W X Y ^ ", -" Z ` ...+.@.#.$.%.&.*.=. ", -" -.;.>.,.'.).!.~.{.].^./. ", -" (._.:.<.[.}.|.1.2.3.4.5. "}; -#endif diff --git a/bitmaps_xpm/delete_connection.xpm b/bitmaps_xpm/delete_connection.xpm deleted file mode 100644 index 1827271de1..0000000000 --- a/bitmaps_xpm/delete_connection.xpm +++ /dev/null @@ -1,181 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_connection_xpm[]; - -#else -const char * delete_connection_xpm[] = { -"16 16 157 2", -" c None", -". c #000000", -"+ c #242424", -"@ c #424242", -"# c #222222", -"$ c #868483", -"% c #E1D5CA", -"& c #B7A595", -"* c #564A3F", -"= c #0B0A0A", -"- c #151515", -"; c #EAE2DB", -"> c #FFEBDA", -", c #FFE0C5", -"' c #FFD5B1", -") c #FFCA9C", -"! c #806044", -"~ c #2B2B2B", -"{ c #645F59", -"] c #FFE6CF", -"^ c #FFDBBB", -"/ c #FFD0A6", -"( c #FFC591", -"_ c #FFBA7D", -": c #E49C5D", -"< c #111111", -"[ c #FFFFFF", -"} c #9C9C9C", -"| c #64584D", -"1 c #FFD5B0", -"2 c #FFCA9B", -"3 c #FFBF87", -"4 c #FFB472", -"5 c #FFA95D", -"6 c #E48D41", -"7 c #D8D8D8", -"8 c #C1C1C1", -"9 c #16120F", -"0 c #EAB485", -"a c #FFB97C", -"b c #FFAF67", -"c c #FFA453", -"d c #FF993E", -"e c #804715", -"f c #3A3A3A", -"g c #CACACA", -"h c #393939", -"i c #22180F", -"j c #865931", -"k c #E18B40", -"l c #B76925", -"m c #562E0A", -"n c #030100", -"o c #6E6E6E", -"p c #010101", -"q c #5C5A4E", -"r c #383732", -"s c #0E0E0D", -"t c #212120", -"u c #51514C", -"v c #4D4C41", -"w c #0F0F0F", -"x c #C0BEA3", -"y c #BFBDA3", -"z c #7A7967", -"A c #484740", -"B c #272725", -"C c #36352E", -"D c #868472", -"E c #9F9D87", -"F c #A19F88", -"G c #A3A18A", -"H c #2A2A2A", -"I c #D1CFBA", -"J c #DAD8C2", -"K c #E0DECD", -"L c #B7B5A0", -"M c #63615A", -"N c #383735", -"O c #3C3C33", -"P c #616053", -"Q c #989681", -"R c #B5B399", -"S c #B1B096", -"T c #A2A089", -"U c #E6E2D1", -"V c #F2EFE7", -"W c #F0EFE2", -"X c #E8E7D8", -"Y c #E3E0D0", -"Z c #D3D0BC", -"` c #C2C0A6", -" . c #AEAC93", -".. c #BEBCA2", -"+. c #C4C2AA", -"@. c #B6B49A", -"#. c #787665", -"$. c #888774", -"%. c #EFEBD0", -"&. c #F9F6E7", -"*. c #F7F3EB", -"=. c #F6F5EC", -"-. c #F6F5EA", -";. c #F4F2E5", -">. c #EBE9D8", -",. c #DCDBC9", -"'. c #9B9987", -"). c #626153", -"!. c #575649", -"~. c #515045", -"{. c #727064", -"]. c #9D9B8F", -"^. c #E2DFC6", -"/. c #E7E3CD", -"(. c #E0DEC9", -"_. c #D0D0CA", -":. c #8D8C7F", -"<. c #757463", -"[. c #676657", -"}. c #424137", -"|. c #282721", -"1. c #1E1E1A", -"2. c #33332F", -"3. c #4A4843", -"4. c #676661", -"5. c #6F6E65", -"6. c #6A6A63", -"7. c #6D6B5C", -"8. c #57564A", -"9. c #383830", -"0. c #161514", -"a. c #191915", -"b. c #1E1D18", -"c. c #292922", -"d. c #9E9E93", -"e. c #4C4C3F", -"f. c #35352F", -"g. c #292925", -"h. c #2E2E29", -"i. c #0E0E0C", -"j. c #0A0A08", -"k. c #0F0F0C", -"l. c #3D3D37", -"m. c #33332A", -"n. c #23231E", -"o. c #2A2A23", -"p. c #A3A297", -"q. c #B5B4AC", -"r. c #706F66", -"s. c #9F9F90", -"t. c #737262", -"u. c #3F3F34", -"v. c #68685A", -"w. c #38382E", -"x. c #68685E", -"y. c #3E3E33", -"z. c #25251F", -" . . + @ ", -" # $ % & * = ", -" - ; > , ' ) ! ~ ", -" { ] ^ / ( _ : < ", -" [ [ } | 1 2 3 4 5 6 < 7 [ [ [ ", -" [ [ 8 9 0 a b c d e f g [ [ [ ", -" h i j k l m n o ", -" . p q r s t u v p . ", -" w x y z A B C D E F G . ", -" H I J K L M N O P Q R S T . ", -" . U V W X Y Z ` ...+.@.#.. ", -" . $.%.&.*.=.-.;.>.,.'.).!.. ", -" . ~.{.].^./.(._.:.<.[.}.|.. ", -" 1.2.3.4.5.6.7.8.9.0.a.b. ", -" c.d.e.f.g.h.i.j.k.l.m.n. ", -" o.p.q.r.s.t.u.v.w.x.y.z. "}; -#endif diff --git a/bitmaps_xpm/delete_cotation.xpm b/bitmaps_xpm/delete_cotation.xpm deleted file mode 100644 index 06e8095099..0000000000 --- a/bitmaps_xpm/delete_cotation.xpm +++ /dev/null @@ -1,134 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_cotation_xpm[]; - -#else -const char * delete_cotation_xpm[] = { -"16 16 110 2", -" c None", -". c #000000", -"+ c #00009B", -"@ c #000097", -"# c #000099", -"$ c #00008B", -"% c #000095", -"& c #000088", -"* c #000072", -"= c #010101", -"- c #0D0D0D", -"; c #414141", -"> c #494949", -", c #3D3D3D", -"' c #2B2B2B", -") c #01014F", -"! c #000081", -"~ c #00008F", -"{ c #010166", -"] c #838170", -"^ c #EEEBD6", -"/ c #F0EFE7", -"( c #ECEBE2", -"_ c #C5C4B8", -": c #525146", -"< c #000001", -"[ c #01016F", -"} c #0F0F0F", -"| c #C0BEA3", -"1 c #BFBDA3", -"2 c #797866", -"3 c #47463F", -"4 c #262624", -"5 c #35342D", -"6 c #858371", -"7 c #9E9C87", -"8 c #A19F88", -"9 c #A3A18A", -"0 c #2A2A2A", -"a c #D1CFBA", -"b c #DAD8C2", -"c c #E0DECD", -"d c #B7B5A0", -"e c #63615A", -"f c #383735", -"g c #3B3B32", -"h c #605F52", -"i c #989681", -"j c #B5B399", -"k c #B1B096", -"l c #A2A08A", -"m c #E6E2D1", -"n c #F2EFE7", -"o c #F0EFE2", -"p c #E8E7D8", -"q c #E3E0D0", -"r c #D3D0BC", -"s c #C1BFA5", -"t c #ADAB92", -"u c #BEBCA2", -"v c #C4C2AA", -"w c #B6B49A", -"x c #787666", -"y c #888774", -"z c #EFEBD0", -"A c #F9F6E7", -"B c #F7F3EB", -"C c #F6F5EC", -"D c #F6F5EA", -"E c #F3F1E4", -"F c #EAE8D7", -"G c #DCDBC9", -"H c #9B9987", -"I c #626153", -"J c #57564A", -"K c #515045", -"L c #727064", -"M c #9D9B8F", -"N c #E2DFC6", -"O c #E7E3CD", -"P c #E0DEC9", -"Q c #CFCFC9", -"R c #8C8B7E", -"S c #757463", -"T c #676657", -"U c #424137", -"V c #282722", -"W c #1E1E1A", -"X c #33332F", -"Y c #4A4843", -"Z c #676661", -"` c #6F6E65", -" . c #6A6A63", -".. c #6D6B5C", -"+. c #383830", -"@. c #161514", -"#. c #191915", -"$. c #1E1D19", -"%. c #292922", -"&. c #9E9E93", -"*. c #4C4C3F", -"=. c #35352F", -"-. c #292925", -";. c #2E2E29", -">. c #0E0E0C", -",. c #0A0A08", -"'. c #0F0F0C", -"). c #3D3D37", -"!. c #33332A", -"~. c #23231E", -" . . ", -" . . . ", -" . . . . ", -" . . ", -"+ + @ . . # + ", -"+ $ @ % + ", -"+ # + + + + + + + + + + + + + ", -"+ & * = - ; > , ' . ) ! + . ", -"+ ~ { . . ] ^ / ( _ : < . [ ", -"+ } | 1 2 3 4 5 6 7 8 9 < ", -"+ 0 a b c d e f g h i j k l . ", -"+ . m n o p q r s t u v w x . ", -"+ . y z A B C D E F G H I J . ", -"+ . K L M N O P Q R S T U V . ", -" W X Y Z ` ...J +.@.#.$. ", -" %.&.*.=.-.;.>.,.'.).!.~. "}; -#endif diff --git a/bitmaps_xpm/delete_field.xpm b/bitmaps_xpm/delete_field.xpm deleted file mode 100644 index 09e5b4b4a7..0000000000 --- a/bitmaps_xpm/delete_field.xpm +++ /dev/null @@ -1,148 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_field_xpm[]; - -#else -const char * delete_field_xpm[] = { -"16 16 124 2", -" c None", -". c #D2D2D2", -"+ c #9D9D9D", -"@ c #DEDEDE", -"# c #E0E0E0", -"$ c #5C5C5C", -"% c #000000", -"& c #EDEDED", -"* c #939393", -"= c #FDFDFD", -"- c #E4E4E4", -"; c #F1F1F1", -"> c #C8C8C8", -", c #E7E7E7", -"' c #F4F4F4", -") c #8F8F8F", -"! c #E9E9E9", -"~ c #F6F6F6", -"{ c #C0C0C0", -"] c #FAFAFA", -"^ c #9C9C9C", -"/ c #999999", -"( c #F0F0F0", -"_ c #B5B5B5", -": c #0E0E0E", -"< c #424242", -"[ c #4A4A4A", -"} c #3E3E3E", -"| c #2C2C2C", -"1 c #010101", -"2 c #C1C1C1", -"3 c #DDDDDD", -"4 c #7B7B7B", -"5 c #848271", -"6 c #EFECD7", -"7 c #F1F0E8", -"8 c #EDECE3", -"9 c #C6C5B9", -"0 c #535246", -"a c #707070", -"b c #0F0F0F", -"c c #C0BEA3", -"d c #BFBDA3", -"e c #797866", -"f c #47463F", -"g c #262624", -"h c #35342D", -"i c #858371", -"j c #9E9C86", -"k c #A19F88", -"l c #A3A18A", -"m c #2A2A2A", -"n c #D1CFBA", -"o c #DAD8C2", -"p c #E0DECD", -"q c #B7B5A0", -"r c #63615A", -"s c #383735", -"t c #3B3B32", -"u c #605F52", -"v c #989681", -"w c #B5B399", -"x c #B1B096", -"y c #A2A089", -"z c #E6E2D1", -"A c #F2EFE7", -"B c #F0EFE2", -"C c #E8E7D8", -"D c #E3E0D0", -"E c #D3D0BC", -"F c #C1BFA5", -"G c #ADAB92", -"H c #BEBCA2", -"I c #C4C2AA", -"J c #B6B49A", -"K c #787665", -"L c #888774", -"M c #EFEBD0", -"N c #F9F6E7", -"O c #F7F3EB", -"P c #F6F5EC", -"Q c #F6F5EA", -"R c #F3F1E4", -"S c #EAE8D7", -"T c #DCDBC9", -"U c #9B9987", -"V c #626153", -"W c #575649", -"X c #515045", -"Y c #727064", -"Z c #9D9B8F", -"` c #E2DFC6", -" . c #E7E3CD", -".. c #E0DEC9", -"+. c #CFCFC9", -"@. c #8C8B7E", -"#. c #757463", -"$. c #676657", -"%. c #424137", -"&. c #282721", -"*. c #1E1E1A", -"=. c #33332F", -"-. c #4A4843", -";. c #676661", -">. c #6F6E65", -",. c #6A6A63", -"'. c #6D6B5C", -"). c #57564A", -"!. c #383830", -"~. c #161514", -"{. c #191915", -"]. c #1E1D18", -"^. c #292922", -"/. c #9E9E93", -"(. c #4C4C3F", -"_. c #35352F", -":. c #292925", -"<. c #2E2E29", -"[. c #0E0E0C", -"}. c #0A0A08", -"|. c #0F0F0C", -"1. c #3D3D37", -"2. c #33332A", -"3. c #23231E", -". + + + + + + + + + + + + + + . ", -"+ . @ @ @ @ @ @ @ @ @ @ @ @ @ + ", -"+ # $ % % $ & % % % * & = = = + ", -"+ - % ; ; % ; % ; > % ; = = = + ", -"+ , % ' ' % ' % % % ) ' = = = + ", -"+ ! % % % % ~ % ~ { % ~ = = = + ", -"+ & % ] ] % ] % % % ^ ] / = / + ", -"+ ( = & _ : < [ } | 1 2 3 = = + ", -". + 4 1 1 5 6 7 8 9 0 1 1 a + . ", -" b c d e f g h i j k l % ", -" m n o p q r s t u v w x y % ", -" % z A B C D E F G H I J K % ", -" % L M N O P Q R S T U V W % ", -" % X Y Z ` ...+.@.#.$.%.&.% ", -" *.=.-.;.>.,.'.).!.~.{.]. ", -" ^./.(._.:.<.[.}.|.1.2.3. "}; -#endif diff --git a/bitmaps_xpm/delete_glabel.xpm b/bitmaps_xpm/delete_glabel.xpm deleted file mode 100644 index e476dc9c2e..0000000000 --- a/bitmaps_xpm/delete_glabel.xpm +++ /dev/null @@ -1,157 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_glabel_xpm[]; - -#else -const char * delete_glabel_xpm[] = { -"16 16 133 2", -" c None", -". c #695F00", -"+ c #685E00", -"@ c #635A00", -"# c #4B4400", -"$ c #9191FF", -"% c #9B9BFF", -"& c #A5A5FF", -"* c #857F66", -"= c #5F5500", -"- c #5E5500", -"; c #574E00", -"> c #625800", -", c #9E9EFF", -"' c #A8A8FF", -") c #B2B2FF", -"! c #BBBBF9", -"~ c #7D7539", -"{ c #595100", -"] c #ACACFF", -"^ c #B6B6FF", -"/ c #C0C0FF", -"( c #CACAFF", -"_ c #BFBDCC", -": c #B9B9FF", -"< c #C3C3FF", -"[ c #CECEFF", -"} c #D5D5F9", -"| c #847C39", -"1 c #4E4700", -"2 c #C7C7FF", -"3 c #D1D1FF", -"4 c #DBDBFF", -"5 c #9B9566", -"6 c #574F00", -"7 c #0E0D00", -"8 c #0D0D0D", -"9 c #414141", -"0 c #494949", -"a c #3D3D3D", -"b c #2B2B2B", -"c c #000000", -"d c #010101", -"e c #838170", -"f c #EEEBD6", -"g c #F0EFE7", -"h c #ECEBE2", -"i c #C5C4B8", -"j c #525145", -"k c #0F0F0F", -"l c #C0BEA3", -"m c #BFBDA3", -"n c #797866", -"o c #47463F", -"p c #262624", -"q c #35342D", -"r c #858371", -"s c #9E9C86", -"t c #A19F88", -"u c #A3A18A", -"v c #2A2A2A", -"w c #D1CFBA", -"x c #DAD8C2", -"y c #E0DECD", -"z c #B7B5A0", -"A c #63615A", -"B c #383735", -"C c #3B3B32", -"D c #605F52", -"E c #989681", -"F c #B5B399", -"G c #B1B096", -"H c #A2A089", -"I c #E6E2D1", -"J c #F2EFE7", -"K c #F0EFE2", -"L c #E8E7D8", -"M c #E3E0D0", -"N c #D3D0BC", -"O c #C1BFA5", -"P c #ADAB92", -"Q c #BEBCA2", -"R c #C4C2AA", -"S c #B6B49A", -"T c #787665", -"U c #888774", -"V c #EFEBD0", -"W c #F9F6E7", -"X c #F7F3EB", -"Y c #F6F5EC", -"Z c #F6F5EA", -"` c #F3F1E4", -" . c #EAE8D7", -".. c #DCDBC9", -"+. c #9B9987", -"@. c #626153", -"#. c #575649", -"$. c #515045", -"%. c #727064", -"&. c #9D9B8F", -"*. c #E2DFC6", -"=. c #E7E3CD", -"-. c #E0DEC9", -";. c #CFCFC9", -">. c #8C8B7E", -",. c #757463", -"'. c #676657", -"). c #424137", -"!. c #282721", -"~. c #1E1E1A", -"{. c #33332F", -"]. c #4A4843", -"^. c #676661", -"/. c #6F6E65", -"(. c #6A6A63", -"_. c #6D6B5C", -":. c #57564A", -"<. c #383830", -"[. c #161514", -"}. c #191915", -"|. c #1E1D18", -"1. c #292922", -"2. c #9E9E93", -"3. c #4C4C3F", -"4. c #35352F", -"5. c #292925", -"6. c #2E2E29", -"7. c #0E0E0C", -"8. c #0A0A08", -"9. c #0F0F0C", -"0. c #3D3D37", -"a. c #33332A", -"b. c #23231E", -" . . . . . . . ", -" . + @ # . $ % & * = ", -" . - ; > . , ' ) ! ~ { ", -" . . . . . ] ^ / ( _ . ", -". + @ # . : < [ } | 1 ", -". - . > . 2 3 4 5 6 ", -" . . . . - 7 ", -" 8 9 0 a b c d ", -" c c e f g h i j c c ", -" k l m n o p q r s t u c ", -" v w x y z A B C D E F G H c ", -" c I J K L M N O P Q R S T c ", -" c U V W X Y Z ` ...+.@.#.c ", -" c $.%.&.*.=.-.;.>.,.'.).!.c ", -" ~.{.].^./.(._.:.<.[.}.|. ", -" 1.2.3.4.5.6.7.8.9.0.a.b. "}; -#endif diff --git a/bitmaps_xpm/delete_line.xpm b/bitmaps_xpm/delete_line.xpm deleted file mode 100644 index 599b3fb575..0000000000 --- a/bitmaps_xpm/delete_line.xpm +++ /dev/null @@ -1,155 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_line_xpm[]; - -#else -const char * delete_line_xpm[] = { -"16 16 131 2", -" c None", -". c #007D00", -"+ c #4D8B4D", -"@ c #9B9B9B", -"# c #060606", -"$ c #202020", -"% c #242424", -"& c #1E1E1E", -"* c #151515", -"= c #000000", -"- c #48473F", -"; c #97968B", -"> c #9C9C98", -", c #94948F", -"' c #787872", -") c #292822", -"! c #080808", -"~ c #605F51", -"{ c #5F5E51", -"] c #7E7D6B", -"^ c #9A988A", -"/ c #8B8A85", -"( c #908F87", -"_ c #A5A494", -": c #787766", -"< c #504F44", -"[ c #515045", -"} c #161616", -"| c #706F65", -"1 c #CDCBB3", -"2 c #CFCDB8", -"3 c #989683", -"4 c #55534C", -"5 c #2F2F2D", -"6 c #383830", -"7 c #737161", -"8 c #9B9984", -"9 c #ABA991", -"0 c #AAA990", -"a c #515044", -"b c #DBD8C5", -"c c #E6E3D4", -"d c #E8E6D7", -"e c #CFCEBC", -"f c #A3A095", -"g c #858379", -"h c #7E7D6C", -"i c #868572", -"j c #ABA992", -"k c #BDBBA2", -"l c #B4B298", -"m c #8D8B77", -"n c #B7B5A2", -"o c #F0EDDB", -"p c #F4F2E4", -"q c #EFEDE1", -"r c #ECEADE", -"s c #E4E2D3", -"t c #DAD8C4", -"u c #CBC9B5", -"v c #CDCBB6", -"w c #B0AE99", -"x c #8C8A77", -"y c #676657", -"z c #6D6C5C", -"A c #B0AD9A", -"B c #CBC8BB", -"C c #ECE9D8", -"D c #EEECDC", -"E c #EBE9D9", -"F c #E1E0D6", -"G c #BBBAAA", -"H c #A8A796", -"I c #817F6F", -"J c #525145", -"K c #3F3F35", -"L c #383730", -"M c #525149", -"N c #747269", -"O c #A4A293", -"P c #ABA899", -"Q c #A5A496", -"R c #9E9D92", -"S c #727164", -"T c #565649", -"U c #3F3E36", -"V c #2E2D26", -"W c #23221D", -"X c #24241E", -"Y c #696961", -"Z c #4B4A41", -"` c #4E4D48", -" . c #4C4B45", -".. c #4C4C46", -"+. c #3E3D34", -"@. c #313029", -"#. c #2A2926", -"$. c #262620", -"%. c #21201B", -"&. c #2A2A23", -"*. c #A1A095", -"=. c #808076", -"-. c #52524A", -";. c #64645B", -">. c #505045", -",. c #272720", -"'. c #393931", -"). c #24241D", -"!. c #39392F", -"~. c #24241F", -"{. c #2B2B24", -"]. c #A7A79C", -"^. c #C6C5BE", -"/. c #7D7C72", -"(. c #BAB9AE", -"_. c #7D7C6E", -":. c #7D7D70", -"<. c #404035", -"[. c #6F6F64", -"}. c #46463A", -"|. c #ABABA1", -"1. c #D7D7D0", -"2. c #8B8B7F", -"3. c #D7D7CF", -"4. c #989888", -"5. c #59594F", -"6. c #98988B", -"7. c #4A4A3E", -"8. c #77776A", -"9. c #4F4F41", -"0. c #282821", -" ", -". . . . . . . . . . . . . . . ", -". + + + + + + + + + + + + + + @ ", -" @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", -" # $ % & * = ", -" = = - ; > , ' ) = = ", -" ! ~ { ] ^ / ( _ : < [ = ", -" } | 1 2 3 4 5 6 7 8 9 0 a = ", -" * b c d e f g h i j k l m = ", -" = n o p q r s t u v w x y = ", -" = z A B C D E F G H I J K = ", -" L M N O P Q R S T U V W ", -" X Y Z ` ...+.@.X #.$.%. ", -" &.*.=.-.;.>.,.'.).-.!.~. ", -" {.].^./.(._.Z :.<.[.}.,. ", -" {.|.1.2.3.4.5.6.7.8.9.0. "}; -#endif diff --git a/bitmaps_xpm/delete_module.xpm b/bitmaps_xpm/delete_module.xpm deleted file mode 100644 index ae3f6a9bd4..0000000000 --- a/bitmaps_xpm/delete_module.xpm +++ /dev/null @@ -1,153 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* delete_module_xpm[]; -#else -const char * delete_module_xpm[] = { -"16 16 129 2", -" c None", -". c #000000", -"+ c #C0C0C0", -"@ c #B8B8C0", -"# c #D72E2E", -"$ c #FFFFFF", -"% c #F5F4FF", -"& c #EBEAFF", -"* c #F5F5FF", -"= c #EBEBFF", -"- c #E1E1FF", -"; c #F6F5FF", -"> c #ECEBFF", -", c #E2E1FF", -"' c #D8D7FF", -") c #ECECFF", -"! c #E2E2FF", -"~ c #CECDFF", -"{ c #D5D4EF", -"] c #9B9AB6", -"^ c #0E0E0E", -"/ c #424242", -"( c #494949", -"_ c #3E3D3D", -": c #2B2B2B", -"< c #010101", -"[ c #848271", -"} c #EFECD7", -"| c #F0EFE7", -"1 c #ECEBE2", -"2 c #C5C4B8", -"3 c #525145", -"4 c #A52424", -"5 c #0F0F0F", -"6 c #C1BFA4", -"7 c #C0BEA4", -"8 c #7A7967", -"9 c #484740", -"0 c #262624", -"a c #36342D", -"b c #858371", -"c c #9E9C86", -"d c #A19F88", -"e c #A3A18A", -"f c #2B2A2A", -"g c #D1CFBA", -"h c #DBD9C3", -"i c #E1DFCE", -"j c #B8B6A1", -"k c #64625B", -"l c #383735", -"m c #3C3B32", -"n c #605F52", -"o c #989681", -"p c #B5B399", -"q c #B1B096", -"r c #A2A089", -"s c #E6E2D1", -"t c #F2EFE7", -"u c #F0EFE2", -"v c #E8E7D8", -"w c #E3E0D0", -"x c #D3D0BC", -"y c #C1BFA5", -"z c #ADAB92", -"A c #BEBCA2", -"B c #C4C2AA", -"C c #B6B49A", -"D c #787665", -"E c #888774", -"F c #EFEBD0", -"G c #F9F6E7", -"H c #F7F3EB", -"I c #F6F5EC", -"J c #F6F5EA", -"K c #F3F1E4", -"L c #EAE8D7", -"M c #DCDBC9", -"N c #9B9987", -"O c #626153", -"P c #575649", -"Q c #515045", -"R c #727064", -"S c #9D9B8F", -"T c #E2DFC6", -"U c #E7E3CD", -"V c #E0DEC9", -"W c #CFCFC9", -"X c #8C8B7E", -"Y c #757463", -"Z c #676657", -"` c #424137", -" . c #282721", -".. c #1E1E1A", -"+. c #33332F", -"@. c #4A4843", -"#. c #676661", -"$. c #6F6E65", -"%. c #6A6A63", -"&. c #6D6B5C", -"*. c #57564A", -"=. c #383830", -"-. c #161514", -";. c #191915", -">. c #1E1D18", -",. c #292922", -"'. c #9E9E93", -"). c #4C4C3F", -"!. c #35352F", -"~. c #292925", -"{. c #2E2E29", -"]. c #0E0E0C", -"^. c #0A0A08", -"/. c #0F0F0C", -"(. c #3D3D37", -"_. c #33332A", -":. c #23231E", -"<. c #2A2A23", -"[. c #A3A297", -"}. c #B5B4AC", -"|. c #706F66", -"1. c #9F9F90", -"2. c #737262", -"3. c #3F3F34", -"4. c #68685A", -"5. c #38382E", -"6. c #68685E", -"7. c #3E3E33", -"8. c #25251F", -" . . . . ", -" . + . . @ . ", -" # . $ $ % & . # ", -" # . $ * = - . # ", -" . ; > , ' . ", -" # . ) ! ' ~ . # ", -" # . { ] ^ / ( _ : . ", -" < < < [ } | 1 2 3 . . ", -" 4 5 6 7 8 9 0 a b c d e . ", -" f g h i j k l m n o p q r . ", -" . s t u v w x y z A B C D . ", -" . E F G H I J K L M N O P . ", -" . Q R S T U V W X Y Z ` .. ", -" ..+.@.#.$.%.&.*.=.-.;.>. ", -" ,.'.).!.~.{.].^./.(._.:. ", -" <.[.}.|.1.2.3.4.5.6.7.8. "}; - -#endif diff --git a/bitmaps_xpm/delete_net.xpm b/bitmaps_xpm/delete_net.xpm deleted file mode 100644 index 50de155502..0000000000 --- a/bitmaps_xpm/delete_net.xpm +++ /dev/null @@ -1,152 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* delete_net_xpm[]; -#else -const char * delete_net_xpm[] = { -"16 16 128 2", -" c None", -". c #005900", -"+ c #007D00", -"@ c #003500", -"# c #002C00", -"$ c #004000", -"% c #005200", -"& c #595959", -"* c #E4CBB6", -"= c #594534", -"- c #006500", -"; c #004E00", -"> c #9D8570", -", c #FFBC80", -"' c #9D622E", -") c #151608", -"! c #643A15", -"~ c #141C00", -"{ c #006700", -"] c #0D0D0D", -"^ c #414141", -"/ c #494949", -"( c #3D3D3D", -"_ c #2B2B2B", -": c #000000", -"< c #838170", -"[ c #EEEBD6", -"} c #F0EFE7", -"| c #ECEBE2", -"1 c #C5C4B8", -"2 c #525145", -"3 c #0F0F0F", -"4 c #C0BEA3", -"5 c #BFBDA3", -"6 c #797866", -"7 c #47463F", -"8 c #262624", -"9 c #35342D", -"0 c #858371", -"a c #9E9C86", -"b c #A19F88", -"c c #A3A18A", -"d c #006D00", -"e c #2A2A2A", -"f c #D1CFBA", -"g c #DAD8C2", -"h c #E0DECD", -"i c #B7B5A0", -"j c #63615A", -"k c #383735", -"l c #3B3B32", -"m c #605F52", -"n c #989681", -"o c #B5B399", -"p c #B1B096", -"q c #A2A089", -"r c #E6E2D1", -"s c #F2EFE7", -"t c #F0EFE2", -"u c #E8E7D8", -"v c #E3E0D0", -"w c #D3D0BC", -"x c #C1BFA5", -"y c #ADAB92", -"z c #BEBCA2", -"A c #C4C2AA", -"B c #B6B49A", -"C c #787665", -"D c #888774", -"E c #EFEBD0", -"F c #F9F6E7", -"G c #F7F3EB", -"H c #F6F5EC", -"I c #F6F5EA", -"J c #F3F1E4", -"K c #EAE8D7", -"L c #DCDBC9", -"M c #9B9987", -"N c #626153", -"O c #575649", -"P c #515045", -"Q c #727064", -"R c #9D9B8F", -"S c #E2DFC6", -"T c #E7E3CD", -"U c #E0DEC9", -"V c #CFCFC9", -"W c #8C8B7E", -"X c #757463", -"Y c #676657", -"Z c #424137", -"` c #282721", -" . c #1E1E1A", -".. c #33332F", -"+. c #4A4843", -"@. c #676661", -"#. c #6F6E65", -"$. c #6A6A63", -"%. c #6D6B5C", -"&. c #57564A", -"*. c #383830", -"=. c #161514", -"-. c #191915", -";. c #1E1D18", -">. c #292922", -",. c #9E9E93", -"'. c #4C4C3F", -"). c #35352F", -"!. c #292925", -"~. c #2E2E29", -"{. c #0E0E0C", -"]. c #0A0A08", -"^. c #0F0F0C", -"/. c #3D3D37", -"(. c #33332A", -"_. c #23231E", -":. c #2A2A23", -"<. c #A3A297", -"[. c #B5B4AC", -"}. c #706F66", -"|. c #9F9F90", -"1. c #737262", -"2. c #3F3F34", -"3. c #68685A", -"4. c #38382E", -"5. c #68685E", -"6. c #3E3E33", -"7. c #25251F", -" . + + ", -" @ # $ ", -"+ + + + + + + % & * = - + + + + ", -"+ + + + + + + ; > , ' ; + + + + ", -" ) ! ~ ", -" { + ", -" ] ^ / ( _ : ", -" : : < [ } | 1 2 : : ", -" 3 4 5 6 7 8 9 0 a b c : d ", -" e f g h i j k l m n o p q : ", -" : r s t u v w x y z A B C : ", -" : D E F G H I J K L M N O : ", -" : P Q R S T U V W X Y Z ` : ", -" ...+.@.#.$.%.&.*.=.-.;. ", -" >.,.'.).!.~.{.].^./.(._. ", -" :.<.[.}.|.1.2.3.4.5.6.7. "}; - -#endif diff --git a/bitmaps_xpm/delete_node.xpm b/bitmaps_xpm/delete_node.xpm deleted file mode 100644 index fabea2b132..0000000000 --- a/bitmaps_xpm/delete_node.xpm +++ /dev/null @@ -1,156 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* delete_node_xpm[]; -#else -const char * delete_node_xpm[] = { -"16 16 132 2", -" c None", -". c #007D00", -"+ c #4D8B4D", -"@ c #ABABAB", -"# c #001900", -"$ c #0F1C0F", -"% c #545454", -"& c #3C3C3C", -"* c #C9C8C8", -"= c #C9BBAE", -"- c #3C342C", -"; c #2E2E2E", -"> c #C9C3BE", -", c #FFE6D0", -"' c #FFD4AE", -") c #C9996E", -"! c #0D1A0D", -"~ c #C9B099", -"{ c #FFCDA1", -"] c #FFBB7F", -"^ c #C98549", -"/ c #091609", -"( c #448244", -"_ c #9B9B9B", -": c #555555", -"< c #3C2F23", -"[ c #C98E5A", -"} c #C9803F", -"| c #3C220B", -"1 c #4C4C4C", -"2 c #9C9C9C", -"3 c #0C0C0C", -"4 c #1A1A1A", -"5 c #020E02", -"6 c #000000", -"7 c #838170", -"8 c #DFDDC9", -"9 c #2E6C2B", -"0 c #7A7972", -"a c #4D4C41", -"b c #0F0F0F", -"c c #C0BEA3", -"d c #BFBDA3", -"e c #797866", -"f c #47463F", -"g c #0F4E0D", -"h c #6B6A5B", -"i c #9E9C86", -"j c #A19F88", -"k c #A3A18A", -"l c #2A2A2A", -"m c #D1CFBA", -"n c #DAD8C2", -"o c #E0DECD", -"p c #B7B5A0", -"q c #63615A", -"r c #11500F", -"s c #4D4D42", -"t c #989681", -"u c #B5B399", -"v c #B1B096", -"w c #A2A089", -"x c #E6E2D1", -"y c #F2EFE7", -"z c #F0EFE2", -"A c #E8E7D8", -"B c #E3E0D0", -"C c #3A7831", -"D c #8B8A76", -"E c #BEBCA2", -"F c #C4C2AA", -"G c #B6B49A", -"H c #787665", -"I c #888774", -"J c #EFEBD0", -"K c #F9F6E7", -"L c #F7F3EB", -"M c #F6F5EC", -"N c #498745", -"O c #BCBBAD", -"P c #DCDBC9", -"Q c #9B9987", -"R c #626153", -"S c #575649", -"T c #515045", -"U c #727064", -"V c #9D9B8F", -"W c #E2DFC6", -"X c #E7E3CD", -"Y c #E0DEC9", -"Z c #7E7E7A", -"` c #717066", -" . c #757463", -".. c #676657", -"+. c #424137", -"@. c #282721", -"#. c #1E1E1A", -"$. c #33332F", -"%. c #4A4843", -"&. c #676661", -"*. c #6F6E65", -"=. c #6A6A63", -"-. c #6D6B5C", -";. c #57564A", -">. c #383830", -",. c #161514", -"'. c #191915", -"). c #1E1D18", -"!. c #292922", -"~. c #9E9E93", -"{. c #4C4C3F", -"]. c #35352F", -"^. c #292925", -"/. c #2E2E29", -"(. c #0E0E0C", -"_. c #0A0A08", -":. c #0F0F0C", -"<. c #3D3D37", -"[. c #33332A", -"}. c #23231E", -"|. c #2A2A23", -"1. c #A3A297", -"2. c #B5B4AC", -"3. c #706F66", -"4. c #9F9F90", -"5. c #737262", -"6. c #3F3F34", -"7. c #68685A", -"8. c #38382E", -"9. c #68685E", -"0. c #3E3E33", -"a. c #25251F", -" . + @ ", -" # $ % ", -" & * = - ; ", -". . . . . # > , ' ) # . . . . ", -". + + + + ! ~ { ] ^ / ( + + + _ ", -" @ @ @ @ : < [ } | 1 2 @ @ @ @ ", -" 3 4 # 5 3 6 ", -" 6 6 7 8 . 9 0 a 6 6 ", -" b c d e f . g h i j k 6 ", -" l m n o p q . r s t u v w 6 ", -" 6 x y z A B . C D E F G H 6 ", -" 6 I J K L M . N O P Q R S 6 ", -" 6 T U V W X Y Z ` ...+.@.6 ", -" #.$.%.&.*.=.-.;.>.,.'.). ", -" !.~.{.].^./.(._.:.<.[.}. ", -" |.1.2.3.4.5.6.7.8.9.0.a. "}; - -#endif diff --git a/bitmaps_xpm/delete_pad.xpm b/bitmaps_xpm/delete_pad.xpm deleted file mode 100644 index 2da3fd15b3..0000000000 --- a/bitmaps_xpm/delete_pad.xpm +++ /dev/null @@ -1,144 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* delete_pad_xpm[]; -#else -const char * delete_pad_xpm[] = { -"16 16 120 2", -" c None", -". c #000000", -"+ c #000200", -"@ c #003B00", -"# c #006400", -"$ c #007700", -"% c #005F00", -"& c #007D00", -"* c #007600", -"= c #006100", -"- c #006E00", -"; c #0D0D0D", -"> c #414141", -", c #494949", -"' c #3D3D3D", -") c #2B2B2B", -"! c #016201", -"~ c #838170", -"{ c #EEEBD6", -"] c #F0EFE7", -"^ c #ECEBE2", -"/ c #C5C4B8", -"( c #525145", -"_ c #014901", -": c #0F0F0F", -"< c #C0BEA3", -"[ c #BFBDA3", -"} c #797866", -"| c #47463F", -"1 c #262624", -"2 c #35342D", -"3 c #858371", -"4 c #9E9C86", -"5 c #A19F88", -"6 c #A3A18A", -"7 c #2A2A2A", -"8 c #D1CFBA", -"9 c #DAD8C2", -"0 c #E0DECD", -"a c #B7B5A0", -"b c #63615A", -"c c #383735", -"d c #3B3B32", -"e c #605F52", -"f c #989681", -"g c #B5B399", -"h c #B1B096", -"i c #A2A089", -"j c #E6E2D1", -"k c #F2EFE7", -"l c #F0EFE2", -"m c #E8E7D8", -"n c #E3E0D0", -"o c #D3D0BC", -"p c #C1BFA5", -"q c #ADAB92", -"r c #BEBCA2", -"s c #C4C2AA", -"t c #B6B49A", -"u c #787665", -"v c #888774", -"w c #EFEBD0", -"x c #F9F6E7", -"y c #F7F3EB", -"z c #F6F5EC", -"A c #F6F5EA", -"B c #F3F1E4", -"C c #EAE8D7", -"D c #DCDBC9", -"E c #9B9987", -"F c #626153", -"G c #575649", -"H c #515045", -"I c #727064", -"J c #9D9B8F", -"K c #E2DFC6", -"L c #E7E3CD", -"M c #E0DEC9", -"N c #CFCFC9", -"O c #8C8B7E", -"P c #757463", -"Q c #676657", -"R c #424137", -"S c #282721", -"T c #1E1E1A", -"U c #33332F", -"V c #4A4843", -"W c #676661", -"X c #6F6E65", -"Y c #6A6A63", -"Z c #6D6B5C", -"` c #57564A", -" . c #383830", -".. c #161514", -"+. c #191915", -"@. c #1E1D18", -"#. c #292922", -"$. c #9E9E93", -"%. c #4C4C3F", -"&. c #35352F", -"*. c #292925", -"=. c #2E2E29", -"-. c #0E0E0C", -";. c #0A0A08", -">. c #0F0F0C", -",. c #3D3D37", -"'. c #33332A", -"). c #23231E", -"!. c #2A2A23", -"~. c #A3A297", -"{. c #B5B4AC", -"]. c #706F66", -"^. c #9F9F90", -"/. c #737262", -"(. c #3F3F34", -"_. c #68685A", -":. c #38382E", -"<. c #68685E", -"[. c #3E3E33", -"}. c #25251F", -" . . . . . ", -" + @ # $ # @ + ", -" + % & & & & & % + ", -". @ & & * = * & & @ . ", -". # & * $ & # . ", -". $ & = - & $ . ", -". # & * ; > , ' ) . ", -". @ & ! . . ~ { ] ^ / ( . . ", -" + _ : < [ } | 1 2 3 4 5 6 . ", -" 7 8 9 0 a b c d e f g h i . ", -" . j k l m n o p q r s t u . ", -" . v w x y z A B C D E F G . ", -" . H I J K L M N O P Q R S . ", -" T U V W X Y Z ` ...+.@. ", -" #.$.%.&.*.=.-.;.>.,.'.). ", -" !.~.{.].^./.(._.:.<.[.}. "}; - -#endif diff --git a/bitmaps_xpm/delete_pin.xpm b/bitmaps_xpm/delete_pin.xpm deleted file mode 100644 index 290b13bfe3..0000000000 --- a/bitmaps_xpm/delete_pin.xpm +++ /dev/null @@ -1,153 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_pin_xpm[]; - -#else -const char * delete_pin_xpm[] = { -"16 16 129 2", -" c None", -". c #D72E2E", -"+ c #DE676B", -"@ c #DA636B", -"# c #D62E2E", -"$ c #E5E5FF", -"% c #D7D7FF", -"& c #D25B6B", -"* c #D23535", -"= c #CACAFF", -"- c #CE576B", -"; c #D03939", -"> c #B96464", -", c #9B9B9B", -"' c #C35151", -") c #B17171", -"! c #B36E6E", -"~ c #CA4444", -"{ c #9C9898", -"] c #919191", -"^ c #6F6F6F", -"/ c #0E0E0E", -"( c #414141", -"_ c #494949", -": c #3D3D3D", -"< c #2B2B2B", -"[ c #000000", -"} c #838170", -"| c #EEEBD6", -"1 c #F0EFE7", -"2 c #ECEBE2", -"3 c #C5C4B8", -"4 c #525145", -"5 c #0F0F0F", -"6 c #C0BEA3", -"7 c #BFBDA3", -"8 c #797866", -"9 c #47463F", -"0 c #262624", -"a c #35342D", -"b c #858371", -"c c #9E9C86", -"d c #A19F88", -"e c #A3A18A", -"f c #2A2A2A", -"g c #D1CFBA", -"h c #DAD8C2", -"i c #E0DECD", -"j c #B7B5A0", -"k c #63615A", -"l c #383735", -"m c #3B3B32", -"n c #605F52", -"o c #989681", -"p c #B5B399", -"q c #B1B096", -"r c #A2A089", -"s c #E6E2D1", -"t c #F2EFE7", -"u c #F0EFE2", -"v c #E8E7D8", -"w c #E3E0D0", -"x c #D3D0BC", -"y c #C1BFA5", -"z c #ADAB92", -"A c #BEBCA2", -"B c #C4C2AA", -"C c #B6B49A", -"D c #787665", -"E c #888774", -"F c #EFEBD0", -"G c #F9F6E7", -"H c #F7F3EB", -"I c #F6F5EC", -"J c #F6F5EA", -"K c #F3F1E4", -"L c #EAE8D7", -"M c #DCDBC9", -"N c #9B9987", -"O c #626153", -"P c #575649", -"Q c #515045", -"R c #727064", -"S c #9D9B8F", -"T c #E2DFC6", -"U c #E7E3CD", -"V c #E0DEC9", -"W c #CFCFC9", -"X c #8C8B7E", -"Y c #757463", -"Z c #676657", -"` c #424137", -" . c #282721", -".. c #1E1E1A", -"+. c #33332F", -"@. c #4A4843", -"#. c #676661", -"$. c #6F6E65", -"%. c #6A6A63", -"&. c #6D6B5C", -"*. c #57564A", -"=. c #383830", -"-. c #161514", -";. c #191915", -">. c #1E1D18", -",. c #292922", -"'. c #9E9E93", -"). c #4C4C3F", -"!. c #35352F", -"~. c #292925", -"{. c #2E2E29", -"]. c #0E0E0C", -"^. c #0A0A08", -"/. c #0F0F0C", -"(. c #3D3D37", -"_. c #33332A", -":. c #23231E", -"<. c #2A2A23", -"[. c #A3A297", -"}. c #B5B4AC", -"|. c #706F66", -"1. c #9F9F90", -"2. c #737262", -"3. c #3F3F34", -"4. c #68685A", -"5. c #38382E", -"6. c #68685E", -"7. c #3E3E33", -"8. c #25251F", -" . . ", -" . + @ . ", -"# + $ % & . . . . . . . . . ", -"* @ % = - ; > > > > > > > > , ", -"' . & - . ) , , , , , , , , , ", -" ! ~ ~ ) { ", -" , ] ^ / ( _ : < [ ", -" [ [ } | 1 2 3 4 [ [ ", -" 5 6 7 8 9 0 a b c d e [ ", -" f g h i j k l m n o p q r [ ", -" [ s t u v w x y z A B C D [ ", -" [ E F G H I J K L M N O P [ ", -" [ Q R S T U V W X Y Z ` .[ ", -" ..+.@.#.$.%.&.*.=.-.;.>. ", -" ,.'.).!.~.{.].^./.(._.:. ", -" <.[.}.|.1.2.3.4.5.6.7.8. "}; -#endif diff --git a/bitmaps_xpm/delete_pinsheet.xpm b/bitmaps_xpm/delete_pinsheet.xpm deleted file mode 100644 index 0664dcbd36..0000000000 --- a/bitmaps_xpm/delete_pinsheet.xpm +++ /dev/null @@ -1,183 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_pinsheet_xpm[]; - -#else -const char * delete_pinsheet_xpm[] = { -"16 16 159 2", -" c None", -". c #6F6500", -"+ c #FEFEFF", -"@ c #FCFCFF", -"# c #F1F1FF", -"$ c #D3D2D8", -"% c #746B0E", -"& c #8D8A6C", -"* c #6E6400", -"= c #695F00", -"- c #4F4800", -"; c #F8F8FF", -"> c #EDEDFF", -", c #E2E2FF", -"' c #D6D6FF", -") c #AEABB1", -"! c #716707", -"~ c #92907D", -"{ c #635A00", -"] c #5C5300", -"^ c #675E00", -"/ c #F3F3FF", -"( c #E8E8FF", -"_ c #DDDDFF", -": c #D2D2FF", -"< c #C7C7FF", -"[ c #BCBCFF", -"} c #827B4C", -"| c #787020", -"1 c #939180", -"2 c #E4E4FF", -"3 c #D9D9FF", -"4 c #CECEFF", -"5 c #C2C2FF", -"6 c #B7B7FF", -"7 c #9895B1", -"8 c #847F4D", -"9 c #72690E", -"0 c #D4D4FF", -"a c #C9C9FF", -"b c #BEBEFF", -"c c #B3B3FF", -"d c #9E9DD8", -"e c #71680E", -"f c #9B9B9B", -"g c #756D18", -"h c #675F0B", -"i c #685F00", -"j c #504901", -"k c #0E0E0D", -"l c #424242", -"m c #4A4A4A", -"n c #3E3E3E", -"o c #2B2B2B", -"p c #000000", -"q c #797979", -"r c #010101", -"s c #848271", -"t c #EFECD7", -"u c #F1F0E8", -"v c #ECEBE2", -"w c #C5C4B8", -"x c #525145", -"y c #0F0F0F", -"z c #C0BEA3", -"A c #BFBDA3", -"B c #797866", -"C c #47463F", -"D c #262624", -"E c #35342D", -"F c #858371", -"G c #9E9C86", -"H c #A19F88", -"I c #A3A18A", -"J c #2A2A2A", -"K c #D1CFBA", -"L c #DAD8C2", -"M c #E0DECD", -"N c #B7B5A0", -"O c #63615A", -"P c #383735", -"Q c #3B3B32", -"R c #605F52", -"S c #989681", -"T c #B5B399", -"U c #B1B096", -"V c #A2A089", -"W c #E6E2D1", -"X c #F2EFE7", -"Y c #F0EFE2", -"Z c #E8E7D8", -"` c #E3E0D0", -" . c #D3D0BC", -".. c #C1BFA5", -"+. c #ADAB92", -"@. c #BEBCA2", -"#. c #C4C2AA", -"$. c #B6B49A", -"%. c #787665", -"&. c #888774", -"*. c #EFEBD0", -"=. c #F9F6E7", -"-. c #F7F3EB", -";. c #F6F5EC", -">. c #F6F5EA", -",. c #F3F1E4", -"'. c #EAE8D7", -"). c #DCDBC9", -"!. c #9B9987", -"~. c #626153", -"{. c #575649", -"]. c #515045", -"^. c #727064", -"/. c #9D9B8F", -"(. c #E2DFC6", -"_. c #E7E3CD", -":. c #E0DEC9", -"<. c #CFCFC9", -"[. c #8C8B7E", -"}. c #757463", -"|. c #676657", -"1. c #424137", -"2. c #282721", -"3. c #1E1E1A", -"4. c #33332F", -"5. c #4A4843", -"6. c #676661", -"7. c #6F6E65", -"8. c #6A6A63", -"9. c #6D6B5C", -"0. c #57564A", -"a. c #383830", -"b. c #161514", -"c. c #191915", -"d. c #1E1D18", -"e. c #292922", -"f. c #9E9E93", -"g. c #4C4C3F", -"h. c #35352F", -"i. c #292925", -"j. c #2E2E29", -"k. c #0E0E0C", -"l. c #0A0A08", -"m. c #0F0F0C", -"n. c #3D3D37", -"o. c #33332A", -"p. c #23231E", -"q. c #2A2A23", -"r. c #A3A297", -"s. c #B5B4AC", -"t. c #706F66", -"u. c #9F9F90", -"v. c #737262", -"w. c #3F3F34", -"x. c #68685A", -"y. c #38382E", -"z. c #68685E", -"A. c #3E3E33", -"B. c #25251F", -". . . . . . . . ", -". + + @ # $ % & . * = - ", -". + ; > , ' ) ! ~ . { ] ^ ", -". / ( _ : < [ } | 1 . . . . ", -". 2 3 4 5 6 7 ! ~ 8 9 = - ", -". 0 a b c d e & f g h . ^ ", -". . . . i j k l m n o p ", -" f f q r r s t u v w x p p ", -" y z A B C D E F G H I p ", -" J K L M N O P Q R S T U V p ", -" p W X Y Z ` ...+.@.#.$.%.p ", -" p &.*.=.-.;.>.,.'.).!.~.{.p ", -" p ].^./.(._.:.<.[.}.|.1.2.p ", -" 3.4.5.6.7.8.9.0.a.b.c.d. ", -" e.f.g.h.i.j.k.l.m.n.o.p. ", -" q.r.s.t.u.v.w.x.y.z.A.B. "}; -#endif diff --git a/bitmaps_xpm/delete_polygon.xpm b/bitmaps_xpm/delete_polygon.xpm deleted file mode 100644 index 0a8fcf0359..0000000000 --- a/bitmaps_xpm/delete_polygon.xpm +++ /dev/null @@ -1,144 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_polygon_xpm[]; - -#else -const char * delete_polygon_xpm[] = { -"16 16 120 2", -" c None", -". c #00009B", -"+ c #000099", -"@ c #00007D", -"# c #000094", -"$ c #000093", -"% c #00008C", -"& c #000098", -"* c #000080", -"= c #0D0D0D", -"- c #414141", -"; c #494949", -"> c #3D3D3D", -", c #2B2B2C", -"' c #000001", -") c #010101", -"! c #000000", -"~ c #838170", -"{ c #EEEBD6", -"] c #F0EFE7", -"^ c #ECEBE2", -"/ c #C5C4B9", -"( c #525146", -"_ c #0F0F0F", -": c #C0BEA3", -"< c #BFBDA3", -"[ c #797866", -"} c #47463F", -"| c #262624", -"1 c #35342D", -"2 c #858372", -"3 c #9E9C87", -"4 c #A19F88", -"5 c #A3A18A", -"6 c #2A2A2A", -"7 c #D1CFBA", -"8 c #DAD8C2", -"9 c #E0DECD", -"0 c #B7B5A0", -"a c #63615A", -"b c #383735", -"c c #3B3B32", -"d c #605F53", -"e c #989682", -"f c #B5B399", -"g c #B1B096", -"h c #A2A089", -"i c #E6E2D1", -"j c #F2EFE7", -"k c #F0EFE2", -"l c #E8E7D8", -"m c #E3E0D0", -"n c #D3D0BC", -"o c #C1BFA5", -"p c #ADAB93", -"q c #BEBCA3", -"r c #C4C2AA", -"s c #B6B49A", -"t c #787665", -"u c #888775", -"v c #EFEBD1", -"w c #F9F6E8", -"x c #F7F3EC", -"y c #F6F5ED", -"z c #F6F5EB", -"A c #F3F1E5", -"B c #EAE8D8", -"C c #DCDBCA", -"D c #9B9987", -"E c #626153", -"F c #575649", -"G c #00004D", -"H c #515046", -"I c #727065", -"J c #9D9B90", -"K c #E2DFC7", -"L c #E7E3CE", -"M c #E0DECA", -"N c #CFCFCA", -"O c #8C8B7F", -"P c #757464", -"Q c #676657", -"R c #424137", -"S c #282721", -"T c #1E1E1A", -"U c #33332F", -"V c #4A4843", -"W c #676661", -"X c #6F6E65", -"Y c #6A6A63", -"Z c #6D6B5C", -"` c #57564A", -" . c #383830", -".. c #161514", -"+. c #191915", -"@. c #1E1D18", -"#. c #292922", -"$. c #9E9E93", -"%. c #4C4C3F", -"&. c #35352F", -"*. c #292925", -"=. c #2E2E29", -"-. c #0E0E0C", -";. c #0A0A08", -">. c #0F0F0C", -",. c #3D3D37", -"'. c #33332A", -"). c #23231E", -"!. c #2A2A23", -"~. c #A3A297", -"{. c #B5B4AC", -"]. c #706F66", -"^. c #9F9F90", -"/. c #737262", -"(. c #3F3F34", -"_. c #68685A", -":. c #38382E", -"<. c #68685E", -"[. c #3E3E33", -"}. c #25251F", -". . . . . . . . ", -". . . . . . . . + ", -" @ . # ", -" $ . % ", -" & . * ", -" . . ", -" = - ; > , ' ) ", -" ! ! ~ { ] ^ / ( ! ! ", -" _ : < [ } | 1 2 3 4 5 ! ", -" 6 7 8 9 0 a b c d e f g h ! ", -" ! i j k l m n o p q r s t ! ", -" . ' u v w x y z A B C D E F ! ", -" . G H I J K L M N O P Q R S ! ", -" T U V W X Y Z ` ...+.@. ", -" #.$.%.&.*.=.-.;.>.,.'.). ", -" !.~.{.].^./.(._.:.<.[.}. "}; -#endif diff --git a/bitmaps_xpm/delete_rectangle.xpm b/bitmaps_xpm/delete_rectangle.xpm deleted file mode 100644 index 3118690aef..0000000000 --- a/bitmaps_xpm/delete_rectangle.xpm +++ /dev/null @@ -1,138 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_rectangle_xpm[]; - -#else -const char * delete_rectangle_xpm[] = { -"16 16 114 2", -" c None", -". c #00009B", -"+ c #0D0D0D", -"@ c #414141", -"# c #494949", -"$ c #3D3D3D", -"% c #2B2B2B", -"& c #000001", -"* c #010177", -"= c #000000", -"- c #838170", -"; c #EEEBD6", -"> c #F0EFE7", -", c #ECEBE2", -"' c #C5C4B8", -") c #525146", -"! c #010101", -"~ c #0F0F0F", -"{ c #C0BEA3", -"] c #BFBDA3", -"^ c #797866", -"/ c #47463F", -"( c #262624", -"_ c #35342D", -": c #858371", -"< c #9E9C87", -"[ c #A19F89", -"} c #A3A18A", -"| c #2A2A2A", -"1 c #D1CFBA", -"2 c #DAD8C2", -"3 c #E0DECD", -"4 c #B7B5A0", -"5 c #63615A", -"6 c #383735", -"7 c #3B3B32", -"8 c #605F52", -"9 c #989682", -"0 c #B5B39A", -"a c #B1B096", -"b c #A2A089", -"c c #E6E2D1", -"d c #F2EFE7", -"e c #F0EFE2", -"f c #E8E7D8", -"g c #E3E0D0", -"h c #D3D0BC", -"i c #C1BFA5", -"j c #ADAB92", -"k c #BEBCA3", -"l c #C4C2AB", -"m c #B6B49A", -"n c #787665", -"o c #888775", -"p c #EFEBD1", -"q c #F9F6E8", -"r c #F7F3EC", -"s c #F6F5ED", -"t c #F6F5EB", -"u c #F3F1E5", -"v c #EAE8D8", -"w c #DCDBCA", -"x c #9B9988", -"y c #626153", -"z c #575649", -"A c #00004D", -"B c #515046", -"C c #727065", -"D c #9D9B90", -"E c #E2DFC7", -"F c #E7E3CE", -"G c #E0DECA", -"H c #CFCFCA", -"I c #8C8B7F", -"J c #757464", -"K c #676657", -"L c #424137", -"M c #282721", -"N c #1E1E1A", -"O c #33332F", -"P c #4A4843", -"Q c #676661", -"R c #6F6E65", -"S c #6A6A63", -"T c #6D6B5C", -"U c #57564A", -"V c #383830", -"W c #161514", -"X c #191915", -"Y c #1E1D18", -"Z c #292922", -"` c #9E9E93", -" . c #4C4C3F", -".. c #35352F", -"+. c #292925", -"@. c #2E2E29", -"#. c #0E0E0C", -"$. c #0A0A08", -"%. c #0F0F0C", -"&. c #3D3D37", -"*. c #33332A", -"=. c #23231E", -"-. c #2A2A23", -";. c #A3A297", -">. c #B5B4AC", -",. c #706F66", -"'. c #9F9F90", -"). c #737262", -"!. c #3F3F34", -"~. c #68685A", -"{. c #38382E", -"]. c #68685E", -"^. c #3E3E33", -"/. c #25251F", -". . . . . . . . . . . . . ", -". . . . . . . . . . . . . ", -". . . . ", -". . . . ", -". . . . ", -". . . . ", -". . + @ # $ % & * ", -". . = = - ; > , ' ) & = ", -". . ! ~ { ] ^ / ( _ : < [ } = ", -". . | 1 2 3 4 5 6 7 8 9 0 a b = ", -". . = c d e f g h i j k l m n = ", -". . & o p q r s t u v w x y z = ", -". . A B C D E F G H I J K L M = ", -" N O P Q R S T U V W X Y ", -" Z ` ...+.@.#.$.%.&.*.=. ", -" -.;.>.,.'.).!.~.{.].^./. "}; -#endif diff --git a/bitmaps_xpm/delete_segment.xpm b/bitmaps_xpm/delete_segment.xpm deleted file mode 100644 index 092064a88b..0000000000 --- a/bitmaps_xpm/delete_segment.xpm +++ /dev/null @@ -1,135 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_segment_xpm[]; - -#else -const char * delete_segment_xpm[] = { -"16 16 111 2", -" c None", -". c #007D00", -"+ c #007C00", -"@ c #0D0D0D", -"# c #414141", -"$ c #494949", -"% c #3D3D3D", -"& c #2B2B2B", -"* c #000000", -"= c #838170", -"- c #EEEBD6", -"; c #F0EFE7", -"> c #ECEBE2", -", c #C5C4B8", -"' c #525145", -") c #0F0F0F", -"! c #C0BEA3", -"~ c #BFBDA3", -"{ c #797866", -"] c #47463F", -"^ c #262624", -"/ c #35342D", -"( c #858371", -"_ c #9E9C86", -": c #A19F88", -"< c #A3A18A", -"[ c #2A2A2A", -"} c #D1CFBA", -"| c #DAD8C2", -"1 c #E0DECD", -"2 c #B7B5A0", -"3 c #63615A", -"4 c #383735", -"5 c #3B3B32", -"6 c #605F52", -"7 c #989681", -"8 c #B5B399", -"9 c #B1B096", -"0 c #A2A089", -"a c #E6E2D1", -"b c #F2EFE7", -"c c #F0EFE2", -"d c #E8E7D8", -"e c #E3E0D0", -"f c #D3D0BC", -"g c #C1BFA5", -"h c #ADAB92", -"i c #BEBCA2", -"j c #C4C2AA", -"k c #B6B49A", -"l c #787665", -"m c #888774", -"n c #EFEBD0", -"o c #F9F6E7", -"p c #F7F3EB", -"q c #F6F5EC", -"r c #F6F5EA", -"s c #F3F1E4", -"t c #EAE8D7", -"u c #DCDBC9", -"v c #9B9987", -"w c #626153", -"x c #575649", -"y c #515045", -"z c #727064", -"A c #9D9B8F", -"B c #E2DFC6", -"C c #E7E3CD", -"D c #E0DEC9", -"E c #CFCFC9", -"F c #8C8B7E", -"G c #757463", -"H c #676657", -"I c #424137", -"J c #282721", -"K c #1E1E1A", -"L c #33332F", -"M c #4A4843", -"N c #676661", -"O c #6F6E65", -"P c #6A6A63", -"Q c #6D6B5C", -"R c #57564A", -"S c #383830", -"T c #161514", -"U c #191915", -"V c #1E1D18", -"W c #292922", -"X c #9E9E93", -"Y c #4C4C3F", -"Z c #35352F", -"` c #292925", -" . c #2E2E29", -".. c #0E0E0C", -"+. c #0A0A08", -"@. c #0F0F0C", -"#. c #3D3D37", -"$. c #33332A", -"%. c #23231E", -"&. c #2A2A23", -"*. c #A3A297", -"=. c #B5B4AC", -"-. c #706F66", -";. c #9F9F90", -">. c #737262", -",. c #3F3F34", -"'. c #68685A", -"). c #38382E", -"!. c #68685E", -"~. c #3E3E33", -"{. c #25251F", -" ", -". . . . . . . . . . . . . . . . ", -"+ . . . . . . . . . . . . . . . ", -" ", -" ", -" ", -" @ # $ % & * ", -" * * = - ; > , ' * * ", -" ) ! ~ { ] ^ / ( _ : < * ", -" [ } | 1 2 3 4 5 6 7 8 9 0 * ", -" * a b c d e f g h i j k l * ", -" * m n o p q r s t u v w x * ", -" * y z A B C D E F G H I J * ", -" K L M N O P Q R S T U V ", -" W X Y Z ` ...+.@.#.$.%. ", -" &.*.=.-.;.>.,.'.).!.~.{. "}; -#endif diff --git a/bitmaps_xpm/delete_sheet.xpm b/bitmaps_xpm/delete_sheet.xpm deleted file mode 100644 index d3a30fea45..0000000000 --- a/bitmaps_xpm/delete_sheet.xpm +++ /dev/null @@ -1,158 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_sheet_xpm[]; - -#else -const char * delete_sheet_xpm[] = { -"16 16 134 2", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #242424", -"# c #FDFDFD", -"$ c #EBEBEB", -"% c #787878", -"& c #484848", -"* c #FCFCFC", -"= c #424242", -"- c #616161", -"; c #FAFAFA", -"> c #BCBCBC", -", c #101010", -"' c #F9F9F9", -") c #C7C7C7", -"! c #1A1A1A", -"~ c #F8F8F8", -"{ c #DCDCDC", -"] c #A8A8A8", -"^ c #0E0E0E", -"/ c #4A4A4A", -"( c #3D3D3D", -"_ c #2B2B2B", -": c #F6F6F6", -"< c #B7B7B7", -"[ c #010101", -"} c #848271", -"| c #EFECD7", -"1 c #F1F0E8", -"2 c #ECEBE2", -"3 c #C5C4B8", -"4 c #525145", -"5 c #F5F5F5", -"6 c #B4B4B4", -"7 c #C1BFA4", -"8 c #C0BEA4", -"9 c #7A7967", -"0 c #484740", -"a c #272725", -"b c #35342D", -"c c #858371", -"d c #9E9C86", -"e c #A19F88", -"f c #A3A18A", -"g c #F3F3F3", -"h c #D2D0BB", -"i c #DBD9C3", -"j c #E1DFCE", -"k c #B8B6A1", -"l c #64625B", -"m c #393836", -"n c #3B3B32", -"o c #605F52", -"p c #989681", -"q c #B5B399", -"r c #B1B096", -"s c #A2A089", -"t c #F2F2F2", -"u c #E7E3D2", -"v c #F3F0E8", -"w c #F1F0E3", -"x c #E9E8D9", -"y c #E4E1D1", -"z c #D4D1BD", -"A c #C1BFA5", -"B c #ADAB92", -"C c #BEBCA2", -"D c #C4C2AA", -"E c #B6B49A", -"F c #787665", -"G c #F0F0F0", -"H c #898875", -"I c #F0ECD1", -"J c #FAF7E8", -"K c #F8F4EC", -"L c #F7F6ED", -"M c #F7F6EB", -"N c #F3F1E4", -"O c #EAE8D7", -"P c #DCDBC9", -"Q c #9B9987", -"R c #626153", -"S c #575649", -"T c #BEBEBE", -"U c #606060", -"V c #525146", -"W c #737165", -"X c #9E9C90", -"Y c #E3E0C7", -"Z c #E8E4CE", -"` c #E1DFCA", -" . c #CFCFC9", -".. c #8C8B7E", -"+. c #757463", -"@. c #676657", -"#. c #424137", -"$. c #282721", -"%. c #1E1E1A", -"&. c #33332F", -"*. c #4A4843", -"=. c #676661", -"-. c #6F6E65", -";. c #6A6A63", -">. c #6D6B5C", -",. c #57564A", -"'. c #383830", -"). c #161514", -"!. c #191915", -"~. c #1E1D18", -"{. c #292922", -"]. c #9E9E93", -"^. c #4C4C3F", -"/. c #35352F", -"(. c #292925", -"_. c #2E2E29", -":. c #0E0E0C", -"<. c #0A0A08", -"[. c #0F0F0C", -"}. c #3D3D37", -"|. c #33332A", -"1. c #23231E", -"2. c #2A2A23", -"3. c #A3A297", -"4. c #B5B4AC", -"5. c #706F66", -"6. c #9F9F90", -"7. c #737262", -"8. c #3F3F34", -"9. c #68685A", -"0. c #38382E", -"a. c #68685E", -"b. c #3E3E33", -"c. c #25251F", -". . . . . . . . ", -". + + + + + + @ . ", -". # $ $ $ $ $ % & . ", -". * $ $ $ $ $ = - . ", -". ; $ $ $ $ $ $ > , ", -". ' $ $ $ $ $ $ ) ! ", -". ~ $ $ { ] ^ = / ( _ . ", -". : $ < [ [ } | 1 2 3 4 . . ", -". 5 6 , 7 8 9 0 a b c d e f . ", -". g _ h i j k l m n o p q r s . ", -". t [ u v w x y z A B C D E F . ", -". G [ H I J K L M N O P Q R S . ", -". T U V W X Y Z ` ...+.@.#.$.. ", -". . . %.&.*.=.-.;.>.,.'.).!.~. ", -" {.].^./.(._.:.<.[.}.|.1. ", -" 2.3.4.5.6.7.8.9.0.a.b.c. "}; -#endif diff --git a/bitmaps_xpm/delete_text.xpm b/bitmaps_xpm/delete_text.xpm deleted file mode 100644 index 91498ca0ca..0000000000 --- a/bitmaps_xpm/delete_text.xpm +++ /dev/null @@ -1,138 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *delete_text_xpm[]; - -#else -const char * delete_text_xpm[] = { -"16 16 114 2", -" c None", -". c #00009B", -"+ c #000098", -"@ c #00005D", -"# c #01016F", -"$ c #0D0D0E", -"% c #414142", -"& c #49494A", -"* c #3D3D3D", -"= c #2B2B2B", -"- c #000000", -"; c #000001", -"> c #838171", -", c #EEEBD7", -"' c #F0EFE8", -") c #ECEBE2", -"! c #C5C4B8", -"~ c #525145", -"{ c #0F0F0F", -"] c #C0BEA3", -"^ c #BFBDA4", -"/ c #797867", -"( c #474640", -"_ c #262625", -": c #35342D", -"< c #858371", -"[ c #9E9C86", -"} c #A19F88", -"| c #A3A18A", -"1 c #2A2A2A", -"2 c #D1CFBA", -"3 c #DAD8C2", -"4 c #E0DECE", -"5 c #B7B5A1", -"6 c #63615B", -"7 c #383736", -"8 c #3B3B32", -"9 c #605F52", -"0 c #989681", -"a c #B5B399", -"b c #B1B096", -"c c #A2A089", -"d c #E6E2D1", -"e c #F2EFE7", -"f c #F0EFE3", -"g c #E8E7D9", -"h c #E3E0D1", -"i c #D3D0BD", -"j c #C1BFA5", -"k c #ADAB92", -"l c #BEBCA2", -"m c #C4C2AA", -"n c #B6B49A", -"o c #787665", -"p c #888774", -"q c #EFEBD0", -"r c #F9F6E8", -"s c #F7F3EC", -"t c #F6F5ED", -"u c #F6F5EB", -"v c #F3F1E4", -"w c #EAE8D7", -"x c #DCDBC9", -"y c #9B9987", -"z c #626153", -"A c #575649", -"B c #515045", -"C c #727065", -"D c #9D9B90", -"E c #E2DFC7", -"F c #E7E3CE", -"G c #E0DECA", -"H c #CFCFC9", -"I c #8C8B7E", -"J c #757463", -"K c #676657", -"L c #424137", -"M c #282721", -"N c #1E1E1B", -"O c #333330", -"P c #4A4844", -"Q c #676662", -"R c #6F6E66", -"S c #6A6A64", -"T c #6D6B5D", -"U c #57564B", -"V c #383830", -"W c #161514", -"X c #191915", -"Y c #1E1D18", -"Z c #292923", -"` c #9E9E94", -" . c #4C4C40", -".. c #353530", -"+. c #292926", -"@. c #2E2E2A", -"#. c #0E0E0D", -"$. c #0A0A09", -"%. c #0F0F0C", -"&. c #3D3D37", -"*. c #33332A", -"=. c #23231E", -"-. c #2A2A23", -";. c #A3A297", -">. c #B5B4AC", -",. c #706F66", -"'. c #9F9F90", -"). c #737262", -"!. c #3F3F34", -"~. c #68685A", -"{. c #38382E", -"]. c #68685E", -"^. c #3E3E33", -"/. c #25251F", -". . . . . . . . . . . . . . ", -". . . . . . . . . . . . . . ", -". + . . . . + . ", -". @ . . . . . ", -" . . . . ", -" . . . . ", -" # $ % & * = - ", -" - ; > , ' ) ! ~ - - ", -" { ] ^ / ( _ : < [ } | - ", -" 1 2 3 4 5 6 7 8 9 0 a b c - ", -" - d e f g h i j k l m n o - ", -" - p q r s t u v w x y z A - ", -" - B C D E F G H I J K L M - ", -" N O P Q R S T U V W X Y ", -" Z ` ...+.@.#.$.%.&.*.=. ", -" -.;.>.,.'.).!.~.{.].^./. "}; -#endif diff --git a/bitmaps_xpm/delete_track.xpm b/bitmaps_xpm/delete_track.xpm deleted file mode 100644 index 8ecf09bd7e..0000000000 --- a/bitmaps_xpm/delete_track.xpm +++ /dev/null @@ -1,139 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* delete_track_xpm[]; -#else -const char * delete_track_xpm[] = { -"16 16 115 2", -" c None", -". c #007D00", -"+ c #003600", -"@ c #007300", -"# c #005100", -"$ c #0D0D0D", -"% c #414141", -"& c #494949", -"* c #3D3D3D", -"= c #2B2B2B", -"- c #000000", -"; c #838170", -"> c #EEEBD6", -", c #F0EFE7", -"' c #ECEBE2", -") c #C5C4B8", -"! c #525145", -"~ c #015A01", -"{ c #0F0F0F", -"] c #C0BEA3", -"^ c #BFBDA3", -"/ c #797866", -"( c #47463F", -"_ c #262624", -": c #35342D", -"< c #858371", -"[ c #9E9C86", -"} c #A19F88", -"| c #A3A18A", -"1 c #006D00", -"2 c #2A2A2A", -"3 c #D1CFBA", -"4 c #DAD8C2", -"5 c #E0DECD", -"6 c #B7B5A0", -"7 c #63615A", -"8 c #383735", -"9 c #3B3B32", -"0 c #605F52", -"a c #989681", -"b c #B5B399", -"c c #B1B096", -"d c #A2A089", -"e c #E6E2D1", -"f c #F2EFE7", -"g c #F0EFE2", -"h c #E8E7D8", -"i c #E3E0D0", -"j c #D3D0BC", -"k c #C1BFA5", -"l c #ADAB92", -"m c #BEBCA2", -"n c #C4C2AA", -"o c #B6B49A", -"p c #787665", -"q c #888774", -"r c #EFEBD0", -"s c #F9F6E7", -"t c #F7F3EB", -"u c #F6F5EC", -"v c #F6F5EA", -"w c #F3F1E4", -"x c #EAE8D7", -"y c #DCDBC9", -"z c #9B9987", -"A c #626153", -"B c #575649", -"C c #515045", -"D c #727064", -"E c #9D9B8F", -"F c #E2DFC6", -"G c #E7E3CD", -"H c #E0DEC9", -"I c #CFCFC9", -"J c #8C8B7E", -"K c #757463", -"L c #676657", -"M c #424137", -"N c #282721", -"O c #1E1E1A", -"P c #33332F", -"Q c #4A4843", -"R c #676661", -"S c #6F6E65", -"T c #6A6A63", -"U c #6D6B5C", -"V c #57564A", -"W c #383830", -"X c #161514", -"Y c #191915", -"Z c #1E1D18", -"` c #292922", -" . c #9E9E93", -".. c #4C4C3F", -"+. c #35352F", -"@. c #292925", -"#. c #2E2E29", -"$. c #0E0E0C", -"%. c #0A0A08", -"&. c #0F0F0C", -"*. c #3D3D37", -"=. c #33332A", -"-. c #23231E", -";. c #2A2A23", -">. c #A3A297", -",. c #B5B4AC", -"'. c #706F66", -"). c #9F9F90", -"!. c #737262", -"~. c #3F3F34", -"{. c #68685A", -"]. c #38382E", -"^. c #68685E", -"/. c #3E3E33", -"(. c #25251F", -" ", -". . . . . . . . . . ", -". . . . . . . . . . . ", -" + . . ", -" @ . . ", -" # . . ", -" $ % & * = - ", -" - - ; > , ' ) ! - - ~ . ", -" { ] ^ / ( _ : < [ } | - 1 ", -" 2 3 4 5 6 7 8 9 0 a b c d - ", -" - e f g h i j k l m n o p - ", -" - q r s t u v w x y z A B - ", -" - C D E F G H I J K L M N - ", -" O P Q R S T U V W X Y Z ", -" ` ...+.@.#.$.%.&.*.=.-. ", -" ;.>.,.'.).!.~.{.].^./.(. "}; - -#endif diff --git a/bitmaps_xpm/directory.xpm b/bitmaps_xpm/directory.xpm deleted file mode 100644 index 4f3daec240..0000000000 --- a/bitmaps_xpm/directory.xpm +++ /dev/null @@ -1,160 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * directory_xpm[]; - -#else -const char * directory_xpm[] = { -"16 16 136 2", -" c None", -". c #469FFF", -"+ c #4193FF", -"@ c #4499FF", -"# c #2C63AC", -"$ c #4DA0FF", -"% c #B5D9FB", -"& c #AAD3FB", -"* c #ADD3FB", -"= c #89C4FF", -"- c #184888", -"; c #4495FF", -"> c #AED5FB", -", c #6DB3F9", -"' c #6FB2F9", -") c #6BAEF8", -"! c #67ABF6", -"~ c #549FF9", -"{ c #3E91FF", -"] c #ACD4FB", -"^ c #6BAEF9", -"/ c #6CAFF8", -"( c #66AAF7", -"_ c #5DA3F6", -": c #74AEF7", -"< c #9EC4F8", -"[ c #92BCF7", -"} c #8DB5F5", -"| c #88B1F3", -"1 c #83ABF2", -"2 c #80A8F0", -"3 c #87AEF5", -"4 c #0940B7", -"5 c #AAD2FB", -"6 c #67ACF8", -"7 c #68ABF8", -"8 c #61A4F7", -"9 c #5B9FF5", -"0 c #5399F3", -"a c #498FF1", -"b c #3F85EF", -"c c #367CEB", -"d c #2E73E8", -"e c #286BE6", -"f c #2164E2", -"g c #2163E5", -"h c #023AB6", -"i c #4394FF", -"j c #A7D0FA", -"k c #63A9F7", -"l c #61A7F7", -"m c #5BA0F6", -"n c #5499F4", -"o c #4B90F2", -"p c #4186EF", -"q c #377DEB", -"r c #2E73E7", -"s c #266AE5", -"t c #2062E2", -"u c #1C5DDF", -"v c #1A5CE2", -"w c #A4CEF9", -"x c #5DA5F7", -"y c #5DA1F6", -"z c #559AF4", -"A c #4C91F3", -"B c #4489F1", -"C c #3A7FED", -"D c #3075E9", -"E c #276BE5", -"F c #2062E1", -"G c #1B5CDE", -"H c #1758DB", -"I c #1857DE", -"J c #0239B6", -"K c #A1CBF9", -"L c #589FF6", -"M c #559BF5", -"N c #4F96F3", -"O c #478CF2", -"P c #3D84F0", -"Q c #3378EB", -"R c #2B6EE7", -"S c #2265E3", -"T c #1C5DDE", -"U c #1757DB", -"V c #1554DA", -"W c #1555DD", -"X c #0139B5", -"Y c #4696FF", -"Z c #FFFFFF", -"` c #FBFBFB", -" . c #F2F2F2", -".. c #E9E9E9", -"+. c #E0E0E0", -"@. c #D7D7D7", -"#. c #D4D4D4", -"$. c #A9A9A9", -"%. c #BABABA", -"&. c #9E9990", -"*. c #0A3DAF", -"=. c #FEFEFE", -"-. c #F8F8F8", -";. c #F1F1F1", -">. c #E8E8E8", -",. c #DCDCDC", -"'. c #D6D6D6", -"). c #D2D2D2", -"!. c #A7A7A7", -"~. c #B7B7B7", -"{. c #929292", -"]. c #BAB6AC", -"^. c #0E41B3", -"/. c #F0F0F0", -"(. c #E5E5E5", -"_. c #DDDDDD", -":. c #D3D3D3", -"<. c #D0D0D0", -"[. c #ABABAB", -"}. c #B5B5B5", -"|. c #939393", -"1. c #ADADAD", -"2. c #938E85", -"3. c #0A3DAE", -"4. c #FFFFFE", -"5. c #F4F4F4", -"6. c #EDEDED", -"7. c #DBDBDB", -"8. c #AEAEAE", -"9. c #969696", -"0. c #878787", -"a. c #AFABA1", -"b. c #0D40B2", -"c. c #0037B2", -"d. c #0034A8", -"e. c #0038B6", -" ", -" . + @ # ", -" $ % & * = - ", -"; > , ' ) ! ~ { + + + + + . ", -"; ] ^ / ( _ : < [ } | 1 2 3 4 ", -"; 5 6 7 8 9 0 a b c d e f g h ", -"i j k l m n o p q r s t u v h ", -"i w x y z A B C D E F G H I J ", -"i K L M N O P Q R S T U V W X ", -"Y Z Z Z Z ` ...+.@.#.$.%.&.*. ", -"Y Z Z =.-.;.>.,.'.).!.~.{.].^. ", -"Y Z =.-./.(._.:.<.[.}.|.1.2.3. ", -"Y 4.5.6.(.7.#.<.1.8.9.!.0.a.b. ", -" c.d.d.d.d.d.d.d.d.d.d.d.e. ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/display_options.xpm b/bitmaps_xpm/display_options.xpm deleted file mode 100644 index 23b643b0ad..0000000000 --- a/bitmaps_xpm/display_options.xpm +++ /dev/null @@ -1,114 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *display_options_xpm[]; - -#else -const char * display_options_xpm[] = { -"16 16 90 1", -" c None", -". c #000000", -"+ c #E5E1E1", -"@ c #EDEDE9", -"# c #EDEDED", -"$ c #F1F1ED", -"% c #E9E5E5", -"& c #C9C5BE", -"* c #BDB9B1", -"= c #B5B1AD", -"- c #ADA9A2", -"; c #010101", -"> c #A3A197", -", c #9D9D9D", -"' c #A1A1A1", -") c #A1A5A1", -"! c #919591", -"~ c #818581", -"{ c #5D615D", -"] c #3D413D", -"^ c #2D312D", -"/ c #1D211D", -"( c #A7A299", -"_ c #9DA19D", -": c #8D918D", -"< c #717571", -"[ c #515551", -"} c #424842", -"| c #353935", -"1 c #ABA79C", -"2 c #E9E9E5", -"3 c #999D99", -"4 c #7D817D", -"5 c #797D79", -"6 c #F0F0F0", -"7 c #DEDEDE", -"8 c #DFDFDF", -"9 c #E0E0E0", -"0 c #BFBFBF", -"a c #C0C0C0", -"b c #C1C1C1", -"c c #D1D1CA", -"d c #676961", -"e c #707470", -"f c #979797", -"g c #989898", -"h c #B1ADA6", -"i c #52554F", -"j c #616561", -"k c #E3E3E3", -"l c #DDDDDD", -"m c #C8C8C8", -"n c #656565", -"o c #848484", -"p c #878787", -"q c #A9A59D", -"r c #313931", -"s c #353D35", -"t c #A3A3A3", -"u c #010100", -"v c #A19D94", -"w c #ADA999", -"x c #B1A9A1", -"y c #CFCFCF", -"z c #A4A4A4", -"A c #989897", -"B c #ABABAB", -"C c #EEEEEE", -"D c #999588", -"E c #838383", -"F c #8D8D81", -"G c #656561", -"H c #69655D", -"I c #696559", -"J c #B5B5B5", -"K c #757575", -"L c #6B6B6B", -"M c #777777", -"N c #888888", -"O c #54544C", -"P c #757169", -"Q c #79796E", -"R c #010000", -"S c #E0E0DF", -"T c #C1C1C0", -"U c #A7A7A7", -"V c #7B7B7B", -"W c #747474", -"X c #717171", -"Y c #7D7D7D", -"............... ", -".+@#@$$$@%+&*=-;", -".@;;;;;;;;;;;;>;", -".$;,')!!~{{]^/(;", -".$;_):~~<[[}|/1;", -".2;3:4........;.", -".2;~5.6788888898", -".+;~5.8000000aba", -".c;de.80f...gaba", -".h;ij.80.klm.nop", -".q;rs.80.lat..u.", -".vw-x;9a;yzA.BC#", -".D;;;.8ag...nEbb", -".FGHI.8aJKLnMN..", -" ;OPQRSTUVVWX.kl", -" .;;.8aY.....la"}; -#endif diff --git a/bitmaps_xpm/down.xpm b/bitmaps_xpm/down.xpm deleted file mode 100644 index a671076ec3..0000000000 --- a/bitmaps_xpm/down.xpm +++ /dev/null @@ -1,49 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *down_xpm[]; - -#else -const char * down_xpm[] = { -"16 16 25 1", -" c None", -". c #000000", -"+ c #B5C9DC", -"@ c #9BB6D0", -"# c #91B0CC", -"$ c #49749C", -"% c #456F96", -"& c #AFC5DA", -"* c #A0BAD3", -"= c #9EB8D1", -"- c #3F6588", -"; c #375978", -"> c #B2C7DB", -", c #9CB7D1", -"' c #9AB5CF", -") c #B6CADD", -"! c #5B88B2", -"~ c #A4BDD5", -"{ c #2A435B", -"] c #5080AD", -"^ c #97B3CE", -"/ c #080D11", -"( c #5F8BB4", -"_ c #95B2CE", -": c #4C79A3", -" ", -" ", -" ....... ", -" .+@#$%. ", -" .&*=-;. ", -" .>,'-;. ", -" .),'-;. ", -" .)@@-;. ", -" ....)',-;.... ", -" .!=~*,---{. ", -" .],,,--{. ", -" .]^*-{. ", -" /(_{. ", -" .:. ", -" . ", -" "}; -#endif diff --git a/bitmaps_xpm/drag_module.xpm b/bitmaps_xpm/drag_module.xpm deleted file mode 100644 index aa499819fb..0000000000 --- a/bitmaps_xpm/drag_module.xpm +++ /dev/null @@ -1,87 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* drag_module_xpm[]; -#else -const char * drag_module_xpm[] = { -"16 16 63 1", -" c None", -". c #000000", -"+ c #C0C0C0", -"@ c #B8B8C0", -"# c #007D00", -"$ c #D72E2E", -"% c #FFFFFF", -"& c #F5F4FF", -"* c #EBEAFF", -"= c #F5F5FF", -"- c #EBEBFF", -"; c #E1E1FF", -"> c #2A0909", -", c #005E00", -"' c #F6F5FF", -") c #ECEBFF", -"! c #E2E1FF", -"~ c #9796B3", -"{ c #30303B", -"] c #DCDCEF", -"^ c #31313C", -"/ c #ECECFF", -"( c #E2E2FF", -"_ c #7B7B92", -": c #020202", -"< c #84849B", -"[ c #003D00", -"} c #E3E2FF", -"| c #7C7B92", -"1 c #BDBCE9", -"2 c #9E9DCD", -"3 c #005800", -"4 c #006400", -"5 c #004000", -"6 c #9897B3", -"7 c #BBBAFF", -"8 c #F1F1FF", -"9 c #353542", -"0 c #E7E5FF", -"a c #646489", -"b c #232532", -"c c #005B00", -"d c #FBFBFF", -"e c #EAEAFF", -"f c #DBDBFF", -"g c #D5D3FF", -"h c #CDCDFF", -"i c #C8C6FF", -"j c #C1C1FF", -"k c #9F9DDB", -"l c #001000", -"m c #2F2F3B", -"n c #7A7A96", -"o c #D2D0FF", -"p c #5A5981", -"q c #20202F", -"r c #C8C8FF", -"s c #C0BFFF", -"t c #5C5C82", -"u c #B8B8FF", -"v c #56557D", -"w c #9493D6", -"x c #1D1D2C", -" .. .. ", -" .+..@. ", -"##$.%%&*.$######", -"##$.%=-;.>,#####", -" .')!~{]^ ", -"##$./(_:<%<.[###", -"##$.}|12.%.345##", -" .6:27.8. . ", -"##$.9<...0...abc", -"##$.]d8e!fghijkl", -" .mn...o...pq ", -" . .r. .. ", -" . .s. . ", -" .tuv.. ", -" qwx. ", -" . "}; - -#endif diff --git a/bitmaps_xpm/drag_outline_segment.xpm b/bitmaps_xpm/drag_outline_segment.xpm deleted file mode 100644 index 925ec01c35..0000000000 --- a/bitmaps_xpm/drag_outline_segment.xpm +++ /dev/null @@ -1,64 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* drag_outline_segment_xpm[]; -#else -const char * drag_outline_segment_xpm[] = { -"16 16 40 1", -" c None", -"! c black", -"# c #C00000", -"$ c #5C6A00", -"% c #800028", -"& c #0D0D1E", -"' c #9B9B9B", -"( c #565656", -") c #32323E", -"* c #DCDCEF", -"+ c #4A4A4A", -", c #D2D2D2", -"- c #84849B", -". c white", -"0 c #F1F1FF", -"1 c #31313D", -"2 c #E7E5FF", -"3 c #646489", -"4 c #232332", -"5 c #FBFBFF", -"6 c #EAEAFF", -"7 c #E2E1FF", -"8 c #DBDBFF", -"9 c #D5D3FF", -": c #CDCDFF", -"; c #C8C6FF", -"< c #C1C1FF", -"= c #9F9DDB", -"> c #30303B", -"? c #7A7A96", -"@ c #D2D0FF", -"A c #5A5981", -"B c #20202F", -"C c #C8C8FF", -"D c #C0BFFF", -"E c #5C5C82", -"F c #B8B8FF", -"G c #56557D", -"H c #9493D6", -"I c #1D1D2C", -" ", -" %%########$ ", -" %%#########$ ", -" %#$ #$", -" %#$''()*)+ ,,,", -" %#$ !-.-!! ", -"%#$ !.! ", -"#$ ! !0! ! ", -"$ 1-!!!2!!!34 ", -" !*506789:;<=!", -" >?!!!@!!!AB ", -" ! !C! !! ", -" ! !D! ! ", -" !EFG!! ", -" BHI! ", -" ! "}; - -#endif diff --git a/bitmaps_xpm/drag_pad.xpm b/bitmaps_xpm/drag_pad.xpm deleted file mode 100644 index 82a569c5f8..0000000000 --- a/bitmaps_xpm/drag_pad.xpm +++ /dev/null @@ -1,72 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* drag_pad_xpm[]; -#else -const char * drag_pad_xpm[] = { -"16 16 48 1", -" c None", -". c #000000", -"+ c #000200", -"@ c #003B00", -"# c #006400", -"$ c #007700", -"% c #005F00", -"& c #007D00", -"* c #007600", -"= c #006100", -"- c #006500", -"; c #000B00", -"> c #005200", -", c #30343B", -"' c #DCDCEF", -") c #30303B", -"! c #003C00", -"~ c #84849B", -"{ c #FFFFFF", -"] c #003D00", -"^ c #003700", -"/ c #004000", -"( c #005300", -"_ c #F1F1FF", -": c #E7E5FF", -"< c #646489", -"[ c #232332", -"} c #FBFBFF", -"| c #EAEAFF", -"1 c #E2E1FF", -"2 c #DBDBFF", -"3 c #D5D3FF", -"4 c #CDCDFF", -"5 c #C8C6FF", -"6 c #C1C1FF", -"7 c #9F9DDB", -"8 c #2F2F3B", -"9 c #7A7A96", -"0 c #D2D0FF", -"a c #5A5981", -"b c #20202F", -"c c #C8C8FF", -"d c #C0BFFF", -"e c #5C5C82", -"f c #B8B8FF", -"g c #56557D", -"h c #9493D6", -"i c #1D1D2C", -" ..... ", -" +@#$#@+ ", -" +%&&&&&%+ ", -".@&&*=*&-;. ", -".#&* >,')!&&&&", -".$&= .~{~.]&&&", -".#&* %.{.^#/&&", -".@&&(.%&._. . ", -" +%-,~...:...<[ ", -" +;'}_|1234567.", -" .89...0...ab ", -" .. .c. .. ", -" . .d. . ", -" .efg.. ", -" bhi. ", -" . "}; - -#endif diff --git a/bitmaps_xpm/drag_segment_withslope.xpm b/bitmaps_xpm/drag_segment_withslope.xpm deleted file mode 100644 index 5bb65abf3a..0000000000 --- a/bitmaps_xpm/drag_segment_withslope.xpm +++ /dev/null @@ -1,64 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* drag_segment_withslope_xpm[]; -#else -const char * drag_segment_withslope_xpm[] = { -"16 16 40 1", -" c None", -"! c black", -"# c #009B00", -"$ c #3CBA00", -"% c #007C28", -"& c #0D0D1E", -"' c #9B9B9B", -"( c #565656", -") c #32323E", -"* c #DCDCEF", -"+ c #4A4A4A", -", c #D2D2D2", -"- c #84849B", -". c white", -"0 c #F1F1FF", -"1 c #31313D", -"2 c #E7E5FF", -"3 c #646489", -"4 c #232332", -"5 c #FBFBFF", -"6 c #EAEAFF", -"7 c #E2E1FF", -"8 c #DBDBFF", -"9 c #D5D3FF", -": c #CDCDFF", -"; c #C8C6FF", -"< c #C1C1FF", -"= c #9F9DDB", -"> c #30303B", -"? c #7A7A96", -"@ c #D2D0FF", -"A c #5A5981", -"B c #20202F", -"C c #C8C8FF", -"D c #C0BFFF", -"E c #5C5C82", -"F c #B8B8FF", -"G c #56557D", -"H c #9493D6", -"I c #1D1D2C", -" ##", -" ##$", -" #%%#########$ ", -" %%#####&####$ ", -" '%#$''()*)+ ,,,", -" %#$ !-.-!! ", -"%#$ !.! ", -"#$ ! !0! ! ", -"$ 1-!!!2!!!34 ", -" !*506789:;<=!", -" >?!!!@!!!AB ", -" ! !C! !! ", -" ! !D! ! ", -" !EFG!! ", -" BHI! ", -" ! "}; - -#endif diff --git a/bitmaps_xpm/drag_track_segment.xpm b/bitmaps_xpm/drag_track_segment.xpm deleted file mode 100644 index c421f752fd..0000000000 --- a/bitmaps_xpm/drag_track_segment.xpm +++ /dev/null @@ -1,65 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* drag_track_segment_xpm[]; -#else -const char * drag_track_segment_xpm[] = { -"16 16 41 1", -" c None", -"! c #D90000", -"# c black", -"$ c #009B00", -"% c #3CBA00", -"& c #007C28", -"' c #0D0D1E", -"( c #9B9B9B", -") c #565656", -"* c #32323E", -"+ c #DCDCEF", -", c #4A4A4A", -"- c #D2D2D2", -". c #84849B", -"0 c white", -"1 c #F1F1FF", -"2 c #31313D", -"3 c #E7E5FF", -"4 c #646489", -"5 c #232332", -"6 c #FBFBFF", -"7 c #EAEAFF", -"8 c #E2E1FF", -"9 c #DBDBFF", -": c #D5D3FF", -"; c #CDCDFF", -"< c #C8C6FF", -"= c #C1C1FF", -"> c #9F9DDB", -"? c #30303B", -"@ c #7A7A96", -"A c #D2D0FF", -"B c #5A5981", -"C c #20202F", -"D c #C8C8FF", -"E c #C0BFFF", -"F c #5C5C82", -"G c #B8B8FF", -"H c #56557D", -"I c #9493D6", -"J c #1D1D2C", -"!! $$", -" !! $$%", -" &&$$$$$$$$$% ", -" &&$$$$$'$$$% ", -" &$((!()*+*, ---", -" &$ !!#.0.## ", -"&$ !!#0# ", -"$ # !#1# # ", -"$ 2.###3###45 ", -" #+61789:;<=>#", -" ?@###A###BC ", -" # #D# ## ", -" # #E# # ", -" #FGH## ", -" CIJ# ", -" # "}; - -#endif diff --git a/bitmaps_xpm/drc.xpm b/bitmaps_xpm/drc.xpm deleted file mode 100644 index 031c534c6f..0000000000 --- a/bitmaps_xpm/drc.xpm +++ /dev/null @@ -1,111 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *drc_xpm[]; - -#else -const char *drc_xpm[] = { -"16 16 87 1", -" c None", -". c #000000", -"+ c #333F4D", -"@ c #467096", -"# c #516980", -"$ c #8DACC8", -"% c #0A1116", -"& c #253341", -"* c #BFD0E0", -"= c #31506C", -"- c #3D6283", -"; c #0D151B", -"> c #1A2027", -", c #96AFC7", -"' c #618BB3", -") c #0B1217", -"! c #16222D", -"~ c #D5E0EA", -"{ c #1D2F40", -"] c #6289B0", -"^ c #A2BBD3", -"/ c #345573", -"( c #5784AF", -"_ c #B0C5D9", -": c #24394D", -"< c #1C272F", -"[ c #A1BAD2", -"} c #5885B0", -"| c #121D27", -"1 c #070B0E", -"2 c #799DBF", -"3 c #759ABD", -"4 c #203345", -"5 c #060A0C", -"6 c #89A9C7", -"7 c #7197BB", -"8 c #3B5F7F", -"9 c #000100", -"0 c #1F3242", -"a c #769BBE", -"b c #628CB4", -"c c #304D66", -"d c #5381AD", -"e c #1B2C3C", -"f c #000101", -"g c #477299", -"h c #658EB5", -"i c #94A7B9", -"j c #05080A", -"k c #040608", -"l c #040709", -"m c #DBDAD8", -"n c #0F1920", -"o c #5C88B2", -"p c #E9EAEB", -"q c #B0B0AE", -"r c #474540", -"s c #9D9B94", -"t c #86857F", -"u c #23394E", -"v c #030507", -"w c #9B9A96", -"x c #8F8E88", -"y c #8E8C84", -"z c #95938C", -"A c #7F7C73", -"B c #030608", -"C c #15222E", -"D c #010101", -"E c #585753", -"F c #5F5D56", -"G c #878681", -"H c #75736A", -"I c #42413E", -"J c #272623", -"K c #35332F", -"L c #6C6A62", -"M c #ECECEB", -"N c #B4B3AD", -"O c #201F1D", -"P c #090807", -"Q c #171715", -"R c #E4E4E2", -"S c #64625B", -"T c #151513", -"U c #8A8987", -"V c #DDDCDA", -" .. ", -" .+@. ", -" .#$%. ", -" &*=. ", -"-; >,'). ", -"!~{ .]^/. ", -" (_: .<[}|. ", -" 123456789 ", -" 0abc_de... ", -" fghijkl.m. .. ", -" nokpq.rsr.t..", -" uvwxsssyzAr.", -" BCDssEFGAH. ", -" ..rsFIJKsLr.", -" .MNsEOPQRASF", -" ..rsGKTUVSr."}; -#endif diff --git a/bitmaps_xpm/drc_off.xpm b/bitmaps_xpm/drc_off.xpm deleted file mode 100644 index 1563868bdd..0000000000 --- a/bitmaps_xpm/drc_off.xpm +++ /dev/null @@ -1,104 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *drc_off_xpm[]; - -#else -const char * drc_off_xpm[] = { -"16 16 80 1", -" c None", -"! c #FF0000", -"# c black", -"$ c #252525", -"% c #C4C4C4", -"& c #EDEDED", -"' c #ECECEC", -"( c #AAAAAA", -") c #454545", -"* c #333F4D", -"+ c #F0F0F0", -", c #FDFDFD", -"- c #FCFCFC", -". c #FBFBFB", -"0 c #E9E9E9", -"1 c #6F6F6F", -"2 c #516980", -"3 c #0A1116", -"4 c #FAFAFA", -"5 c #FEFEFE", -"6 c white", -"7 c #E7E7E7", -"8 c #232323", -"9 c #253341", -": c #31506C", -"; c #AFAFAF", -"< c #F2F2F2", -"= c #476C8D", -"> c #D0D0D0", -"? c #A2A2A2", -"@ c #393F46", -"A c #618BB3", -"B c #0B1217", -"C c #EAEAEA", -"D c #323E49", -"E c #D6E1EB", -"F c #A4A4A4", -"G c #F4F4F4", -"H c #2C2C2C", -"I c #A2BBD3", -"J c #345573", -"K c #9E9E9E", -"L c #5885B0", -"M c #B1C6DA", -"N c #929393", -"O c #6A6A6A", -"P c #121D27", -"Q c #F3F3F3", -"R c #3C4043", -"S c #7A9EC0", -"T c #769BBE", -"U c #8AAAC8", -"V c #7298BC", -"W c #3B5F7F", -"X c #000100", -"Y c #D6D6D6", -"Z c #263949", -"[ c #779CBF", -"] c #5381AD", -"^ c #1B2C3C", -"_ c #848484", -"` c #5B5C5C", -"a c #668FB6", -"b c #ACC2D7", -"c c #41688B", -"d c #05090B", -"e c #A3A3A3", -"f c #242E35", -"g c #5D89B3", -"h c #48739A", -"i c #41698D", -"j c #23394E", -"k c #3C6182", -"l c #284057", -"m c #0B131A", -"n c #030608", -"o c #1A2A39", -"p c #404040", -"q c #767676", -"r c #676767", -"! #### ##!", -" !#$%&'()# #*!#", -" #!+,,-.01##2!3#", -" )+!456-4789!:# ", -"#;<=!>4-.?@!AB# ", -"#&CDE!FG6H!IJ# ", -"#'4KLM!NO!ILP# ", -"#(.QRST!!UVWX ", -" )04YZ[!!M]^# ", -" #_7G`!ab!cd ", -" #)e!fghi!## ", -" !##jklm!## ", -" ! nom#p!## ", -" ! ####q!##", -" ! # #r!#", -"! ##!"}; -#endif diff --git a/bitmaps_xpm/edges_sketch.xpm b/bitmaps_xpm/edges_sketch.xpm deleted file mode 100644 index f26600d4f8..0000000000 --- a/bitmaps_xpm/edges_sketch.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* edges_sketch_xpm[]; -#else -const char * edges_sketch_xpm[] = { -"16 16 3 1", -" c None", -". c #D72E2E", -"+ c #00009B", -"...+++ +++... ", -". .+ +++ +. . ", -"...+ +... ", -" + + ", -"...+ +... ", -". .+ +. . ", -"...+ +... ", -" + + ", -"...+ +... ", -". .+ +. . ", -"...+ +... ", -" + + ", -"...+ +... ", -". .+ +. . ", -"...+++++++++... ", -" "}; - -#endif diff --git a/bitmaps_xpm/edit.xpm b/bitmaps_xpm/edit.xpm deleted file mode 100644 index 3568860825..0000000000 --- a/bitmaps_xpm/edit.xpm +++ /dev/null @@ -1,52 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *edit_xpm[]; - -#else -const char * edit_xpm[] = { -"16 16 28 1", -" c None", -". c #000000", -"+ c #F9E53A", -"@ c #F0B44C", -"# c #FAE93C", -"$ c #F5B343", -"% c #635632", -"& c #FAE73A", -"* c #F5B344", -"= c #6B5E33", -"- c #F8E239", -"; c #F2B043", -"> c #615739", -", c #F7DD38", -"' c #F1AD41", -") c #615637", -"! c #F7DA37", -"~ c #EDB24C", -"{ c #655931", -"] c #F6D636", -"^ c #EEA73E", -"/ c #64582F", -"( c #F4D035", -"_ c #EBA23D", -": c #5B512F", -"< c #D5AC73", -"[ c #60552E", -"} c #4E4014", -" ", -" ... ", -" .+@. ", -" .#$%. ", -" .&*=. ", -" .-;>. ", -" .,'). ", -" .!~{. ", -" .]^/. ", -" .(_:. ", -" .<[. ", -" .}.. ", -" .. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/edit_comp_footprint.xpm b/bitmaps_xpm/edit_comp_footprint.xpm deleted file mode 100644 index 8ca72e047a..0000000000 --- a/bitmaps_xpm/edit_comp_footprint.xpm +++ /dev/null @@ -1,99 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *edit_comp_footprint_xpm[]; - -#else -const char * edit_comp_footprint_xpm[] = { -"16 16 75 1", -" c None", -". c #000000", -"+ c #9B9B9B", -"@ c #080808", -"# c #B0B0B0", -"$ c #1B1B1C", -"% c #161616", -"& c #FBFBFF", -"* c #EAEAF3", -"= c #69696F", -"- c #0A0A0A", -"; c #F7F7FF", -"> c #F3F3FF", -", c #EEEEFF", -"' c #BBBBCC", -") c #2E2E33", -"! c #F4F4FF", -"~ c #EFEFFF", -"{ c #EBEBFF", -"] c #E6E6FF", -"^ c #DFDFFC", -"/ c #7D7D90", -"( c #111113", -"_ c #0C0C0C", -": c #F0F0FF", -"< c #ECECFF", -"[ c #E7E7FF", -"} c #E3E3FF", -"| c #DEDEFF", -"1 c #D9D9FF", -"2 c #BEBEE3", -"3 c #0D0D10", -"4 c #B4B4B4", -"5 c #A2A2B0", -"6 c #131313", -"7 c #1C1C1C", -"8 c #EDEDFF", -"9 c #E8E8FF", -"0 c #E4E4FF", -"a c #DFDFFF", -"b c #DADAFF", -"c c #D6D6FF", -"d c #BABAE3", -"e c #AAAAB8", -"f c #9898B4", -"g c #171717", -"h c #464646", -"i c #333333", -"j c #E9E9FF", -"k c #E5E5FF", -"l c #E0E0FF", -"m c #DCDCFF", -"n c #D4D4FC", -"o c #777790", -"p c #151517", -"q c #4E4E4E", -"r c #202020", -"s c #767676", -"t c #E1E1FF", -"u c #ADADCC", -"v c #2A2A33", -"w c #8E8E8E", -"x c #1E1E1E", -"y c #E2E2F6", -"z c #9595A0", -"A c #0D0D0E", -"B c #676767", -"C c #3C3C3C", -"D c #070707", -"E c #474749", -"F c #5D5D5D", -"G c #5A5A5A", -"H c #101010", -"I c #BCBCBC", -"J c #010101", -" . + + +++ ", -" .@ + + + ", -" .#$% + + +++ ", -" .&*=- +++ + ", -"..;>,')% ", -"+.!~{]^/(_.. ", -" .:<[}|1234567. ", -" .890abcd3efghi+", -" .jklmnopqrrs+++", -"..]t|uviw+ ++ ", -"+xkyzAB++ ", -" CDEsFD. . ...", -" -GH.. . . .", -" .IJ ... . . . ", -" .B. . . . . .", -" . .. . ..."}; -#endif diff --git a/bitmaps_xpm/edit_comp_ref.xpm b/bitmaps_xpm/edit_comp_ref.xpm deleted file mode 100644 index 371715e141..0000000000 --- a/bitmaps_xpm/edit_comp_ref.xpm +++ /dev/null @@ -1,96 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *edit_comp_ref_xpm[]; - -#else -const char * edit_comp_ref_xpm[] = { -"16 16 72 1", -" c None", -". c #000000", -"+ c #080808", -"@ c #B0B0B0", -"# c #1B1B1C", -"$ c #161616", -"% c #FBFBFF", -"& c #EAEAF3", -"* c #69696F", -"= c #0A0A0A", -"- c #F7F7FF", -"; c #F3F3FF", -"> c #EEEEFF", -", c #BBBBCC", -"' c #2E2E33", -") c #9B9B9B", -"! c #F4F4FF", -"~ c #EFEFFF", -"{ c #EBEBFF", -"] c #E6E6FF", -"^ c #DFDFFC", -"/ c #7D7D90", -"( c #111113", -"_ c #0C0C0C", -": c #F0F0FF", -"< c #ECECFF", -"[ c #E7E7FF", -"} c #E3E3FF", -"| c #DEDEFF", -"1 c #D9D9FF", -"2 c #BEBEE3", -"3 c #0D0D10", -"4 c #B4B4B4", -"5 c #A2A2B0", -"6 c #131313", -"7 c #1C1C1C", -"8 c #EDEDFF", -"9 c #E8E8FF", -"0 c #E4E4FF", -"a c #DFDFFF", -"b c #DADAFF", -"c c #D6D6FF", -"d c #BABAE3", -"e c #AAAAB8", -"f c #9898B4", -"g c #171717", -"h c #464646", -"i c #333333", -"j c #E9E9FF", -"k c #E5E5FF", -"l c #E0E0FF", -"m c #DCDCFF", -"n c #D4D4FC", -"o c #777790", -"p c #151517", -"q c #4E4E4E", -"r c #202020", -"s c #767676", -"t c #E1E1FF", -"u c #DDDDFF", -"v c #ADADCC", -"w c #2A2A33", -"x c #8E8E8E", -"y c #E2E2FF", -"z c #D4D4F3", -"A c #5E5E6F", -"B c #0D0D0E", -"C c #676767", -"D c #9A9AB0", -"E c #18181C", -"F c #F2F2F2", -"G c #C0C0C0", -" . . . ... ", -" .+ . . . ", -" .@#$ . . ... ", -" .%&*= ... . ", -"..-;>,'$ ", -").!~{]^/(_.. ", -" .:<[}|1234567. ", -" .890abcd3efghi)", -" .jklmnopqrrs)))", -"..]tuvwix) )) ", -").yzABC)) ", -" .DEix) ", -" ._C)))) ) )))))", -" .x) ) ))))FG )", -" ) ) ))))FG ) ", -" ) ) )))))"}; -#endif diff --git a/bitmaps_xpm/edit_comp_value.xpm b/bitmaps_xpm/edit_comp_value.xpm deleted file mode 100644 index 9822daf259..0000000000 --- a/bitmaps_xpm/edit_comp_value.xpm +++ /dev/null @@ -1,97 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *edit_comp_value_xpm[]; - -#else -const char * edit_comp_value_xpm[] = { -"16 16 73 1", -" c None", -". c #000000", -"+ c #9B9B9B", -"@ c #080808", -"# c #B0B0B0", -"$ c #1B1B1C", -"% c #161616", -"& c #FBFBFF", -"* c #EAEAF3", -"= c #69696F", -"- c #0A0A0A", -"; c #F7F7FF", -"> c #F3F3FF", -", c #EEEEFF", -"' c #BBBBCC", -") c #2E2E33", -"! c #F4F4FF", -"~ c #EFEFFF", -"{ c #EBEBFF", -"] c #E6E6FF", -"^ c #DFDFFC", -"/ c #7D7D90", -"( c #111113", -"_ c #0C0C0C", -": c #F0F0FF", -"< c #ECECFF", -"[ c #E7E7FF", -"} c #E3E3FF", -"| c #DEDEFF", -"1 c #D9D9FF", -"2 c #BEBEE3", -"3 c #0D0D10", -"4 c #B4B4B4", -"5 c #A2A2B0", -"6 c #131313", -"7 c #1C1C1C", -"8 c #EDEDFF", -"9 c #E8E8FF", -"0 c #E4E4FF", -"a c #DFDFFF", -"b c #DADAFF", -"c c #D6D6FF", -"d c #BABAE3", -"e c #AAAAB8", -"f c #9898B4", -"g c #171717", -"h c #464646", -"i c #333333", -"j c #E9E9FF", -"k c #E5E5FF", -"l c #E0E0FF", -"m c #DCDCFF", -"n c #D4D4FC", -"o c #777790", -"p c #151517", -"q c #4E4E4E", -"r c #202020", -"s c #767676", -"t c #E1E1FF", -"u c #DDDDFF", -"v c #ADADCC", -"w c #2A2A33", -"x c #8E8E8E", -"y c #E2E2FF", -"z c #D4D4F3", -"A c #5E5E6F", -"B c #0D0D0E", -"C c #676767", -"D c #9A9AB0", -"E c #18181C", -"F c #0B0B0B", -"G c #E0E0E0", -"H c #606060", -" . + + +++ ", -" .@ + + + ", -" .#$% + + +++ ", -" .&*=- +++ + ", -"..;>,')% ", -"+.!~{]^/(_.. ", -" .:<[}|1234567. ", -" .890abcd3efghi+", -" .jklmnopqrrs+++", -"..]tuvwix+ ++ ", -"+.yzABC++ ", -" .DEix+ ", -" ._C..F. . .....", -" .x+ . ....GH .", -" + . ....GH . ", -" . . ....."}; -#endif diff --git a/bitmaps_xpm/edit_component.xpm b/bitmaps_xpm/edit_component.xpm deleted file mode 100644 index 345f4d0ae1..0000000000 --- a/bitmaps_xpm/edit_component.xpm +++ /dev/null @@ -1,104 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *edit_component_xpm[]; - -#else -const char * edit_component_xpm[] = { -"16 16 80 1", -" c None", -". c #000000", -"+ c #F9E53A", -"@ c #F0B44C", -"# c #FAE93C", -"$ c #F5B343", -"% c #635632", -"& c #0D0D0D", -"* c #FAE73A", -"= c #F5B344", -"- c #6B5E33", -"; c #F5F5F5", -"> c #3D3D3E", -", c #161616", -"' c #F8E239", -") c #F2B043", -"! c #615739", -"~ c #FBFBFF", -"{ c #F1F1FA", -"] c #9E9EA4", -"^ c #111111", -"/ c #F7DD38", -"( c #F1AD41", -"_ c #615637", -": c #F7F7FF", -"< c #F3F3FF", -"[ c #EEEEFF", -"} c #D6D6E7", -"| c #515156", -"1 c #F7DA37", -"2 c #EDB24C", -"3 c #655931", -"4 c #9B9B9B", -"5 c #F4F4FF", -"6 c #EFEFFF", -"7 c #EBEBFF", -"8 c #E6E6FF", -"9 c #010101", -"0 c #F7D737", -"a c #EEA73E", -"b c #64582F", -"c c #F0F0FF", -"d c #ECECFF", -"e c #E7E7FF", -"f c #F5D136", -"g c #ECA33E", -"h c #5C5230", -"i c #B8B8B8", -"j c #A6A6B4", -"k c #131313", -"l c #1C1C1C", -"m c #EDEDFF", -"n c #E8E8FF", -"o c #E4E4FF", -"p c #D6AD74", -"q c #61562F", -"r c #141417", -"s c #AAAAB8", -"t c #9898B4", -"u c #171717", -"v c #464646", -"w c #333333", -"x c #E9E9FF", -"y c #E5E5FF", -"z c #4F4115", -"A c #1D1D1F", -"B c #4E4E4E", -"C c #202020", -"D c #767676", -"E c #E1E1FF", -"F c #42424B", -"G c #8E8E8E", -"H c #E2E2FF", -"I c #DADAF9", -"J c #838394", -"K c #0F0F10", -"L c #676767", -"M c #BABAD0", -"N c #27272B", -"O c #0C0C0C", -" .+@", -" . .#$%", -" .& .*=-.", -" .;>, .')!. ", -" .~{]^ ./(_. ", -"...:<[}|.123. ", -" 4.567890ab.. ", -" .cde9fgh.ijkl.", -" .mno9pq9rstuvw", -" .xy9z99ABCCD44", -"...8E99FwG4 44 ", -" 4.HIJKL44 ", -" .MNwG4 ", -" .OL44 ", -" .G4 ", -" 4 "}; -#endif diff --git a/bitmaps_xpm/edit_module.xpm b/bitmaps_xpm/edit_module.xpm deleted file mode 100644 index 050a03cbf1..0000000000 --- a/bitmaps_xpm/edit_module.xpm +++ /dev/null @@ -1,72 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* edit_module_xpm[]; -#else -const char * edit_module_xpm[] = { -"16 16 48 1", -" c None", -". c #000000", -"+ c #F9E53A", -"@ c #F0B44C", -"# c #FAE93C", -"$ c #F5B343", -"% c #635632", -"& c #FAE73A", -"* c #F5B344", -"= c #6B5E33", -"- c #C0C0C0", -"; c #B8B8C0", -"> c #F8E239", -", c #F2B043", -"' c #615739", -") c #D72E2E", -"! c #FFFFFF", -"~ c #F5F4FF", -"{ c #EBEAFF", -"] c #F8DD38", -"^ c #F1AD41", -"/ c #615637", -"( c #F5F5FF", -"_ c #EBEBFF", -": c #010101", -"< c #F7DA37", -"[ c #EEB24C", -"} c #655931", -"| c #F6F5FF", -"1 c #ECEBFF", -"2 c #F7D737", -"3 c #EEA73E", -"4 c #64582F", -"5 c #ECECFF", -"6 c #F5D136", -"7 c #ECA33E", -"8 c #5B512F", -"9 c #010000", -"0 c #E3E2FF", -"a c #D6AD74", -"b c #61562F", -"c c #4F4115", -"d c #BCBAFF", -"e c #B2B0FF", -"f c #C6C5FF", -"g c #BCBBFF", -"h c #B3B1FF", -"i c #AFADFF", -" ...", -" .+@.", -" .#$%.", -" .. .. .&*=. ", -" .-..;..>,'. ", -" ).!!~{.]^/. ", -" ).!(_:<[}. ", -" .|1:234. ", -" ).5:6789 ", -" ).0:ab.) ", -" .:c::. ", -" ).::de.) ", -" ).fghi.) ", -" ...... ", -" ", -" "}; - -#endif diff --git a/bitmaps_xpm/edit_part.xpm b/bitmaps_xpm/edit_part.xpm deleted file mode 100644 index a9781928d7..0000000000 --- a/bitmaps_xpm/edit_part.xpm +++ /dev/null @@ -1,106 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *edit_part_xpm[]; - -#else -const char * edit_part_xpm[] = { -"16 16 82 1", -" c None", -". c #000000", -"+ c #F9E53A", -"@ c #F0B44C", -"# c #FAE93C", -"$ c #F5B343", -"% c #635632", -"& c #080808", -"* c #FAE73A", -"= c #F5B344", -"- c #6B5E33", -"; c #B0B0B0", -"> c #1C1A19", -", c #161616", -"' c #F8E239", -") c #F2B043", -"! c #615739", -"~ c #FFF3EC", -"{ c #F3DBCB", -"] c #6F5E53", -"^ c #0A0909", -"/ c #F7DD38", -"( c #F1AD41", -"_ c #615637", -": c #FFE8D8", -"< c #FFDBC2", -"[ c #FFCEAB", -"} c #CC9A77", -"| c #332419", -"1 c #F7DA37", -"2 c #EDB24C", -"3 c #655931", -"4 c #9B9B9B", -"5 c #FFDDC5", -"6 c #FFD0AF", -"7 c #FFC298", -"8 c #FFB582", -"9 c #010100", -"0 c #F7D636", -"a c #EEA73E", -"b c #64582F", -"c c #FFD1B2", -"d c #FFC49C", -"e c #FFB785", -"f c #F5D135", -"g c #ECA33D", -"h c #5C512F", -"i c #B8B8B8", -"j c #B49681", -"k c #131313", -"l c #1C1C1C", -"m c #FFC69F", -"n c #FFB988", -"o c #FFAC72", -"p c #D6AD73", -"q c #61562E", -"r c #010000", -"s c #100600", -"t c #B89A85", -"u c #B47950", -"v c #171717", -"w c #464646", -"x c #333333", -"y c #FFBB8C", -"z c #FFAE75", -"A c #4F4114", -"B c #17100B", -"C c #4E4E4E", -"D c #202020", -"E c #767676", -"F c #FFB079", -"G c #FFA262", -"H c #331906", -"I c #8E8E8E", -"J c #FFA465", -"K c #F3904B", -"L c #6F3C18", -"M c #0E0C0B", -"N c #676767", -"O c #B06A39", -"P c #1C0F07", -"Q c #0C0C0C", -" .+@", -" . .#$%", -" .& .*=-.", -" .;>, .')!. ", -" .~{]^ ./(_. ", -"...:<[}|.123. ", -" 4.567890ab.. ", -" .cde9fgh.ijkl.", -" .mno9pqrstuvwx", -" .yz9A9rBCDDE44", -"...FG9rHxI4 44 ", -" 4.JKLMN44 ", -" .OPxI4 ", -" .QN44 ", -" .I4 ", -" 4 "}; -#endif diff --git a/bitmaps_xpm/edit_sheet.xpm b/bitmaps_xpm/edit_sheet.xpm deleted file mode 100644 index b17f2e79cd..0000000000 --- a/bitmaps_xpm/edit_sheet.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *edit_sheet_xpm[]; - -#else -const char * edit_sheet_xpm[] = { -"16 16 49 1", -" c None", -". c #000000", -"+ c #F9E53A", -"@ c #F0B44C", -"# c #FAE93C", -"$ c #F5B343", -"% c #635632", -"& c #FFFFFF", -"* c #242424", -"= c #FAE73A", -"- c #F5B344", -"; c #6B5E33", -"> c #FDFDFD", -", c #EBEBEB", -"' c #787878", -") c #484848", -"! c #F8E239", -"~ c #F2B043", -"{ c #615739", -"] c #FCFCFC", -"^ c #424242", -"/ c #F7DD38", -"( c #F1AD41", -"_ c #615637", -": c #FAFAFA", -"< c #010101", -"[ c #F8DB38", -"} c #EDB24C", -"| c #655931", -"1 c #F9F9F9", -"2 c #F7D737", -"3 c #EFA83F", -"4 c #64582F", -"5 c #F8F8F8", -"6 c #F5D136", -"7 c #ECA33E", -"8 c #5C5230", -"9 c #F6F6F6", -"0 c #D6AD74", -"a c #61562F", -"b c #1A1A1A", -"c c #F5F5F5", -"d c #4F4115", -"e c #C6C6C6", -"f c #F3F3F3", -"g c #F2F2F2", -"h c #F0F0F0", -"i c #BEBEBE", -"j c #C3C3C3", -" ...", -" .+@.", -"........ .#$%.", -".&&&&&&*. .=-;. ", -".>,,,,,').!~{. ", -".],,,,,^./(_. ", -".:,,,,,<[}|. ", -".1,,,,<234. ", -".5,,,<678. ", -".9,,,<0a c #767676", -", c #5D5D5D", -"' c #404040", -") c #F0F0F0", -"! c #E2E2E2", -"~ c #858585", -"{ c #4B4B49", -"] c #FBE73B", -"^ c #F2B64D", -"/ c #CACACA", -"( c #EFEFEF", -"_ c #C9C9C9", -": c #FCEB3D", -"< c #F7B544", -"[ c #61542E", -"} c #EEEEEE", -"| c #FCE93B", -"1 c #F7B545", -"2 c #6C5F34", -"3 c #F9DF39", -"4 c #F4B244", -"5 c #665D3E", -"6 c #EDEDED", -"7 c #ECECEC", -"8 c #EBEBEB", -"9 c #F6D236", -"0 c #EFB44D", -"a c #5C4F2B", -"b c #C4C4C4", -"c c #E8E8E8", -"d c #D7AE74", -"e c #655930", -"f c #C0C0C0", -"g c #EAEAEA", -"h c #E9E9E9", -"i c #4F4115", -"j c #E7E7E7", -"k c #BFBFBF", -"l c #C2C2C2", -"m c #E6E6E6", -"n c #E5E5E5", -"o c #BEBEBE", -"p c #E4E4E4", -"q c #BDBDBD", -"r c #E3E3E3", -"s c #BBBBBB", -"t c #BCBCBC", -"u c #A0A0A0", -" ......... ", -" .++++++@#$. ", -" .+%%%%%%&*=. ", -" .+%---%%;>,'.. ", -" .+%%%%%)!~{.]^.", -" .+%////(/_.:<[.", -" .+(((}}}}.|12. ", -" .@}__}__.345. ", -" .@67778.90a.. ", -" .@8bbbc.de.f. ", -" .@gghh.i..jk. ", -" .@clml..mmno. ", -" .@jjmmmnnppq. ", -" .@mnnnpprrrs. ", -" .lqqqttssssu. ", -" ........... "}; -#endif diff --git a/bitmaps_xpm/eeschema.xpm b/bitmaps_xpm/eeschema.xpm deleted file mode 100644 index 759bbd2b92..0000000000 --- a/bitmaps_xpm/eeschema.xpm +++ /dev/null @@ -1,102 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *eeschema_xpm[]; - -#else -const char *eeschema_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 76 1", -" c None", -". c #000000", -"+ c #FDFDFD", -"@ c #FCFCFC", -"# c #DEDEDE", -"$ c #BFBFBF", -"% c #F0F0F0", -"& c #C1C1C1", -"* c #F9F9F9", -"= c #A6A6A6", -"- c #E7E7E7", -"; c #676767", -"> c #ABABAB", -", c #757575", -"' c #5C5C5C", -") c #3F3F3F", -"! c #E2E2E2", -"~ c #8F8F8F", -"{ c #B1B1B1", -"] c #282625", -"^ c #6F3400", -"/ c #FF7800", -"( c #848383", -"_ c #4A4A48", -": c #151515", -"< c #823D00", -"[ c #040404", -"} c #9A4800", -"| c #BDBDBD", -"1 c #EEEEEE", -"2 c #E0E0E0", -"3 c #8E8E8E", -"4 c #AFAFAF", -"5 c #753700", -"6 c #F67400", -"7 c #BCBCBC", -"8 c #F5F5F5", -"9 c #565656", -"0 c #DFDFDF", -"a c #EDEDED", -"b c #E4E4E4", -"c c #666666", -"d c #231000", -"e c #BD5900", -"f c #101010", -"g c #E5E5E5", -"h c #1A1A1A", -"i c #AEAEAE", -"j c #EBEBEB", -"k c #EAEAEA", -"l c #ACACAC", -"m c #636363", -"n c #D9D9D9", -"o c #545454", -"p c #B9B9B9", -"q c #F4F4F4", -"r c #262423", -"s c #AAAAAA", -"t c #8A8A8A", -"u c #E6E6E6", -"v c #BEBEBE", -"w c #F37200", -"x c #252322", -"y c #A8A8A8", -"z c #888888", -"A c #D6D6D6", -"B c #E3E3E3", -"C c #060606", -"D c #B05300", -"E c #1C0D00", -"F c #626262", -"G c #DADADA", -"H c #BABABA", -"I c #8B8B8B", -"J c #BBBBBB", -"K c #9F9F9F", -" .......... ", -" .++++++@#$.. ", -" .+%%%%%%&*=.. ", -" .+%%%%-;>,'). ", -" .+%!~{]^/(_:. ", -" ....<[}///.|. ", -" .+1234]56/.7. ", -" .890aabcde.f. ", -" .g.hijkklh.i. ", -" .:.edm#--nop. ", -" .q./65rstnuv. ", -" .q.///}[<.... ", -" .q./w^xyzAB7. ", -" .C.DEFGB!!!H. ", -" .H.:IJJHHHHK. ", -" ........... "}; -#endif - diff --git a/bitmaps_xpm/enter_sheet.xpm b/bitmaps_xpm/enter_sheet.xpm deleted file mode 100644 index d9921bcd25..0000000000 --- a/bitmaps_xpm/enter_sheet.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *enter_sheet_xpm[]; - -#else -const char * enter_sheet_xpm[] = { -"16 16 44 1", -" c None", -"! c black", -"# c white", -"$ c #FDFDFD", -"% c #242424", -"& c #EBEBEB", -"' c #787878", -"( c #484848", -") c #1D1D1F", -"* c #7D7D7D", -"+ c #444444", -", c #616161", -"- c #C3C3D9", -". c #1A1A1F", -"0 c #757575", -"1 c #C6C6C6", -"2 c #1B1B1B", -"3 c #FEFEFE", -"4 c #F6F6FD", -"5 c #EAEAFA", -"6 c #DDDDF7", -"7 c #D1D1F5", -"8 c #ADADD5", -"9 c #17171E", -": c #F5F5FC", -"; c #E9E9FA", -"< c #D0D0F4", -"= c #C4C4F2", -"> c #B8B8EF", -"? c #9797CF", -"@ c #14141D", -"A c #E8E8FA", -"B c #DCDCF7", -"C c #B7B7EF", -"D c #ABABEC", -"E c #8C8CCE", -"F c #12121D", -"G c #CFCFF4", -"H c #C3C3F1", -"I c #8B8BCD", -"J c #B8B8B8", -"K c #0C0C0C", -"L c #BEBEBE", -"M c #C3C3C3", -" ", -" !!!!!!!! ", -" !#####$%! ", -" !!$&&&&&'(!", -" !)*&&&&&+,!", -"!!!!!!-.0&&&&&12", -"!334567890&&&&12", -"!3:;6<=>?@0&&&12", -"!:AB<=CDEF0&&&12", -"!ABGHCDIF0&&&&12", -"!!!!!!IF0&&&&&12", -" !F!&&&&&&JK", -" !!!&&&&&&JK", -" !LMMMMMMM!", -" !!!!!!!!!!", -" "}; -#endif diff --git a/bitmaps_xpm/erc.xpm b/bitmaps_xpm/erc.xpm deleted file mode 100644 index 713623586e..0000000000 --- a/bitmaps_xpm/erc.xpm +++ /dev/null @@ -1,119 +0,0 @@ -/* XPM */ -const char *erc_xpm[] = { -"16 16 100 2", -" c None", -". c #000000", -"+ c #252525", -"@ c #C4C4C4", -"# c #EDEDED", -"$ c #ECECEC", -"% c #AAAAAA", -"& c #454545", -"* c #333F4D", -"= c #467096", -"- c #868686", -"; c #F0F0F0", -"> c #FDFDFD", -", c #FCFCFC", -"' c #FBFBFB", -") c #E9E9E9", -"! c #6F6F6F", -"~ c #516980", -"{ c #8DACC8", -"] c #0A1116", -"^ c #F5F5F5", -"/ c #FAFAFA", -"( c #FEFEFE", -"_ c #FFFFFF", -": c #E7E7E7", -"< c #232323", -"[ c #253341", -"} c #BFD0E0", -"| c #31506C", -"1 c #AFAFAF", -"2 c #F2F2F2", -"3 c #476C8D", -"4 c #2D353B", -"5 c #D0D0D0", -"6 c #A2A2A2", -"7 c #393F46", -"8 c #96AFC7", -"9 c #618BB3", -"0 c #0B1217", -"a c #EAEAEA", -"b c #323E49", -"c c #D6E1EB", -"d c #27394A", -"e c #A4A4A4", -"f c #F4F4F4", -"g c #2C2C2C", -"h c #638AB1", -"i c #A2BBD3", -"j c #345573", -"k c #9E9E9E", -"l c #5885B0", -"m c #B1C6DA", -"n c #283D51", -"o c #929393", -"p c #6A6A6A", -"q c #4A555D", -"r c #121D27", -"s c #F3F3F3", -"t c #3C4043", -"u c #7A9EC0", -"v c #769BBE", -"w c #243749", -"x c #54585A", -"y c #8AAAC8", -"z c #7298BC", -"A c #3B5F7F", -"B c #000100", -"C c #D6D6D6", -"D c #263949", -"E c #779CBF", -"F c #638DB5", -"G c #34516A", -"H c #5381AD", -"I c #1B2C3C", -"J c #848484", -"K c #5B5C5C", -"L c #48739A", -"M c #668FB6", -"N c #ACC2D7", -"O c #628CB4", -"P c #41688B", -"Q c #05090B", -"R c #A3A3A3", -"S c #242E35", -"T c #5D89B3", -"U c #41698D", -"V c #253B50", -"W c #23394E", -"X c #3C6182", -"Y c #284057", -"Z c #0B131A", -"` c #0C0C0C", -" . c #030608", -".. c #1A2A39", -"+. c #404040", -"@. c #303030", -"#. c #767676", -"$. c #393939", -"%. c #676767", -"&. c #1F1F1F", -" . . . . . . ", -" . + @ # $ % & . . * = . ", -" . - ; > > , ' ) ! . . ~ { ] . ", -" & ; ^ / ( _ , / : < [ } | . ", -". 1 2 3 4 5 / , ' 6 7 8 9 0 . ", -". # a b c d e f _ g h i j . ", -". $ / k l m n o p q i l r . ", -". % ' s t u v w x y z A B ", -" & ) / C D E F G m H I . ", -" . J : f K L M N O P Q ", -" . & R C S T L U V . . ", -" . . . W X Y Z ` . . ", -" ...Z . +.@.. . ", -" . . . . #.$.. . ", -" . . %.&.. ", -" . . "}; diff --git a/bitmaps_xpm/erc_green.xpm b/bitmaps_xpm/erc_green.xpm deleted file mode 100644 index df7b07efe0..0000000000 --- a/bitmaps_xpm/erc_green.xpm +++ /dev/null @@ -1,20 +0,0 @@ -/* XPM */ -const char *erc_green_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"11 11 2 1", -"- c Black", -"X c Green", - -/* pixels */ -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX", -"XXXXXXXXXXXX" -}; diff --git a/bitmaps_xpm/ercerr.xpm b/bitmaps_xpm/ercerr.xpm deleted file mode 100644 index 013964e6c6..0000000000 --- a/bitmaps_xpm/ercerr.xpm +++ /dev/null @@ -1,20 +0,0 @@ -/* XPM */ -const char *ercerr_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"11 11 2 1", -"- c Black", -"X c Red", - -/* pixels */ -"XXXXXXXXXXXX", -"X----------X", -"X---------XX", -"X--XXXXXXXXX", -"X--XXXXXXXXX", -"X------XXXXX", -"X--XXXXXXXXX", -"X--XXXXXXXXX", -"X---------XX", -"X----------X", -"XXXXXXXXXXXX" -}; diff --git a/bitmaps_xpm/ercwarn.xpm b/bitmaps_xpm/ercwarn.xpm deleted file mode 100644 index ab00ff99b3..0000000000 --- a/bitmaps_xpm/ercwarn.xpm +++ /dev/null @@ -1,20 +0,0 @@ -/* XPM */ -const char *ercwarn_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"11 11 2 1", -"- c Black", -"X c Yellow", - -/* pixels */ -"XXXXXXXXXXX", -"XXXXXXXXXXX", -"X-XXXXXXX-X", -"X-XXXXXXX-X", -"X-XXXXXXX-X", -"X-XXX-XXX-X", -"X-XXX-XXX-X", -"X-XXX-XXX-X", -"XX-X-X-X-XX", -"XXX-XXX-XXX", -"XXXXXXXXXXX" -}; diff --git a/bitmaps_xpm/exit.xpm b/bitmaps_xpm/exit.xpm deleted file mode 100644 index 819dad4870..0000000000 --- a/bitmaps_xpm/exit.xpm +++ /dev/null @@ -1,87 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *exit_xpm[]; - -#else -const char * exit_xpm[] = { -"16 16 63 1", -" c None", -". c #000000", -"+ c #E2E2E0", -"@ c #D3D3D0", -"# c #C0C0BD", -"$ c #ADADAB", -"% c #929291", -"& c #B7B7B5", -"* c #9A9A98", -"= c #E46245", -"- c #DEDEDC", -"; c #C1C1BE", -"> c #B9B9B7", -", c #9C9C9B", -"' c #060806", -") c #070907", -"! c #E7755B", -"~ c #B3533E", -"{ c #D0D0CD", -"] c #0E110C", -"^ c #0F120D", -"/ c #DF421E", -"( c #B14D36", -"_ c #BDBDBB", -": c #A4A4A2", -"< c #161C14", -"[ c #191F16", -"} c #B0160A", -"| c #B11B10", -"1 c #993929", -"2 c #797977", -"3 c #5B5B5A", -"4 c #1D251B", -"5 c #20281D", -"6 c #990000", -"7 c #880000", -"8 c #AA3F2C", -"9 c #6C6C6A", -"0 c #273124", -"a c #2A3526", -"b c #C83E2B", -"c c #A1100B", -"d c #A3140E", -"e c #2B3727", -"f c #313D2C", -"g c #D4D4D1", -"h c #354331", -"i c #B4B4B2", -"j c #8D8D8B", -"k c #2D3A29", -"l c #3B4A35", -"m c #E0E0DE", -"n c #C9C9C7", -"o c #939491", -"p c #51544F", -"q c #34412F", -"r c #42543D", -"s c #495D43", -"t c #5C6059", -"u c #495C42", -"v c #4F6448", -"w c #53684B", -"x c #546A4D", -" ", -" .......... ", -" .+@#$%.... ", -" ...+@#&*.... ", -" .=.-@;>,.'). ", -"....!~.{;>,.]^. ", -".====/(._:,.<[. ", -".=}}}}|1.23.45. ", -".=666678.9,.0a. ", -".bcd778.;>,.ef. ", -"....78.g;>,.ah. ", -" .8.+g;ij.kl. ", -" ...mnop.qrs. ", -" .&t.luvwx. ", -" .......... ", -" "}; -#endif diff --git a/bitmaps_xpm/export.xpm b/bitmaps_xpm/export.xpm deleted file mode 100644 index 43c5ba2025..0000000000 --- a/bitmaps_xpm/export.xpm +++ /dev/null @@ -1,67 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *export_xpm[]; - -#else -const char * export_xpm[] = { -"16 16 43 1", -" c None", -". c #000000", -"+ c #1D1D1D", -"@ c #FFFFFF", -"# c #757575", -"$ c #EBEBEB", -"% c #B5B5B5", -"& c #A1A1A1", -"* c #C3C3C3", -"= c #212121", -"- c #ABABAB", -"; c #545454", -"> c #009B00", -", c #00BD00", -"' c #002A00", -") c #777777", -"! c #8F8F8F", -"~ c #006100", -"{ c #008E00", -"] c #0F1B0F", -"^ c #001800", -"/ c #E9E9E9", -"( c #335133", -"_ c #00B100", -": c #00A700", -"< c #006600", -"[ c #003E00", -"} c #006500", -"| c #005F00", -"1 c #D7D7D7", -"2 c #1A381A", -"3 c #00A600", -"4 c #E2E2E2", -"5 c #6E756E", -"6 c #034603", -"7 c #008600", -"8 c #00BB00", -"9 c #006E00", -"0 c #B6B6B6", -"a c #008B00", -"b c #000400", -"c c #004200", -"d c #001000", -" ......+. ", -".@@@@@@##. ", -".@$$$$$#$#. ", -".@$$$$$%%&. ", -".@$$$$$$$*. ", -".@$$$=...-. ", -".@$$$;>,'). . ", -".@$$$!~,{]. ^. ", -".@$$$/(_,:<[}|. ", -".@$$$$123,,,,,|.", -".@$$$$$4567:8,9.", -".@$$$$$$$0. |ab ", -".@$$$$$$$*. cd ", -".*********. . ", -"........... ", -" "}; -#endif diff --git a/bitmaps_xpm/export_footprint_names.xpm b/bitmaps_xpm/export_footprint_names.xpm deleted file mode 100644 index a92f4fb05c..0000000000 --- a/bitmaps_xpm/export_footprint_names.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *export_footprint_names_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"+ c #4C4C54", -"& c #898AEB", -"$ c #3A397D", -"= c #0C0A06", -"o c #342A11", -"O c #695007", -"X c #6E6F71", -"# c #2D2C50", -"- c #505179", -" c None", -"@ c #BE9004", -"* c #9C9AFC", -": c #5757A1", -"; c #4040B6", -"% c #696AA9", -". c #898A8C", -/* pixels */ -" . ", -" Xo ", -" XOo ", -" .X+o@O# ", -" .oO@@@@@O+", -" X$o@@@@@@@o.", -" X%&&o@@@O+#@o#X", -"+&*&#O@@=%&-=#;#", -"$;%$=@@o$&%##;-#", -"$;;:====$;;$$..+", -"#;;;;;-$;$-.-+X+", -".+$;;;:-.X#-+#XX", -" .#;;$#-X#++.XX", -" .###++ X+ + ", -" . X+ +. ", -" ++ " -}; diff --git a/bitmaps_xpm/export_module.xpm b/bitmaps_xpm/export_module.xpm deleted file mode 100644 index 47485e64c7..0000000000 --- a/bitmaps_xpm/export_module.xpm +++ /dev/null @@ -1,110 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* export_module_xpm[]; -#else -const char * export_module_xpm[] = { -"16 16 86 1", -" c None", -". c #000000", -"+ c #F3F3F3", -"@ c #1B1B1B", -"# c #1A1A1B", -"$ c #E7E7F3", -"% c #002000", -"& c #D72E2E", -"* c #FFFFFF", -"= c #E0E0E0", -"- c #C8C8C8", -"; c #C3C3C8", -"> c #D4D4E0", -", c #E7E6FB", -"' c #350B0B", -") c #110802", -"! c #000E00", -"~ c #00AB00", -"{ c #001E00", -"] c #FDFDFF", -"^ c #F7F7FF", -"/ c #F0F0FF", -"( c #D9D8ED", -"_ c #292A2F", -": c #005800", -"< c #009A00", -"[ c #00BC00", -"} c #00B700", -"| c #00BD00", -"1 c #009200", -"2 c #FCFCFF", -"3 c #F6F6FF", -"4 c #EFEFFF", -"5 c #E8E8FF", -"6 c #61616E", -"7 c #007900", -"8 c #004400", -"9 c #001700", -"0 c #000100", -"a c #00A000", -"b c #001600", -"c c #F5F4FF", -"d c #EEEEFF", -"e c #E7E7FF", -"f c #D2D1EE", -"g c #031403", -"h c #005D00", -"i c #2A0808", -"j c #651515", -"k c #001000", -"l c #EDECFF", -"m c #E6E6FF", -"n c #E0DFFF", -"o c #ABABCA", -"p c #004000", -"q c #002200", -"r c #7D1A1A", -"s c #8B1D1D", -"t c #E5E5FF", -"u c #DFDEFF", -"v c #D8D7FF", -"w c #8989A8", -"x c #DDDDFF", -"y c #D7D6FF", -"z c #D0CFFF", -"A c #CAC8FF", -"B c #8180A9", -"C c #72719B", -"D c #C02929", -"E c #D6D5FF", -"F c #CFCEFF", -"G c #C8C7FF", -"H c #C2C0FF", -"I c #9796CF", -"J c #918FCD", -"K c #D52D2D", -"L c #CECDFF", -"M c #C7C6FF", -"N c #C1BFFF", -"O c #BAB8FF", -"P c #B4B2FF", -"Q c #AFADFF", -"R c #C6C5FF", -"S c #C0BEFF", -"T c #B9B7FF", -"U c #B2B1FF", -" ", -" ... ... . ", -" .+@..#$. .% ", -"&&.*=-;>,.')!~{ ", -"&&.*]^/(_:<[}|1.", -" .234567}890ab ", -"&&.cdefg|hij.k. ", -"&&.lmnop|qrs.. ", -" .tuvw.... . ", -"&&.xyzABC.D& ", -"&&.EFGHIJ.K& ", -" .LMNOPQ. ", -" .RSTUQQ. ", -" ........ ", -" ", -" "}; - -#endif diff --git a/bitmaps_xpm/export_options_pad.xpm b/bitmaps_xpm/export_options_pad.xpm deleted file mode 100644 index 7bb9185d58..0000000000 --- a/bitmaps_xpm/export_options_pad.xpm +++ /dev/null @@ -1,95 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* export_options_pad_xpm[]; -#else -const char * export_options_pad_xpm[] = { -"16 16 71 1", -" c None", -". c #000000", -"+ c #000200", -"@ c #003B00", -"# c #006400", -"$ c #007700", -"% c #005F00", -"& c #007D00", -"* c #007600", -"= c #006100", -"- c #003A00", -"; c #005B00", -"> c #000E00", -", c #002400", -"' c #004D00", -") c #005800", -"! c #00BD00", -"~ c #005500", -"{ c #004E00", -"] c #001800", -"^ c #009E00", -"/ c #00AA00", -"( c #008800", -"_ c #006C00", -": c #006F00", -"< c #00A800", -"[ c #009900", -"} c #000A00", -"| c #006E00", -"1 c #006800", -"2 c #002300", -"3 c #004300", -"4 c #002B00", -"5 c #007000", -"6 c #000D00", -"7 c #F0F0F0", -"8 c #DEDEDE", -"9 c #AEAEAE", -"0 c #3E3E3E", -"a c #363636", -"b c #555555", -"c c #B7B7B7", -"d c #DFDFDF", -"e c #9D9D9D", -"f c #989898", -"g c #DADADA", -"h c #BFBFBF", -"i c #7A7A7A", -"j c #737373", -"k c #B3B3B3", -"l c #C0C0C0", -"m c #A4A4A4", -"n c #B9B9B9", -"o c #979797", -"p c #E3E3E3", -"q c #DDDDDD", -"r c #C8C8C8", -"s c #656565", -"t c #838383", -"u c #878787", -"v c #888888", -"w c #AFAFAF", -"x c #A3A3A3", -"y c #F1F1F1", -"z c #CECECE", -"A c #ABABAB", -"B c #EEEEEE", -"C c #EDEDED", -"D c #E9E9E9", -"E c #D9D9D9", -"F c #C1C1C1", -" ..... ", -" +@#$#@+ . ", -" +%&&&&&%+ .. ", -".@&&*=*&&-. .;. ", -".#&* $%>,')!~.", -".$&= {]^/(_!:.", -".#&* ]<[}..#. ", -".@&&$|12!3.... ", -" +%&...456......", -" +.7890abcdefgd", -" .dhhijjklmnll", -" .dho...flllll", -" .dh.pqr.stuvw", -" .dh.qlx.....y", -" .dh.zxo.ABCDE", -" .dlf...stFFFF"}; - -#endif diff --git a/bitmaps_xpm/fabrication.xpm b/bitmaps_xpm/fabrication.xpm deleted file mode 100644 index 71c268ccbd..0000000000 --- a/bitmaps_xpm/fabrication.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *fabrication_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"- c #5D7FB0", -"O c #7493A6", -"& c #AFB6BF", -"X c #C2AA9C", -"# c #8B6C60", -"o c #8DA4BD", -"= c #94817F", -"$ c #69839C", -"% c #6C493D", -" c None", -"+ c #A78372", -"; c #4973A9", -"@ c #755A52", -". c #B6917F", -"* c #708EB8", -": c #3C6397", -/* pixels */ -" ...X oO ", -" +@#X o$$$", -" +%. OOOO$", -"X.& &+%. $OO$ ", -".#+.+%%+ ooO*& ", -" +%%%%%%.ooO& ", -" &.=.=%%@oO ", -" &.@o$. ", -" &**$$%@. ", -" &**-;=@%@. ", -" o***;-&+@%#. ", -" **o*:;o +@%#. ", -"*o *:-o +@#+X", -"*o-:;* .==.", -"*-:;- .. ", -" *-- " -}; diff --git a/bitmaps_xpm/file_footprint.xpm b/bitmaps_xpm/file_footprint.xpm deleted file mode 100644 index c421a9947d..0000000000 --- a/bitmaps_xpm/file_footprint.xpm +++ /dev/null @@ -1,62 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *file_footprint_xpm[]; - -#else -const char * file_footprint_xpm[] = { -"16 16 38 1", -" c None", -". c #000000", -"+ c #F8F8F8", -"@ c #7C7C7C", -"# c #1E1E1E", -"$ c #FFFFFF", -"% c #ECECEC", -"& c #B3B3B3", -"* c #BBBBBB", -"= c #3D3D3D", -"- c #EBEBEB", -"; c #646464", -"> c #CACACA", -", c #B5B5B5", -"' c #A7A7A7", -") c #282828", -"! c #606060", -"~ c #C4C4C4", -"{ c #626262", -"] c #D2D2D2", -"^ c #AEAEAE", -"/ c #7D7D7D", -"( c #FEFEFE", -"_ c #D73333", -": c #AB8989", -"< c #E6E6E6", -"[ c #D93F3F", -"} c #D72E2E", -"| c #AC8989", -"1 c #D73838", -"2 c #AFAFAF", -"3 c #EAE4E4", -"4 c #615E5E", -"5 c #EAE5E5", -"6 c #FDFDFD", -"7 c #646161", -"8 c #ABABAB", -"9 c #050505", -" ......... ", -".++++++++@# ", -".$%%%%%%%&*= ", -".$-;;>>;;,'*) ", -".$-!~{{~!]^^/. ", -".(_:_<<[:_>>^. ", -".(}|}--1|}--2. ", -".(343--543--2. ", -".(_:_--[:_--2. ", -".(}|}--1|}--2. ", -".6343--543--2. ", -".6_:_--_:_--2. ", -".6}|}--}|}--2. ", -".6347;;743--2. ", -".228888882222. ", -"............9. "}; -#endif diff --git a/bitmaps_xpm/fill_zone.xpm b/bitmaps_xpm/fill_zone.xpm deleted file mode 100644 index 9f46411001..0000000000 --- a/bitmaps_xpm/fill_zone.xpm +++ /dev/null @@ -1,41 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *fill_zone_xpm[]; -#else -const char *fill_zone_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 15 1", -"# c #FCFEFC", -"@ c #ACBEFC", -"O c #444A5C", -"$ c #645AEC", -"X c #040204", -"o c #ECEAEC", -". c #F4F2F4", -" c None", -"+ c #C4C6CC", -"& c #6476C4", -"* c #A4A2AC", -"= c #848A9C", -"; c #646674", -"% c #8496F4", -"- c #7C7E8C", -/* pixels */ -" . XX . .. .", -" oX X o o ", -" X OXX o ", -"oo oXO+X X@@ooo ", -" O+.X#.X$%@oo", -" o O+.#X..+X$%@o", -"o O+.##..+*=X$%@", -"&O+.##..+*=-;$%@", -"O+.##..+*=-;X$%@", -" X+#. +*=-;X&$%@", -" X+.+*=-;X &$%@", -" X=*=-;X &$%@", -" X;-;X &$%&", -" X;X &$% ", -" X $% ", -" $% " -}; -#endif diff --git a/bitmaps_xpm/find_xpm.xpm b/bitmaps_xpm/find_xpm.xpm deleted file mode 100644 index 33463f8a3f..0000000000 --- a/bitmaps_xpm/find_xpm.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *find_xpm[]; - -#else -const char *find_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 6 1", - -"E c #404040", -". c None", -"I c #808080", -"L c #FFFF00", -"M c #0000FF", -"P c White", - -"................", -"....EE....EE....", -"....EE....EE....", -"....EE....EE....", -"...EEEE..EEEE...", -"..EPMMEEEEPMME..", -"..EPMMEIIEPMME..", -"..EMMEE..EEMME...", -"..EPME....EPME..", -"..EPME....EPME..", -"..EPME....EPME..", -".EPEEEE..EPEEEE.", -".EPEEEE..EPEEEE.", -".EEEEEE..EEEEEE.", -"................" -}; -#endif - diff --git a/bitmaps_xpm/flag.xpm b/bitmaps_xpm/flag.xpm deleted file mode 100644 index 7ca2d91b6b..0000000000 --- a/bitmaps_xpm/flag.xpm +++ /dev/null @@ -1,48 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* flag_xpm[]; -#else -const char * flag_xpm[] = { -"16 16 24 1", -" c None", -". c #000000", -"+ c #FE0204", -"@ c #FE4B4C", -"# c #E90103", -"$ c #DB3A3B", -"% c #DB6061", -"& c #D70002", -"* c #C9292A", -"= c #D35354", -"- c #ED6465", -"; c #FE3335", -"> c #FE7071", -", c #E51C1E", -"' c #B20001", -") c #343434", -"! c #FE5E5F", -"~ c #C90002", -"{ c #E22F30", -"] c #C95253", -"^ c #ED7374", -"/ c #1C1C1C", -"( c #CC5456", -"_ c #E96364", -" ", -" .. ", -" +@. ", -" +#$%. ", -" +#&*=-. ", -" ;>,'*=-) ", -" !,~*=-) ", -" {]^/ ", -" (_. ", -" .. ", -" .. ", -" .. ", -" .. ", -" ..... ", -" .......... ", -" "}; - -#endif diff --git a/bitmaps_xpm/fonts.xpm b/bitmaps_xpm/fonts.xpm deleted file mode 100644 index cb28073223..0000000000 --- a/bitmaps_xpm/fonts.xpm +++ /dev/null @@ -1,70 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *fonts_xpm[]; - -#else -const char * fonts_xpm[] = { -"16 16 46 1", -" c None", -". c #70653B", -"+ c #463F24", -"@ c #6B6139", -"# c #1B180D", -"$ c #2C2818", -"% c #595030", -"& c #252112", -"* c #292516", -"= c #70643B", -"- c #827544", -"; c #3D3721", -"> c #37311D", -", c #3E3721", -"' c #302B1A", -") c #5C5331", -"! c #010101", -"~ c #1A170E", -"{ c #1E1A10", -"] c #403922", -"^ c #584F2F", -"/ c #16140C", -"( c #1E1B10", -"_ c #312B1A", -": c #0F0D07", -"< c #2D2818", -"[ c #322D1A", -"} c #231F11", -"| c #3C3620", -"1 c #5A5230", -"2 c #332E1B", -"3 c #12100A", -"4 c #4F472A", -"5 c #413A23", -"6 c #302B19", -"7 c #342E1B", -"8 c #4A4227", -"9 c #6E633A", -"0 c #080704", -"a c #2F2919", -"b c #4C4529", -"c c #51472B", -"d c #242113", -"e c #322D1B", -"f c #5E5432", -"g c #211E12", -" ", -" .+ ", -" @ # ", -" $ ", -" %&* ", -" = * -;> ", -" , ' )!~ ", -" { !] ^!/ (_ ", -" :<[ }| 1!2 c #525145", -", c #0F0F0F", -"' c #C0BEA3", -") c #BFBDA3", -"! c #797866", -"~ c #47463F", -"{ c #262624", -"] c #35342D", -"^ c #858371", -"/ c #9E9C86", -"( c #A19F88", -"_ c #A3A18A", -": c #2A2A2A", -"< c #D1CFBA", -"[ c #DAD8C2", -"} c #E0DECD", -"| c #B7B5A0", -"1 c #63615A", -"2 c #383735", -"3 c #3B3B32", -"4 c #605F52", -"5 c #989681", -"6 c #B5B399", -"7 c #B1B096", -"8 c #A2A089", -"9 c #E6E2D1", -"0 c #F2EFE7", -"a c #F0EFE2", -"b c #E8E7D8", -"c c #E3E0D0", -"d c #D3D0BC", -"e c #C1BFA5", -"f c #ADAB92", -"g c #BEBCA2", -"h c #C4C2AA", -"i c #B6B49A", -"j c #787665", -"k c #888774", -"l c #EFEBD0", -"m c #F9F6E7", -"n c #F7F3EB", -"o c #F6F5EC", -"p c #F6F5EA", -"q c #F3F1E4", -"r c #EAE8D7", -"s c #DCDBC9", -"t c #9B9987", -"u c #626153", -"v c #575649", -"w c #515045", -"x c #727064", -"y c #9D9B8F", -"z c #E2DFC6", -"A c #E7E3CD", -"B c #E0DEC9", -"C c #CFCFC9", -"D c #8C8B7E", -"E c #757463", -"F c #676657", -"G c #424137", -"H c #282721", -"I c #1E1E1A", -"J c #33332F", -"K c #4A4843", -"L c #676661", -"M c #6F6E65", -"N c #6A6A63", -"O c #6D6B5C", -"P c #57564A", -"Q c #383830", -"R c #161514", -"S c #191915", -"T c #1E1D18", -"U c #292922", -"V c #9E9E93", -"W c #4C4C3F", -"X c #35352F", -"Y c #292925", -"Z c #2E2E29", -"` c #0E0E0C", -" . c #0A0A08", -".. c #010101", -"+. c #010100", -"@. c #23231E", -"#. c #2A2A23", -"$. c #A3A297", -"%. c #B5B4AC", -"&. c #706F66", -"*. c #8A8A7D", -"=. c #060605", -"-. c #030303", -";. c #545448", -">. c #020201", -",. c #DBDAD8", -"'. c #020202", -"). c #1E1E19", -"!. c #2B2B24", -"~. c #ABABA1", -"{. c #D7D7D0", -"]. c #89897E", -"^. c #0C0C0B", -"/. c #EBEBEA", -"(. c #B0B0AE", -"_. c #080807", -":. c #474540", -"<. c #9D9B94", -"[. c #86857F", -"}. c #D8D8D1", -"|. c #8D8C7F", -"1. c #0C0C0C", -"2. c #9C9B97", -"3. c #8F8E88", -"4. c #9E9C95", -"5. c #8E8C84", -"6. c #95938C", -"7. c #7F7C73", -"8. c #7D7D74", -"9. c #D6D6CF", -"0. c #8B8B7F", -"a. c #B0B0A8", -"b. c #090908", -"c. c #585753", -"d. c #5F5D56", -"e. c #878681", -"f. c #75736A", -"g. c #262620", -"h. c #42423C", -"i. c #8C8C84", -"j. c #030302", -"k. c #484641", -"l. c #605E57", -"m. c #42413E", -"n. c #272623", -"o. c #35332F", -"p. c #6C6A62", -"q. c #050505", -"r. c #EDEDEB", -"s. c #B4B3AD", -"t. c #201F1D", -"u. c #090807", -"v. c #171715", -"w. c #E4E4E2", -"x. c #64625B", -"y. c #151513", -"z. c #8A8987", -"A. c #DDDCDA", -" . + @ # $ % ", -" % % & * = - ; > % % ", -" , ' ) ! ~ { ] ^ / ( _ % ", -": < [ } | 1 2 3 4 5 6 7 8 % ", -"% 9 0 a b c d e f g h i j % ", -"% k l m n o p q r s t u v % ", -"% w x y z A B C D E F G H % ", -" I J K L M N O P Q R S T ", -" U V W X Y Z ` .% ..+.@. ", -" #.$.%.&.*.=.-.;.>.,.'.).% % ", -" !.~.{.].^./.(._.:.<.:.'.[.% % ", -" !.~.}.|.1.2.3.4.<.<.5.6.7.:.% ", -" #.8.9.0.a.b.<.4.c.d.e.7.f.% ", -" g.h.i...j.k.<.l.m.n.o.<.p.:.% ", -" q.q...r.s.<.c.t.u.v.w.7.x.d.", -" % % :.<.e.o.y.z.A.x.:.% "}; -#endif diff --git a/bitmaps_xpm/general_ratsnet.xpm b/bitmaps_xpm/general_ratsnet.xpm deleted file mode 100644 index 4f958c5d5d..0000000000 --- a/bitmaps_xpm/general_ratsnet.xpm +++ /dev/null @@ -1,66 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *general_ratsnest_xpm[]; - -#else -const char * general_ratsnest_xpm[] = { -"16 16 41 1", -" c None", -". c #FFFFFF", -"+ c #2F2F2F", -"@ c #444342", -"# c #AEAEAE", -"$ c #1D1D1D", -"% c #F2D7C1", -"& c #F2BD8E", -"* c #3C3631", -"= c #403D3B", -"- c #F2B279", -"; c #F29747", -"> c #443B33", -", c #B1B1B1", -"' c #444444", -") c #333231", -"! c #C3C3C3", -"~ c #372E28", -"{ c #3C3129", -"] c #413B36", -"^ c #423F3D", -"/ c #382F29", -"( c #1C1006", -"_ c #323232", -": c #161514", -"< c #181818", -"[ c #3B3A39", -"} c #3F3F3F", -"| c #171009", -"1 c #F2D7C0", -"2 c #F2BC8E", -"3 c #3D3731", -"4 c #1D1917", -"5 c #2A1F16", -"6 c #413E3C", -"7 c #F29647", -"8 c #1B1007", -"9 c #261D16", -"0 c #443A32", -"a c #BBBBBB", -"b c #1A1109", -" ... ... ", -" .. .. ", -" +@# ... ", -" $%&* .. ", -" =-;>.....,') ", -"..!~{!.....'%&].", -".. ... ^-;>.", -". ... .!/( ", -" ..... ", -" ... ", -" ..... ", -" ... .!_: ", -" <[!. }%&| ", -"...'123 4-;5 ", -"...6-78 90a ", -" b( .. "}; - -#endif diff --git a/bitmaps_xpm/gerber_file.xpm b/bitmaps_xpm/gerber_file.xpm deleted file mode 100644 index 95379c4c49..0000000000 --- a/bitmaps_xpm/gerber_file.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *gerber_file_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"X c #9CAA8C", -"$ c #484607", -"& c #3C6704", -"; c #BC0807", -"- c #BC6644", -"* c #30A506", -"# c #89C35C", -"% c #34B60B", -"o c #BCC990", -"O c #657642", -". c #FAFCF9", -"@ c #87904F", -"= c #BC9C6C", -" c #56692F", -": c #543A04", -"+ c #A9BC7A", -/* pixels */ -" ", -" ...X .... o... ", -" ...X .... o...O", -" OOO O OO OOO ", -"ooooooo+@@+ooo#o", -"ooo+ooO$$$$@#%%%", -"ooooo@$$$$&*%%%+", -"=----$$$&*%**#oo", -";;;;;:$$***& ooo", -"=----$$$&&$$@ooo", -"ooooo+$$$$$$+ooo", -"oooooo+ $$O+oo+o", -" ", -" ...XO.... o... ", -" ...X .... o...O", -" OOO OOOO OOOOO" -}; diff --git a/bitmaps_xpm/gerber_open_dcode_file.xpm b/bitmaps_xpm/gerber_open_dcode_file.xpm deleted file mode 100644 index fe81a52558..0000000000 --- a/bitmaps_xpm/gerber_open_dcode_file.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *gerber_open_dcode_file_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"= c #CEE4E6", -"& c #3D6C64", -"% c #A8CCD0", -"- c #EBF4F5", -"$ c #797B6C", -" c None", -": c #549AA4", -". c #B0B0AC", -"+ c #506555", -"* c #84B9C0", -"X c #8D8D82", -"@ c #36787A", -"o c #6D6F5D", -"# c #2D8694", -"; c #A4A49C", -"O c #555F4A", -/* pixels */ -" .XoOOoX. ", -" XO+@##@@O$ ", -" o+####% ##&O ", -" $&#%*##=-###&$ ", -".O##-=#####*%#O;", -"o@#########=-#@$", -"O###@##########O", -"O#*-*#######%%#+", -"O#---##@###@==#O", -"O#%-*##########O", -"$@##@#########@+", -";O###:*###%=##O.", -" $&##--*##%=#@o ", -" +&#%-:####++ ", -" XO&@##@&OX ", -" XoOOoX " -}; diff --git a/bitmaps_xpm/gerber_recent_files.xpm b/bitmaps_xpm/gerber_recent_files.xpm deleted file mode 100644 index 28765fc071..0000000000 --- a/bitmaps_xpm/gerber_recent_files.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *gerber_recent_files_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"$ c #969997", -"X c #B4B4B3", -"% c #686A67", -"O c #A4A6A4", -"+ c #7F817D", -"; c #8C8D8C", -". c #BEBEBD", -"@ c #D5D5D3", -" c None", -": c #929294", -"& c #2C2D2F", -"= c #5C5E5A", -"- c #505352", -"o c #E4E6E4", -"# c #747674", -"* c #434644", -/* pixels */ -" ..... .X. ", -" ooO++.X. . @", -" @.#OO.$#OX X@", -" @ X$$...%&#X.@", -" X@$&*X=-$;$ X@", -" $; @ $X X=; ", -" $O%-=;O+%%%#%O", -" .:O$#-&**-%#+#", -" O;;:;++%##%-", -" .$$$$:;;;;++#--", -"#-=%%#%==--*-%-%", -"%%#+;:;+#%%#%;=#", -"###+;:;+#%=%=#*O", -"#=-=%#%-****-#O ", -"%-+;;:$$OX. ", -"= " -}; diff --git a/bitmaps_xpm/gerbview_clear_layers.xpm b/bitmaps_xpm/gerbview_clear_layers.xpm deleted file mode 100644 index 6768a9ab8c..0000000000 --- a/bitmaps_xpm/gerbview_clear_layers.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *gerbview_clear_layers_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"* c #A02814", -"@ c #CCC07C", -"O c #B47B29", -"+ c #B0AEAD", -"X c #BCAF6C", -": c #C2AE4E", -"o c None", -"% c #FCEA74", -" c #B79059", -"# c #F1DD50", -"= c #EDD42D", -"& c #B74031", -"$ c #D7C451", -"; c #98968E", -". c #BD8E37", -"- c #DBC31E", -/* pixels */ -" .Xooooooooooooo", -".O.ooooooo+ooooo", -" .O oooooooooooo", -"o.OO+@oooooooooo", -"o+O.#@ooooooo+oo", -"oX$%.&&ooooooooo", -"o@O&&&.$oooooooo", -"oo**O%#=$@oooooo", -"ooo$###=-$@ooooo", -"oooX====--@@oooo", -"oooX===----#$+oo", -"oo++---=--=$Xooo", -"o++;:----$.;;++o", -"o++;;$$-X:;;;;+o", -"oo++;X ;;;;;++oo", -"ooooo+o+++oooooo" -}; diff --git a/bitmaps_xpm/gerbview_drill_file.xpm b/bitmaps_xpm/gerbview_drill_file.xpm deleted file mode 100644 index 713426af30..0000000000 --- a/bitmaps_xpm/gerbview_drill_file.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *gerbview_drill_file_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"- c #AC4706", -"$ c #A68B79", -"+ c #989898", -"@ c #548E54", -": c #97674C", -"% c #3A3B3A", -" c None", -"o c #51B851", -"= c #8F706A", -". c #ABB485", -"& c #504D4D", -"; c #A1653C", -"# c #3C911B", -"* c #5C7A24", -"X c #0FB30C", -"O c #AEA9A2", -/* pixels */ -" .XXXXXooo. ", -" O +@X######XX ", -"$%%%&@#******#X.", -"&%%%&@X*******Xo", -"&%%%&@X*******Xo", -" $===@X*******XX", -" +@X#######XX", -" oXXXXXXXXXX", -" ++ -;&&", -" .+ O-;=:", -" O .. $-;==", -" O .. ;-;==", -" .. O$$$=:", -" .. +==", -" O+ $=:", -" +&&" -}; diff --git a/bitmaps_xpm/gl_change.xpm b/bitmaps_xpm/gl_change.xpm deleted file mode 100644 index b8616be256..0000000000 --- a/bitmaps_xpm/gl_change.xpm +++ /dev/null @@ -1,54 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *gl_change_xpm[]; - -#else -const char * gl_change_xpm[] = { -"16 16 30 1", -" c None", -". c #695F00", -"+ c #685E00", -"@ c #635A00", -"# c #4B4400", -"$ c #5E5500", -"% c #574E00", -"& c #625800", -"* c #000000", -"= c #00AA00", -"- c #007900", -"; c #008200", -"> c #00B300", -", c #002900", -"' c #005F00", -") c #004300", -"! c #00BD00", -"~ c #00BC00", -"{ c #009C00", -"] c #007300", -"^ c #005700", -"/ c #00B800", -"( c #003300", -"_ c #000F00", -": c #004800", -"< c #007D00", -"[ c #000100", -"} c #009600", -"| c #000800", -"1 c #001500", -" .. ", -" .+@# ", -" .$%& ", -" .... ", -".+ @# ", -".$ .& ", -" ", -" *** ", -" *=-* * ", -" *;>, *'* ", -" )!~{]!'* ", -" *^/!!!!( ", -" _:^!<[ ", -" *}| ", -" *1 ", -" "}; -#endif diff --git a/bitmaps_xpm/glabel2label.xpm b/bitmaps_xpm/glabel2label.xpm deleted file mode 100644 index c4074703ee..0000000000 --- a/bitmaps_xpm/glabel2label.xpm +++ /dev/null @@ -1,54 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *glabel2label_xpm[]; - -#else -const char * glabel2label_xpm[] = { -"16 16 30 1", -" c None", -". c #695F00", -"+ c #685E00", -"@ c #635A00", -"# c #4B4400", -"$ c #5E5500", -"% c #574E00", -"& c #625800", -"* c #000000", -"= c #00AA00", -"- c #007900", -"; c #008200", -"> c #00B300", -", c #002900", -"' c #005F00", -") c #004300", -"! c #00BD00", -"~ c #00BC00", -"{ c #009C00", -"] c #007300", -"^ c #005700", -"/ c #00B800", -"( c #003300", -"_ c #000F00", -": c #004800", -"< c #007D00", -"[ c #000100", -"} c #009600", -"| c #000800", -"1 c #001500", -" .. ", -" .+@# ", -" .$%& ", -" .... ", -".+ @# ", -".$ .& ", -" ", -"*** ", -"*=-* * ", -"*;>, *'* ** ", -" )!~{]!'* **** ", -" *^/!!!!( **** ", -" _:^!<[ **** ", -" *}| ** ** ", -" *1 ** ** ", -" "}; -#endif diff --git a/bitmaps_xpm/glabel2text.xpm b/bitmaps_xpm/glabel2text.xpm deleted file mode 100644 index ae0439761d..0000000000 --- a/bitmaps_xpm/glabel2text.xpm +++ /dev/null @@ -1,66 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *glabel2text_xpm[]; - -#else -const char * glabel2text_xpm[] = { -"16 16 42 1", -" c None", -". c #695F00", -"+ c #685E00", -"@ c #635A00", -"# c #4B4400", -"$ c #5E5500", -"% c #574E00", -"& c #625800", -"* c #000000", -"= c #00009B", -"- c #00AA00", -"; c #007900", -"> c #000070", -", c #000074", -"' c #000093", -") c #008200", -"! c #00B300", -"~ c #002900", -"{ c #005F00", -"] c #000092", -"^ c #00006F", -"/ c #004300", -"( c #00BD00", -"_ c #00BC00", -": c #009C00", -"< c #007300", -"[ c #005700", -"} c #00B800", -"| c #003300", -"1 c #000F00", -"2 c #004800", -"3 c #007D00", -"4 c #000100", -"5 c #000087", -"6 c #009600", -"7 c #000800", -"8 c #000091", -"9 c #000079", -"0 c #001500", -"a c #00009A", -"b c #000098", -"c c #000072", -" .. ", -" .+@# ", -" .$%& ", -" .... ", -".+ @# ", -".$ .& ", -" ", -"*** ======= ", -"*-;* * = >=, ' ", -"*)!~ *{* ]=^ ", -" /(_:<({* =^ ", -" *[}((((| =^ ", -" 12[(34 5=^ ", -" *67 8=9 ", -" *0 =abc ", -" "}; -#endif diff --git a/bitmaps_xpm/global_options_pad.xpm b/bitmaps_xpm/global_options_pad.xpm deleted file mode 100644 index 31046dea47..0000000000 --- a/bitmaps_xpm/global_options_pad.xpm +++ /dev/null @@ -1,105 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* global_options_pad_xpm[]; -#else -const char * global_options_pad_xpm[] = { -"16 16 81 1", -" c None", -". c #000000", -"+ c #000200", -"@ c #003B00", -"# c #006400", -"$ c #007700", -"% c #005F00", -"& c #007D00", -"* c #007600", -"= c #006100", -"- c #F0F0F0", -"; c #DEDEDE", -"> c #DFDFDF", -", c #000100", -"' c #030303", -") c #BFBFBF", -"! c #C0C0C0", -"~ c #000300", -"{ c #DBDAD8", -"] c #070707", -"^ c #9A9A9A", -"/ c #080808", -"( c #989898", -"_ c #B0B0AE", -": c #474540", -"< c #9D9B94", -"[ c #484641", -"} c #0A0A0A", -"| c #86857F", -"1 c #353535", -"2 c #0C0C0C", -"3 c #C8C8C8", -"4 c #656565", -"5 c #838383", -"6 c #878787", -"7 c #888888", -"8 c #AFAFAF", -"9 c #8F8E88", -"0 c #8F8D85", -"a c #96948D", -"b c #7F7C73", -"c c #0B0B0B", -"d c #A3A3A3", -"e c #F1F1F1", -"f c #585753", -"g c #5F5D56", -"h c #888782", -"i c #807D74", -"j c #75736A", -"k c #979797", -"l c #ABABAB", -"m c #EEEEEE", -"n c #EDEDED", -"o c #E9E9E9", -"p c #D9D9D9", -"q c #42413E", -"r c #272623", -"s c #363430", -"t c #9E9C95", -"u c #6D6B63", -"v c #C1C1C1", -"w c #201F1D", -"x c #090807", -"y c #181816", -"z c #E5E5E3", -"A c #64625B", -"B c #777777", -"C c #878681", -"D c #35332F", -"E c #151513", -"F c #8B8A88", -"G c #DEDDDB", -"H c #65635C", -"I c #717171", -"J c #E3E3E3", -"K c #DDDDDD", -"L c #AEADA7", -"M c #B4B3AD", -"N c #E4E4E2", -"O c #D4D3D0", -"P c #92908A", -" ..... ", -" +@#$#@+ ", -" +%&&&&&%+ ", -".@&&*=*&&@. ", -".#&* $&#. ", -".$&=............", -".#&.-;>>>>>>>>>>", -".@,.'))))))!!!!!", -".+~{]^/...(!!!!!", -"_.:<[}|123.45678", -"9<<<0ab[cd.....e", -"< c #E8A291", -", c #F0D2C7", -"' c #E8E5E1", -") c #E4E3DF", -"! c #ECEBE7", -"~ c #EDEAE6", -"{ c #E38C74", -"] c #A83419", -"^ c #E8B1A5", -"/ c #F0AA97", -"( c #D67D69", -"_ c #C9BBB4", -": c #B4B3AD", -"< c #C0BEB7", -"[ c #E1E0DA", -"} c #E8C9BF", -"| c #E4512F", -"1 c #DF4926", -"2 c #6F2312", -"3 c #010000", -"4 c #1D1D1C", -"5 c #51504E", -"6 c #F1A998", -"7 c #D76348", -"8 c #943019", -"9 c #645551", -"0 c #1F1E1E", -"a c #903F2D", -"b c #EA7B61", -"c c #E86141", -"d c #CC4B2D", -"e c #644E47", -"f c #2E2C2B", -"g c #E6E2E1", -"h c #DEA191", -"i c #BA4429", -"j c #3B3938", -"k c #C4624B", -"l c #ED917C", -"m c #E1B3A6", -"n c #65615C", -"o c #D0CFCB", -"p c #A68E85", -"q c #F4E9E3", -"r c #E2DFDB", -"s c #86837D", -"t c #F3F0EA", -"u c #D4D1CF", -"v c #B1AEA8", -"w c #F3F2EE", -"x c #D8D7D3", -"y c #75736E", -"z c #E7E2DE", -"A c #DDDBD8", -"B c #CBCAC6", -"C c #F0EDEB", -"D c #CAC7C5", -"E c #EAE6E3", -"F c #E3BAAE", -"G c #9B5B4C", -"H c #D39382", -"I c #D9B9B0", -"J c #B6B3AF", -"K c #3C3C3B", -"L c #E38166", -"M c #E97454", -"N c #EE977F", -"O c #C87561", -"P c #D69383", -"Q c #D36E56", -"R c #CC4829", -"S c #935D4E", -"T c #454242", -"U c #A8351B", -"V c #DF5130", -"W c #E96C4A", -"X c #EEA895", -"Y c #F2EEEB", -"Z c #F5F2EE", -"` c #F4E3DD", -" . c #D06B53", -".. c #D44929", -"+. c #912D16", -"@. c #CA5535", -"#. c #DCBCB1", -"$. c #DDDCD6", -"%. c #D4D3CF", -"&. c #C8C7C3", -"*. c #AD7868", -"=. c #080605", -"-. c #84817D", -";. c #7E7C75", -">. c #7E7D77", -",. c #595552", -" . . . . . . . . + . . ", -" . @ . # $ % & * = - ; . ", -" . . > , ' ) ' ! ~ { ] . . ", -" . ^ / ( _ : < [ } | 1 2 3 ", -" 4 5 6 7 8 9 0 . 5 a b c d e f ", -" . g h i j . . k l m n . ", -" . % o p j j q r s . ", -" . t u v . . w x y . ", -" . z A B j j C D y . ", -" . = E F G . . H I J K . ", -" ; 5 L M N O . . . P Q R S T + ", -" . U V W X Y Z ` ...+.+.. . ", -" . . 2 @.#.$.%.&.*.+.+.. . . ", -" . =.. 5 -.;.>.# ,.. . . . ", -" . . . . . . . . . ", -" "}; -#endif diff --git a/bitmaps_xpm/hidden_pin.xpm b/bitmaps_xpm/hidden_pin.xpm deleted file mode 100644 index a60a1d8655..0000000000 --- a/bitmaps_xpm/hidden_pin.xpm +++ /dev/null @@ -1,157 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *hidden_pin_xpm[]; - -#else -const char * hidden_pin_xpm[] = { -"16 16 133 2", -" c None", -". c #030303", -"+ c #050505", -"@ c #040404", -"# c #232324", -"$ c #AEAEB4", -"% c #B9B9C1", -"& c #0B0B0C", -"* c #020202", -"= c #BCBCC1", -"- c #7A7A7F", -"; c #79797F", -"> c #55555C", -", c #000000", -"' c #F5F5FD", -") c #F5F5FF", -"! c #F2F2FF", -"~ c #9B9BA7", -"{ c #09090A", -"] c #010101", -"^ c #F6F6FF", -"/ c #ACACBA", -"( c #080809", -"_ c #D72E2E", -": c #DF6669", -"< c #DD6469", -"[ c #D62F2F", -"} c #F4F4FF", -"| c #F1F1FF", -"1 c #EEEEFF", -"2 c #B6B6C7", -"3 c #070708", -"4 c #E89FA4", -"5 c #ECECFF", -"6 c #E1E1FF", -"7 c #D68DA4", -"8 c #C64C4C", -"9 c #010102", -"0 c #212124", -"a c #EFEFFF", -"b c #EBEBFF", -"c c #BEBED2", -"d c #060607", -"e c #E9D7E8", -"f c #E2E2FF", -"g c #D7D7FF", -"h c #CDBBE8", -"i c #CA2B2B", -"j c #110506", -"k c #B45D67", -"l c #D97887", -"m c #D77E91", -"n c #D5849A", -"o c #C58199", -"p c #0C0506", -"q c #D12C2C", -"r c #C94545", -"s c #DD94A4", -"t c #CDCDFF", -"u c #CB82A4", -"v c #BE5A5A", -"w c #494949", -"x c #434347", -"y c #B6B6C4", -"z c #B7B7C8", -"A c #B8B8CD", -"B c #B9B9D1", -"C c #B9B9D6", -"D c #323239", -"E c #666666", -"F c #9B9B9B", -"G c #CF3B3B", -"H c #D45B69", -"I c #D15869", -"J c #987F7F", -"K c #C8C8D3", -"L c #A3A3B5", -"M c #E3E3FF", -"N c #DFDFFF", -"O c #7E7E97", -"P c #0A0A0C", -"Q c #9B9999", -"R c #AC7A7A", -"S c #9B9A9A", -"T c #363636", -"U c #35353A", -"V c #D0D0E4", -"W c #62626E", -"X c #E0E0FF", -"Y c #DCDCFF", -"Z c #CFCFF7", -"` c #070709", -" . c #040405", -".. c #B1B1BD", -"+. c #EDEDFF", -"@. c #D3D3E7", -"#. c #494951", -"$. c #CECEEA", -"%. c #DDDDFF", -"&. c #D8D8FF", -"*. c #D2D2FF", -"=. c #30303D", -"-. c #0D0D0F", -";. c #DFDFF3", -">. c #484850", -",. c #CCCCE7", -"'. c #DEDEFF", -"). c #D9D9FF", -"!. c #D5D5FF", -"~. c #CFCFFF", -"{. c #646482", -"]. c #2A2A2F", -"^. c #9E9EAE", -"/. c #8C8C9D", -"(. c #D9D9F8", -"_. c #DBDBFF", -":. c #D6D6FF", -"<. c #D1D1FF", -"[. c #CBCBFF", -"}. c #8484AC", -"|. c #0A0A0D", -"1. c #26262B", -"2. c #7D7D8B", -"3. c #383840", -"4. c #030304", -"5. c #76768E", -"6. c #B3B3DA", -"7. c #8888AC", -"8. c #444459", -"9. c #060608", -"0. c #050506", -"a. c #09090B", -"b. c #0C0C0F", -" . . . + ", -" @ # $ % & ", -" * = - ; > + ", -" , ' ) ! ~ { ", -" ] ^ , , / ( ", -" _ : < [ . } | 1 2 3 ", -"_ 4 5 6 7 8 9 0 ! a b c d ", -"[ e f g h _ i j k l m n o p q ", -"r s g t u v w x y z A B C D E F ", -" G H I G J @ K 1 b L M N O P ", -" Q R R S T U a 5 V W X Y Z ` ", -" ...+.@.#.$.%.&.*.=., ", -" -.1 ;.>.,.'.).!.~.{.` ", -" , ].5 ^./.(._.:.<.[.}.|.", -" . 1.2.3.4.d 5.6.7.8.9.9.", -" , 3 P 0. a.0.b.d "}; -#endif diff --git a/bitmaps_xpm/hierarchy_cursor.xpm b/bitmaps_xpm/hierarchy_cursor.xpm deleted file mode 100644 index 647958d0e4..0000000000 --- a/bitmaps_xpm/hierarchy_cursor.xpm +++ /dev/null @@ -1,85 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *hierarchy_cursor_xpm[]; - -#else -const char * hierarchy_cursor_xpm[] = { -"16 16 61 1", -" c None", -". c #000000", -"+ c #D783D7", -"@ c #9B9B9B", -"# c #373737", -"$ c #4B7B7B", -"% c #71BABA", -"& c #83D7D7", -"* c #343434", -"= c #141414", -"- c #D6D6D6", -"; c #989898", -"> c #2E2E2F", -", c #838383", -"' c #171717", -") c #C8C8C8", -"! c #FFFFFF", -"~ c #D2D2E1", -"{ c #3B3B45", -"] c #1A1A1A", -"^ c #B8B8B8", -"/ c #F7F7FF", -"( c #E6E6FF", -"_ c #D6D6FF", -": c #767699", -"< c #1F3121", -"[ c #6DB46D", -"} c #83D783", -"| c #1E1E1E", -"1 c #A9A9A9", -"2 c #F0F0FF", -"3 c #DFDFFF", -"4 c #72728E", -"5 c #1C1C26", -"6 c #222222", -"7 c #959599", -"8 c #ADADBF", -"9 c #7A7A91", -"0 c #6E6E8D", -"a c #363636", -"b c #606060", -"c c #878787", -"d c #262626", -"e c #36363A", -"f c #050506", -"g c #101014", -"h c #B7B7F5", -"i c #2E2E44", -"j c #2B2B2B", -"k c #212121", -"l c #6C6C96", -"m c #9595E5", -"n c #212F28", -"o c #7FD17F", -"p c #181824", -"q c #8282D0", -"r c #1B1B2D", -"s c #383838", -"t c #161616", -"u c #4B4B4B", -"v c #898989", -"........ ", -".++++++.@ ", -"........@ ", -" #@@@@@@@ ", -" # ........ ", -" ##.$%&&&&.@ ", -" ..*.....@ ", -" =-;>,@@@ ", -" ')!~{...... ", -" ]^/(_:<[}}.@", -" |12345.....@", -" 67890abc@@@@", -" defghi..... ", -" j=k.lmno}}.@", -" .pqr....@", -" stuv@@@@"}; -#endif diff --git a/bitmaps_xpm/hierarchy_nav.xpm b/bitmaps_xpm/hierarchy_nav.xpm deleted file mode 100644 index c3891f82c5..0000000000 --- a/bitmaps_xpm/hierarchy_nav.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *hierarchy_nav_xpm[]; - -#else -const char * hierarchy_nav_xpm[] = { -"16 16 7 1", -" c None", -". c #000000", -"+ c #D783D7", -"@ c #9B9B9B", -"# c #373737", -"$ c #83D7D7", -"% c #83D783", -"........ ", -".++++++.@ ", -"........@ ", -" #@@@@@@@ ", -" # ........ ", -" ##.$$$$$$.@ ", -" ........@ ", -" #@@@@@@@ ", -" # ........ ", -" ###.%%%%%%.@", -" # ........@", -" # @@@@@@@@", -" # ........ ", -" ###.%%%%%%.@", -" ........@", -" @@@@@@@@"}; -#endif diff --git a/bitmaps_xpm/hotkeys.xpm b/bitmaps_xpm/hotkeys.xpm deleted file mode 100644 index 847c48f6f9..0000000000 --- a/bitmaps_xpm/hotkeys.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -const char *hotkeys_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 15 1", -"@ c #AFB0AB", -"O c #A5A5A2", -"X c #BCBFBB", -"% c #E7E9E6", -". c #C4C4C4", -"= c #DEDFDD", -"* c #FCFAFC", -"; c #94928D", -" c None", -"+ c #9C9A94", -"& c #F1F3EF", -"$ c #B6B8B3", -"- c #D4D3CF", -"# c #ACAAAC", -"o c #B4B2B4", -/* pixels */ -" ", -" ", -" . ", -" ......XoOO+@ ", -" Xoo##o$. O. ", -" @O ", -" XOo ", -" .OX ", -" OO@@@$$$$$$XX ", -"XX%%&&****&%%o. ", -"O =.- --.==.=X# ", -"+-=========%=-+ ", -"+;;;;;;;;;;;;;O ", -" ", -" ", -" " -}; diff --git a/bitmaps_xpm/icon_3d.xpm b/bitmaps_xpm/icon_3d.xpm deleted file mode 100644 index c0c2bdd653..0000000000 --- a/bitmaps_xpm/icon_3d.xpm +++ /dev/null @@ -1,45 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * icon_3d_xpm[]; - -#else -const char * icon_3d_xpm[] = -{ -"32 32 3 1", -"J c #FF0000", -"M c #0000FF", -". c #FFFFFF", -"................................", -"................................", -"................................", -"................................", -"................................", -".....JJJJJ.......JJ.............", -"....JJJJJJJJ....JJJJJ...........", -"...JJJJJJJJJ....JJJJJJJJ........", -"...JJJ...JJJJ...JJJ.JJJJJ.......", -"..........JJJ...JJJ...JJJJJ.....", -"..........JJJ...JJJ.....JJJJ....", -"........JJJJJ...JJJ......JJJJ...", -".....JJJJJJJ....JJJ.......JJJ...", -".....JJJJJJ.....JJJ........JJJ..", -".....JJJJJJJ....JJJ........JJJ..", -"........JJJJJ...JJJ........JJJ..", -".........JJJJ...JJJ........JJJ..", -"..........JJJ...JJJ........JJJ..", -"..........JJJ...JJJ.......JJJJ..", -"..JJJ.....JJJ...JJJ.......JJJ...", -"..JJJ....JJJJ...JJJ.....JJJJJ...", -"..JJJJJJJJJJ....JJJJJJJJJJJJ....", -"...JJJJJJJJ.....JJJJJJJJJJJ.....", -".....JJJJJ.........JJJJJJ.......", -"..........................MMMMMM", -"....................MMMMMMMMMMMM", -"..............MMMMMMMMMMMMMMMMMM", -"........MMMMMMMMMMMMMMMMMMM.....", -"MMMMMMMMMMMMMMMMMMMMM...........", -"MMMMMMMMMMMMMMM.................", -"MMMMMMMMM.......................", -"M..............................." -}; -#endif diff --git a/bitmaps_xpm/icon_bitmap2component.xpm b/bitmaps_xpm/icon_bitmap2component.xpm deleted file mode 100644 index 93bb4aa676..0000000000 --- a/bitmaps_xpm/icon_bitmap2component.xpm +++ /dev/null @@ -1,54 +0,0 @@ -/* XPM */ -const char *icon_bitmap2component_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 16 1", -"@ c #592904", -"# c #974704", -"$ c #5455D0", -"o c #090915", -"- c #2E1604", -"+ c #4B4BB5", -"* c #222352", -"X c #0F1128", -": c #BE5904", -" c #0CFA0C", -"% c #FC7A04", -"= c #323378", -"; c #753704", -"O c #3C3B8F", -"& c #DF6904", -". c #050204", -/* pixels */ -" . ..", -" .", -" ", -"........................ .. ", -"........................ .. ", -" X.oO ... ", -"+++X@#.X+ $ ... .", -"...o@%&@.*$$X.o= ... ..", -"....@%%%#-..-#;.... ........", -"....@%%&%&-.#%%-.... .......", -"....@%%%%;..;%&......====O+$ ", -"....@%%:-....o..............= ", -"....@&@.... +*O ......%%%%&#.X ", -"....-..... .....%%&%%%:...", -"OO O=+ . *.%%%%%&%@X ", -" ... =.%%%%%%%#..", -" . O.%%%%&%%;.=", -".......... .....%%%%%%%-..", -"....@@..... ......%%%%%%;...", -"....@%:-....X.........###;;-.= ", -"....@%%&#...-#@...........o*$ ", -"....@%%%%&-.#%%...... $ ", -"....@%%%%#..;%%..... .......", -"....@%%&-....-..... ........", -"XXXo@%;.X+ +*=$ ... ..", -" X-.oO ... .", -" X.= ... ", -"........................ .. ", -"........................ .. ", -" ", -" .", -" . .." -}; diff --git a/bitmaps_xpm/icon_cvpcb.xpm b/bitmaps_xpm/icon_cvpcb.xpm deleted file mode 100644 index 53633f1eee..0000000000 --- a/bitmaps_xpm/icon_cvpcb.xpm +++ /dev/null @@ -1,412 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * icon_cvpcb_xpm[]; - -#else -const char * icon_cvpcb_xpm[] = { -"32 32 372 2", -" c None", -". c #FF7800", -"+ c #632E00", -"@ c #642F00", -"# c #5A2A00", -"$ c #502600", -"% c #482200", -"& c #3F1D00", -"* c #000000", -"= c #421F00", -"- c #371900", -"; c #2C1400", -"> c #210F00", -", c #160A00", -"' c #FFFEFE", -") c #484747", -"! c #D6D5D5", -"~ c #FFF9F5", -"{ c #FFF1E6", -"] c #FFEAD7", -"^ c #FFE2C9", -"/ c #FFDABA", -"( c #FFD2AB", -"_ c #FFCB9D", -": c #FFC38E", -"< c #FFBB7F", -"[ c #FFB370", -"} c #FFAB62", -"| c #FFA453", -"1 c #FF9C45", -"2 c #FF9436", -"3 c #FF8C27", -"4 c #FF8518", -"5 c #FF7D0A", -"6 c #3E2107", -"7 c #7D7C7C", -"8 c #F0EFEF", -"9 c #FFF2E6", -"0 c #FFEAD8", -"a c #FFD3AC", -"b c #FFBB80", -"c c #FFB471", -"d c #FFAC62", -"e c #FF9536", -"f c #FF8D28", -"g c #FF8519", -"h c #FE7800", -"i c #AC611F", -"j c #574C43", -"k c #B0AFAF", -"l c #FCFBFB", -"m c #FFFAF6", -"n c #FFF2E7", -"o c #FFDBBB", -"p c #FFCB9E", -"q c #FFC38F", -"r c #FFBC80", -"s c #FFAC63", -"t c #FFA454", -"u c #FF9537", -"v c #FF7D0B", -"w c #FF8920", -"x c #F59540", -"y c #A27B59", -"z c #827F7E", -"A c #D7D6D6", -"B c #FFEAD9", -"C c #FFE3CA", -"D c #FFD3AD", -"E c #FFC48F", -"F c #FFBC81", -"G c #FFB472", -"H c #FF9D46", -"I c #FF8D29", -"J c #FF851A", -"K c #FF7E0B", -"L c #FF9A41", -"M c #EAB17F", -"N c #A9998C", -"O c #B5B4B4", -"P c #F1ECE9", -"Q c #FFF2E8", -"R c #FFEBD9", -"S c #FFDBBC", -"T c #FFCC9F", -"U c #FFC490", -"V c #FFAD64", -"W c #FFA555", -"X c #FF9538", -"Y c #FF8E29", -"Z c #FF861A", -"` c #FF7E0C", -" . c #8C8B8B", -".. c #FFBD83", -"+. c #FECEA3", -"@. c #E1CBB7", -"#. c #BFBBB6", -"$. c #DFD4CA", -"%. c #FBE7D6", -"&. c #FEE2CA", -"*. c #FED3AC", -"=. c #FDCA9D", -"-. c #FDC28E", -";. c #FDBA80", -">. c #FDB372", -",. c #FEAC63", -"'. c #FF9D47", -"). c #FF861B", -"!. c #F6F5F5", -"~. c #F5933E", -"{. c #C7864C", -"]. c #926C4B", -"^. c #705A48", -"/. c #483F37", -"(. c #232120", -"_. c #0C0C0C", -":. c #040403", -"<. c #030202", -"[. c #594C41", -"}. c #D0AC8D", -"|. c #BC9675", -"1. c #453527", -"2. c #040202", -"3. c #1F160D", -"4. c #4D341E", -"5. c #7F522A", -"6. c #AE6B30", -"7. c #CE792E", -"8. c #ED8327", -"9. c #FB841B", -"0. c #7D3D06", -"a. c #200F00", -"b. c #FD871F", -"c. c #D98337", -"d. c #BB8352", -"e. c #CCA888", -"f. c #D6C3B2", -"g. c #CEC6C0", -"h. c #CBC9C8", -"i. c #DAD9D9", -"j. c #EFEFEF", -"k. c #C0BFBF", -"l. c #444343", -"m. c #695747", -"n. c #695441", -"o. c #343333", -"p. c #999796", -"q. c #CEC5BD", -"r. c #D5BCA7", -"s. c #E3B892", -"t. c #F0B077", -"u. c #F7A358", -"v. c #FC9336", -"w. c #67360A", -"x. c #E57B1C", -"y. c #C17431", -"z. c #CA9363", -"A. c #A78466", -"B. c #5D4B3B", -"C. c #37302A", -"D. c #1A1817", -"E. c #090808", -"F. c #787777", -"G. c #777676", -"H. c #010000", -"I. c #666565", -"J. c #6B6968", -"K. c #1F160E", -"L. c #4E351F", -"M. c #81532C", -"N. c #AD6B30", -"O. c #CD782E", -"P. c #C56D21", -"Q. c #F38A2E", -"R. c #E49A5A", -"S. c #E3AE80", -"T. c #E7C5A8", -"U. c #CBBAAA", -"V. c #66605B", -"W. c #141212", -"X. c #363535", -"Y. c #797878", -"Z. c #9C9B9B", -"`. c #BAB9B9", -" + c #CBCACA", -".+ c #D3D2D2", -"++ c #E7E6E6", -"@+ c #F3F1EF", -"#+ c #CAC0B8", -"$+ c #856B55", -"%+ c #82542C", -"&+ c #B7753C", -"*+ c #DE8A40", -"=+ c #9B5A1F", -"-+ c #E0781C", -";+ c #B66D2E", -">+ c #B68355", -",+ c #937358", -"'+ c #524234", -")+ c #2D2722", -"!+ c #121110", -"~+ c #060505", -"{+ c #676666", -"]+ c #474646", -"^+ c #4C4A49", -"/+ c #20160E", -"(+ c #49311D", -"_+ c #724A27", -":+ c #985E2B", -"<+ c #BF702C", -"[+ c #935319", -"}+ c #F5831E", -"|+ c #CA7933", -"1+ c #AC7A4F", -"2+ c #B6977D", -"3+ c #B8A99C", -"4+ c #AFA9A5", -"5+ c #AAA9A8", -"6+ c #A9A8A8", -"7+ c #919090", -"8+ c #3C3B3B", -"9+ c #4E4D4D", -"0+ c #4E4843", -"a+ c #908E8C", -"b+ c #B0A59B", -"c+ c #BEA38C", -"d+ c #CD9F76", -"e+ c #DC9A5F", -"f+ c #E8934A", -"g+ c #CE782C", -"h+ c #F7841E", -"i+ c #E18739", -"j+ c #AD7442", -"k+ c #71533A", -"l+ c #493B2E", -"m+ c #27221E", -"n+ c #0F0E0D", -"o+ c #040303", -"p+ c #020101", -"q+ c #474443", -"r+ c #9E8A78", -"s+ c #93765D", -"t+ c #3C2E22", -"u+ c #0C0806", -"v+ c #281C12", -"w+ c #563B22", -"x+ c #89592F", -"y+ c #B26E33", -"z+ c #CF7A30", -"A+ c #EC8529", -"B+ c #67370B", -"C+ c #FB861F", -"D+ c #F2923D", -"E+ c #EA9D59", -"F+ c #E3A874", -"G+ c #DBB18C", -"H+ c #D1B7A1", -"I+ c #C7BCB3", -"J+ c #BEBDBD", -"K+ c #B9B8B7", -"L+ c #C7BAB0", -"M+ c #DBBEA4", -"N+ c #DBB798", -"O+ c #CBA381", -"P+ c #C59872", -"Q+ c #CF9A6B", -"R+ c #DE9F67", -"S+ c #EAA05F", -"T+ c #F39F54", -"U+ c #F79A48", -"V+ c #F9943A", -"W+ c #FD8E2C", -"X+ c #7D3E08", -"Y+ c #FE881F", -"Z+ c #FB973F", -"`+ c #F8A75F", -" @ c #F5B57D", -".@ c #F2C49B", -"+@ c #EED1B7", -"@@ c #E8DBD1", -"#@ c #D1CDCA", -"$@ c #D0C1B6", -"%@ c #ECD4BF", -"&@ c #F5D5B9", -"*@ c #F5CDAB", -"=@ c #EDBF97", -"-@ c #E9B488", -";@ c #EDB17C", -">@ c #F2AD70", -",@ c #F7A964", -"'@ c #FBA458", -")@ c #FC9E4A", -"!@ c #FD963C", -"~@ c #FF902E", -"{@ c #FF881F", -"]@ c #FF8010", -"^@ c #FF7902", -"/@ c #E0C9B5", -"(@ c #BAB7B4", -"_@ c #DDD4CD", -":@ c #FBE9DA", -"<@ c #FDE4CE", -"[@ c #FEDDC0", -"}@ c #FED5B1", -"|@ c #FDCCA2", -"1@ c #FDC593", -"2@ c #FDBD84", -"3@ c #FDB577", -"4@ c #FEAE68", -"5@ c #FFA85A", -"6@ c #FFA04C", -"7@ c #FF983D", -"8@ c #FF8111", -"9@ c #E9B07E", -"0@ c #A49487", -"a@ c #B2B1B1", -"b@ c #F1EFEE", -"c@ c #FFF6EE", -"d@ c #FFEEDF", -"e@ c #FFE6D0", -"f@ c #FFDEC2", -"g@ c #FFD7B3", -"h@ c #FFCFA4", -"i@ c #FFC796", -"j@ c #FFBF87", -"k@ c #FFB778", -"l@ c #FFB069", -"m@ c #FFA85B", -"n@ c #FF983E", -"o@ c #FF912F", -"p@ c #FF7903", -"q@ c #9D7654", -"r@ c #7C7978", -"s@ c #D8D7D7", -"t@ c #FFFEFD", -"u@ c #FFE6D1", -"v@ c #FFCFA5", -"w@ c #FFB879", -"x@ c #FFB06A", -"y@ c #FFA04D", -"z@ c #FF8921", -"A@ c #FF8112", -"B@ c #A85D1B", -"C@ c #50453C", -"D@ c #AFAEAE", -"E@ c #FFF6EF", -"F@ c #FFEEE0", -"G@ c #FFDFC2", -"H@ c #FFD7B4", -"I@ c #FFC797", -"J@ c #FFC088", -"K@ c #FFA85C", -"L@ c #FFA14D", -"M@ c #FF993E", -"N@ c #FF9130", -"O@ c #FF8212", -"P@ c #FF7A04", -"Q@ c #3A1C02", -"R@ c #EFEEEE", -"S@ c #FFEFE0", -"T@ c #FFE7D2", -"U@ c #FFDFC3", -"V@ c #FFD0A6", -"W@ c #FFC897", -"X@ c #FFB87A", -"Y@ c #FFB06B", -"Z@ c #FFA95C", -"`@ c #FFA14E", -" # c #FF993F", -".# c #FF8A22", -"+# c #FF8213", -"@# c #070300", -" . . . . . . . . . . ", -" . . . . . . . . . . ", -" . . . . . . ", -" . . . . . . ", -" . . . . . . . . . . ", -" + @ # $ % & * * = - ; > , * * ", -" ' ) ! ' ' ' ' ' ' ~ { ] ^ / ( _ : < [ } | 1 2 3 4 5 . * ", -" ' * 6 7 8 ' ' ' ' ~ 9 0 ^ / a _ : b c d | 1 e f g 5 . * ", -" ' * h i j k l ' ' m n 0 ^ o a p q r c s t 1 u f g v . * ", -" ' * . w x y z A ' m n B C o D p E F G s t H u I J K . * ", -"* * * * * * . w L d M N O P Q R C S D T U F G V W H X Y Z ` . * ", -" .* . w L d ..+.@.#.$.%.&.S *.=.-.;.>.,.W '.X Y ).` . * ", -" !.* . w ~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.* ", -" ' * . b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.* ", -" ' * . x.y.z.A.B.C.D.E.<.F.G.H.H.I.J.K.L.M.N.O.P.* ", -" ' * . Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+* ", -" ' * . -+;+>+,+'+)+!+~+<.{+I.H.H.]+^+/+(+_+:+<+[+* ", -" ' * . }+|+1+2+3+4+5+6+6+7+8+9+0+8+a+b+c+d+e+f+g+* ", -" ' * . h+i+j+k+l+m+n+o+p+p+q+r+s+t+u+v+w+x+y+z+A+B+* ", -" ' * . C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+C+X+a.* ", -" ' * . Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@* ", -" ' * . w L d ..+./@(@_@:@<@[@}@|@1@2@3@4@5@6@7@~@w 8@^@* ", -"* * * * * * . w L d 9@0@a@b@c@d@e@f@g@h@i@j@k@l@m@6@n@o@w 8@p@* ", -" .* . w x q@r@s@' t@c@d@u@f@g@v@i@j@w@x@m@y@n@o@z@A@p@* ", -" !.* h B@C@D@l ' ' t@E@F@u@G@H@v@I@J@w@x@K@L@M@N@z@O@P@* ", -" ' * Q@F.R@' ' ' ' ' E@S@T@U@H@V@W@J@X@Y@Z@`@ #N@.#+#P@* ", -" @# + @ # $ % & * * = - ; > , * * ", -" . . . . . . . . . . ", -" . . . . . . ", -" . . . . . . ", -" . . . . . . . . . . ", -" . . . . . . . . . . "}; -#endif diff --git a/bitmaps_xpm/icon_cvpcb_small.xpm b/bitmaps_xpm/icon_cvpcb_small.xpm deleted file mode 100644 index af820aec8e..0000000000 --- a/bitmaps_xpm/icon_cvpcb_small.xpm +++ /dev/null @@ -1,156 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * icon_cvpcb_small_xpm[]; -#else -const char * icon_cvpcb_small_xpm[] = { -"16 16 132 2", -" c None", -". c #FF7800", -"+ c #AF5200", -"@ c #A64E00", -"# c #6A3200", -"$ c #6B3200", -"% c #984700", -"& c #8D4200", -"* c #000000", -"= c #929191", -"- c #A49C96", -"; c #FBFAFA", -"> c #FFFEFE", -", c #FFFCFA", -"' c #FFEEDF", -") c #FFDEC2", -"! c #FFCFA4", -"~ c #FFBF87", -"{ c #FFB069", -"] c #FFA04C", -"^ c #FF902F", -"/ c #FF8111", -"( c #803C00", -"_ c #807F7F", -": c #EA7610", -"< c #A88363", -"[ c #D5D4D3", -"} c #FFEEE0", -"| c #FFDFC2", -"1 c #FFCFA5", -"2 c #FFC088", -"3 c #FFB06A", -"4 c #FFA04D", -"5 c #FF9130", -"6 c #FF8112", -"7 c #232323", -"8 c #FF8010", -"9 c #FFA352", -"0 c #E4B58C", -"a c #D2CAC2", -"b c #F6E6D8", -"c c #FFDFC3", -"d c #FECFA5", -"e c #FEBF88", -"f c #FEB06B", -"g c #FFA14E", -"h c #FF9230", -"i c #FF8213", -"j c #7D7D7D", -"k c #FE8010", -"l c #D48845", -"m c #A98C73", -"n c #817C78", -"o c #767676", -"p c #585451", -"q c #987B62", -"r c #46403C", -"s c #847364", -"t c #C08959", -"u c #EC8C39", -"v c #783E0B", -"w c #100800", -"x c #F67D12", -"y c #D4945C", -"z c #AE947D", -"A c #332E2C", -"B c #2F2E2E", -"C c #919090", -"D c #686767", -"E c #ABA9A8", -"F c #6F5E4E", -"G c #9A6231", -"H c #C3722C", -"I c #F57B0E", -"J c #B87941", -"K c #957D69", -"L c #666260", -"M c #575656", -"N c #666666", -"O c #282524", -"P c #585656", -"Q c #766454", -"R c #AD784A", -"S c #C2742F", -"T c #FC7E0F", -"U c #DA8A44", -"V c #9E7A5A", -"W c #746960", -"X c #5F5E5E", -"Y c #7B6F66", -"Z c #B6967C", -"` c #775A41", -" . c #92663E", -".. c #C98040", -"+. c #EC8830", -"@. c #783F0C", -"#. c #FCA150", -"$. c #F9C190", -"%. c #DCCBBC", -"&. c #DED3CA", -"*. c #F7DAC2", -"=. c #F7CBA5", -"-. c #F4BA87", -";. c #F9AE6D", -">. c #FDA252", -",. c #FE9435", -"'. c #FF8418", -"). c #803C01", -"!. c #E4944E", -"~. c #B8A595", -"{. c #E8E7E6", -"]. c #FFF2E6", -"^. c #FFE2C9", -"/. c #FFD3AC", -"(. c #FFC38E", -"_. c #FFB471", -":. c #FFA454", -"<. c #FF9436", -"[. c #FF8519", -"}. c #803C02", -"|. c #965A25", -"1. c #BBB8B6", -"2. c #FEFDFD", -"3. c #FFF2E8", -"4. c #FFE3CA", -"5. c #FFD3AD", -"6. c #FFC490", -"7. c #FFB472", -"8. c #FFA555", -"9. c #FF9537", -"0. c #FF861A", -"a. c #803D02", -" . . . . . . ", -" . . . . . ", -" + @ # $ % & * ", -" = - ; > , ' ) ! ~ { ] ^ / ( ", -" _ : < [ , } | 1 2 3 4 5 6 ( ", -"* * 7 8 9 0 a b c d e f g h i ( ", -" j k l m n o p q r s t u v w ", -" _ x y z A B C D E F G H * ", -" _ I J K L M N O P Q R S * ", -" _ T U V W X Y Z ` ...+.@.w ", -" _ 8 #.$.%.&.*.=.-.;.>.,.'.).", -"* * 7 8 !.~.{.].^./.(._.:.<.[.}.", -" j |.1.2.> 3.4.5.6.7.8.9.0.a.", -" + @ # $ % & * ", -" . . . . . ", -" . . . . . . "}; -#endif - diff --git a/bitmaps_xpm/icon_eeschema.xpm b/bitmaps_xpm/icon_eeschema.xpm deleted file mode 100644 index 51c4b0694d..0000000000 --- a/bitmaps_xpm/icon_eeschema.xpm +++ /dev/null @@ -1,240 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * icon_eeschema_xpm[]; - -#else -const char * icon_eeschema_xpm[] = { -"32 32 200 2", -" c None", -". c #000000", -"+ c #AEAEAE", -"@ c #FFFFFF", -"# c #1E1E1E", -"$ c #D2D2D2", -"% c #181818", -"& c #FEFEFE", -"* c #FEFEFF", -"= c #FCFCFF", -"- c #FBFBFF", -"; c #F9F9FF", -"> c #F8F8FF", -", c #F6F6FF", -"' c #F5F5FF", -") c #F3F3FF", -"! c #F1F1FF", -"~ c #F0F0FF", -"{ c #EEEEFF", -"] c #EDEDFF", -"^ c #0F0F10", -"/ c #F0F0F0", -"( c #C7C7C7", -"_ c #080808", -": c #FDFDFF", -"< c #FAFAFF", -"[ c #F2F2FF", -"} c #EFEFFF", -"| c #EBEBFF", -"1 c #A4A4A4", -"2 c #4F4F50", -"3 c #CDCDCF", -"4 c #F7F7FF", -"5 c #F4F4FF", -"6 c #ECECFF", -"7 c #EAEAFF", -"8 c #FAFAFA", -"9 c #717171", -"0 c #0E0E0F", -"a c #341902", -"b c #626264", -"c c #E2E2E8", -"d c #E9E9FF", -"e c #0E0E10", -"f c #F6F6F6", -"g c #E7E7E7", -"h c #D8D8D8", -"i c #404040", -"j c #0E0E0E", -"k c #0D0D0E", -"l c #EE7000", -"m c #9A4800", -"n c #1C130C", -"o c #848489", -"p c #BDBDC6", -"q c #39393C", -"r c #2B2B2E", -"s c #AAAAB6", -"t c #E7E7FF", -"u c #E3E3E3", -"v c #D5D5D5", -"w c #C6C6C6", -"x c #B0B0B0", -"y c #202020", -"z c #F07100", -"A c #FF7800", -"B c #E86D00", -"C c #592A00", -"D c #080809", -"E c #A44D00", -"F c #C65D00", -"G c #222124", -"H c #7D7C86", -"I c #77767F", -"J c #E1E1F7", -"K c #E8E8FF", -"L c #E6E6FF", -"M c #7C7B86", -"N c #030100", -"O c #E0E0F7", -"P c #E5E5FF", -"Q c #B8B8BA", -"R c #B6B6B6", -"S c #181819", -"T c #828289", -"U c #BABAC6", -"V c #38383C", -"W c #2A2A2E", -"X c #A7A7B6", -"Y c #E4E4FF", -"Z c #E2E2FF", -"` c #E0E0FF", -" . c #DFDFFF", -".. c #DDDDFF", -"+. c #DCDCFF", -"@. c #DADAFF", -"#. c #B7B7BA", -"$. c #171719", -"%. c #FDFDFE", -"&. c #110F0F", -"*. c #E8E8EF", -"=. c #5F5F64", -"-. c #DCDCE8", -";. c #100E0F", -">. c #0D0B0C", -",. c #37363E", -"'. c #A09FBB", -"). c #D9D9FF", -"!. c #E7E7EF", -"~. c #4C4C50", -"{. c #C6C6CF", -"]. c #090707", -"^. c #0E0D0E", -"/. c #F27200", -"(. c #984700", -"_. c #231000", -":. c #9998B5", -"<. c #E6E6EF", -"[. c #E3E3FF", -"}. c #E1E1FF", -"|. c #AE5200", -"1. c #2D2C34", -"2. c #D5D5E0", -"3. c #F57300", -"4. c #080505", -"5. c #0C0B0A", -"6. c #E3E3EF", -"7. c #B25400", -"8. c #28272E", -"9. c #E2E2EF", -"0. c #4B4B50", -"a. c #C2C2CF", -"b. c #020000", -"c. c #0E0C0E", -"d. c #F37200", -"e. c #994800", -"f. c #261100", -"g. c #8C8BA9", -"h. c #E1E1EF", -"i. c #5C5C64", -"j. c #D4D4E8", -"k. c #D0D0EF", -"l. c #0F0D0F", -"m. c #33323B", -"n. c #9392B1", -"o. c #D1D1FF", -"p. c #080707", -"q. c #1B120C", -"r. c #7C7C89", -"s. c #B2B2C6", -"t. c #35353C", -"u. c #28282E", -"v. c #A0A0B6", -"w. c #CECEEF", -"x. c #DBDBFF", -"y. c #D8D8FF", -"z. c #D6D6FF", -"A. c #D4D4FF", -"B. c #D3D3FF", -"C. c #D0D0FF", -"D. c #0D0D0F", -"E. c #201F24", -"F. c #767586", -"G. c #C6C6E7", -"H. c #D5D5FF", -"I. c #D2D2FF", -"J. c #CECEFF", -"K. c #757486", -"L. c #6F6E7F", -"M. c #D3D3F7", -"N. c #D7D7FF", -"O. c #CFCFFF", -"P. c #CDCDFF", -"Q. c #B6B6BA", -"R. c #0C0C0E", -"S. c #797989", -"T. c #AFAFC6", -"U. c #34343C", -"V. c #9D9DB6", -"W. c #CCCCFF", -"X. c #595964", -"Y. c #CFCFE8", -"Z. c #CACAFF", -"`. c #161619", -" + c #484850", -".+ c #BABACF", -"++ c #DEDEFF", -"@+ c #0C0B0C", -"#+ c #CBCBFF", -"$+ c #C9C9FF", -"%+ c #C8C8FF", -"&+ c #FCFCFE", -"*+ c #C7C7FF", -"=+ c #C5C5FF", -"-+ c #C6C6FF", -";+ c #C4C4FF", -">+ c #C3C3FF", -",+ c #C1C1FF", -"'+ c #AEAEB1", -")+ c #9494A4", -" . . . . . . . . . . . . . . . . . . . ", -" . + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # $ % ", -" . & * * * * * = - ; > , ' ) ! ~ { ] ^ / ( _ ", -" . & * * * * : - < > , ' ) [ ~ } ] | ^ / @ 1 . ", -" . & * * 2 3 - < > 4 ' 5 [ ~ } ] 6 7 ^ / @ 8 9 . ", -" . & * * 0 a b c 4 ' 5 [ ! } ] 6 7 d e / f g h i . ", -" . j . . k l m n o p q r s { 6 | d t e u u v w x y . ", -" . & * = 0 z A B C D E F G H I J K L e . . . . . . . ", -" . & : - 0 z A B C D E F G M N O L P Q R R R R R R S ", -" . & N . k l m n T U V W X 7 N t P Y Z ` ...+.@.#.$. ", -" . %.&.*.0 a =.-.~ } ] 6 7 d N P Y ;.N N >.,.'.).#.$. ", -" . %.&.!.~.{.[ ! } { 6 7 d t ].N N ^.A A /.(._.:.#.$. ", -" . %.&.<.5 ) ! } { 6 | d K L Y [.}.;.A A A A |.1.#.$. ", -" N N N 2.) ! ~ { ] | d K L P [.Z ` ;.A A A A 3.4.N 5. ", -" . %.&.6.[ ~ { ] | 7 K t P [.Z ` .;.A A A A 7.8.#.$. ", -" . %.&.9.0.a.] 6 7 K t P Y Z ].b.N c.A A d.e.f.g.#.$. ", -" . %.&.h.0 a i.j.d t L Y Z }.;.k.+.l.N N >.m.n.o.#.$. ", -" . %.p.. k l m q.r.s.t.u.v. .;.w.x.).y.z.A.B.o.C.#.$. ", -" . %.~ { D.z A B C D E F E.F.].G.).y.z.H.B.I.C.J.#.$. ", -" . %.} ] D.z A B C D E F E.K.L.M.y.N.H.B.I.C.O.P.Q.$. ", -" . j . . R.l m q.S.T.U.u.V.+.@.y.N.H.A.I.o.O.P.W.Q.$. ", -" . %.] 7 D.a X.Y.Z }. ...+.@.).N.z.A.I.o.O.J.W.Z.Q.`. ", -" . %.| d +.+Y Z }. .+++.x.N N N N N N N N N N N N @+ ", -" . %.7 t L Y [.}.` +++.x.).N z.H.B.o.C.J.P.#+$+%+Q.`. ", -" . &+d L P [.}.` ++..x.@.y.N H.B.I.C.J.P.#+Z.%+*+Q.`. ", -" . &+t P [.Z ` ...x.@.y.N.N A.I.C.O.P.W.Z.%+*+=+Q.`. ", -" . &+L Y Z ` ...+.@.).N.H.N N N N N N N N N N N N @+ ", -" . &+P Z }. .+++.@.).N.z.A.N o.O.J.W.#+$+*+-+;+>+Q.`. ", -" . &+Y }. .+++.x.).y.z.A.B.N C.J.W.#+$+%+-+=+>+,+Q.`. ", -" . '+R R R R R R R R R R R N R R R R R R R R R R )+. ", -" . . . . . . . . . . . . . . . . . . . . . . . . . ", -" "}; -#endif diff --git a/bitmaps_xpm/icon_gerbview.xpm b/bitmaps_xpm/icon_gerbview.xpm deleted file mode 100644 index 8e28282a32..0000000000 --- a/bitmaps_xpm/icon_gerbview.xpm +++ /dev/null @@ -1,358 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * icon_gerbview_xpm[]; - -#else -const char * icon_gerbview_xpm[] = { -"32 32 318 2", -" c None", -". c #030100", -"+ c #FFFFFF", -"@ c #F4F4F4", -"# c #B1B1B1", -"$ c #7F7F7F", -"% c #4C4C4C", -"& c #191919", -"* c #FEFEFF", -"= c #FDFDFF", -"- c #FCFCFF", -"; c #FAFAFF", -"> c #BBBBC0", -", c #202021", -"' c #373737", -") c #666666", -"! c #919191", -"~ c #BCBCBC", -"{ c #1A1A1C", -"] c #AEAEBC", -"^ c #EAEAFF", -"/ c #E9E9FF", -"( c #E8E8FF", -"_ c #E7E7FF", -": c #E6E6FF", -"< c #E4E4FF", -"[ c #E3E3FF", -"} c #E2E2FF", -"| c #E1E1FF", -"1 c #DFDFFF", -"2 c #86869B", -"3 c #FCF9FA", -"4 c #F1C097", -"5 c #6D3E16", -"6 c #151515", -"7 c #949494", -"8 c #D1D1D1", -"9 c #BB8A5E", -"0 c #261C13", -"a c #5A5A63", -"b c #DEDEF5", -"c c #DEDEFF", -"d c #FBC89E", -"e c #452000", -"f c #484848", -"g c #C3C3C3", -"h c #D1CFCD", -"i c #EC9A51", -"j c #FF7800", -"k c #F88015", -"l c #705238", -"m c #303035", -"n c #E2E2FB", -"o c #DDDDFF", -"p c #85859B", -"q c #96571E", -"r c #2C2C2C", -"s c #CFCFCF", -"t c #E3AE7F", -"u c #FC7D0C", -"v c #4C3725", -"w c #6B3505", -"x c #FD7E0F", -"y c #DCDCFF", -"z c #84849B", -"A c #D9D9DF", -"B c #412106", -"C c #FE7800", -"D c #FE7902", -"E c #FE7903", -"F c #FE7A04", -"G c #FD7904", -"H c #FD7A06", -"I c #FD7B07", -"J c #FD7B08", -"K c #FD7C09", -"L c #EA9F5D", -"M c #D5C7BB", -"N c #CF9969", -"O c #130B06", -"P c #BC5800", -"Q c #DADAFF", -"R c #83839B", -"S c #525255", -"T c #C7742B", -"U c #FF7700", -"V c #A97241", -"W c #2F2F35", -"X c #D3D3F2", -"Y c #DBDBFF", -"Z c #D9D9FF", -"` c #241C16", -" . c #FC7B08", -".. c #F58018", -"+. c #0C0C0E", -"@. c #A3A3BC", -"#. c #D8D8FF", -"$. c #82829B", -"%. c #E5E5E5", -"&. c #131313", -"*. c #E6A66D", -"=. c #2B1D10", -"-. c #85695A", -";. c #F78C34", -">. c #E7B49E", -",. c #D8D5FA", -"'. c #D7D7FF", -"). c #B2B2B2", -"!. c #3D3D3D", -"~. c #F38D32", -"{. c #754E2B", -"]. c #6C3200", -"^. c #F57300", -"/. c #E6B39E", -"(. c #D6D6FF", -"_. c #80809B", -":. c #8C8C8C", -"<. c #5D5D5D", -"[. c #F58828", -"}. c #FC7B09", -"|. c #F58929", -"1. c #E4AA77", -"2. c #5E5C5B", -"3. c #552700", -"4. c #C8A6A1", -"5. c #E3BDB7", -"6. c #F68B34", -"7. c #D4D4FF", -"8. c #D9C1AC", -"9. c #F09340", -"0. c #FA8014", -"a. c #BA9B96", -"b. c #E2BCB7", -"c. c #D3D3FF", -"d. c #7F7F9B", -"e. c #DEB692", -"f. c #8B4000", -"g. c #E16900", -"h. c #E3B09E", -"i. c #D2D2FF", -"j. c #151517", -"k. c #BABABA", -"l. c #D3CBC3", -"m. c #FA7F12", -"n. c #0B0B0C", -"o. c #56433C", -"p. c #EB8430", -"q. c #D2CFFA", -"r. c #D1D1FF", -"s. c #7E7E9B", -"t. c #4F4F55", -"u. c #6F6F6F", -"v. c #DEB591", -"w. c #DABEA6", -"x. c #FB7E0F", -"y. c #FD7A05", -"z. c #FE7801", -"A. c #CE7525", -"B. c #212124", -"C. c #343434", -"D. c #34343E", -"E. c #B0B0D5", -"F. c #D0D0FF", -"G. c #7D7D9B", -"H. c #CFCFDF", -"I. c #0E0C0B", -"J. c #D39660", -"K. c #EC9A52", -"L. c #F1913D", -"M. c #F87C0E", -"N. c #191008", -"O. c #919192", -"P. c #FDFDFD", -"Q. c #939393", -"R. c #141414", -"S. c #65657B", -"T. c #C8C8F6", -"U. c #CECEFF", -"V. c #7C7C9B", -"W. c #ECECFF", -"X. c #8D501D", -"Y. c #FA8115", -"Z. c #71441C", -"`. c #322B2A", -" + c #F4F4FF", -".+ c #E7E7E7", -"++ c #595959", -"@+ c #231203", -"#+ c #9494B8", -"$+ c #EBEBFF", -"%+ c #FA8F34", -"&+ c #3A1B00", -"*+ c #5C4D3F", -"=+ c #F48522", -"-+ c #F8851F", -";+ c #190C00", -">+ c #8A8AB6", -",+ c #CFCFFF", -"'+ c #F8F8FF", -")+ c #262626", -"!+ c #2B2B36", -"~+ c #020100", -"{+ c #F0BD9E", -"]+ c #4E2400", -"^+ c #211A13", -"/+ c #D4823A", -"(+ c #F98117", -"_+ c #DBBDA2", -":+ c #383842", -"<+ c #23232A", -"[+ c #3E3E4F", -"}+ c #A5A5E1", -"|+ c #C6C6FF", -"1+ c #EFEFFF", -"2+ c #F8F8F8", -"3+ c #808080", -"4+ c #080707", -"5+ c #020101", -"6+ c #E7E4FA", -"7+ c #EFBC9E", -"8+ c #F58B33", -"9+ c #91521E", -"0+ c #120E0C", -"a+ c #3C3835", -"b+ c #976C45", -"c+ c #CE8340", -"d+ c #C0B6AD", -"e+ c #101014", -"f+ c #616174", -"g+ c #81819B", -"h+ c #A1A1C3", -"i+ c #76768F", -"j+ c #141418", -"k+ c #6A6A89", -"l+ c #BABAFB", -"m+ c #CBCBFF", -"n+ c #DADADA", -"o+ c #464646", -"p+ c #020202", -"q+ c #E5E5FF", -"r+ c #C1C1DC", -"s+ c #666674", -"t+ c #42424D", -"u+ c #27272E", -"v+ c #0D0D0F", -"w+ c #41414D", -"x+ c #5A5A6B", -"y+ c #7C7C94", -"z+ c #8C8CA8", -"A+ c #BEBEE6", -"B+ c #BAB7DF", -"C+ c #4A3934", -"D+ c #25252D", -"E+ c #9292C3", -"F+ c #C2C2FF", -"G+ c #F9F9FF", -"H+ c #A7A7A7", -"I+ c #E0E0FF", -"J+ c #DADAFB", -"K+ c #C2C2E0", -"L+ c #B0B0CD", -"M+ c #9E9EB9", -"N+ c #8C8CA5", -"O+ c #8B8BA5", -"P+ c #9B9BB9", -"Q+ c #ACACCD", -"R+ c #BBBBE0", -"S+ c #CFCFFB", -"T+ c #E0AD9E", -"U+ c #B45500", -"V+ c #211001", -"W+ c #4E4E63", -"X+ c #ACACEC", -"Y+ c #C7C7FF", -"Z+ c #F0F0FF", -"`+ c #FC7D0F", -" @ c #D9B3B7", -".@ c #CFABAF", -"+@ c #773801", -"@@ c #141314", -"#@ c #78789D", -"$@ c #BDBDFE", -"%@ c #FC7C0D", -"&@ c #D8B2B7", -"*@ c #D7B1B7", -"=@ c #C8702B", -"-@ c #2E2E3B", -";@ c #31313D", -">@ c #9D9DD3", -",@ c #D5D5FF", -"'@ c #CDCDFF", -")@ c #CCCCFF", -"!@ c #DEAB9E", -"~@ c #DBA89E", -"{@ c #C2C2FE", -"]@ c #47475D", -"^@ c #050404", -"/@ c #5D5D77", -"(@ c #B2B2F4", -"_@ c #CBC8FA", -":@ c #DCA99E", -"<@ c #F38834", -"[@ c #C4C1FA", -"}@ c #75759B", -"|@ c #1A1A1F", -"1@ c #CACAFF", -"2@ c #C8C8FF", -"3@ c #C5C5FF", -"4@ c #C3C3FF", -"5@ c #C1C1FF", -"6@ c #74749B", -"7@ c #7B7B9B", -"8@ c #7A7A9B", -"9@ c #79799B", -"0@ c #78789B", -"a@ c #77779B", -"b@ c #76769B", -"c@ c #030000", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -". + + + + + + @ # $ % & & % $ # @ + + + + + + + + + + + + . ", -". + * = - ; > , ' ) ! ~ ~ ! ) ' { ] ^ / ( _ : < [ } | 1 2 . ", -". + = 3 4 5 6 7 8 8 8 8 8 8 8 8 9 0 a b _ : < [ } | 1 c 2 . ", -". + - d e f g 8 8 8 8 8 8 8 h i j k l m n < [ } | 1 c o p . ", -". + ; q r s 8 8 8 8 8 8 8 8 t j j j u v w x x x x x x y z . ", -". + A B j C D E F G H I J K E j j L M N O P j j j j j Q R . ", -". + S T j j j j j j j j j j U j j M 8 M V W X c o y Y Z R . ", -". + ` .j j j j j j j j j j U j j L M L ..+.@.o y Y Z #.$.. ", -". %.&.8 8 8 8 8 8 8 8 8 8 8 *.j j j j j j =.-.;.;.>.,.'.$.. ", -". ).!.8 8 8 8 8 8 8 8 8 8 8 h ~.j j j j j {.].^.j j /.(._.. ", -". :.<.8 8 8 8 8 8 8 8 8 8 8 8 h *.[.}.|.1.2.3.4.5.j 6.7._.. ", -". ).!.8 8 8 8.9.0.0.9.8.8 8 8 8 8 8 8 8 8 !.].a.b.j 6.c.d.. ", -". %.&.8 8 e.G j j j j G e.8 8 8 8 8 8 8 8 &.f.g.j j h.i.d.. ", -". + j.k.l.m.j j j j j j m.l.8 8 8 8 8 8 k.n.o.p.6.h.q.r.s.. ", -". + t.u.v.j j 0.w.w.x.j j H J H y.F D z.A.B.C.D.E.i.r.F.G.. ", -". + H.I.J.j j K.8 8 L.j j U j j j j j M.N.O.P.Q.R.S.T.U.V.. ", -". + W.X.v Y.j 0.w.w.x.j j j j j j j j Z.`.n ++ .+++@+#+V.. ", -". + $+%+&+*+=+j j j j j -+8 8 8 8 g f ;+>+,+o $+'++ k.)+!+~+ ", -". + / {+^.]+^+/+u j j (+_+8 8 8 7 6 :+<+[+}+|+7.} 1+= 2+3+4+5+ ", -". + ( 6+7+8+9+0+a+b+c+d+~ ! ) ' e+f+g+h+i+j+k+l+m+Z : ++ n+o+p+", -". + _ : q+[ } r+s+t+u+v+v+u+w+x+y+z+A+i.r.B+C+D+E+F+F.o $+G++ H+", -". + : q+[ } | I+J+K+L+M+N+O+P+Q+R+S+i.r.F.T+j U+V+W+X+Y+7.} Z+* ", -". + q+x x x x x x `+`+`+`+`+`+`+`+`+`+`+`+`+j @.@+@@@#@$@m+Z _ ", -". + [ j j j j j j j j j j j j j j j j j j %@j &@*@j =@-@;@>@F+F.", -". + } | I+c o y Y Q #.'.(.,@c.i.r.F.U.'@)@!@j j j j ~@{@]@^@/@(@", -". + | I+c o y Y Q #.'.(.,@c.i.r.F.U.'@)@m+_@:@<@<@~@[@F+}@~+5+|@", -". + I+c o y Y Q #.'.(.,@c.i.r.F.U.'@)@m+1@2@Y+|+3@4@F+5@6@. ", -". + 2 2 p p z R $.$.g+_.d.d.s.G.V.V.7@8@9@0@0@a@b@}@}@6@6@. ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . c@ ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/icon_gerbview_small.xpm b/bitmaps_xpm/icon_gerbview_small.xpm deleted file mode 100644 index 01308798fe..0000000000 --- a/bitmaps_xpm/icon_gerbview_small.xpm +++ /dev/null @@ -1,190 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * icon_gerbview_small_xpm[]; -#else -const char * icon_gerbview_small_xpm[] = { -"16 16 166 2", -" c None", -". c #424040", -"+ c #818080", -"@ c #7E7D7D", -"# c #4E4C4C", -"$ c #1B1A19", -"% c #FDFCFE", -"& c #D5BDAB", -"* c #616162", -"= c #909090", -"- c #BCBCBC", -"; c #6A5C52", -"> c #C3C3D6", -", c #E7E7FF", -"' c #E4E4FF", -") c #E2E2FF", -"! c #DFDFFF", -"~ c #44444E", -"{ c #E2C5AE", -"] c #625951", -"^ c #CECECE", -"/ c #D1D1D1", -"( c #E8A467", -"_ c #FD7A05", -": c #7A4E28", -"< c #CC9E84", -"[ c #F0B087", -"} c #EEAF87", -"| c #E5C5C3", -"1 c #44434E", -"2 c #8D7059", -"3 c #FF7800", -"4 c #FE7801", -"5 c #FE7902", -"6 c #FE7903", -"7 c #FE7A04", -"8 c #FF7801", -"9 c #EF9646", -"0 c #D2BEAC", -"a c #6A411F", -"b c #ECA87C", -"c c #EEAA80", -"d c #E3C2BF", -"e c #43424E", -"f c #7A7A79", -"g c #815F40", -"h c #E8A468", -"i c #F9831B", -"j c #FA8217", -"k c #8B480E", -"l c #BF9D92", -"m c #E5BEB4", -"n c #D8D7FE", -"o c #42424E", -"p c #515050", -"q c #8F8F8F", -"r c #DABFA7", -"s c #F68825", -"t c #FC7D0C", -"u c #AE733F", -"v c #A05C28", -"w c #F8892E", -"x c #E2BAB4", -"y c #42404E", -"z c #676666", -"A c #7C7C7C", -"B c #D4CAC1", -"C c #F1913C", -"D c #FC7C0A", -"E c #A45E26", -"F c #E0B8B4", -"G c #41404E", -"H c #636365", -"I c #EA9E5A", -"J c #FE7A05", -"K c #EC9B53", -"L c #F28F37", -"M c #E7A66C", -"N c #E7A66B", -"O c #E8A569", -"P c #6D5744", -"Q c #6A4C38", -"R c #D7AFAA", -"S c #D1D0FE", -"T c #403F4E", -"U c #968682", -"V c #C67226", -"W c #F9821A", -"X c #D6C8BC", -"Y c #FA8013", -"Z c #DA6C0A", -"` c #706C70", -" . c #E1E1E4", -".. c #6E6E74", -"+. c #938FAC", -"@. c #403E4E", -"#. c #F0C8B4", -"$. c #764010", -"%. c #BA661C", -"&. c #FE7A06", -"*. c #DDB999", -"=. c #2F2C2D", -"-. c #8F8FB9", -";. c #D8D8FF", -">. c #F2F2FF", -",. c #B5B5B6", -"'. c #2D2D2F", -"). c #E7E6FE", -"!. c #EBC4B4", -"~. c #928181", -"{. c #5F534F", -"]. c #705B4A", -"^. c #606062", -"/. c #4E4E55", -"(. c #5E5E71", -"_. c #ACACD1", -":. c #8584A1", -"<. c #656079", -"[. c #BEBEF0", -"}. c #EFEFF6", -"|. c #EBCCC3", -"1. c #EFAF87", -"2. c #E5A67E", -"3. c #D29269", -"4. c #C4845A", -"5. c #D09069", -"6. c #E0A17E", -"7. c #E7A787", -"8. c #EA9E6F", -"9. c #E37E2E", -"0. c #6D5045", -"a. c #8080A7", -"b. c #D0D0FF", -"c. c #ECECFF", -"d. c #E9C8BF", -"e. c #EFAC80", -"f. c #EDA980", -"g. c #EBA880", -"h. c #EAA780", -"i. c #E9A580", -"j. c #E8A480", -"k. c #E6A380", -"l. c #E99B6A", -"m. c #F5862E", -"n. c #A58280", -"o. c #46465C", -"p. c #A8A8DA", -"q. c #E0E0FF", -"r. c #DDDDFF", -"s. c #DBDBFF", -"t. c #D6D6FF", -"u. c #D3D3FF", -"v. c #D1D1FF", -"w. c #CECEFF", -"x. c #CCCCFF", -"y. c #CAC9FE", -"z. c #D7B0B4", -"A. c #D6AEB4", -"B. c #C2C2FE", -"C. c #3C3B4E", -"D. c #0E0E10", -"E. c #42414E", -"F. c #3F3E4E", -"G. c #3E3D4E", -"H. c #3D3C4E", -"I. c #1F1E27", -". + + @ # $ $ # @ + + + + + . ", -"+ % & * = - - = ; > , ' ) ! ~ ", -"+ { ] ^ / / / ( _ : < [ } | 1 ", -"+ 2 3 4 5 6 7 8 9 0 a b c d e ", -"f g h h h h h i j 9 k l m n o ", -"p q / / / / / r s t u v w x y ", -"z A B C D C B / / / A E w F G ", -"+ H I J K 7 L M N O P Q R S T ", -"+ U V W X Y 3 3 3 Z ` ...+.@. ", -"+ #.$.%.6 &.*./ q =.-.;.>.,.'. ", -"+ ).!.~.{.].^./.(._.:.<.[.) }.A ", -"+ |.[ 1.2.3.4.5.6.7.8.9.0.a.b.c.", -"+ d.e.c f.g.h.i.j.k.l.m.m.n.o.p.", -"+ q.r.s.;.t.u.v.w.x.y.z.A.B.C.D.", -". ~ 1 e o E.G T @.F.G.H.C.C.I. ", -" "}; -#endif - diff --git a/bitmaps_xpm/icon_kicad.xpm b/bitmaps_xpm/icon_kicad.xpm deleted file mode 100644 index 7ace0137eb..0000000000 --- a/bitmaps_xpm/icon_kicad.xpm +++ /dev/null @@ -1,58 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *icon_kicad_xpm[]; - -#else -const char * icon_kicad_xpm[] = -{ -"32 32 16 1", -" c none", -". c #281b11", -"X c #716e86", -"o c #eed4bc", -"O c #c4b4a6", -"+ c #99939d", -"@ c #6e5f55", -"# c #454245", -"$ c #c3966e", -"% c #603c21", -"& c #6c4f33", -"* c #f9b577", -"= c #fa9638", -"- c #e47816", -"; c #7977c5", -": c #a8a7f5", -" .X oooO XoOO+@#$@$@% ", -" &&o ooo +***O##$*==# ", -" &=@Oooo $o**O@#$===& ", -" &==$+oO +o***##$===# ", -" +$&====+OX+OoOO@#$$O=#... ", -" o @===*=$ooO OOoo$O $$OO# ", -".%%&@&=====$+X#X@@ $$O-O @ ", -"%----&====*-@;:::;X+$===O # ", -"...X$@===&@;:::::::;@@==O @ ", -" o @=&X::::::::::::;@@O # ", -" : #X::::::::::::::;;#o @ ", -" o@:::::::::::::::;;;# # ", -" :#::;XXX:::::::;X;;;XO @ ", -" o#;;XX;;:::::+;;;;;;X@oO# ", -" :X;;;;;::::;;;;;;;+OXOooOXXX+", -" o@;;;;;;::;;;;;;;XOO@oo o ooo", -" :X;;;;;;:;;;;;+oOX;+@o ooo ", -" o+;;;;;;;+;;++X+OX@@@Oo O+OO+", -" oo#.;;;;;+;o++X++#+@X OO@ ", -" o @=&X;;;;X+O+##@OoX@ # ", -" o $==-#;;XXXO%$@@ @X # ", -" o @====#XXX#X@O@@O$&@O @ ", -"..%@$&=====&#@=X&$X@$===O # ", -"%----&===*=*=*$X@*O+$*==O @ ", -".%%&$&=====**$$X&O $===O # ", -" o @====*=$O*@O* $$O=O @ ", -" +O@====$$XOO o*XX$Oo$&##. ", -" &====XO +ooOO##$$O=# ", -" &==@Ooo $o***@#$*==& ", -" &=@oooo +o**O##$===& ", -" && oooO +***O@&$===& ", -" .Xo ooO XoOO$##X$@@& " -}; -#endif diff --git a/bitmaps_xpm/icon_modedit.xpm b/bitmaps_xpm/icon_modedit.xpm deleted file mode 100644 index 8f7f6bd72a..0000000000 --- a/bitmaps_xpm/icon_modedit.xpm +++ /dev/null @@ -1,386 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *icon_modedit_xpm[]; - -#else -const char * icon_modedit_xpm[] = { -"32 32 346 2", -" c None", -". c #2C2C37", -"+ c #383846", -"@ c #4D4D5E", -"# c #686878", -"$ c #6C6C77", -"% c #535358", -"& c #434344", -"* c #1F1F1F", -"= c #121213", -"- c #4C4C5A", -"; c #9C9CC3", -"> c #BEBEFF", -", c #BDBDFD", -"' c #8888A5", -") c #C5C5EE", -"! c #DDDDFF", -"~ c #E7E7FF", -"{ c #F2F2FF", -"] c #8A8A8B", -"^ c #3D3D40", -"/ c #BFBFD4", -"( c #DADAFF", -"_ c #D0D0FF", -": c #B3B3E6", -"< c #848495", -"[ c #AB9D93", -"} c #805431", -"| c #856353", -"1 c #DEDEFD", -"2 c #EAEAFF", -"3 c #F2F2FD", -"4 c #4E4E4E", -"5 c #2E2E2E", -"6 c #D8D8DE", -"7 c #ECECFF", -"8 c #E2E2FF", -"9 c #D8D8FF", -"0 c #828291", -"a c #7C5432", -"b c #AF5C11", -"c c #6E4725", -"d c #B0570A", -"e c #928793", -"f c #D8D8DF", -"g c #2B2B2B", -"h c #151517", -"i c #30303A", -"j c #393942", -"k c #303035", -"l c #161617", -"m c #616161", -"n c #FEFEFF", -"o c #F4F4FF", -"p c #BDBDD7", -"q c #CDCDCE", -"r c #BEB0A4", -"s c #A06736", -"t c #A3876D", -"u c #B7B4B4", -"v c #9D9DBB", -"w c #DBDBFF", -"x c #E5E5FF", -"y c #EFEFFF", -"z c #A0A0A4", -"A c #1C1C21", -"B c #4D4D61", -"C c #8484AA", -"D c #A9A9E0", -"E c #C6C6FE", -"F c #CCCCFB", -"G c #C3C3DD", -"H c #97979C", -"I c #FEFEFE", -"J c #FCFCFF", -"K c #B0B0C1", -"L c #EEEEEE", -"M c #FFFFFF", -"N c #F0F0F0", -"O c #B4B4BB", -"P c #B4B4D8", -"Q c #F1F1FF", -"R c #5E5E5F", -"S c #3A3A42", -"T c #B3B3D6", -"U c #CBCBFF", -"V c #A9A9DD", -"W c #8383A2", -"X c #9696A3", -"Y c #7E7E8D", -"Z c #A198B0", -"` c #896A5D", -" . c #D1CFE8", -".. c #BEBEC1", -"+. c #F9F9FF", -"@. c #C6C6D3", -"#. c #877362", -"$. c #906239", -"%. c #A55E20", -"&. c #D5CEC7", -"*. c #9797A2", -"=. c #AFADCE", -"-. c #DFDFFE", -";. c #E0E0EB", -">. c #333333", -",. c #73737D", -"'. c #D2D2EE", -"). c #9898AE", -"!. c #676770", -"~. c #757578", -"{. c #DBDBDB", -"]. c #B5A597", -"^. c #A36731", -"/. c #724C2A", -"(. c #D86906", -"_. c #7F5A42", -":. c #C4C4D9", -"<. c #DCDCDD", -"[. c #7C6350", -"}. c #E56C00", -"|. c #593E25", -"1. c #A95E1B", -"2. c #9C8570", -"3. c #F1F1F1", -"4. c #B09B88", -"5. c #8E643D", -"6. c #B45908", -"7. c #917975", -"8. c #B4B4BA", -"9. c #58585A", -"0. c #A2A2AB", -"a. c #A3A3A7", -"b. c #E8E8E8", -"c. c #F5F5F5", -"d. c #E5E5E5", -"e. c #DFDBD7", -"f. c #A15D20", -"g. c #855124", -"h. c #785846", -"i. c #A19CB4", -"j. c #A0949E", -"k. c #B1B1BC", -"l. c #F4F4F4", -"m. c #F3F3F3", -"n. c #8D6A4F", -"o. c #6E5A4D", -"p. c #B5A79A", -"q. c #D4690A", -"r. c #8F592B", -"s. c #955821", -"t. c #6E4D39", -"u. c #D6D6FB", -"v. c #E4E4FF", -"w. c #EEEEFF", -"x. c #707072", -"y. c #242424", -"z. c #DCDCDC", -"A. c #B6AEAE", -"B. c #79563A", -"C. c #9B734E", -"D. c #FDFDFD", -"E. c #E2E1E0", -"F. c #BCAEA3", -"G. c #8E623C", -"H. c #7B4E29", -"I. c #D76807", -"J. c #9F8C8B", -"K. c #B3B3B7", -"L. c #F1F1FE", -"M. c #A7A7B5", -"N. c #9E9EA9", -"O. c #AFAFB4", -"P. c #927B68", -"Q. c #957F6E", -"R. c #9B9BA3", -"S. c #777786", -"T. c #C6C6F1", -"U. c #E7E7F5", -"V. c #3E3E3F", -"W. c #3F3F3F", -"X. c #D9D7D6", -"Y. c #98571F", -"Z. c #AD611D", -"`. c #895426", -" + c #936135", -".+ c #D5D1CE", -"++ c #AB9582", -"@+ c #DD6B05", -"#+ c #7D4E27", -"$+ c #915F3F", -"%+ c #A19097", -"&+ c #BEBED3", -"*+ c #FAFAFF", -"=+ c #F0F0FF", -"-+ c #D0D0F3", -";+ c #B8B8E1", -">+ c #A6A6D5", -",+ c #B6B6F6", -"'+ c #C1C1FF", -")+ c #C8C8FC", -"!+ c #ABABCE", -"~+ c #B8B8D0", -"{+ c #D3D3E8", -"]+ c #C4C4CD", -"^+ c #1C1C1C", -"/+ c #7E7E7E", -"(+ c #C1B3A6", -"_+ c #9D7B60", -":+ c #888282", -"<+ c #927C68", -"[+ c #A36E3E", -"}+ c #B6A596", -"|+ c #A9998B", -"1+ c #BBB6AF", -"2+ c #71543F", -"3+ c #88542B", -"4+ c #9A5B28", -"5+ c #A5A2AB", -"6+ c #F7F7FF", -"7+ c #EDEDFF", -"8+ c #E3E3FF", -"9+ c #D9D9FF", -"0+ c #9897BC", -"a+ c #6A6A7F", -"b+ c #656475", -"c+ c #59586A", -"d+ c #555468", -"e+ c #535367", -"f+ c #5E5D6E", -"g+ c #646372", -"h+ c #2C2C32", -"i+ c #202020", -"j+ c #CFCFCF", -"k+ c #BBB3AD", -"l+ c #A15716", -"m+ c #754922", -"n+ c #A35919", -"o+ c #81532A", -"p+ c #ECECEC", -"q+ c #825D3C", -"r+ c #D66909", -"s+ c #764F2D", -"t+ c #9E602F", -"u+ c #9C8C90", -"v+ c #ABABB1", -"w+ c #F5F5FF", -"x+ c #CFCFE2", -"y+ c #727180", -"z+ c #58576D", -"A+ c #5B5A71", -"B+ c #1D1D22", -"C+ c #4A4A4A", -"D+ c #FCFCFC", -"E+ c #95755A", -"F+ c #A5734B", -"G+ c #736358", -"H+ c #B3A89F", -"I+ c #9D7B5C", -"J+ c #E9E7E5", -"K+ c #E5E3E1", -"L+ c #9C7A5C", -"M+ c #A89D94", -"N+ c #9696AE", -"O+ c #DFDFFA", -"P+ c #BCBCBD", -"Q+ c #EAEAED", -"R+ c #5D5C6C", -"S+ c #5A5970", -"T+ c #484757", -"U+ c #282830", -"V+ c #27272E", -"W+ c #26262D", -"X+ c #25242B", -"Y+ c #232329", -"Z+ c #8D8D8D", -"`+ c #AF9F94", -" @ c #9F612C", -".@ c #7A512D", -"+@ c #D56908", -"@@ c #855F3D", -"#@ c #E8E8E9", -"$@ c #9A9AA4", -"%@ c #86869C", -"&@ c #D5D5FF", -"*@ c #DEDEFF", -"=@ c #BFBFD2", -"-@ c #DADADB", -";@ c #85848C", -">@ c #41404F", -",@ c #272727", -"'@ c #E5E1DE", -")@ c #A86327", -"!@ c #8A5426", -"~@ c #806249", -"{@ c #D5D1CD", -"]@ c #B4B4B9", -"^@ c #9090A3", -"/@ c #8D8DB7", -"(@ c #B4B4F2", -"_@ c #80809D", -":@ c #767689", -"<@ c #777687", -"[@ c #7F7F8E", -"}@ c #85858C", -"|@ c #6B6A77", -"1@ c #4D4C5E", -"2@ c #111113", -"3@ c #555555", -"4@ c #E6E5E7", -"5@ c #F1F1FB", -"6@ c #BBBBC9", -"7@ c #9999A0", -"8@ c #9898AA", -"9@ c #C2C2EB", -"0@ c #8686A3", -"a@ c #6C6B7F", -"b@ c #58586A", -"c@ c #58576C", -"d@ c #5B5A6E", -"e@ c #2A2A33", -"f@ c #9D9D9D", -"g@ c #FBFBFF", -"h@ c #B8B8CF", -"i@ c #6C6C7B", -"j@ c #59586E", -"k@ c #3D3C4B", -"l@ c #1A1A1E", -"m@ c #2F2F2F", -"n@ c #F5F5FC", -"o@ c #868690", -"p@ c #5D5D6F", -"q@ c #424150", -"r@ c #1D1D21", -"s@ c #1F1F24", -"t@ c #25252D", -"u@ c #212026", -"v@ c #5F5F5F", -"w@ c #75757C", -"x@ c #403F4E", -"y@ c #17161A", -"z@ c #3E3D44", -"A@ c #59586F", -"B@ c #2B2B35", -"C@ c #24232B", -"D@ c #434250", -"E@ c #1F1F25", -" ", -" ", -" ", -" ", -" ", -" . + @ # $ % & * ", -" = - ; > , ' ) ! ~ { ] ", -" ^ / ( _ : < [ } | 1 2 3 4 ", -" 5 6 7 8 9 0 a b c d e 8 7 f g ", -" h i j k l m n o 2 p q r s t u v w x y z ", -" A B C D E F 9 G H I J { K L M N M M O P ! ~ Q R ", -" S T U V W X Y Z ` ...M +.@.#.$.%.&.M M *.=.-.2 ;.>. ", -" ,.'.).!.~.{.].^./.(._.:.<.M [.}.|.1.2.3.4.5.6.7.8 7 8. ", -" 9.0.a.b.c.d.M e.f.g.h.i.j.k.l.m.n.o.<.M p.q.r.s.t.u.v.w.x. ", -"y.z.A.B.%.C.D.M M E.F.G.H.I.J.K.M J L.M.N.O.P.Q.R.S.T.! ~ U.V. ", -"W.X.Y.Z.`. +.+M M M ++@+#+$+%+&+q M *+=+x -+;+>+,+'+)+!+~+{+]+^+", -" /+(+_+:+<+[+}+M M M |+1+2+3+4+5+b.M 6+7+8+9+0+a+b+c+d+e+f+g+h+", -" i+j+k+l+m+n+o+p+M M M q+r+s+t+u+v+D.M w+x+y+z+A+A+A+A+A+A+A+B+", -" C+D+E+F+G+H+I+J+M M K+L+M+N+w O+P+M Q+R+A+A+S+T+U+V+W+X+Y+ ", -" Z+M `+ @.@+@@@M M M #@$@%@&@*@=@-@;@A+A+>@B+ ", -" ,@{.'@)@!@~@{@D+]@^@/@(@_@:@<@[@}@|@A+1@2@ ", -" 3@M 4@5@6@7@8@9@0@a@b@A+A+A+A+c@d@A+e@ ", -" f@M g@{ 2 h@i@j@A+A+A+A+A+A+A+S+k@l@ ", -" m@d.M n@o@p@A+A+z+q@U+r@s@t@>@u@ ", -" v@D.w@j@A+A+x@y@ ", -" z@A@A+z+B@ ", -" C@D@E@ ", -" ", -" ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/icon_pcbcalculator.xpm b/bitmaps_xpm/icon_pcbcalculator.xpm deleted file mode 100644 index 1ac1cc0d14..0000000000 --- a/bitmaps_xpm/icon_pcbcalculator.xpm +++ /dev/null @@ -1,54 +0,0 @@ -/* XPM */ -const char *icon_pcbcalculator_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 16 1", -"o c #AC9D99", -"= c #6F5A87", -"- c #4242BA", -"& c #7E7EF7", -"# c #37357B", -"; c #9A5753", -"O c #997366", -". c #958280", -"@ c #342D4E", -"X c #B0816B", -" c None", -"$ c #3A1721", -"* c #6258B4", -": c #9C090B", -"+ c #5C433C", -"% c #6E5C55", -/* pixels */ -" .XXX. ", -" oXo..OX o ", -" oX.+O.X.+@#$% ooo ", -" oX.+%X%&&&&*@+o o oo ", -" oOO%+.O&&&&&&*= o o ", -" .@@=X%+OX&&&&&&& o o ", -" oXX+@#&&&X%+%X&&&&&&& o o ", -" oOoX=&&&&OX%+OX&&&&&&& o o=$ ", -"O@O.OX..&O.%++OX&&&&&& oooooo-$o", -"+-O.+O.XX.%+++%..&&&& ooo oo--@O", -"@-*XO+++%%+++++%..&& oooo-----#+", -"$--=XO+++++%++++OX. oooo----##@@", -"$---OX..O..XO++++O ooo ---##@@@%", -"@----*OOXOOOXO+++oooo --##@@@@@.", -"%#----------OXO+oooo =#@@@@@@@@o", -".#----------*;Xooooo.X+@@@@@@%$ ", -" $=--------#$:$oooo++.X+@@@$%.+ ", -" +O+#-----$:;;:$. ++++.O+$++..+ ", -" o+O%$#--$::::::$.%++++.O. O..+ ", -" +$$::::::::;.%++++.X %..+ ", -" $:::::::::@O.%++++.X%.%+ ", -" +:::;:::::$..O.++++%.X$%o ", -" o$::+O:::::$O..+X.++++%.X ", -" ;:::Oo:::::+ O..+ X.++++%.X ", -" o$::;oo:::::$ O..+ X.++++%.o ", -" +::X o:::::$ .+$+ X.++oo.X ", -" $:o ;:::::$o %. X.% oOX ", -" +:::::::::o X.OO.X ", -" .::::::::% XXXXo ", -" +::::::$ oo ", -" +:::::o ", -" %$:$. " -}; diff --git a/bitmaps_xpm/icon_pcbnew.xpm b/bitmaps_xpm/icon_pcbnew.xpm deleted file mode 100644 index 48ff780d87..0000000000 --- a/bitmaps_xpm/icon_pcbnew.xpm +++ /dev/null @@ -1,176 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *icon_pcbnew_xpm[]; - -#else -const char * icon_pcbnew_xpm[] = { -"32 32 136 2", -" c None", -". c #040200", -"+ c #030100", -"@ c #FFFFFF", -"# c #FEFEFF", -"$ c #FDFDFF", -"% c #FCFCFF", -"& c #FAFAFF", -"* c #F9F9FF", -"= c #F8F8FF", -"- c #F7F7FF", -"; c #F5F5FF", -"> c #F4F4FF", -", c #F3F3FF", -"' c #F2F2FF", -") c #F1F1FF", -"! c #EFEFFF", -"~ c #EEEEFF", -"{ c #EDEDFF", -"] c #ECECFF", -"^ c #EAEAFF", -"/ c #E9E9FF", -"( c #E8E8FF", -"_ c #E7E7FF", -": c #E6E6FF", -"< c #E4E4FF", -"[ c #E3E3FF", -"} c #E2E2FF", -"| c #E1E1FF", -"1 c #DFDFFF", -"2 c #86869B", -"3 c #FCF9FA", -"4 c #FBC89E", -"5 c #FD9234", -"6 c #FAC79E", -"7 c #F5F2FA", -"8 c #DEDEFF", -"9 c #FF7800", -"0 c #F8C59E", -"a c #DDDDFF", -"b c #85859B", -"c c #F9D3B7", -"d c #F8D2B7", -"e c #FE7F0F", -"f c #FD7E0F", -"g c #DCDCFF", -"h c #84849B", -"i c #F7D1B7", -"j c #FE7E0D", -"k c #DADAFF", -"l c #83839B", -"m c #F6C39E", -"n c #DBDBFF", -"o c #D9D9FF", -"p c #F6F3FA", -"q c #FC9134", -"r c #EFECFA", -"s c #D8D8FF", -"t c #82829B", -"u c #F6F6FF", -"v c #EBEBFF", -"w c #DEDBFA", -"x c #E9B69E", -"y c #F78C34", -"z c #E7B49E", -"A c #D8D5FA", -"B c #D7D7FF", -"C c #E6B39E", -"D c #D6D6FF", -"E c #80809B", -"F c #FC7D0F", -"G c #E3BDB7", -"H c #F68B34", -"I c #D4D4FF", -"J c #FD7D0D", -"K c #E2BCB7", -"L c #D3D3FF", -"M c #7F7F9B", -"N c #E3B09E", -"O c #D2D2FF", -"P c #E0E0FF", -"Q c #D2CFFA", -"R c #D1D1FF", -"S c #7E7E9B", -"T c #EDEAFA", -"U c #F3C09E", -"V c #FA8F34", -"W c #F0BD9E", -"X c #E7E4FA", -"Y c #D0D0FF", -"Z c #7D7D9B", -"` c #EFBC9E", -" . c #CECEFF", -".. c #7C7C9B", -"+. c #EEC8B7", -"@. c #EDC7B7", -"#. c #CDCDFF", -"$. c #CCCCFF", -"%. c #7B7B9B", -"&. c #EDBA9E", -"*. c #D5D5FF", -"=. c #CBCBFF", -"-. c #7A7A9B", -";. c #F98E34", -">. c #E1DEFA", -",. c #C9C9FF", -"'. c #79799B", -"). c #E5E5FF", -"!. c #D0CDFA", -"~. c #E0AD9E", -"{. c #F48934", -"]. c #DEAB9E", -"^. c #CAC7FA", -"/. c #C8C8FF", -"(. c #78789B", -"_. c #DCA99E", -":. c #C7C7FF", -"<. c #D9B3B7", -"[. c #D8B2B7", -"}. c #F38834", -"|. c #C6C6FF", -"1. c #77779B", -"2. c #FC7C0D", -"3. c #D7B1B7", -"4. c #C5C5FF", -"5. c #76769B", -"6. c #DBA89E", -"7. c #C3C3FF", -"8. c #75759B", -"9. c #CBC8FA", -"0. c #C4C1FA", -"a. c #C2C2FF", -"b. c #CACAFF", -"c. c #C1C1FF", -"d. c #74749B", -"e. c #81819B", -" ", -" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ", -" + @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ + ", -" + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 2 + ", -" + @ $ 3 4 5 5 6 7 > , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 8 2 + ", -" + @ % 4 9 9 9 9 0 , ' ) ! ~ { ] ^ / ( _ : < [ } | 1 8 a b + ", -" + @ & 5 9 c d 9 e e e e e f f f f f f f f f f f f f f g h + ", -" + @ * 5 9 d i 9 j 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 k l + ", -" + @ = 6 9 9 9 9 m ! ~ { ] ^ / ( _ : < [ } | 1 8 a g n o l + ", -" + @ - p 0 q q m r ~ { ] ^ / ( _ : < [ } | 1 8 a g n o s t + ", -" + @ u > , ' ) ! ~ { ] v / ( _ : < [ } | 1 w x y y z A B t + ", -" + @ > , ' ) ! ~ { ] v / ( _ : < [ } | 1 8 x 9 9 9 9 C D E + ", -" + @ , e e e e f f f f f f f f f f f f f f F 9 G G 9 H I E + ", -" + @ ' 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 J 9 G K 9 H L M + ", -" + @ ) ! ~ { ] v / ( _ : < [ } | 1 8 a g n z 9 9 9 9 N O M + ", -" + @ ! ~ { ] v / ( _ : < [ } | P 8 a g n o A C H H N Q R S + ", -" + @ ~ T U V V W X : < [ } | P 8 a g n o s B D I L O R Y Z + ", -" + @ { U 9 9 9 9 ` < [ } | P 8 a g n o s B D I L O R Y ...+ ", -" + @ ] V 9 +.@.9 f f f f f f f F F F F F F F F F F F F #...+ ", -" + @ v V 9 @.@.9 J 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 $.%.+ ", -" + @ / W 9 9 9 9 &.| P 8 a g n o s B D *.L O R Y .#.$.=.-.+ ", -" + @ ( X ` ;.;.&.>.P 8 a g n o s B D *.L O R Y .#.$.=.,.'.+ ", -" + @ _ : ).[ } | P 8 a g n o s B D *.L O R !.~.{.{.].^./.(.+ ", -" + @ : ).[ } | P 8 a g n o s B D *.L O R Y ~.9 9 9 9 _.:.(.+ ", -" + @ ).f f f f f f F F F F F F F F F F F F F 9 <.[.9 }.|.1.+ ", -" + @ [ 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 2.9 [.3.9 }.4.5.+ ", -" + @ } | P 8 a g n k s B D *.L O R Y .#.$.].9 9 9 9 6.7.8.+ ", -" + @ | P 8 a g n k s B D *.L O R Y .#.$.=.9._.}.}.6.0.a.8.+ ", -" + @ P 8 a g n k s B D *.L O R Y .#.$.=.b./.:.|.4.7.a.c.d.+ ", -" + @ 2 2 b b h l t t e.E M M S Z ....%.-.'.(.(.1.5.8.8.d.d.+ ", -" . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ", -" "}; -#endif diff --git a/bitmaps_xpm/icon_txt.xpm b/bitmaps_xpm/icon_txt.xpm deleted file mode 100644 index 718680b4b4..0000000000 --- a/bitmaps_xpm/icon_txt.xpm +++ /dev/null @@ -1,125 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * icon_txt_xpm[]; - -#else -const char * icon_txt_xpm[] = { -"16 16 100 2", -" c None", -". c #AFAFAF", -"+ c #B8CEF8", -"@ c #B4CBF6", -"# c #9EBDF1", -"$ c #7CA5EA", -"% c #719EE6", -"& c #6697E2", -"* c #5B8FDE", -"= c #5088DA", -"- c #4581D6", -"; c #3A7AD2", -"> c #3072CE", -", c #256BCA", -"' c #F2F6FD", -") c #F1F5FD", -"! c #EFF4FC", -"~ c #EEF3FC", -"{ c #ECF1FA", -"] c #E9EFF8", -"^ c #E6ECF6", -"/ c #E3EAF5", -"( c #E0E8F2", -"_ c #DDE5F0", -": c #DBE3EF", -"< c #D8E1EC", -"[ c #FFFFFF", -"} c #FDFDFD", -"| c #FDE080", -"1 c #F2CC84", -"2 c #E0AB8A", -"3 c #F6F6F6", -"4 c #F5F5F5", -"5 c #F3F3F3", -"6 c #F0F0F0", -"7 c #FEFEFE", -"8 c #FCFBF8", -"9 c #FCE135", -"0 c #FFC729", -"a c #F6AB5E", -"b c #F2EBE8", -"c c #F4F4F4", -"d c #F2F2F2", -"e c #EDEDED", -"f c #FDE394", -"g c #FFDB35", -"h c #FFC340", -"i c #EAA871", -"j c #EAEAEA", -"k c #FCFCFC", -"l c #FDE24E", -"m c #FFCC36", -"n c #FCAC4C", -"o c #EEE1D8", -"p c #F1F1F1", -"q c #ECECEC", -"r c #FCE8B2", -"s c #FFE458", -"t c #FFCD55", -"u c #EDAA6D", -"v c #EEEEEE", -"w c #FEE473", -"x c #FFD861", -"y c #FDC16A", -"z c #EAD4C5", -"A c #F7E8C4", -"B c #FEEB80", -"C c #FFD871", -"D c #EFB579", -"E c #EEEEEF", -"F c #E3E3E6", -"G c #DDDDE1", -"H c #EDEDEE", -"I c #FCDF8D", -"J c #FFE389", -"K c #FED58A", -"L c #E7C8B2", -"M c #ECECED", -"N c #E1E1E4", -"O c #DBDBE0", -"P c #F7D090", -"Q c #FFEAB7", -"R c #ECB989", -"S c #E0E0E4", -"T c #DCDCE1", -"U c #E0B98F", -"V c #E2AD8A", -"W c #DBD1D1", -"X c #DDDDE2", -"Y c #DFDFE3", -"Z c #FBFBFB", -"` c #F9F9F9", -" . c #F8F8F8", -".. c #D3A78A", -"+. c #DFD9DA", -"@. c #E0E0E5", -"#. c #E4E4E8", -"$. c #EEEEF0", -"%. c #F7F7F7", -"&. c #E6E6E6", -" . . . . . . . . . . . . . . ", -" . + @ # $ % & * = - ; > , . ", -" . ' ) ! ~ { ] ^ / ( _ : < . ", -" . [ [ [ [ } | 1 2 3 4 5 6 . ", -" . [ [ [ 7 8 9 0 a b c d e . ", -" . [ [ 7 } f g h i c 5 6 j . ", -" . [ [ 7 k l m n o c p q q . ", -" . [ 7 } r s t u c d v v v . ", -" . } } k w x y z p 6 6 6 6 . ", -" . d 5 A B C D d d E F G H . ", -" . 5 5 I J K L M N O O O F . ", -" . 4 4 P Q R S T T . . . . . ", -" . 3 3 U V W X X Y . Z k ` . ", -" . . ...+.@.#.$.%.. d v . ", -" . ` ` ` ` ` ` ` ` . &.. ", -" . . . . . . . . . . . "}; - -#endif diff --git a/bitmaps_xpm/icons/icon_bitmap2component.ico b/bitmaps_xpm/icons/icon_bitmap2component.ico deleted file mode 100644 index 476513d76f6110b8bd037cc5ed7c83c6ad845626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2238 zcmchZ&2HO96oo(8l4Z$1L>JAPXg4WP2>wCSfGmN^Bo)h+M1iC%2Owa`7U9q}DM6GI zI}5);mwko4K(~E{zCquk=%SaTtT;{GO@WTU;qabw@0@#P7J`!eR27-m`FS0l0ng=; z5Z}v_#XlLPB2xb9HRV@7@!P=X^IDDavj)E$ALD-c1Oj zXI-?^CQvQ<7cR3&n@N1aWo$FMF&HJ1pK7Q9w5&s^;c)%7OL%INs(tX9cyD~{(IMW< zzzYM~V+$vk(9Lz{R8K#HX_0TMbK=!m69?pq@d9cSo+Ue>Jw#4owwtFxnup_SYglS_;a5SOgy~EK{ zOsU^I>dCh+d&0fmXSXpT7|!v%H-vJ2vG_D?XfO;U)}?zG(dQVW?_;_lnsX|>s95$M zj@Q8SUNUe3x^9ep7IEMFfn9eloRF)-Tc+)Rz(1!WnjAC1^mUp8la8y2hJbrx$nI^M z;AId0g++)%+#fP^r7@?$z}(4swwL01cUVq}BlWvyA(F~Sr1`?5t2VG(J91BSu40pEB>i3o4DN<_Y8(4S4>!B3T?cnE z#2I_E!UpZ@9XfJJ?OhM!n>$Q3Mf0TBd59IpOs4x>O!v5n0^(#yczI5uhRk(bTZ@u4$CDe$^fT||r5;%h6%x3dBtIV;t2-o`_|h~C<&ZEc8m z`B>zy75H|YYOe2*ZG~XLrFwmRA&>360r7t;=NJ0KlIlbM3j~NA diff --git a/bitmaps_xpm/icons/icon_cvpcb.ico b/bitmaps_xpm/icons/icon_cvpcb.ico deleted file mode 100644 index cc83a577511d6dffcf4291d53648029ab4ceb40d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3262 zcmcK62~ZPP7y#gfpi;$)I@ALV(3zr^MjQlMK~SlJ2-Fd*g0;4yD5Z9gDg*=p!zCg` zqktfy0ySv3L~l@HMnJQhK74_to)MeXo&BP88~m}&?r z1)qHQDjQtRgY9WBJq|{(@cv=Y3Q~OwiN!gr9em^vI z!!@~|bqA8_a6hmVzC%6-oX>-e+&4S|x>Wwrqj7Q{435CcQ(`y&G-hCMd;2}K1oHcb z;1S_Jgu-?}eqtR&^GE!x$Ug@*$*|-&;C?vJ0#)nBanzW&zbXZGaN$sXZ}iE`f`Tjk zq5;BhMD@%4Ooh+nfp_|Ns{ds{|G4-r`{OkHT5@j zJ{QzCmDDuy@4hH&6<@9wC-Gm#6!iudy!6c(+?hSRB~#*f_KkI-6#4WRm=X4`ew1Xz zi9z?YzWto8xPs2}yr#m+x~i(HywbA#^195coyok;@C>0}a;;Cwo!#jVx1Z~COMmT< zGQ9lcpC<8AdXz-lCIp*qfL{%zM%KR|V)(P@C#(18EO*_^`?=#-82g&o*LMPt?}Y)n902_2m-xBW6EbF%7!2DDuS=%iT)qXgKP##AbnlFM_xs zNhN2pOS7``IN6stoNRO?BpkQ0vUYZMv2$=iL0o)7YF2(+##R6H`t2#dI}^hI?zrs-q*)r$tmawDazDOkE^Q-O94c_d%%FWx%Y*}K`>8jd>iO1lE` zUv0@4wqU=RY(ag075fkV0kL6=ouca2e}BTk!`IT*!NBlC9UUE-mKJ&mtDM}AaT^aL zRvMeH(bUwMsz+b2%z5#~P*a~=Mqq<6>*c%%$;1^D?@#6Zhu9y8&o58-q@;o`xcjKB zMIl_u+np+&?RXpA^0)7u+&&-xAe-4CY3{6sr0azKs4Y*Uo8kUS2-A z{}cYbKDhN1_qi>A``00?6804V;jcM^`wNf39OQ>kTpz-pWM~r{93m3ELPPQp{|ViL zK=|eNaX(E6@yM^heYBIiW&-jp6#is2zP-IeYik?Hk^$}yK)bwt(c@k1-Xw-9z* zR`@5uI1Xk<0;R8XkJW_l_WiB~rAkx&6roH~%^p9e{PTv42_H=+gYh9XXOJeL5oeJs z8K{{(ewq--M`d3nIle`828j@XdLN*MMf3-30KC_*B(iGk6`G>x_-sWy@=Qa|lT)-~ioX#B>2Cbj}bmsTXyYGJAIrp6N&ddXv@W;&!{4K+B z8Q=iGi@{q6V2J&HS(9gXa&vP*L~wO=#leFI;ppgy+S*!>z>_DS$B#h|AA%k{0999m z?%xO9y$ia18&p*Vx^)Y5^CoPRN>uTEX=y2BG8yRUQ_!PFpgVU!1_S8&b!fF(s6#_h zws$Y6rUrEH9_Ypm(6wuL#M;={SSS?=Gu4RU)Iq|BTNePJQ|d-Z~kw>Naz*&z10c<~~R9618LUXQ%IJnoqr z5L*RIC16}7pwhsKbH-pTFkFug?b;(baXOOX;!$({JgBk~bma^<3g#O$)(3vx!)2BfvPoiM`dN{Ri zjau%LQfUhVpAi)iflB6;3LD5MAxrB;p;fY0LEy>SjH&EBt{=bKZYM8obe)mH|GB<25;j%M*sS&SPx=^ zGNgJ0@^vsnXiR5{9LF<69%60Ei*vq|PDhD%@OLRI+{5`g*|@b(j!DjLA;VkWyC)!Peq!C1yTE6E-Y-xDaTiMz+!9@28Fv zg0zT5*;2-m%#}H7b(^;qnf+BE>bUq}1wtTc7ca?NnzM-o4Sb}#Ux-EsI7ca6yEs({ z3OAd17uANpHO3s%8XYg0&X2Tr&+`0h9Se*(re`b>Md%v*d4h7gbe+38Z_WJt5uBq| z2y)i05|bk=(%C*MAn>hzZ}%VY`?BRLSim{1%rWz}b`AU=F@JI&jYWLi;6DeQIsUv~ zf1AG`JbGbWqf;}@{Ky|XJZH^Tag|~5(Lav(Ns>PM`Ipp2{MR$Sv2X7l?5Ea*#mtnx z4Gc{F?)#KR{FiNP?d)BIKr}i!kS*ye6VEOALTMues$gz(*f1kMEm4|YR~{lqPHCsK zakgtO1l(vNKQ+PR&-~bNsFLiZD)#nRjgNQQzNzgQd_A^}BULDt<}AEM-;=e9)kGfn57x%Us(w zcajT%v51zfEIPc}Knq?bb7Xv)+J|828CG`eLght`ewrWViHOU+(x sM89y!?|h?G0ZNADi%{K&=QqwX+Vbb_&AbJ%pNQR-(U*}_597K203#onCIA2c diff --git a/bitmaps_xpm/icons/icon_gerbview.ico b/bitmaps_xpm/icons/icon_gerbview.ico deleted file mode 100644 index b4e547348678caa748ffc244c9c4b960525fafe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3262 zcmds3eN0nV6n_O&3>AoN{a~mt1)X(%tqkUb0h=FL5H}LG$*h?%lK2(f#&-)XDn_No z6o_WN*u@$AnCJkV%u1Xlft|IU1PZtZ-NL{tEX752qE&w z5lmTGm<}H%4;>;89>kQHNlK-pM1ma-{T8uYW-p|GM^?N^m^3QWp~twPS;UUQBzoWOQFb@$?~(aZ;@n8K|x1p>4-*S zKW@d<4!qyk8!T`C9nsMP1qJxH8yhjs;2^SCtoQ~4VyI{>FHeY%-xL|SeDPwh88d)@ z*%T46CoV2eEWRX@_1wNqt7tD#3O@Ms-GBgfP7du5dcxu}t@ypY=5B*R z_58i;q4_a#w&%>CkhSafo(?}$d-diWl}aU-%j4tYgM)*)-rfn@w?ka0&z(D&lr)FS zJ+^!Ih*D{F2pDNJ0&u%gf{Oc#$C?OBXKO92VA@pN}s;?U3is5k;9yCaF|9ZJImWPaI+N{p{}-oHP?} zt@&uv*0-~aG_t*4kY%#La74f<5=<@#6^2f_8|>1ZFFh%D}+D_xXId|9^|$ zfq{9Sod^hy;$@lvmMb-1xUB>7${4Y0abSEu`F1IP^$48fm_rN(!uTxTx)EiVre z2$;>pZ`Wu%*q+~Pj=gwD< zE^2F?@nbh{-oJmp{8wu*I@>=rjdB-J&`(LD+|n#AsTNj>B_OeOk-xt{AP5r(nhFc; zmlo2XgZ;C4JaC=5x?!dS`^SMm2(Oq&K=ZJK?cuTZ<1bbo?iXagQWSQXH8>4Ire)&m z^?DA6Lodm>+2)o?G4WvtLT7MV0t<=oY+_d@y#!RiE+CmR@r#R#LqkLD2nFTZ@Z3Rg z5fCsiw7+s@U?H)3?A_g9q?r`nNTQnUh6EW(bVs|(6i*|&~(x0JI98S zfA0Qz>o#I>?70h7C1p56V*JKNC`tcdzcVZ?0r1r)UNT(=JU==S?8kvQc4~_2Jy4Py z@R|Of3>@TOxdS*1z31`cc4Y}Oo;;+7EFz%Xg8x$eIwGL97y62nc_C zR$AEv{T%6#C!4K0e}25MLQZaOcE*p5iQy+yPKr$5SQ|co!*-yL`0jGhiWPrAb!OIX ztrk8H9PDq`YNz@~jN#+haZR;A5W&rafSM-4ku_aRfsi(Uwtv?TnyDTf;wzPdRggNJ z@sZg)|I1U$mMzn0G?N{HIpR~4d3f~nofosh_Cb1wBtM}F z5N-k78MmqB$BA8sJUYe7#M;OUNI(4$};W8{F|V$0%NlP W2Dswb9&7QL@Q=lqXPf`p|9=59qb&vi diff --git a/bitmaps_xpm/icons/icon_kicad.ico b/bitmaps_xpm/icons/icon_kicad.ico deleted file mode 100644 index 79f577f7d5c1dad13e4ae9b34bb178230b214364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3262 zcmcJRdr(tX9>?#_?2PQp&bUK6?fzry+U;~Z?rwb*OIsdN1p^9Lh)RG&lve~3^B^G! zg+vk(h$g`V5*{Hz9w87Cl0wkP!zKurNMnjG3Mx=&k!hjYE}&HIo*2xAEQM&t zVM!lFrd=PN7?^-9_uvad@CEY#c#tistg^wJE|_rv7PQ=oj*bou4aG@&!sKv(4E8UD zckIQy41X&!cU$34D6+8S^4(X&|3C!qlsrK(n~Ibdz5Cz!WR?DxF8;3mJNYGWP#KI8 zSV`O}W4G0npX$Dc9sRc}j5j>aTgK&b zs~hyqy^}xB!ClrNLCZ}7fq=zg@ls1|`@jzm;JBim!02NE0Ret~ew#LJTJ=RZ91akV z&z5=eqtC&IYaiv7=+%acg7Z_USX@byg{K>F5r}d-McP@{*8d52M4|6-1tTINR`B2W zz-MR1Ye9s-BwiH0#P1-(i+`vd#x%lTDEl!~F_AmEu1F0M9Zd!CT0V^(P)%cRyz4lzt0!(U*GKW zPKfV65uYEUrcwDpiA*nk2_OkOMskX@~m$^v|OadDeoFXeDjK1cfd2WDjAOp0;HLqB0o#JRad zb_@nXB9Vsg+->c+++yt9w{M>(*6jnnn8&M1OYKE&{PFi_##IpJj21$z&h| z#=^tnpU)W3YV^9vYh-pLu-$!QzAYC-)|&J^5Kt zQEu!Yli8ie9AvTX8QUGo+DoJ#=YsG z@gMJgKRY@;>E@fw=G^`JUHo1yPs7O3Q7AJ_O^Z+4uX=;6OwqAYMUN+H>r~w)6P-ko z)ieXXWAe8ul^(26V9U$P%g@hu^Lu-HsR#t%n>YpBqsh|b6czS(JDD=0taeF&{Vy&0 zYt^c*oLtYbsIn*`3N;g(X|fEooWBH?HaFAL0q^(to;_dZ=Z|%C8j4PHld&b(6Sc(b zZzM7|e|ap;TC1qUL?pRYWN3_Dt98*{@c%jz9)7=}!3k+@o@;CSv9akt{a1kR#a~vb zS2-k-i{vbzLWqi{dTYA&x%0E{d+Xl% z=r8XEC1lXDSfbC4EYHt@vZat@DJC+pol5s&x=t-jCORValjHTEet6ORycN5SI=?<= z{!Qlm+wA$xF{ixd=e=1ihoh2|*o?;tg^O&?WzsPiOAJ?rAWVKos z78X#HQcpfu-$`tl-G0sHxLtc`e0=Ibw{56Ud&_RO+ibRzFo#|!!i1@iM>*>E@Next~~ zQX2Yq@kh6Z#c$ZK!PnQ<$H!*{cjXDF-<*8$Z}EBRLWRk@zUp|qN_{1s`(5?b_QL6S zlEBbA`YP(fZK0T*`;%|n`TiBvw;TWV4uiqCeP{gU-6{Lf#Fgt~^;#oHA??%|P3JXb ztF=^fnO~ucjEn^Jb9#;>>68jdtKN$%-}0RLe8C6G^R`h4T0aGC!9!0C0!Iix_0;}2 f3yyZ@bzqQ}Ib--|HU)fe%d%~8#+}#Kdu#m{PMk2u diff --git a/bitmaps_xpm/icons/icon_kicad.png b/bitmaps_xpm/icons/icon_kicad.png deleted file mode 100644 index 6c3303503968204b400ecddcfbce04dc18a43699..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2294 zcmVam1?FT4q|Ot<3Zf zJEM-!j-y3J>sYFe;3$efHRX{60xXXNl0ZnZB%6?IUb}mD_ujqz12KdRflklNnLEGp z{N8hZ_sqG%vMjErN%<4!J+i9o)H6>#-l2&&Ml6CEi*ov0gTAEn7tX)@@wcZIluR#( zhWo9U9-=)E6o21U{-Cbw4J&8ndegKB(QrSJV4wBn@wU1zzCSiOA<2)V3?(eiacyn) z?)53GX0)aYL*{n|#Ch|KBtu0Dw_8Lp(pOp2OdK!k&L08qy|e-Z*eL zc546zwP5q+%>_=U^FE>3Ga!s2LD_9B9PWbmKlM{svXBiMHmsdKDa+nx$oNOjA?&Y5 zr5jaM?@(1W9pDF}5L?a^JZHCISWz`QJ9|+u7>tKPp|jy|xcS%q?BRu1h4<@^4>F9-= z!KE5w*LgC>$5;RPR5bS6@E)lnsx=Y|xA3#^5nd>LMF1Q-ww++paSn#VWW{|%CoB|m zN=pU6_U+rXgci)tM*Ml6m5XYC(gKQ|*E^B`HKAW$d%M|rt`6sIi6vkegS+>C*?;akQJV+#ruk5fHygc0j4^v|hY=@OrJVLB zw_jdO#OUDlgK5;8cQR|vYF1|E{|E?76Aa_Z^IFQwDFosZciQI1u6sjKy(s3{z)bd!@?Nc!l+u`WvyTANODzPTIAQUMtNcgpST-o1y? z(v`OcAQ%jyC@w-FjYEgdaK7OLLP|w2g19sSXY$~3+BBVT?|Dw0?V>MeaqX9*D1JO+ z!hE}XH`!@6g5d~?q9nZVAc0{RLQ!l0^z~;lVWNxv{!2t-GR4KS0N0O+BXqXaaJ;dX zur3BijQ3GI(F#To>_?RHy|6#nVl z)0=|L=0Z^}bLNbXnZ?O;w)awfi)=Hjs81hazMfl4d8?)nz0Am^yU~jg3`|99ew53SBqxcr4m3 zgQA3)nA?Zn-$tWPFe>vhnkEs88PuMtB+!*gN{W+~fKIA2nV2PUw7NRp+tc&8EX$HC z%OYl4kpuwCm*2y4&pwL?zR$GTf54fPF-R{g3%8?|#Vcph+!Cj&*G8mEr@p=shh5NA z^DR$5_AsCCtzcwY1}@Jy4xXz)kD0vl-bdZLcI|rj+IR{3z?3OdSUPPKd)D+|p8Yi! z>%JVMZ*6U+vp>S&iW8`+gkeBy%Nf4j`428M)Ua;dYG%w|j;7hLtT^LyCs49*1@|s_ z0Mj%RhVzgMiNmI$$bz?53RZbO!+Y>GVlf>6Suz0d`+Ly!Fo*W<;IZi@lk&0%=~3n^ z{yCXhSqLFv7z6o)5J-}guz=ohBf3ftOm*{ST<%nY!62i}Hi|?YJ07$k)<}6z z`|tqn&0+Rii>(|K6VwBs*!kVLq4$B8?jOZV%d$bS^L-P5-xmH=?< z-RA)a#lU$h0FL{uJFgzRUT?6lu+aJT%d3Gi3C2-V@Kt9vjSc!`8=)!@qo)xO1lP^s?zx`v-I` z#U#JC0!a>0OWGj6+1hE0&MK5-W4Q3c1L)Fa-fzq0!G|7V!q`y|4JFt}VhG2pfhBHf zDIIbUUFw${8-GyB%btDJnlOIc&7=GuG-L%TFZ8_l(5kWuOHw=AO}k~78iwhh)nB6n z1bX`X$9vtLXjrwPdXSFpJ}k>>iO1s|)h!Vkwaj=p*h?hbPax!P9S*>M0Y*rQf$Ln4 Q>;M1&07*qoM6N<$g2;7b1ONa4 diff --git a/bitmaps_xpm/icons/icon_kicad.xpm b/bitmaps_xpm/icons/icon_kicad.xpm deleted file mode 100644 index 008c617a1d..0000000000 --- a/bitmaps_xpm/icons/icon_kicad.xpm +++ /dev/null @@ -1,496 +0,0 @@ -/* XPM */ -const char *icon_kicad_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 458 2", -"|o c #FF7F0F", -"SX c #EFE6DE", -"F c #C19975", -"xX c #A4A0D1", -"~O c #8B8177", -"`. c #8383CE", -")o c #7F7A77", -"5O c #AF937D", -".. c #754213", -"uX c #73737A", -".O c #FF881F", -"'. c #BFBEE3", -"hX c #4F4F75", -"L c #121212", -"K. c #9896DC", -"x c #858585", -"7O c #E8B88E", -"%X c #646286", -"9O c #C4AC96", -"KO c #ED8832", -"+o c #A9A098", -"DO c #FC9337", -"uo c #858597", -"1 c #4E3E30", -"{O c #4E3E31", -"& c #CAB4A0", -"r. c #F9953D", -"N. c #A7A7FB", -"{ c #A9A9A9", -"o. c #906640", -"y c #FF9D47", -"vo c #A9A9AC", -"Yo c #CABDB1", -"Zo c #615EA0", -"oO c #FFA657", -"~ c #D9CBBF", -"vX c #7978AF", -"MO c #C98E59", -"=X c #7674B7", -"YO c #E2DAD2", -"o c #E2DDD8", -"Bo c #6C6C6E", -"-O c #6B3708", -" . c #6E3808", -":X c #A9A3D1", -"WX c #FAEEE2", -"a. c #908175", -"! c #F1E8E2", -"O c #956F4F", -", c #A17955", -"6 c #FFDFC3", -"Z c #DBCDC2", -"RX c #EDD6C3", -"mo c #655C56", -"HX c #8A85B5", -"(o c #DA985E", -"+X c #C6C6C6", -"LX c #C3C2C7", -"W c #D8D2CD", -"VX c #FFE5CF", -"aX c #FCE4D0", -"+ c #E4D9CF", -"/ c #CFCFCF", -"k. c #534A5D", -"/. c #7271BE", -"fo c #656566", -"{o c #6D3300", -"-. c #CE9A6D", -"1X c #686669", -"EX c #EAE1D9", -"To c #2B1400", -"7o c #DEDDDB", -"B c #6E6E6E", -"2. c #F77C0F", -"*. c #565168", -"Po c #CB9F78", -"do c #E4E2E2", -"` c #FFF1E7", -"n. c #9090D5", -"$. c #8F8884", -"sO c #898989", -"* c #C5AC96", -"0X c #ABABEE", -"4o c #B0A296", -" c #A78261", -"V. c #7B78B8", -"'O c #A48162", -":o c #C9C8CC", -"oo c #F9E4D1", -"8O c #6E6964", -"`O c #927B67", -"ZX c #EADFD5", -"1. c #F77707", -"RO c #E1DCD7", -"=o c #6F6EBF", -"wX c #9F99CB", -"aO c #958270", -"~X c #EAE5DF", -"kO c #747474", -"`o c #BC9878", -"3. c #F78017", -"#O c #7A7979", -"(. c #505072", -"zX c #B7B6DF", -"Lo c #B69C84", -"b. c #59537B", -"e c #D7B08E", -"V c #A1958B", -"U c #F9F9F9", -"Y. c #A8A8E9", -"c c #8F8F8F", -"IX c #74748C", -"5. c #7C512A", -"AO c #C2A996", -" X c #AEADF4", -"O. c #735132", -"X. c #855A33", -">. c #E2883B", -"dO c #B3AAA2", -"G. c #A8A8FB", -"# c #B6AEA6", -"9. c #9F9FFA", -":O c #88613E", -"oX c #5F5E9A", -"s. c #7F5E42", -"} c #404040", -"bo c #4C4442", -"jo c #494949", -"N c #CBC1B8", -"uO c #BCBCBC", -"%. c #61545F", -"Qo c #8B7767", -"j. c #7D7DC0", -"U. c #49495F", -"}o c #FF7B07", -"[o c #CD996C", -"<. c #693100", -"y. c #271200", -"lO c #6D6D6D", -") c #CA9B72", -"M c #9D8673", -"wO c #BE9777", -" O c #FF8417", -"zo c #7474CC", -"fX c #7F7F7F", -"@X c #494977", -"= c #AF9B8B", -"TO c #272423", -"g c #FF902F", -"t. c #FF9333", -"@o c #ACA39B", -"i c #FF9639", -"tO c #C4B19F", -"!. c #A7A6F4", -"IO c #5D4532", -"yo c #91919D", -"z c #F6933D", -"_ c #CDB7A4", -"n c #FF993F", -"v c #785738", -"eO c #CAB6A6", -"^o c #453735", -"eo c #6C4736", -"M. c #AAAAFB", -"!o c #7B5B3E", -"Io c #54483E", -"vO c #665140", -"8o c #C4BAB2", -"+. c #FFA250", -"BO c #CABFB6", -">o c #ACACB3", -"_o c #5D544C", -"*X c #6A69A7", -"D c #4B4B4B", -"8X c #7C7BAC", -"pO c #E79A56", -"hO c #D9CABE", -"@. c #F9A358", -"9X c #7676AF", -"j c #A87F5B", -"d c #8D735B", -"lo c #4B3F54", -" o c #605E5D", -"+O c #FFAE67", -"no c #B18562", -"XX c #7372B9", -"@O c #C09067", -"E c #D0D0D0", -"cX c #7977BD", -"g. c #5D4E5E", -">X c #7F7CBF", -"O c #E8DED6", -"No c #666668", -"=O c #2F1600", -"ao c #6F6C6B", -"ZO c #C39772", -"$ c #8D8279", -"l c #F9BB85", -"9 c #9C9084", -"!X c #FDF7F1", -")O c #AE9C8B", -"{X c #6F6F88", -"c. c #F88C2D", -"wo c #FB8D2E", -"[. c #696487", -". c #262524", -"E. c #A9A8EC", -"XO c #7D512A", -"Ho c #C9AE96", -"(O c #C3AC98", -"Ao c #84798E", -"2o c #908F94", -"iX c #ABA197", -"UX c #787890", -";X c #B2B1F3", -"h c #FB9337", -"qX c #B2B1F4", -"xo c #847992", -"so c #B1A69C", -"JO c #FB963D", -"/O c #C9B4A3", -"Q. c #ACACFB", -"l. c #AA6C3C", -"B. c #A3A3FB", -"Do c #443838", -"po c #3E3939", -"PO c #DBC3AD", -"fO c #E4C6AD", -"~o c #8C5F41", -"[ c #AEAEAE", -"_O c #444444", -"OX c #AEAEB1", -"}. c #7872A4", -"mX c #A5A5B0", -"I. c #CFC2B7", -"2X c #CCC1B8", -"BX c #EAD1BE", -"]O c #9B7654", -"x. c #927359", -"pX c #FFE1C7", -"@ c #E1D4C9", -"p. c #7A6B5D", -"5 c #FFE4CD", -"5o c #5F5F5F", -"JX c #7270B8", -"=. c #8F7261", -"S. c #50485C", -"eX c #7B79BD", -"CX c #E4DBD3", -"Mo c #656465", -"q. c #7E7DC0", -"NO c #9B8571", -"R c #988473", -"6o c #717172", -"dX c #7A7A7A", -"Eo c #492C12", -"lX c #8181D3", -"4. c #F7841F", -"gO c #FFF6F0", -"GX c #8181D7", -"gX c #838383", -"^ c #D7AE89", -"). c #F6F6F6", -"6X c #4D4D7E", -" c #FFFFFF", -"co c #7A7A8E", -"CO c #D4B69B", -":. c #C5AE9B", -"2 c #5B4431", -"sX c #B0A79E", -"J c #5B4733", -"G c #C8B2A1", -"YX c #9E9EA3", -"&X c #656497", -"nO c #3D3D3D", -"_X c #9B97A8", -"f c #E0C6B2", -"*o c #40323D", -"8. c #6B69A0", -"< c #9A6E48", -"MX c #B0B0B3", -"; c #464646", -"4X c #4F4F4F", -"5X c #C2C2C2", -"TX c #525053", -"P. c #494150", -"}X c #4C4856", -"h. c #7A77B7", -"NX c #58585C", -"( c #CBCBCB", -"7. c #614F58", -"kX c #807FBF", -"4 c #E6DDD5", -"|X c #676667", -"t c #C4976E", -"zO c #C4976F", -"AX c #ECE2D9", -"EO c #E9E1DA", -".X c #958FC9", -/* pixels */ -" . X o O + @ # $ % & * = - ; : > , < 1 ", -" 2 3 4 5 6 7 8 9 0 q w e r ; t y u i p ", -" a s d f 6 7 8 9 0 q w e r ; t y u i p ", -" a g h j k 7 8 9 0 l w e r ; t y z i p ", -" x c v g b n m M N B V C Z A e S D t F G H J K L P ", -" I U Y g b n y T R E W Q ! ~ ^ / ( ) _ ` ' ] [ { } ", -"| ...X.o.O.g b n y +.@.#.$.%.&.*.=. -.;.:.>.,. D ", -"<.1.2.3.4.5.g b n y +.6.7.8.9.0.0.q.w.e.-.y r.t.,. D ", -"y.u.i.p.a.s.g b d.f.g.h.0.0.0.0.0.0.0.j.k.l.u t.,. D ", -" z. x.c.v.b.n.m.m.M.N.B.0.0.0.0.0.0.V.C.Z.,. D ", -" z.A.S.D.F.m.m.m.m.m.m.m.m.M.G.H.J.J.K.L.P.I. D ", -" z.U.Y.m.T.R.E.W.Q.m.m.m.m.m.m.m.!.~.^./.(.). D ", -" z._.`.'.].[.{.}.|.m.m.m.m.m. X.XXX/././.oXOX D ", -" +X@X#X$X%X&X*X=X-Xm.m.m.;X:X>X/./././.,Xo,oO,Og b n y +.oOOOBa~uwG_cH=ZIyDpi)DT5w}s!C^OVCiltI4 z?ZtLX7-28UQKcS3=P?wHA|q@aoZ^f6LMgs6FT@pJXqXcx`eH18F2DBioTY2~+|wtQ z=lOnrzwhtQT{SJn@2*`M^CQ~FaZT&fG;I$Tx3q&?;r*@rRA;=z&SGz$nc8dBudZz6 z$kzAhx*gw9?dov5I=rq92bSQg#@3H-zB4!Gw824E!%Za2%};Ik?e~r5*DKB6|GcBV zMT*{@VjEeEm)V06#niU@E*d}IE}RXlbM>iN@7PQoA~}LG2$Fczj~FjrxTvJIZH~YC zO9=kfjB{+tHcPg3+R2v#Ig)%LG~QiU^%qw&nR>(#SR7R1Y!tkDy6P|b(K`w}H)ehQ zneScppny(P8Xc{5b=s-Db*sDrMeTfJ-I29eW5De{)+jz&a1ZX!BzGr`Nkb@_H$%&d zv+lFco6o&uvVp-zZpwz$pPD3OdX)(W1SAc(?bS>#mKl-y-+90%16!~n{?Vyb_s+rxeQA(sVF=gBuwlFA8>}A z)j2hJDzMJ{3l2UKRnPnO!Up9-!Xt$^LLkh-@;XH*)b zG!e_0UwEYmcy(@BS$@v~laQiK;UW=oMe+(3Gv1vP{E>oZo%H~RRPX`k4x~>Hq|Ji4 zdSmq-aP=|uWD!BInSl$@SUl97*N61{lt+>Ss4Ulq*T9jkSSpUZI$}($C4hou(fqYZ zVr2RfdmhLmh)}ef#(L3pqp(9jqu_XfP}CIelf4Xl%#Y^<8AnJ4gylZS??00cvikKQ z9SZRRiP|ne5taiY5JY7;2?HG-efo(9Afdqp@Nq%#F&K|Vb=~Yw0?QD5p}>ogBY~a` z!lu__*mlidtVgqvn$4GdjwgD04-e;njp9={=~SvVo>#B}t|-j@T)f+e?=a~V&YU+t z?=UD*p#c2#X@7Jmmmf$oULHt4)z^!`NFfD6rHk1LRxK2xKVeYg$KQ6H1&`VXp9+Oy zs_dLB`}v^}kj*x}S{TE*RDTkE5Xu=$D<}c4XLI#KIYo5*4cC0fJ9?su=D2{);)Q=D zu!aqjblR5@`=fKZKS{RmRTSJkVp7Ni3$K~Yf-B&!86mg~p}+-Lf=iyeKjRK&?5tkQ z>Vhx6=mTk-MJ~a|T9C1mWH>opGYU2{nlNa&f-I%PS6Gf0La}twb@ydtAVuiTdMpqp zy)z*?SQ9qjoK<$RplWDV(L1PAob{_^H@H%FLB1GvOQ8TfWEsq`u(JB$REkcUY3qY5 zoDzjWBR41?RY9r)pc2V%m)zgV)jMVD+pBfJp+Kl>EZX485$cF^C6_)N(u*aRgCLuw z8v5{9r2JV#>nQBHGhswPmH~@UNW_ChAC~&LS{M-`zB2(YWlPc;^pmm!I9^yK*PV8P z>6%&cp%|H1(+BB}mg@?+St^1brI2voPUy>ECe_m`Ew1rHg95bAhe=o~)S~8vytAH! z0QJmue6=TB%vOm7E-Zhu%%Cn<*G`z^kMsv-=kf|q3VXhuAIrbkpCs8ZkF%IZqDpcy zQ%&6Y4|rQE@JU6%XT}lAmNugBS@3otAL$rupb3)z&X|Eyf{*=gmb}KaExf`abdpQK zmw`~QK>3yLHh6?Z8Bve+LVXE-*vF>){~NzNY1k)BWWg#$akZUVn>=D5`XX4Rr2|WQ zC&~~RmdP>A6g}~p$c;4ASBcpf?6Nx5I1-yy~6quMAg^jL}op5XdE}JEzfaQ73I*M@L zwR#z2=dE{Jtsf7xT1y97H!6>{-m5&=idDAFYn9G;tP0b2zlVJ^{O3v)Q!X zUV)w-t-D+6>e4zp1v)yk_I9nUO`x?E5CI$b>EM6@0ovQ6-CgqgX=jIgKHA!%%}v_a zp!IcHTcg!gT3MmxWm;OI#YI|Jp!s?7c*yN0my2d+X=a9|r)g@+g#YlcJ_+twVDER; z=V^eA`uWrkNFWP2{-YzROM-m}D4kRWB#?y(e=t~nr=~$uZyxVEKl_}YwlF{zm?+dj zjz1J?wijgB^34_?_{X;)an0{?q1-b6$q9u*6bzE-L~UwUi0NOH83zQpKbhpGLIPO;s0GR`995SD+Mpc&*%>91lt@rKPO%t8 zqZEly$+Ul!;2SiUPi$BH4g8a$LkfPc7h94X|HTER)09e4 zjT6PbMvcj$7TA(Z_%j)*OM?3YkWgP`0n`HJ#;%8rRgOQK<>?HY&8ctm0GrA1xWQ4U zr&S$QS#G*&ASV2|9CM5QPzEF_994@1jt6r5x~{$x4ad2bbFOAFXtEc}S~U%DHZbAm z{F;AVhXe?3yj1d4HUHdtjuQw@ICA{?JoEfE#)(>(JIcaD;SeSB7YbY#637BTEqLm( zs-ylTfuowtUo29gK>0jzPP$IH9A&d~S*L^vKhB8%^}31wj?TBBz57c{i39&4+{Z1n F{{X{pDVzWR diff --git a/bitmaps_xpm/image.xpm b/bitmaps_xpm/image.xpm deleted file mode 100644 index fee77a6993..0000000000 --- a/bitmaps_xpm/image.xpm +++ /dev/null @@ -1,237 +0,0 @@ -/* XPM */ -const char *image_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 215 2", -"` c Black", -"< c #EAD9C6", -"6 c #F2973F", -"_. c #D9D9D8", -"E. c #80C63D", -"D c #FCE099", -"@X c #919591", -"( c #8D832C", -"t. c #AAB2B7", -"Z. c #A9C2A2", -"f. c #AFB6B9", -"(. c #ADC5D7", -"y. c #A5ABAF", -"] c #EFD1AB", -"u. c #AAACAA", -"r c #F8B167", -"qX c #D2D2D0", -"'. c #9EC790", -") c #DEB05B", -"L c #FBD542", -"2 c #F1B97F", -"& c #D2D2D1", -"h. c #9EAAB6", -" c #FFFFFF", -"9X c #626262", -"XX c #90D94C", -"l. c #8DA1B6", -"$ c #D5D6D4", -"$X c #CBCBC9", -"m c #FAC55B", -"&. c #060502", -",X c #2E2E2E", -"X. c #3B3713", -"J. c #7C95AF", -"a c #F9AC49", -"C c #F2BD7C", -"W. c #88C54C", -"4X c #B9D2B5", -"0. c #D3D6D4", -":. c #564525", -"V c #BFC0BD", -"# c #CECFCB", -"^. c #B2D1B0", -"g c #CECFCE", -"k. c #95A6B9", -"- c #D3D3D2", -", c #E2DFD8", -"W c #FCE883", -"x. c #7A95B1", -"+ c #AEB1AC", -"' c #A4A6A1", -".X c #8AD93D", -"| c #868582", -"d c #F0BD85", -"N. c #9DDF5C", -"]. c #88C264", -"P. c #D6D7D4", -"`. c #D4DDD4", -"|. c #75D319", -"*. c #161206", -"{ c #DFD15F", -". c #675331", -"n c #FAC764", -"; c #D5D5D4", -"5X c #8EC173", -"M. c #B4D3BB", -" X c #80D62B", -"r. c #B5BDC1", -"7 c #EBD0B1", -"A c #FDE3AB", -"y c #F9B466", -"U. c #76CB26", -"<. c #8A7251", -";. c #47381B", -"t c #F9B164", -"/ c #524D1A", -"9 c #D8D9D6", -" . c #BFBFBF", -"j. c #9AA9B8", -"D. c #9FADBC", -"[ c #FCE781", -"s. c #BDC5C7", -"Q. c #8DC55A", -"d. c #BDC2C3", -"U c #C7CAC6", -"S. c #A2B1B6", -"F. c #98A9BA", -"_ c #D1D2D0", -"0 c #F0B97F", -"=. c #201909", -"9. c #D1CCC4", -"K c #FAD242", -"v c #FBCB79", -"c c #FBCE83", -"x c #FBD18E", -"3 c #F0B06F", -"6. c #816848", -"}. c #73D216", -"R. c #79C62D", -"). c #C0C0BD", -"3X c #D9DAD7", -"H c #FACF4C", -"s c #F8A93D", -"S c #FCE1A2", -"0X c #9B9E99", -"7. c #A28D6F", -"Y c #A5A6A3", -"= c #B9B9B5", -"+X c #AAAAAA", -"+. c #D2D3D0", -"oX c #ACCDB4", -"Y. c #71CF16", -"% c #D7D7D5", -"! c #FCE94F", -"N c #EFBA75", -"l c #FCD8A3", -"f c #A8AAA5", -"e. c #C1C7CA", -"* c #94948F", -"H. c #889EB5", -"~ c #CABB3F", -"1X c #ADAEAB", -"%X c #C7D8C7", -"7X c #DADBD9", -"4 c #F1A860", -"L. c #606055", -"T c #F2C48A", -"b c #FAC96E", -"C. c #ADCB98", -".. c #726A34", -"u c #F9B666", -"p c #F9B053", -"i c #F9B35D", -"=X c #75C034", -"G c #FBD361", -"Z c #FDE5B3", -"@ c #BFC1BE", -"X c #868C86", -"$. c #86712E", -": c #D8D8D6", -"c. c #708EAD", -"1 c #F0CAA4", -"-. c #362B13", -">X c #959895", -"j c #FDDFB7", -"g. c #A9B1BA", -"z. c #849BB3", -"Q c #FEFBE0", -"#X c #A9ABA8", -":X c #CFDAD0", -"K. c #AEAFAE", -"@. c #BDBEBB", -"o. c #0C0B04", -"^ c #5F581E", -"e c #F7B06A", -"> c #DBDCDA", -"*X c #81BF55", -"T. c #72CA1E", -"5. c #DBD9D4", -"i. c #939590", -"n. c #848684", -";X c #72C721", -"1. c #B3A188", -"6X c #7CB85A", -"-X c #70CA19", -"O c #9D9D99", -"p. c #9D9D9A", -"8 c #9D9D9B", -"G. c #91A4B8", -"#. c #E5D5C1", -"q c #F5B06C", -"{. c #73D116", -/* pixels */ -" . X o O + @ # $ % & * ", -" = - ; : > , < 1 2 3 4 5 6 7 8 ", -" 9 0 q w e r t y u i p a s d f ", -" g h j k l z x c v b n m M N B ", -" V C Z A S D F G H J K L P I U ", -" Y T R E W Q ! ~ ^ / ( ) _ ", -"` ' ] [ { } | ...X.o.` ` ` O.+.", -"` @.#.$.%.&.*.=.-.;.:.>.,.<.1.2.", -"3.4.5.6.7.8.9.0.q.w.e.r.t.y.u.i.", -"p.a.s.d.f.g.h.j.k.l.z.x.c.v.b.n.", -"m.M.N.B.V.C.Z.A.S.D.F.G.H.J.K.L.", -"P.I.U.Y.T.R.E.W.Q.!.~.^./.(._ ", -")._.`.'.].[.T.{.}.|. X.XXXoXOX ", -" +X@X#X$XP.%X&X*X=X-X}.;X:X>X ", -" ` ,X c #E1E1E1", -", c #B5B5B5", -"' c #A1A1A1", -") c #006B00", -"! c #008900", -"~ c #000A00", -"{ c #FAFAFA", -"] c #001800", -"^ c #464646", -"/ c #E8E8E8", -"( c #C3C3C3", -"_ c #002D00", -": c #00B500", -"< c #00A300", -"[ c #006300", -"} c #306130", -"| c #006A00", -"1 c #005900", -"2 c #5A5A5A", -"3 c #002800", -"4 c #00AB00", -"5 c #717171", -"6 c #001100", -"7 c #004900", -"8 c #00A800", -"9 c #00BB00", -"0 c #006900", -"a c #6F6F6F", -"b c #909090", -"c c #006500", -"d c #008600", -"e c #555655", -"f c #F7F7F7", -"g c #004400", -"h c #3C463C", -"i c #E6E6E6", -"j c #2D2D2D", -"k c #DFDFDF", -"l c #FCFCFC", -"m c #D4D4D4", -" ......+. ", -" .@@@@@@##. ", -".... .@$%%%%#%#.", -".&*= .-;>%%%,,'.", -" )*!~.{]^/%%%%(.", -" _:*<[}|12%%%%(.", -" 34*****15%%%(.", -" 67!89*0a%%%(.", -" .bcde%%%%(.", -" .fghi%%%%(.", -" .fjk%%%%%(.", -" .lm%%%%%%(.", -" .@%%%%%%%(.", -" .(((((((((.", -" ...........", -" "}; -#endif diff --git a/bitmaps_xpm/import3d.xpm b/bitmaps_xpm/import3d.xpm deleted file mode 100644 index 714903cb25..0000000000 --- a/bitmaps_xpm/import3d.xpm +++ /dev/null @@ -1,47 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *import3d_xpm[]; - -#else -const char *import3d_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 3 1", -"- c Black", -"X c None", -"o c Green", - -/* pixels */ -"XXXXXXXXXXXXXXXX", -"----------------", -"-oooooooooooooo-", -"X-oooooooooooo-X", -"X-oooooooooooo-X", -"XX-oooooooooo-XX", -"XX-oooooooooo-XX", -"----oooooooo----", -"X-oooooooooooo-X", -"XX-oooooooooo-XX", -"XXX-oooooooo-XXX", -"XXXX-oooooo-XXXX", -"XXXXX-oooo-XXXXX", -"XXXXXX-oo-XXXXXX", -"XXXXXXX--XXXXXXX" - -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX" - -}; -#endif diff --git a/bitmaps_xpm/import_cmp_from_lib.xpm b/bitmaps_xpm/import_cmp_from_lib.xpm deleted file mode 100644 index 03bb5e4858..0000000000 --- a/bitmaps_xpm/import_cmp_from_lib.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *import_cmp_from_lib_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"$ c #234B22", -"; c #CBAED1", -"# c #676669", -"- c #C76161", -". c #AEA8A8", -"& c #B09399", -"+ c #04B104", -"X c None", -": c #E1E0FC", -"@ c #046A04", -"o c #B97E7C", -" c #1E0D0C", -"% c #AF768C", -"O c #25311D", -"= c #CF3839", -"* c #CE4B4A", -/* pixels */ -" .Xo.XXXXXXXXX", -"O+@#X#OXXXXXXXXX", -"$@+O#$@$XXXXXXXX", -".$+++@+@$XXXXXXX", -"X%$+++++ &XXXXXX", -"XX*OO$+@=-&XXXXX", -"XX*;X#@#;&=oXXXX", -"-*=X:##:::;=.XXX", -"&o=X:;:::::*-XXX", -"X.*X:::::::&=-oX", -"XX*X:::::::&=--.", -"XX*X::::::X%-&..", -"&&*;:::::X;=&.XX", -"**=.;;;;;%=-&XXX", -"X.*=====**o&.XXX", -"XXX.&&&&&&..XXXX" -}; diff --git a/bitmaps_xpm/import_footprint_names.xpm b/bitmaps_xpm/import_footprint_names.xpm deleted file mode 100644 index 514499ad2c..0000000000 --- a/bitmaps_xpm/import_footprint_names.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *import_footprint_names_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"X c #525279", -"@ c #83848C", -"* c #242349", -"O c #4E4FB9", -" c None", -"- c #5F4A08", -": c #2B281E", -"o c #535456", -"& c #3F3E4C", -". c #6F6F6F", -"; c #C29204", -"= c #130F06", -"$ c #ACAAFC", -"+ c #8484F2", -"% c #3C3AA6", -"# c #383779", -/* pixels */ -" .XXo ", -" .XO++++OX. ", -" @O+++++++++++#@", -"#++++$+++++++O%&", -"#O@##O++*==*%%#*", -"#OOOX+X-;;-*#@@&", -"#OOOO#-;;;-&X&.o", -".X%O%-;;;:=:o:..", -" @@#*;;;=::oo ..", -" :;;-&o .o o@", -" -;;o.o o. ", -"@oo&-;;:::@ ", -" o-;;;;;=o ", -" .:;;;=. ", -" @:-=@ ", -" & " -}; diff --git a/bitmaps_xpm/import_hierarchical_label.xpm b/bitmaps_xpm/import_hierarchical_label.xpm deleted file mode 100644 index bfc82d6524..0000000000 --- a/bitmaps_xpm/import_hierarchical_label.xpm +++ /dev/null @@ -1,116 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *import_hierarchical_label_xpm[]; - -#else -const char * import_hierarchical_label_xpm[] = { -"16 16 92 2", -" c None", -". c #000000", -"+ c #020202", -"@ c #00AE00", -"# c #007000", -"$ c #7C7C7C", -"% c #3C3C3C", -"& c #E5E5E5", -"* c #EBEBEB", -"= c #98914E", -"- c #6F6500", -"; c #676767", -"> c #303030", -", c #008800", -"' c #00AD00", -") c #002600", -"! c #6A6F6A", -"~ c #005800", -"{ c #505050", -"] c #E4E4E0", -"^ c #746A09", -"/ c #8D853A", -"( c #E5E5E1", -"_ c #3F3F3F", -": c #606060", -"< c #004900", -"[ c #00BD00", -"} c #00BA00", -"| c #009A00", -"1 c #007400", -"2 c #535143", -"3 c #C9C6AE", -"4 c #C1BE9C", -"5 c #C3C3C3", -"6 c #005C00", -"7 c #00B800", -"8 c #002D00", -"9 c #544C00", -"0 c #001300", -"a c #004500", -"b c #015B01", -"c c #007800", -"d c #302C03", -"e c #BCB892", -"f c #727872", -"g c #009200", -"h c #3B3F2F", -"i c #6E6400", -"j c #DBDACD", -"k c #747674", -"l c #314131", -"m c #A49F71", -"n c #695F00", -"o c #B3AF86", -"p c #9E9E9E", -"q c #DADADA", -"r c #AAA575", -"s c #7D7880", -"t c #9B9BFF", -"u c #A5A5FF", -"v c #A4A3D8", -"w c #6E6510", -"x c #C3C0A4", -"y c #FDFDFD", -"z c #847F80", -"A c #A8A8FF", -"B c #B2B2FF", -"C c #BDBDFF", -"D c #AAA7B1", -"E c #6F660C", -"F c #B2B09E", -"G c #8B8680", -"H c #B6B6FF", -"I c #C0C0FF", -"J c #CACAFF", -"K c #D4D4FF", -"L c #8C854C", -"M c #7C7429", -"N c #918C80", -"O c #C3C3FF", -"P c #CECEFF", -"Q c #D8D8FF", -"R c #BDBAB1", -"S c #70670C", -"T c #989380", -"U c #D1D1FF", -"V c #DBDBFF", -"W c #D2D1D8", -"X c #716810", -"Y c #BEBEBE", -"Z c #969161", -"` c #9C986F", -". . . . . . . . . . . . + ", -". @ # . $ % & * = - = * ; > ", -". , ' ) . ! ~ { ] ^ / ^ ( _ : . ", -" < [ } | 1 [ ~ 2 - 3 - 4 * 5 . ", -" 6 7 [ [ [ [ 8 9 - - = * 5 . ", -" 0 a b [ c d e * e ^ ( 5 . ", -" . f g h i j * j - 4 5 . ", -" . k l m n n n n o * 5 . ", -" . p q r s t u v w x 5 . ", -" . y * r z A B C D E F . ", -" . y * r G H I J K L M . ", -" . y * r N O P Q R S F . ", -" . y * r T U V W X x 5 . ", -" . Y 5 Z n n n n ` 5 5 . ", -" . . . . . . . . . . . . ", -" "}; -#endif diff --git a/bitmaps_xpm/import_module.xpm b/bitmaps_xpm/import_module.xpm deleted file mode 100644 index 136af4ca7b..0000000000 --- a/bitmaps_xpm/import_module.xpm +++ /dev/null @@ -1,103 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* import_module_xpm[]; -#else -const char * import_module_xpm[] = { -"16 16 79 1", -" c None", -". c #000000", -"+ c #00AB00", -"@ c #007500", -"# c #007E00", -"$ c #000300", -"% c #001000", -"& c #030303", -"* c #1A1A1B", -"= c #E7E7F3", -"- c #003300", -"; c #00B600", -"> c #002300", -", c #000800", -"' c #006E00", -") c #004A00", -"! c #262626", -"~ c #C3C3C8", -"{ c #D4D4E0", -"] c #EBEAFF", -"^ c #D72E2E", -"/ c #002800", -"( c #008600", -"_ c #00B400", -": c #00BD00", -"< c #00B800", -"[ c #82828A", -"} c #EAE9FF", -"| c #E3E2FF", -"1 c #000200", -"2 c #000B00", -"3 c #007600", -"4 c #005B00", -"5 c #19191B", -"6 c #A1A1B2", -"7 c #E2E1FF", -"8 c #DBDAFF", -"9 c #A62323", -"0 c #8F1E1E", -"a c #002000", -"b c #0E0E0F", -"c c #8B8B9A", -"d c #CCCBE8", -"e c #DAD9FF", -"f c #D3D2FF", -"g c #070708", -"h c #828292", -"i c #C3C3DF", -"j c #D9D8FF", -"k c #D2D1FF", -"l c #CCCAFF", -"m c #777785", -"n c #BAB9D5", -"o c #D8D7FF", -"p c #D1D0FF", -"q c #CBC9FF", -"r c #C4C3FF", -"s c #AFAFCA", -"t c #D7D6FF", -"u c #D0CFFF", -"v c #CAC8FF", -"w c #C3C2FF", -"x c #BCBBFF", -"y c #D6D5FF", -"z c #CFCEFF", -"A c #C8C7FF", -"B c #C2C0FF", -"C c #BBBAFF", -"D c #B5B3FF", -"E c #CECDFF", -"F c #C7C6FF", -"G c #C1BFFF", -"H c #BAB8FF", -"I c #B4B2FF", -"J c #AFADFF", -"K c #C6C5FF", -"L c #C0BEFF", -"M c #B9B7FF", -"N c #B2B1FF", -"... . ", -".+@. ... ... ", -".#+$..%&..*=. ", -" -;#>,')!~{].^^ ", -" ./(_:<:/[}|.^^ ", -" ..12345678. ", -" 90.abcdef.^^ ", -" ^^.ghijkl.^^ ", -" .mnopqr. ", -" ^^.stuvwx.^^ ", -" ^^.yzABCD.^^ ", -" .EFGHIJ. ", -" .KLMNJJ. ", -" ........ ", -" ", -" "}; - -#endif diff --git a/bitmaps_xpm/info.xpm b/bitmaps_xpm/info.xpm deleted file mode 100644 index ebd86a30ce..0000000000 --- a/bitmaps_xpm/info.xpm +++ /dev/null @@ -1,87 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *info_xpm[]; - -#else -const char * info_xpm[] = { -"16 16 63 1", -" c None", -". c #000000", -"+ c #9CA3AA", -"@ c #B4BCC3", -"# c #E0E9F0", -"$ c #CDDAE7", -"% c #9DAAB6", -"& c #848F9B", -"* c #E6ECF2", -"= c #E7EEF4", -"- c #DEE7EF", -"; c #CBD9E7", -"> c #B5CADD", -", c #9BB5CE", -"' c #596776", -") c #DBE5EE", -"! c #F2F2F2", -"~ c #727679", -"{ c #D0DDE9", -"] c #BACCDF", -"^ c #AAC2D8", -"/ c #9DB1C5", -"( c #D7E2EC", -"_ c #85898D", -": c #A8B0B6", -"< c #A3AEBA", -"[ c #6F7B86", -"} c #C4D4DF", -"| c #C1CBD9", -"1 c #BDCFE0", -"2 c #CDDBE8", -"3 c #79838D", -"4 c #828B93", -"5 c #D7E1E7", -"6 c #CED5E0", -"7 c #8597A8", -"8 c #ADC2D4", -"9 c #B7C8D9", -"0 c #BCCDDC", -"a c #C4D1DF", -"b c #8A939A", -"c c #D1DAE2", -"d c #868F97", -"e c #6D7F90", -"f c #93A7B9", -"g c #A1B4C4", -"h c #8A95A1", -"i c #868F9A", -"j c #7E8892", -"k c #B4AA89", -"l c #C4B069", -"m c #A19156", -"n c #A49B7E", -"o c #F8EECD", -"p c #FDFDFB", -"q c #F6E9BD", -"r c #D8C274", -"s c #686350", -"t c #F5F0DF", -"u c #FCF8EC", -"v c #EADFB7", -"w c #B2A05F", -"x c #3B382D", -" ", -" .... ", -" .+@#$%&. ", -" .+*=-;>,'. ", -" .)=!~{]^/. ", -" .(-_:<[}|. ", -" .1;{23456. ", -" 7890abcd. ", -" .efghij. ", -" .klmn. ", -" .opqr. ", -" slms ", -" .tuvw. ", -" x... ", -" .. ", -" "}; -#endif diff --git a/bitmaps_xpm/insert_module_board.xpm b/bitmaps_xpm/insert_module_board.xpm deleted file mode 100644 index e4948c723e..0000000000 --- a/bitmaps_xpm/insert_module_board.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* insert_module_board_xpm[]; -#else -const char * insert_module_board_xpm[] = { -"16 16 49 1", -" c None", -". c #000000", -"+ c #0F0F0E", -"@ c #FFF000", -"# c #FEFEFF", -"$ c #F9AB7F", -"% c #F55A00", -"& c #888883", -"* c #FFFFFF", -"= c #C8C36C", -"- c #8F8926", -"; c #D79B76", -"> c #DE5B0B", -", c #FDFDFE", -"' c #918800", -") c #2E2C10", -"! c #040404", -"~ c #E65400", -"{ c #DE6013", -"] c #BDB8B6", -"^ c #050506", -"/ c #F9F9FF", -"( c #F5F5FF", -"_ c #F1F1FF", -": c #EEEEFF", -"< c #CFCFE2", -"[ c #FCFCFF", -"} c #F8F8FF", -"| c #F1A37F", -"1 c #ED9F7F", -"2 c #DADAF7", -"3 c #060606", -"4 c #DEDEFF", -"5 c #070708", -"6 c #FBFBFF", -"7 c #F7F7FF", -"8 c #F4F4FF", -"9 c #F0F0FF", -"0 c #ECECFF", -"a c #E9E9FF", -"b c #E99B7F", -"c c #DADAFF", -"d c #F3F3FF", -"e c #E8E8FF", -"f c #E4E4FF", -"g c #E1E1FF", -"h c #DDDDFF", -"i c #D9D9FF", -"j c #D5D5FF", -"...........+@+ ", -".#$%$###&++@@@++", -".#%*%%%%+=@@@@@@", -".#$%$##*&+-@@@-+", -".######;>;+@@@+ ", -".#%%%%>>*+@@-@@+", -".#####,;>'@+++@'", -".#$%$##**)+! +)", -".#%*%%%%~{]^ ", -".#$%$/(_:<]^ ", -".##[}(_|%123 ", -".#%%%%%%*%45 ", -".67890a1%bc5 ", -".7d90efghij5 ", -"............ ", -" "}; - -#endif diff --git a/bitmaps_xpm/invert_module.xpm b/bitmaps_xpm/invert_module.xpm deleted file mode 100644 index 87630ad8c5..0000000000 --- a/bitmaps_xpm/invert_module.xpm +++ /dev/null @@ -1,55 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* invert_module_xpm[]; -#else -const char * invert_module_xpm[] = { -"16 16 31 1", -" c None", -". c #000000", -"+ c #696969", -"@ c #C0C0C0", -"# c #B8B8C0", -"$ c #D72E2E", -"% c #FFFFFF", -"& c #F5F4FF", -"* c #EBEAFF", -"= c #F5F5FF", -"- c #EBEBFF", -"; c #E1E1FF", -"> c #F6F5FF", -", c #ECEBFF", -"' c #E2E1FF", -") c #D8D7FF", -"! c #ECECFF", -"~ c #E2E2FF", -"{ c #CECDFF", -"] c #E3E2FF", -"^ c #D9D8FF", -"/ c #CFCEFF", -"( c #C5C4FF", -"_ c #BBBAFF", -": c #D0CFFF", -"< c #C6C5FF", -"[ c #BCBAFF", -"} c #B2B0FF", -"| c #BCBBFF", -"1 c #B3B1FF", -"2 c #AFADFF", -" . ", -" ", -" . ", -" ++ ++. .. .. ", -" ++++++ .@..#. ", -".++++++.$.%%&*.$", -".++++++.$.%=-;.$", -" ++++++ .>,'). ", -".++++++.$.!~){.$", -".++++++.$.]^/(.$", -" ++++++ .^/(_. ", -".++++++.$.:<[}.$", -".++++++.$.<|12.$", -" ++++++ ...... ", -" . ", -" . "}; - -#endif diff --git a/bitmaps_xpm/invisible_text.xpm b/bitmaps_xpm/invisible_text.xpm deleted file mode 100644 index b125f785a7..0000000000 --- a/bitmaps_xpm/invisible_text.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *invisible_text_xpm[]; - -#else -const char *invisible_text_xpm[] = { -"16 16 4 1", -" c None", -". c #00009B", -"+ c #000098", -"@ c #00005D", -" .............. ", -" ", -" .+ .... .. ", -" .@ .... . ", -" ", -" ", -" .... ", -" .... ", -" ", -" .... ", -" ", -" .... ", -" ", -" .....+ ", -" ........ ", -" "}; -#endif diff --git a/bitmaps_xpm/jigsaw.xpm b/bitmaps_xpm/jigsaw.xpm deleted file mode 100644 index 65a878014e..0000000000 --- a/bitmaps_xpm/jigsaw.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * jigsaw_xpm[]; - -#else -const char * jigsaw_xpm[] = { -"16 15 5 1", -" c none", -". c #645264", -"X c #F4F26c", -"o c #A44e08", -"O c #F4F2F4", -" .... ", -" ... .. ", -" ... .. ", -".. .. ", -".. .. X", -".. .. XX", -".. .. .X ", -".. .. .Xo ", -".. .. Oo ", -".. ..OO ", -".. .. ", -".. ", -".. ", -".. ", -" "}; -#endif diff --git a/bitmaps_xpm/kicad_icon_small.xpm b/bitmaps_xpm/kicad_icon_small.xpm deleted file mode 100644 index bc8e25f819..0000000000 --- a/bitmaps_xpm/kicad_icon_small.xpm +++ /dev/null @@ -1,42 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * kicad_icon_small_xpm[]; - -#else -const char * kicad_icon_small_xpm[] = { -"16 16 16 1", -" c none", -". c #634931", -"X c #c49c7b", -"o c #e6d0bd", -"O c #c5b9af", -"+ c #8a6c5c", -"@ c #e9bb91", -"# c #f49640", -"$ c #bc7334", -"% c #8b8086", -"& c #716c94", -"* c #472b14", -"= c #827fc6", -"- c #aaa9f3", -"; c #a57f60", -": c #a29ca7", - -" ", -" .$@o%@@.X#. ", -" XX##XOo@OXX%& ", -"*$.###%=&-X#oO ", -"*+;#%=----&$oO ", -" O==-------& O ", -" :&=&=---===O% ", -" :&==--===::@o@O", -" :&=====:O&+ooOo", -" O%+==:O&%%%O: ", -" :X#$&&%;+o% O ", -"*$$###;X;:##oO ", -"*+$###XXX XXoO ", -" %+##X%o@+XX.. ", -" .#Xo%@O.X#. ", -" .Xoo+@@.X#. " -}; -#endif diff --git a/bitmaps_xpm/label.xpm b/bitmaps_xpm/label.xpm deleted file mode 100644 index 06678a7e47..0000000000 --- a/bitmaps_xpm/label.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *label_xpm[]; - -#else -const char * label_xpm[] = { -"16 15 3 1", -" c None", -". c Black", -"x c Green", - -/* bitmap */ -" ", -" .. ", -" .... ", -" . ... ", -" .. ... ", -" . .. ", -" .. ... ", -" ........ ", -" . ... ", -" .. .. ", -" . ... ", -" .. .... ", -" ", -"xxxxxxxxxxxxxxxx", -"xxxxxxxxxxxxxxxx"}; -#endif diff --git a/bitmaps_xpm/label2glabel.xpm b/bitmaps_xpm/label2glabel.xpm deleted file mode 100644 index 454678ba31..0000000000 --- a/bitmaps_xpm/label2glabel.xpm +++ /dev/null @@ -1,58 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *label2glabel_xpm[]; - -#else -const char * label2glabel_xpm[] = { -"16 16 34 1", -" c None", -". c #000000", -"+ c #00AA00", -"@ c #007900", -"# c #008200", -"$ c #00B300", -"% c #002900", -"& c #005F00", -"* c #695F00", -"= c #004300", -"- c #00BD00", -"; c #00BC00", -"> c #009C00", -", c #007300", -"' c #6A6000", -") c #675D00", -"! c #635900", -"~ c #4A4300", -"{ c #005700", -"] c #00B800", -"^ c #003300", -"/ c #5E5500", -"( c #574F00", -"_ c #625800", -": c #000F00", -"< c #004800", -"[ c #007D00", -"} c #000100", -"| c #009600", -"1 c #000800", -"2 c #4F4700", -"3 c #001500", -"4 c #685D00", -"5 c #696000", -" .. ", -" .... ", -" .... ", -" .... ", -".. .. ", -".. .. ", -" ", -"... ", -".+@. . ", -".#$% .&. ** ", -" =-;>,-&. ')!~ ", -" .{]----^ */(_ ", -" :<{-[} **** ", -" .|1 2) !~ ", -" .3 4/ 5_ ", -" "}; -#endif diff --git a/bitmaps_xpm/label2text.xpm b/bitmaps_xpm/label2text.xpm deleted file mode 100644 index 559fcaeb16..0000000000 --- a/bitmaps_xpm/label2text.xpm +++ /dev/null @@ -1,59 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *label2text_xpm[]; - -#else -const char * label2text_xpm[] = { -"16 16 35 1", -" c None", -". c #000000", -"+ c #00009B", -"@ c #00AA00", -"# c #007900", -"$ c #000070", -"% c #000074", -"& c #000093", -"* c #008200", -"= c #00B300", -"- c #002900", -"; c #005F00", -"> c #000092", -", c #00006F", -"' c #004300", -") c #00BD00", -"! c #00BC00", -"~ c #009C00", -"{ c #007300", -"] c #005700", -"^ c #00B800", -"/ c #003300", -"( c #000F00", -"_ c #004800", -": c #007D00", -"< c #000100", -"[ c #000087", -"} c #009600", -"| c #000800", -"1 c #000091", -"2 c #000079", -"3 c #001500", -"4 c #00009A", -"5 c #000098", -"6 c #000072", -" .. ", -" .... ", -" .... ", -" .... ", -".. .. ", -".. .. ", -" ", -"... +++++++ ", -".@#. . + $+% & ", -".*=- .;. >+, ", -" ')!~{);. +, ", -" .]^))))/ +, ", -" (_]):< [+, ", -" .}| 1+2 ", -" .3 +456 ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_catalan.xpm b/bitmaps_xpm/lang_catalan.xpm deleted file mode 100644 index 60a520cea4..0000000000 --- a/bitmaps_xpm/lang_catalan.xpm +++ /dev/null @@ -1,41 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_catalan_xpm[]; - -#else -const char *lang_catalan_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 14 1", -"* c #E40E04", -"@ c #F4C20C", -" c #FCFE04", -"X c #F40604", -"& c #FCA60C", -"o c #FC0204", -". c #FCE60C", -"= c #FCE614", -"- c #FCE61C", -"O c #F42E04", -"+ c #FCFA04", -"% c #F48E0C", -"$ c #F46204", -"# c #F4620C", -/* pixels */ -" ", -"................", -"XoXoXXoXoXoXoXoX", -"OOOOOOOOOOOOOOOO", -"++++++++++++++++", -"@@@@@@@@@@@@@@@@", -"oooooooooooooooo", -"#$#$#$#$#$#$#$#$", -"+ + + + +++ + + ", -"%%%%%%%%%%%%%%%%", -"XXXXXXXXXXXXXXXX", -"&&&&&&&&&&&&&&&&", -" ", -"$$$$$$$$$$$$$$$$", -"****************", -"=-=-=-=-=-=-=-=-" -}; -#endif diff --git a/bitmaps_xpm/lang_chinese.xpm b/bitmaps_xpm/lang_chinese.xpm deleted file mode 100644 index 79c5a0c87b..0000000000 --- a/bitmaps_xpm/lang_chinese.xpm +++ /dev/null @@ -1,43 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_chinese_xpm[]; - -#else -const char *lang_chinese_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -". c #E42814", -"X c #DC1A1C", -"& c #FCFE04", -"; c #EC6A14", -"% c #FCF20C", -"# c #EC5E14", -"$ c #F4B20C", -"+ c #DB031C", -"@ c #F4A60C", -"o c #DC0D1C", -"O c #E43E14", -"* c #F49A0C", -"- c #E45214", -" c #DC1519", -"= c #EC7A0C", -": c #E44614", -/* pixels */ -" .. . X", -"X oO+ o@#+ ", -" ++$ ++o+@o . X", -"X.%&&*o o= ", -" +.&&+ + + . X", -"Xo-+O oo& ", -" o o#.++. X", -" X ;: . ", -" . . oo X", -"X . . ", -" . . . X", -"X ", -" . . . . . X", -"XX X X", -"X X X X X X", -"XXXXXXXXXXXXXXXX" -}; -#endif diff --git a/bitmaps_xpm/lang_cs.xpm b/bitmaps_xpm/lang_cs.xpm deleted file mode 100644 index 58688c593d..0000000000 --- a/bitmaps_xpm/lang_cs.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_cs_xpm[]; - -#else -const char * lang_cs_xpm[] = { -"16 16 5 1", -". c None", -"# c #000000", -"a c #1000ff", -"c c #ff0000", -"b c #ffffff", -"................", -"................", -"##############..", -"#abbbbbbbbbbb#..", -"#aabbbbbbbbbb#..", -"#aaabbbbbbbbb#..", -"#aaaabbbbbbbb#..", -"#aaaaabbbbbbb#..", -"#aaaacccccccc#..", -"#aaaccccccccc#..", -"#aacccccccccc#..", -"#accccccccccc#..", -"##############..", -"................", -"................", -"................"}; -#endif diff --git a/bitmaps_xpm/lang_de.xpm b/bitmaps_xpm/lang_de.xpm deleted file mode 100644 index 950acb219a..0000000000 --- a/bitmaps_xpm/lang_de.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_de_xpm[]; - -#else -const char * lang_de_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"@ c #000000", -"# c #C00000", -"+ c #C0C000", -" ", -" ", -".............. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".############. ", -".############. ", -".############. ", -".++++++++++++. ", -".++++++++++++. ", -".++++++++++++. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_default.xpm b/bitmaps_xpm/lang_default.xpm deleted file mode 100644 index 17af211de7..0000000000 --- a/bitmaps_xpm/lang_default.xpm +++ /dev/null @@ -1,76 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_def_xpm[]; - -#else -const char * lang_def_xpm[] = { -"16 16 52 1", -" c None", -". c #000000", -"+ c #C3C3C3", -"@ c #020202", -"# c #A9A9A9", -"$ c #0B0B0B", -"% c #9D9D9D", -"& c #060606", -"* c #DCDBD9", -"= c #ECECEC", -"- c #B1B1AF", -"; c #484641", -"> c #9E9C95", -", c #86857F", -"' c #9C9B97", -") c #908F89", -"! c #8F8D85", -"~ c #96948D", -"{ c #7F7C73", -"] c #474540", -"^ c #595854", -"/ c #605E57", -"( c #888782", -"_ c #807D74", -": c #75736A", -"< c #43423F", -"[ c #282724", -"} c #363430", -"| c #6C6A62", -"1 c #EDEDEC", -"2 c #B5B4AE", -"3 c #21201E", -"4 c #0A0908", -"5 c #181816", -"6 c #E5E5E3", -"7 c #64625B", -"8 c #5F5D56", -"9 c #9D9B94", -"0 c #878681", -"a c #35332F", -"b c #151513", -"c c #8A8987", -"d c #DDDCDA", -"e c #AEADA7", -"f c #B4B3AD", -"g c #E4E4E2", -"h c #D3D2CF", -"i c #918F89", -"j c #A9A7A1", -"k c #5C5B54", -"l c #585753", -"m c #484842", -" ", -" ", -".............. ", -".++++++++++++. ", -".++++++++++++. ", -".++++++++@@@+. ", -".++++#$$%&*&%.. ", -".++++$=-$;>;$,..", -".++++$')>>>!~{].", -".++++%$>>^/(_:. ", -".+++@@;>/<[}>|].", -".+++@12>^3456{78", -"......]90abcd7].", -" ..e{fghi7. ", -" .fj9{{::k].", -" ..l.]:].m.."}; -#endif diff --git a/bitmaps_xpm/lang_en.xpm b/bitmaps_xpm/lang_en.xpm deleted file mode 100644 index 8ef978adbe..0000000000 --- a/bitmaps_xpm/lang_en.xpm +++ /dev/null @@ -1,45 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_en_xpm[]; - -#else -const char * lang_en_xpm[] = { -"16 16 21 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #A2A2E8", -"# c #0D0DC3", -"$ c #0000C0", -"% c #F77F7F", -"& c #5D5DD6", -"* c #F2F2FB", -"= c #DBDBF6", -"- c #3434CC", -"; c #2424C8", -"> c #CBCBF2", -", c #FAFAFD", -"' c #7474DC", -") c #8080DF", -"! c #8282DF", -"~ c #C5C5F0", -"{ c #FEFEFE", -"] c #F00000", -"^ c #EF0000", -" ", -" ", -".............. ", -".+@#$$%%$$#@+. ", -".&*=-$%%$-=*&. ", -".$;>,'%%',>;$. ", -".))!~{%%{~!)). ", -".]]]]]^^]]]]]. ", -".))!~{%%{~!)). ", -".$;>,'%%',>;$. ", -".&*=-$%%$-=*&. ", -".+@#$$%%$$#@+. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_es.xpm b/bitmaps_xpm/lang_es.xpm deleted file mode 100644 index 0c91ee25f6..0000000000 --- a/bitmaps_xpm/lang_es.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_es_xpm[]; - -#else -const char * lang_es_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"+ c #F00000", -"@ c #B47800", -"# c #F0F000", -" ", -" ", -".............. ", -".++++++++++++. ", -".++++++++++++. ", -".@@@@@@@@@@@@. ", -".############. ", -".############. ", -".############. ", -".@@@@@@@@@@@@. ", -".++++++++++++. ", -".++++++++++++. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_fi.xpm b/bitmaps_xpm/lang_fi.xpm deleted file mode 100644 index abe459cf6a..0000000000 --- a/bitmaps_xpm/lang_fi.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -const char * lang_fi_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 11 1", -": c none", -" c #FFFFFF", -"X c #003580", -"@ c #ACBDD5", -"O c #B1C1D8", -"o c #F7F9FB", -"% c #95ABCB", -"# c #9AAFCD", -"+ c #466CA3", -"$ c #3D659E", -". c #6585B2", -/* pixels */ -"::::::::::::::::", -"::::::::::::::::", -"::::::::::::::::", -" .XXo ", -" .XXo ", -" .XXo ", -"OOOO+XX@OOOOOOOO", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"####$XX%########", -" .XXo ", -" .XXo ", -" .XXo ", -"::::::::::::::::", -"::::::::::::::::", -"::::::::::::::::" -}; diff --git a/bitmaps_xpm/lang_fr.xpm b/bitmaps_xpm/lang_fr.xpm deleted file mode 100644 index acf12b39ff..0000000000 --- a/bitmaps_xpm/lang_fr.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_fr_xpm[]; - -#else -const char * lang_fr_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"+ c #0000D2", -"@ c #FFFFFF", -"# c #F00000", -" ", -" ", -".............. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_gr.xpm b/bitmaps_xpm/lang_gr.xpm deleted file mode 100644 index 812eca21b6..0000000000 --- a/bitmaps_xpm/lang_gr.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *lang_gr_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"= c none", -"& c #D6D8F8", -"O c #3939DC", -"+ c #0E12F2", -"# c #A8A6F7", -"o c #2826E4", -": c #B4B6FC", -"* c #8482F4", -"@ c #4745F8", -"- c #1C1EFC", -"; c #1D22FB", -"$ c #9C9AF4", -". c #CAC8FA", -" c #0402FC", -"% c #5456F4", -"X c #7A79F9", -/* pixels */ -"================", -" .XoOOOOOoo++++", -" .X @#########$", -"%%&#%*##########", -"&&=&&* ", -" .X %.&&&&&&&&&", -" .X -@@@@@@@@@@", -"@@&$@@@@@@@@@@@@", -" ", -";--;-----------;", -"*XXXXXXXXXXXXXXX", -"&&&&&&&&&&&&&&&&", -" ", -"::::::::::::::::", -"================", -"================" -}; diff --git a/bitmaps_xpm/lang_hu.xpm b/bitmaps_xpm/lang_hu.xpm deleted file mode 100644 index dfdad5f5d8..0000000000 --- a/bitmaps_xpm/lang_hu.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_hu_xpm[]; - -#else -const char * lang_hu_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"@ c #D00000", -"# c #F0F0F0", -"+ c #00C000", -" ", -" ", -".............. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".############. ", -".############. ", -".############. ", -".++++++++++++. ", -".++++++++++++. ", -".++++++++++++. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_it.xpm b/bitmaps_xpm/lang_it.xpm deleted file mode 100644 index a0415f2c4f..0000000000 --- a/bitmaps_xpm/lang_it.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_it_xpm[]; - -#else -const char * lang_it_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"+ c #008000", -"@ c #FFFFFF", -"# c #F00000", -" ", -" ", -".............. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".++++@@@@####. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_jp.xpm b/bitmaps_xpm/lang_jp.xpm deleted file mode 100644 index 0f65008fa7..0000000000 --- a/bitmaps_xpm/lang_jp.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_jp_xpm[]; - -#else -const char * lang_jp_xpm[] = { -"16 16 4 1", -" c None", -"# c #FFFFFF", -"@ c #BE0027", -": c #DEAAC7", -" ", -" ", -" ", -"################", -"################", -"######:@@:######", -"#####:@@@@:#####", -"#####@@@@@@#####", -"#####@@@@@@#####", -"#####:@@@@:#####", -"######:@@:######", -"################", -"################", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_ko.xpm b/bitmaps_xpm/lang_ko.xpm deleted file mode 100644 index a199433367..0000000000 --- a/bitmaps_xpm/lang_ko.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_ko_xpm[]; - -#else -const char * lang_ko_xpm[] = -{ -"16 16 17 1", - -" c None", -"A c #881844", -"B c #8F8F8F", -"C c #D0D2D0", -"D c #AFB0AF", -"E c #0C4A82", -"F c #F8F9F8", -"G c #F4AAB4", -"H c #3C3668", -"I c #EC8E9C", -"J c #797979", -"K c #D80A2A", -"L c #5C5E5C", -"M c #98B4CC", -"N c #E1DFDF", -"O c #A2A1A2", -"P c #C4C2C4", -" ", -" ", -" ", -"NNFNFNFFNFFNFNFC", -"FFFJPFFFFFFDOFFN", -"FFBLOFFFFFFDJOFN", -"FFFDFFIKKGFFDFFN", -"FFFFFNKKHHFFFFFN", -"FFFFFFAAEEFFFFFN", -"FFFPFFMEEPFFPFFN", -"FFBBOFFFFFFPBDFN", -"FFFJOFFFFFFBDFFN", -"NFFNFFFFFFFFNFFC", -" ", -" ", -" " -}; -#endif diff --git a/bitmaps_xpm/lang_nl.xpm b/bitmaps_xpm/lang_nl.xpm deleted file mode 100644 index 507b789ea9..0000000000 --- a/bitmaps_xpm/lang_nl.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_nl_xpm[]; - -#else -const char *lang_nl_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 3 1", -". c #FCFEFC", -" c #AC1E2C", -"X c #24468C", -/* pixels */ -" ", -" ", -" ", -" ", -" ", -"................", -"................", -"................", -"................", -"................", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXXXX" -}; -#endif diff --git a/bitmaps_xpm/lang_pl.xpm b/bitmaps_xpm/lang_pl.xpm deleted file mode 100644 index fc98a34103..0000000000 --- a/bitmaps_xpm/lang_pl.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_pl_xpm[]; - -#else -const char * lang_pl_xpm[] = { -"16 16 4 1", -" c None", -". c #000000", -"@ c #F0F0F0", -"+ c #C00000", -" ", -" ", -".............. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".++++++++++++. ", -".++++++++++++. ", -".++++++++++++. ", -".++++++++++++. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_pt.xpm b/bitmaps_xpm/lang_pt.xpm deleted file mode 100644 index 6c91c703ad..0000000000 --- a/bitmaps_xpm/lang_pt.xpm +++ /dev/null @@ -1,40 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_pt_xpm[]; - -#else -const char * lang_pt_xpm[] = { -"16 16 16 1", -" c None", -". c #000000", -"+ c #00C000", -"@ c #0FC200", -"# c #9CDF00", -"$ c #3DCC00", -"% c #D4E901", -"& c #ABBD37", -"* c #07C100", -"= c #84DA00", -"- c #EFEF00", -"; c #678B6D", -"> c #0040C0", -", c #9ADE00", -"' c #F0F000", -") c #1952AC", -" ", -" ", -".............. ", -".++++++++++++. ", -".++++@##@++++. ", -".+++$%&&%$+++. ", -".+*=-;>>;-=*+. ", -".+,'')>>)'',+. ", -".+*=-;>>;-=*+. ", -".+++$%&&%$+++. ", -".++++@##@++++. ", -".++++++++++++. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_ru.xpm b/bitmaps_xpm/lang_ru.xpm deleted file mode 100644 index 30333f6ff0..0000000000 --- a/bitmaps_xpm/lang_ru.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_ru_xpm[]; - -#else -const char * lang_ru_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"@ c #FFFFFF", -"# c #1000FF", -"+ c #C00000", -" ", -" ", -".............. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".@@@@@@@@@@@@. ", -".############. ", -".############. ", -".############. ", -".++++++++++++. ", -".++++++++++++. ", -".++++++++++++. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lang_sl.xpm b/bitmaps_xpm/lang_sl.xpm deleted file mode 100644 index 6be3f1b4ef..0000000000 --- a/bitmaps_xpm/lang_sl.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lang_sl_xpm[]; - -#else -const char * lang_sl_xpm[] = { -"16 16 5 1", -" c None", -". c #000000", -"@ c #F0F0F0", -"# c #0000FF", -"+ c #C00000", -" ", -" ", -".............. ", -".@@@@@@@@@@@@. ", -".@####@@@@@@@. ", -".@#@@#@@@@@@@. ", -".#@@@@#######. ", -".##@@########. ", -".############. ", -".++++++++++++. ", -".++++++++++++. ", -".++++++++++++. ", -".............. ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/language.xpm b/bitmaps_xpm/language.xpm deleted file mode 100644 index e3e426a012..0000000000 --- a/bitmaps_xpm/language.xpm +++ /dev/null @@ -1,116 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *language_xpm[]; - -#else -const char * language_xpm[] = { -"16 16 92 2", -" c None", -". c #000000", -"+ c #7F91A3", -"@ c #C0C8D1", -"# c #FAFAFA", -"$ c #8495A7", -"% c #597088", -"& c #8395A6", -"* c #DFE3E7", -"= c #F9F9F9", -"- c #F7F7F7", -"; c #EDEDED", -"> c #F3F3F3", -", c #DDDDDD", -"' c #8C9CAD", -") c #5D738B", -"! c #4A637D", -"~ c #798C9F", -"{ c #D9DEE2", -"] c #F1F1F1", -"^ c #F4F4F4", -"/ c #8F9FAF", -"( c #4F6781", -"_ c #3D5874", -": c #33506D", -"< c #AA5C50", -"[ c #C95841", -"} c #E35D3E", -"| c #E46345", -"1 c #CE5236", -"2 c #8B9BAC", -"3 c #3C5774", -"4 c #8394A6", -"5 c #324F6D", -"6 c #AA5C51", -"7 c #7FBF5F", -"8 c #84C166", -"9 c #97C97A", -"0 c #FFFFFF", -"a c #FDFBF9", -"b c #F59B5E", -"c c #FA9D5F", -"d c #EE6306", -"e c #687C92", -"f c #905957", -"g c #DD5A3C", -"h c #8EC672", -"i c #4BA51F", -"j c #51A521", -"k c #FBFBFB", -"l c #F2F2F2", -"m c #F2EEEB", -"n c #FF7011", -"o c #FF7E29", -"p c #E77528", -"q c #91C876", -"r c #3F9F0F", -"s c #48A015", -"t c #F0F0F0", -"u c #F8F5F2", -"v c #FF7C25", -"w c #FF812D", -"x c #E76F1F", -"y c #8DC671", -"z c #359A03", -"A c #459D12", -"B c #F6F6F6", -"C c #FCF9F6", -"D c #FF812E", -"E c #FF7B24", -"F c #E76813", -"G c #85C267", -"H c #329700", -"I c #439A12", -"J c #FCFCFC", -"K c #FFFBF8", -"L c #FF7317", -"M c #E76006", -"N c #7FBF60", -"O c #319500", -"P c #419511", -"Q c #FFFBF9", -"R c #FF7418", -"S c #FF6C0A", -"T c #E75D01", -"U c #358F08", -"V c #2B8300", -"W c #3C8810", -"X c #E7E7E7", -"Y c #E7E4E2", -"Z c #E76209", -"` c #D45400", -" ", -". . . . . . . . . . . ", -". + @ # # # # # # # . ", -". $ % & * = - ; > , . ", -". ' ) ! ~ { ] ^ ^ , . ", -". / ( _ : < [ } | 1 . ", -". 2 3 : . . . . . . . . . . . ", -". 4 5 6 . 7 8 9 0 0 a b c d . ", -". e f g . h i j k l m n o p . ", -". . . . . q r s ^ t u v w x . ", -" . y z A t B C D E F . ", -" . G H I ^ J K E L M . ", -" . N O P # 0 Q R S T . ", -" . U V W X X Y Z T ` . ", -" . . . . . . . . . . . ", -" "}; -#endif diff --git a/bitmaps_xpm/layers_manager.xpm b/bitmaps_xpm/layers_manager.xpm deleted file mode 100644 index e6993da31f..0000000000 --- a/bitmaps_xpm/layers_manager.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *layers_manager_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"X c #3A3916", -"o c #165304", -"& c #534D52", -"; c #375884", -" c #1A6C08", -". c #AE1D04", -"O c None", -"% c #678B87", -"$ c #616E7F", -"# c #6A4E40", -"- c #587FAA", -"+ c #0A8108", -": c #9CBADC", -"@ c #796E50", -"= c #2E2320", -"* c #7699AC", -/* pixels */ -" ..........XoOO", -"oo........... OO", -"X++++++++++ .oOO", -"O+++++++++++..XO", -"O ++++++++++X.oO", -"Oo++++@ ++++ .#O", -"OX++++@@@+++ $%&", -"OO+@ ++@@+++%*$X", -"OO @@@@##@+%%@+o", -"OOo+@@@@#&*%+++ ", -"OOOOOOO=$*$@OOOO", -"OOOOO=$*-$##@=OO", -"OOOO&-*-;OX@#@XO", -"OOO;:*$;OOO=@@%=", -"OOO;--;OOOOOO#@O", -"OOOO&&OOOOOOOOOO" -}; diff --git a/bitmaps_xpm/leave_sheet.xpm b/bitmaps_xpm/leave_sheet.xpm deleted file mode 100644 index 55af9c7571..0000000000 --- a/bitmaps_xpm/leave_sheet.xpm +++ /dev/null @@ -1,82 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *leave_sheet_xpm[]; - -#else -const char * leave_sheet_xpm[] = { -"16 16 58 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #242424", -"# c #FDFDFD", -"$ c #EBEBEB", -"% c #787878", -"& c #484848", -"* c #1C1C1C", -"= c #FBFBFB", -"- c #444444", -"; c #616161", -"> c #DADADA", -", c #060606", -"' c #C6C6C6", -") c #1B1B1B", -"! c #F7F7FD", -"~ c #E5E5F3", -"{ c #D9D9F0", -"] c #CCCCEE", -"^ c #C1C1EB", -"/ c #B5B5E8", -"( c #F6F6FD", -"_ c #EAEAFA", -": c #DEDEF7", -"< c #D2D2F5", -"[ c #C5C5F2", -"} c #B9B9EF", -"| c #ADADED", -"1 c #232323", -"2 c #DBDBE1", -"3 c #E9E9FA", -"4 c #DDDDF7", -"5 c #D1D1F4", -"6 c #B8B8EF", -"7 c #ACACEC", -"8 c #A0A0EA", -"9 c #212123", -"0 c #C4C4DC", -"a c #D0D0F4", -"b c #C4C4F2", -"c c #B7B7EF", -"d c #ABABEC", -"e c #9F9FEA", -"f c #9393E7", -"g c #1D1D22", -"h c #AEAED7", -"i c #060607", -"j c #050507", -"k c #040407", -"l c #1A1A22", -"m c #E8E8E8", -"n c #E6E6E6", -"o c #E4E4E4", -"p c #B8B8B8", -"q c #0C0C0C", -"r c #BEBEBE", -"s c #C3C3C3", -" ", -" ........ ", -" .++++++@. ", -" ...#$$$$$%&.", -" *..=$$$$$-;.", -" *>..,,,,$$$')", -" *>!~{]^/.$$$')", -" *>(_:<[}|.$$$')", -".12345[678.$$$')", -" .90abcdef.$$$')", -" .ghijjjk.$$$')", -" .l...mno$$$pq", -" ....$$$$$$pq", -" .rsssssss.", -" ..........", -" "}; -#endif diff --git a/bitmaps_xpm/left.xpm b/bitmaps_xpm/left.xpm deleted file mode 100644 index f55d5f1f6c..0000000000 --- a/bitmaps_xpm/left.xpm +++ /dev/null @@ -1,50 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *left_xpm[]; - -#else -const char * left_xpm[] = { -"16 16 26 1", -" c None", -". c #000000", -"+ c #C4D4E3", -"@ c #A3BCD4", -"# c #A6BED5", -"$ c #AAC1D7", -"% c #ABC2D8", -"& c #AFC5DA", -"* c #AEC4D9", -"= c #6892B9", -"- c #9CB7D1", -"; c #A4BDD5", -"> c #9FB9D2", -", c #9BB6D0", -"' c #9AB5CF", -") c #49759E", -"! c #1C2D3D", -"~ c #C5D5E4", -"{ c #A0BAD3", -"] c #9EB8D1", -"^ c #4B78A2", -"/ c #2A435B", -"( c #3F6588", -"_ c #34536F", -": c #29425A", -"< c #2D4760", -" ", -" . ", -" .. ", -" .+. ", -" .+@....... ", -" .+#$%&%*@=. ", -" .+-;@>,,>'). ", -" !~>{]]->>>>^. ", -" ./((((((((_. ", -" ./((:::::<. ", -" ./(....... ", -" ./. ", -" .. ", -" . ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lib_next.xpm b/bitmaps_xpm/lib_next.xpm deleted file mode 100644 index d56232c92e..0000000000 --- a/bitmaps_xpm/lib_next.xpm +++ /dev/null @@ -1,87 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lib_next_xpm[]; - -#else -const char * lib_next_xpm[] = { -"16 16 63 1", -" c None", -". c #000000", -"+ c #C5C9CD", -"@ c #FBFBFB", -"# c #E9E9E9", -"$ c #D4D4D4", -"% c #A0A0A0", -"& c #797979", -"* c #393939", -"= c #C1C1C1", -"- c #D6D6D6", -"; c #EBEBEB", -"> c #E1E1E1", -", c #C9C9C9", -"' c #6C7C8C", -") c #C2C7CB", -"! c #C3C3C3", -"~ c #B0B0B0", -"{ c #A8A8A8", -"] c #FFFFFF", -"^ c #F9F9F9", -"/ c #CACACA", -"( c #627080", -"_ c #627180", -": c #637181", -"< c #C2C7CC", -"[ c #A7A7A7", -"} c #878787", -"| c #5F5F5F", -"1 c #363636", -"2 c #647382", -"3 c #C3C7CC", -"4 c #657482", -"5 c #C3C7CD", -"6 c #667584", -"7 c #C4C8CD", -"8 c #687584", -"9 c #D3D6D9", -"0 c #CDCFD0", -"a c #BEC0C1", -"b c #B3B5B6", -"c c #A8A9AA", -"d c #DDDEDF", -"e c #D6D7D8", -"f c #CDCECF", -"g c #C5C7C8", -"h c #B6B7B8", -"i c #657382", -"j c #637488", -"k c #556A80", -"l c #5C6F84", -"m c #5D7084", -"n c #5E7185", -"o c #697888", -"p c #868A8E", -"q c #6B747E", -"r c #576674", -"s c #586776", -"t c #596776", -"u c #5A6776", -"v c #445464", -"w c #616467", -"x c #686D72", -" ", -"....... ....... ", -".+@#$%&*=-;>,'. ", -".)@#$!~{]^;>/(. ", -".)@#$!~{].;>,_. ", -".)@#$!~{]..>,:. ", -".<@#[}|1....,2. ", -".3@#$!~{]..>,4. ", -".5@#$!~{].;>,6. ", -".7@#$!~{]^;>,8. ", -".790abc[defghi. ", -".jklmnopqrstuv. ", -"......wxw...... ", -" ... ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/lib_previous.xpm b/bitmaps_xpm/lib_previous.xpm deleted file mode 100644 index 194e1a57b1..0000000000 --- a/bitmaps_xpm/lib_previous.xpm +++ /dev/null @@ -1,88 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lib_previous_xpm[]; - -#else -const char * lib_previous_xpm[] = { -"16 16 64 1", -" c None", -". c #000000", -"+ c #C5C9CD", -"@ c #FBFBFB", -"# c #E9E9E9", -"$ c #D4D4D4", -"% c #A0A0A0", -"& c #797979", -"* c #393939", -"= c #C1C1C1", -"- c #D6D6D6", -"; c #EBEBEB", -"> c #E1E1E1", -", c #C9C9C9", -"' c #6C7C8C", -") c #C2C7CB", -"! c #C3C3C3", -"~ c #B0B0B0", -"{ c #A8A8A8", -"] c #FFFFFF", -"^ c #F9F9F9", -"/ c #CACACA", -"( c #627080", -"_ c #627180", -": c #637181", -"< c #C2C7CC", -"[ c #363636", -"} c #8B8B8B", -"| c #ACACAC", -"1 c #BABABA", -"2 c #647382", -"3 c #C3C7CC", -"4 c #657482", -"5 c #C3C7CD", -"6 c #667584", -"7 c #C4C8CD", -"8 c #687584", -"9 c #D3D6D9", -"0 c #CDCFD0", -"a c #BEC0C1", -"b c #B3B5B6", -"c c #A8A9AA", -"d c #A7A7A7", -"e c #DDDEDF", -"f c #D6D7D8", -"g c #CDCECF", -"h c #C5C7C8", -"i c #B6B7B8", -"j c #657382", -"k c #637488", -"l c #556A80", -"m c #5C6F84", -"n c #5D7084", -"o c #5E7185", -"p c #697888", -"q c #868A8E", -"r c #6B747E", -"s c #576674", -"t c #586776", -"u c #596776", -"v c #5A6776", -"w c #445464", -"x c #616467", -"y c #686D72", -" ", -"....... ....... ", -".+@#$%&*=-;>,'. ", -".)@#$!~{]^;>/(. ", -".)@#$.~{]^;>,_. ", -".)@#..~{]^;>,:. ", -".<@....[}|1>,2. ", -".3@#..~{]^;>,4. ", -".5@#$.~{]^;>,6. ", -".7@#$!~{]^;>,8. ", -".790abcdefghij. ", -".klmnopqrstuvw. ", -"......xyx...... ", -" ... ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/libedit.xpm b/bitmaps_xpm/libedit.xpm deleted file mode 100644 index eb20fd1ca5..0000000000 --- a/bitmaps_xpm/libedit.xpm +++ /dev/null @@ -1,154 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *libedit_xpm[]; - -#else -const char * libedit_xpm[] = { -"16 16 130 2", -" c None", -". c #070809", -"+ c #323538", -"@ c #1F1F20", -"# c #0B0D0E", -"$ c #E5E7E8", -"% c #F6F6F6", -"& c #838587", -"* c #050506", -"= c #0B0D0F", -"- c #F7F7F7", -"; c #D8D8D8", -"> c #E0E1E2", -", c #1F2021", -"' c #050709", -") c #E4E7E8", -"! c #D8D9D9", -"~ c #D2D2D2", -"{ c #E2E2E2", -"] c #BFC1C3", -"^ c #0F0F0F", -"/ c #080B0D", -"( c #E6E8EA", -"_ c #F9F9F9", -": c #D5D5D5", -"< c #BDBDBD", -"[ c #CDCDCD", -"} c #CACACA", -"| c #DDDEDE", -"1 c #535455", -"2 c #030406", -"3 c #9F9FA0", -"4 c #F5F5F6", -"5 c #CFCFCF", -"6 c #D0D0D0", -"7 c #B6B6B6", -"8 c #C5C5C5", -"9 c #CDCFD1", -"0 c #C6C6C6", -"a c #565656", -"b c #353535", -"c c #363636", -"d c #0B0B0B", -"e c #000000", -"f c #848787", -"g c #B5B9BC", -"h c #DEDEDE", -"i c #B8B8B8", -"j c #C9C9C9", -"k c #B8BBBE", -"l c #9FA3A6", -"m c #EFF0F0", -"n c #FCFDFD", -"o c #FCFCFC", -"p c #FBFBFC", -"q c #FAFBFC", -"r c #EAEAEA", -"s c #242425", -"t c #1C1C1C", -"u c #999A9C", -"v c #BCBCBC", -"w c #C4C4C4", -"x c #BDBEBF", -"y c #A3A6A9", -"z c #CFD0D1", -"A c #E4E5E5", -"B c #E2E3E4", -"C c #F8F9FA", -"D c #F7F8F9", -"E c #E0E0E2", -"F c #AFB1B2", -"G c #7C7F81", -"H c #B4B7BA", -"I c #E0E0E0", -"J c #C0C0C0", -"K c #AFB2B6", -"L c #BABCBD", -"M c #F3F3F3", -"N c #F9FBFC", -"O c #CBCCCE", -"P c #868C92", -"Q c #171818", -"R c #747F88", -"S c #BABABA", -"T c #DADADA", -"U c #A9ABAD", -"V c #E5E5E5", -"W c #E6E6E6", -"X c #DFE0E0", -"Y c #B4B7BB", -"Z c #181B1E", -"` c #424548", -" . c #8E9599", -".. c #ACAEB0", -"+. c #FFFFFF", -"@. c #FEFEFE", -"#. c #FAFBFB", -"$. c #FAFAFB", -"%. c #CCCED1", -"&. c #747C85", -"*. c #000001", -"=. c #626A74", -"-. c #878889", -";. c #EBEBEB", -">. c #FEFFFF", -",. c #FDFEFE", -"'. c #FBFCFC", -"). c #F0F1F1", -"!. c #A9AEB4", -"~. c #16181B", -"{. c #12161B", -"]. c #47525E", -"^. c #C2C8CE", -"/. c #C5C9CC", -"(. c #D6D7D8", -"_. c #DCDCDC", -":. c #F4F5F5", -"<. c #D2D2D3", -"[. c #7A8188", -"}. c #191C1E", -"|. c #2A2E31", -"1. c #484D51", -"2. c #7F8385", -"3. c #9C9EA0", -"4. c #A0A6AD", -"5. c #92999F", -"6. c #0D0F11", -"7. c #2B343D", -"8. c #191E22", -"9. c #1E2328", -" . + @ ", -" # $ % & * ", -" = $ - ; > , ", -" ' ) - ! ~ { ] ^ ", -" / ( _ : < [ } | 1 ", -"2 3 4 5 6 [ 7 8 9 0 a b b b c d ", -"e f g h i j 8 k l m n o p q r s ", -" t u v j w x y z A B C D E F e ", -" e G H I J K L M n N C D O P e ", -" Q R S T U V W A q C X Y Z ", -" e ` ...: +.@.n #.$.%.&.e ", -" *.=.-.W ;.>.,.'.).!.~. ", -" {.].^./.(._.:.<.[.e ", -" }.|.1.2.3.4.5.6. ", -" 7.8.9. ", -" "}; -#endif diff --git a/bitmaps_xpm/libedit_icon.xpm b/bitmaps_xpm/libedit_icon.xpm deleted file mode 100644 index 4d40298947..0000000000 --- a/bitmaps_xpm/libedit_icon.xpm +++ /dev/null @@ -1,152 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *libedit_icon_xpm[]; - -#else -const char * libedit_icon_xpm[] = { -"32 32 112 2", -" c None", -". c #000000", -"+ c #FEFEFF", -"@ c #F9F9FF", -"# c #F1F1FF", -"$ c #E8E8FF", -"% c #E0E0FF", -"& c #D7D7FF", -"* c #CFCFFF", -"= c #C7C7FF", -"- c #BFBFFF", -"; c #FFFFFF", -"> c #010101", -", c #FDFDFF", -"' c #FBFBFF", -") c #F7F7FF", -"! c #F6F6FF", -"~ c #F4F4FF", -"{ c #F2F2FF", -"] c #F0F0FF", -"^ c #EEEEFF", -"/ c #ECECFF", -"( c #EBEBFF", -"_ c #E9E9FF", -": c #E7E7FF", -"< c #E5E5FF", -"[ c #E3E3FF", -"} c #B6B6B6", -"| c #030303", -"1 c #D4D4D4", -"2 c #A9A9A9", -"3 c #7F7F7F", -"4 c #545454", -"5 c #FAFAFF", -"6 c #F8F8FF", -"7 c #EFEFFF", -"8 c #EDEDFF", -"9 c #E6E6FF", -"0 c #E4E4FF", -"a c #E2E2FF", -"b c #040405", -"c c #A0A0A0", -"d c #E1E1FF", -"e c #060607", -"f c #D8D8FF", -"g c #FCFCFF", -"h c #09090A", -"i c #DEDEFF", -"j c #0A0A0C", -"k c #494949", -"l c #D6D6D6", -"m c #DFDFFF", -"n c #DDDDFF", -"o c #0D0D0F", -"p c #361B03", -"q c #6D6D6D", -"r c #EDEDED", -"s c #DCDCFF", -"t c #0F0F11", -"u c #FC7700", -"v c #8F4300", -"w c #1D1711", -"x c #929292", -"y c #BFBFBF", -"z c #363636", -"A c #C3C3C3", -"B c #DADAFF", -"C c #0F0F12", -"D c #FF7800", -"E c #E36B00", -"F c #4F2500", -"G c #080808", -"H c #B85700", -"I c #81807F", -"J c #51504F", -"K c #6F6E7F", -"L c #D9D9FF", -"M c #101013", -"N c #F5F5FF", -"O c #6E6D7F", -"P c #D6D6FF", -"Q c #D5D5FF", -"R c #F3F3FF", -"S c #D4D4FF", -"T c #111114", -"U c #D3D3FF", -"V c #D1D1FF", -"W c #121215", -"X c #D2D2FF", -"Y c #D0D0FF", -"Z c #EAEAFF", -"` c #69687F", -" . c #CDCDFF", -".. c #131316", -"+. c #68677F", -"@. c #CCCCFF", -"#. c #CBCBFF", -"$. c #131317", -"%. c #C9C9FF", -"&. c #141418", -"*. c #CACAFF", -"=. c #C8C8FF", -"-. c #C6C6FF", -";. c #C4C4FF", -">. c #151519", -",. c #CECEFF", -"'. c #C5C5FF", -"). c #C3C3FF", -"!. c #16161A", -"~. c #DBDBFF", -"{. c #C2C2FF", -"]. c #A0A0AD", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -"+ @ # $ % & * = - . ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > ", -"+ @ # $ % & * = - . + + + + , ' @ ) ! ~ { ] ^ / ( _ : < [ } | ", -"+ @ # $ % & * ; 1 2 3 4 + , ' 5 6 ! ~ { # 7 8 ( _ $ 9 0 a } b ", -"+ @ # $ % & * = - . + + + c c c c c c c c c c c c c c [ d } e ", -"+ @ # $ % f * = - . + + g c ; ; ; ; ; ; ; ; ; ; ; ; c d % } h ", -"+ @ # $ % f * = - . + , ' c ; ; ; ; ; ; ; ; ; ; ; ; c % i } j ", -"+ @ # $ % f * = - . + g 5 c ; ; k l ; ; ; ; ; ; ; ; c m n } o ", -"+ @ # $ % f * = - . g 5 @ c ; ; . p q r ; ; ; ; ; ; c n s } t ", -"+ @ # $ % f * = - . ' @ . . . . . u v w x y z z A ; c s B } C ", -"+ @ # $ % f * = - . 5 6 ! c ; ; . D D E F G H H z I J K L } M ", -"+ @ # $ % f * ; 1 2 3 4 N c ; ; . D D E F G H H z I J O f } M ", -"+ @ # $ % f * = - . ) N . . . . . u v w x y z z A ; c f P } M ", -"+ @ # $ % f * = - . ! ~ { c ; ; . p q r ; ; ; ; ; ; c & Q } M ", -"+ @ # $ % f * = - . ~ R # c ; ; k l ; ; ; ; ; ; ; ; c P S } T ", -"+ @ # $ % f * = - . R # 7 c ; ; ; ; ; ; ; ; ; ; ; ; c S U } T ", -"+ @ # $ % f * = - . { ] ^ c ; ; k l ; ; ; ; ; ; ; ; c U V } W ", -"+ @ # $ % f * = - . # 7 8 c ; ; . p q r ; ; ; ; ; ; c X Y } W ", -"+ @ # $ % f * = - . 7 8 . . . . . u v w x y z z A ; c Y * } W ", -"+ @ # $ % f * ; 1 2 3 4 Z c ; ; . D D E F G H H z I J ` .} .. ", -"+ @ # $ % f * = - . 8 ( _ c ; ; . D D E F G H H z I J +.@.} .. ", -"+ @ # $ % f * = - . ( _ . . . . . u v w x y z z A ; c .#.} $. ", -"+ @ # $ % f * = - . Z $ 9 c ; ; . p q r ; ; ; ; ; ; c #.%.} &. ", -"+ @ # $ % f * = - . _ : < c ; ; k l ; ; ; ; ; ; ; ; c *.=.} &. ", -"+ @ # $ % f * = - . : 9 0 c ; ; ; ; ; ; ; ; ; ; ; ; c %.= } &. ", -"+ @ # $ % f * = - . 9 0 a c ; ; ; ; ; ; ; ; ; ; ; ; c = -.} &. ", -"+ @ # $ % f * = - . < [ d c c c c c c c c c c c c c c -.;.} >. ", -"+ @ # $ % f * ; 1 2 3 4 % i s B L & Q U V Y ,.@.*.=.= '.).} !. ", -"+ @ # $ % f * = - . a % m n ~.L & P S X Y ,.@.#.%.= '.).{.} !. ", -"+ @ # $ % f * = - . } } } } } } } } } } } } } } } } } } } ].. ", -". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", -" "}; -#endif diff --git a/bitmaps_xpm/libedprt.xpm b/bitmaps_xpm/libedprt.xpm deleted file mode 100644 index 646cb4ba40..0000000000 --- a/bitmaps_xpm/libedprt.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *libedit_part_xpm[]; - -#else -const char *libedit_part_xpm[] = { -/* columns rows colors const chars-per-pixel */ - -"16 15 3 1", -"- c Red", -"X c None", -"o c Blue", - -/* pixels */ -"X-----------XXXX", -"X----------XXXXX", -"X--XXXXXXXXXXXXX", -"X--XXXXXXXXXXXXX", -"X--------XXXXXXX", -"X--------XXXXXXX", -"X--XXXXXXXXXXXXX", -"X--XXXXXXXXXXXXX", -"X----------XXXXX", -"X-----------XXXX", -"XXXXoooooooXXXXX", -"XXoooXXXXXXoXXXX", -"XXXXoXXXXXXooooX", -"XXoooXXXXXXoXXXX", -"XXXXoooooooXXXXX" -}; -#endif - diff --git a/bitmaps_xpm/library.xpm b/bitmaps_xpm/library.xpm deleted file mode 100644 index 31fa2cc8ec..0000000000 --- a/bitmaps_xpm/library.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * library_xpm[]; - -#else -const char * library_xpm[] = { -"16 15 6 1", -"X c Black", -". c None", -"o c Black", -"= c Blue", -"+ c Yellow", -"' c Red", -"........XXXXXX..", -"....ooooX=====X.", -"........X======X", -"........X=======", -"......XXXXXX===X", -"..ooooX+++++X=X.", -"......X++++++X..", -"......X+++++++Xo", -"....XXXXXX+++X..", -"ooooX'''''X+X...", -"....X''''''X....", -"....X'''''''Xooo", -"....X''''''X....", -"ooooX'''''X.....", -"....XXXXXX......" -}; -#endif - diff --git a/bitmaps_xpm/library_browse.xpm b/bitmaps_xpm/library_browse.xpm deleted file mode 100644 index 82985c0661..0000000000 --- a/bitmaps_xpm/library_browse.xpm +++ /dev/null @@ -1,154 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *library_browse_xpm[]; - -#else -const char * library_browse_xpm[] = { -"16 16 130 2", -" c None", -". c #070809", -"+ c #323538", -"@ c #1F1F20", -"# c #0B0D0E", -"$ c #E5E7E8", -"% c #F6F6F6", -"& c #838587", -"* c #050506", -"= c #0B0D0F", -"- c #F7F7F7", -"; c #D8D8D8", -"> c #E0E1E2", -", c #1F2021", -"' c #050709", -") c #E4E7E8", -"! c #D8D9D9", -"~ c #D2D2D2", -"{ c #E2E2E2", -"] c #BFC1C3", -"^ c #0F0F0F", -"/ c #080B0D", -"( c #E6E8EA", -"_ c #F9F9F9", -": c #D5D5D5", -"< c #BDBDBD", -"[ c #CDCDCD", -"} c #CACACA", -"| c #DDDEDE", -"1 c #535455", -"2 c #030406", -"3 c #9F9FA0", -"4 c #F5F5F6", -"5 c #CFCFCF", -"6 c #D0D0D0", -"7 c #969696", -"8 c #5A5A5A", -"9 c #525253", -"0 c #4D4D4D", -"a c #3C3C3C", -"b c #292929", -"c c #333333", -"d c #353535", -"e c #363636", -"f c #0B0B0B", -"g c #000000", -"h c #848787", -"i c #B5B9BC", -"j c #DEDEDE", -"k c #B8B8B8", -"l c #A6A6A6", -"m c #5F5F5F", -"n c #B2B2B2", -"o c #F1F1F1", -"p c #F2F2F2", -"q c #C5C5C5", -"r c #6B6B6B", -"s c #ADADAD", -"t c #FAFBFC", -"u c #EAEAEA", -"v c #242425", -"w c #1C1C1C", -"x c #999A9C", -"y c #BCBCBC", -"z c #C9C9C9", -"A c #FCFCFC", -"B c #FEFEFE", -"C c #686868", -"D c #C3C3C4", -"E c #AFB1B2", -"F c #7C7F81", -"G c #B4B7BA", -"H c #E0E0E0", -"I c #4F4F4F", -"J c #EEEEEE", -"K c #F4F4F4", -"L c #7B7B7B", -"M c #9D9E9F", -"N c #868C92", -"O c #171818", -"P c #747F88", -"Q c #BABABA", -"R c #4E4E4E", -"S c #FDFDFD", -"T c #FBFBFB", -"U c #818181", -"V c #898B8F", -"W c #181B1E", -"X c #424548", -"Y c #8E9599", -"Z c #4F4F50", -"` c #FAFAFA", -" . c #E4E4E4", -".. c #69696A", -"+. c #616870", -"@. c #000001", -"#. c #626A74", -"$. c #626263", -"%. c #727272", -"&. c #D9D9D9", -"*. c #E1E1E1", -"=. c #2F3032", -"-. c #111315", -";. c #12161B", -">. c #45505B", -",. c #85898D", -"'. c #5D5E5E", -"). c #7A7A7A", -"!. c #7E7E7E", -"~. c #676767", -"{. c #4C4C4C", -"]. c #131313", -"^. c #030303", -"/. c #181B1D", -"(. c #2A2E31", -"_. c #3D4245", -":. c #616465", -"<. c #767879", -"[. c #868B91", -"}. c #74797E", -"|. c #272728", -"1. c #313131", -"2. c #2B343D", -"3. c #191E22", -"4. c #1D2227", -"5. c #3F3F3F", -"6. c #343434", -"7. c #040404", -"8. c #191919", -"9. c #050505", -" . + @ ", -" # $ % & * ", -" = $ - ; > , ", -" ' ) - ! ~ { ] ^ ", -" / ( _ : < [ } | 1 ", -"2 3 4 5 6 } 7 8 9 0 a b c d e f ", -"g h i j k l m n o p q r s t u v ", -" w x y z m k A B B A ; C D E g ", -" g F G H I J B B B A K L M N g ", -" O P Q R p B B S T % U V W ", -" g X Y Z q A A T ` ...+.g ", -" @.#.$.%.&.K % *.L =.-. ", -" ;.>.,.'.).!.~.{.].^. ", -" /.(._.:.<.[.}.|.1.^. ", -" 2.3.4. 5.6.7.", -" 8.9."}; -#endif diff --git a/bitmaps_xpm/library_update.xpm b/bitmaps_xpm/library_update.xpm deleted file mode 100644 index dbbaba5552..0000000000 --- a/bitmaps_xpm/library_update.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * library_update_xpm[]; - -#else -const char * library_update_xpm[] = { -"16 15 6 1", -"X c Black", -". c None", -"o c Black", -"= c Gray", -"+ c Green", -"' c Gray", -"........XXXXXX..", -"....ooooX=====X.", -"........X======X", -"........X=======", -"......XXXXXX===X", -"..ooooX+++++X=X.", -"......X++++++X..", -"......X+++++++Xo", -"....XXXXXX+++X..", -"ooooX'''''X+X...", -"....X''''''X....", -"....X'''''''Xooo", -"....X''''''X....", -"ooooX'''''X.....", -"....XXXXXX......" -}; -#endif - diff --git a/bitmaps_xpm/libsavem.xpm b/bitmaps_xpm/libsavem.xpm deleted file mode 100644 index 4a01ed39ce..0000000000 --- a/bitmaps_xpm/libsavem.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *save_part_in_mem_xpm[]; - -#else -const char *save_part_in_mem_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"x c White", -"o c Red", -"- c BLUE", - -/* pixels */ -" - xxxxxxxxx", -" -- x.......x", -"------ x.......x", -"-------x.ooooo.x", -"------ x..o.o..x", -"-- -- x.oo.oo.x", -"-- - x..o.o..x", -"-- x.oo.oo.x", -"-- x..o.o..x", -"-- x.ooooo.x", -"-- x.......x", -"-- x.......x", -"-- xxxxxxxxx", -"-- ", -"-- " -}; -#endif - diff --git a/bitmaps_xpm/libview.xpm b/bitmaps_xpm/libview.xpm deleted file mode 100644 index c15a366328..0000000000 --- a/bitmaps_xpm/libview.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * libview_xpm[]; - -#else -const char *libview_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 10 1", -"Q c Black", -". c None", -"X c Black", -"u c #808080", -"O c Cyan", -"- c Blue", -"o c Black", -"= c Cyan", -"+ c Yellow", -"' c Red", - -/* pixels */ -"........XXXXXX..", -"....ooooX=====X.", -"........X======X", -"........X=======", -"......XXX======X", -"..ooooX+QQQQX=X.", -"......XQu++uQ...", -"......QuOO+uuQ..", -"....XXQXOXXu.Q..", -"ooooX'Quu''uXQ..", -"....X'Qu''OuuQ..", -"....X''Qu''uQuoo", -"....X'''QQQQuQQ.", -"ooooX'''''X..QQQ", -"....XXXXXX....QQ" -}; -#endif - diff --git a/bitmaps_xpm/lines90.xpm b/bitmaps_xpm/lines90.xpm deleted file mode 100644 index 4c1f1ffe22..0000000000 --- a/bitmaps_xpm/lines90.xpm +++ /dev/null @@ -1,48 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *lines90_xpm[]; - -#else -const char * lines90_xpm[] = { -"16 16 24 1", -" c None", -". c #000000", -"+ c #9B9B9B", -"@ c #0000FF", -"# c #FEFEFF", -"$ c #F7F7FF", -"% c #EDECFF", -"& c #E3E2FF", -"* c #D9D8FF", -"= c #6969FF", -"- c #EDEDFF", -"; c #E3E3FF", -"> c #CFCEFF", -", c #EEEDFF", -"' c #D9D9FF", -") c #CFCFFF", -"! c #C5C4FF", -"~ c #E4E3FF", -"{ c #DAD9FF", -"] c #D0CFFF", -"^ c #C6C5FF", -"/ c #BCBAFF", -"( c #BCBBFF", -"_ c #B2B1FF", -" ", -" . ", -" .+ ", -" .+ ", -" .+ ", -" .+ ", -" .+ ", -" .@@@@@@ ", -" .#$%&*@= ", -" .$-;*>@= ", -" .,;')!@= ", -" .~{]^/@= ", -" .{]^(_@= ", -" .............. ", -" ++++++++++++++", -" "}; -#endif diff --git a/bitmaps_xpm/load_module_board.xpm b/bitmaps_xpm/load_module_board.xpm deleted file mode 100644 index 40fa5742be..0000000000 --- a/bitmaps_xpm/load_module_board.xpm +++ /dev/null @@ -1,104 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* load_module_board_xpm[]; -#else -const char * load_module_board_xpm[] = { -"16 16 80 1", -" c None", -". c #000000", -"+ c #FEFEFF", -"@ c #F9AB7F", -"# c #F55A00", -"$ c #FFFFFF", -"% c #002100", -"& c #FBFBFC", -"* c #8C8C8D", -"= c #404041", -"- c #161B17", -"; c #000D00", -"> c #00AA00", -", c #002200", -"' c #F0F0F1", -") c #33231A", -"! c #005500", -"~ c #009900", -"{ c #00BC00", -"] c #00B900", -"^ c #00BD00", -"/ c #009C00", -"( c #000100", -"_ c #712900", -": c #007400", -"< c #00BA00", -"[ c #004800", -"} c #001800", -"| c #009F00", -"1 c #001B00", -"2 c #F3F3F4", -"3 c #050F05", -"4 c #006900", -"5 c #2B1E16", -"6 c #6F6F75", -"7 c #001000", -"8 c #D1D1D2", -"9 c #003600", -"0 c #012F01", -"a c #898990", -"b c #9A9AA5", -"c c #A93E00", -"d c #250D00", -"e c #B54200", -"f c #E8E8FD", -"g c #030303", -"h c #F9F9FF", -"i c #A5A5AC", -"j c #92929B", -"k c #90909B", -"l c #CDCDE0", -"m c #E6E6FF", -"n c #050506", -"o c #FCFCFF", -"p c #F8F8FF", -"q c #F5F5FF", -"r c #C4C4D0", -"s c #C18366", -"t c #C44800", -"u c #E99C7D", -"v c #E2E2FF", -"w c #060607", -"x c #DEDEFF", -"y c #070708", -"z c #FBFBFF", -"A c #F7F7FF", -"B c #F4F4FF", -"C c #F0F0FF", -"D c #ECECFF", -"E c #E9E9FF", -"F c #ED9F7F", -"G c #E99B7F", -"H c #DADAFF", -"I c #F3F3FF", -"J c #E8E8FF", -"K c #E4E4FF", -"L c #E1E1FF", -"M c #DDDDFF", -"N c #D9D9FF", -"O c #D5D5FF", -"............ ", -".+@#@++++++.. ", -".+#$######+.% ", -".+@#@++&*=-;>, ", -".+++++')!~{]^/( ", -".+####_:<[}(|1. ", -".++++23{456.7. ", -".+@#@89^0ab.. ", -".+#$#c..defg. ", -".+@#@hijklmn ", -".++opqrstuvw ", -".+######$#xy ", -".zABCDEF#GHy ", -".AICDJKLMNOy ", -"............ ", -" "}; - -#endif diff --git a/bitmaps_xpm/load_module_lib.xpm b/bitmaps_xpm/load_module_lib.xpm deleted file mode 100644 index b7ad3d3fb8..0000000000 --- a/bitmaps_xpm/load_module_lib.xpm +++ /dev/null @@ -1,167 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* load_module_lib_xpm[]; -#else -const char * load_module_lib_xpm[] = { -"16 16 143 2", -" c None", -". c #050607", -"+ c #313437", -"@ c #1C1C1D", -"# c #090B0C", -"$ c #E3E5E6", -"% c #F4F4F4", -"& c #7D7F81", -"* c #030304", -"= c #000000", -"- c #FFFFFF", -"; c #F5F5F5", -"> c #D6D6D6", -", c #D5D6D7", -"' c #1E1F20", -") c #001700", -"! c #040507", -"~ c #E1E4E5", -"{ c #D6D7D7", -"] c #D0D0D0", -"^ c #E0E0E0", -"/ c #909193", -"( c #040404", -"_ c #005900", -": c #006200", -"< c #06090B", -"[ c #E2E4E6", -"} c #F7F7F7", -"| c #D3D3D3", -"1 c #BBBBBB", -"2 c #CBCBCB", -"3 c #898989", -"4 c #0A1A0A", -"5 c #006900", -"6 c #009A00", -"7 c #00B300", -"8 c #00BC00", -"9 c #00BD00", -"0 c #003E00", -"a c #010203", -"b c #9C9C9D", -"c c #F2F2F3", -"d c #CDCDCD", -"e c #CECECE", -"f c #A9A9A9", -"g c #0C240C", -"h c #00A400", -"i c #009800", -"j c #003800", -"k c #001C00", -"l c #005D00", -"m c #007200", -"n c #070807", -"o c #050505", -"p c #808383", -"q c #ADB1B4", -"r c #DCDCDC", -"s c #B6B6B6", -"t c #C7C7C7", -"u c #636363", -"v c #051905", -"w c #444444", -"x c #001900", -"y c #1F1F1F", -"z c #848484", -"A c #19191A", -"B c #161616", -"C c #949597", -"D c #BABABA", -"E c #C2C2C2", -"F c #383838", -"G c #009100", -"H c #009200", -"I c #393939", -"J c #878889", -"K c #5E5F5F", -"L c #171717", -"M c #7B7B7C", -"N c #7C7E7E", -"O c #787B7D", -"P c #AFB2B4", -"Q c #DEDEDE", -"R c #BEBEBE", -"S c #161717", -"T c #001000", -"U c #000A00", -"V c #6D6E6E", -"W c #DDDFE0", -"X c #A2A3A4", -"Y c #848585", -"Z c #8A8B8C", -"` c #81878D", -" . c #68727A", -".. c #B8B8B8", -"+. c #C4C4C4", -"@. c #7A7C7E", -"#. c #7C7C7C", -"$. c #959696", -"%. c #F8F9FA", -"&. c #F6F7F8", -"*. c #949595", -"=. c #ACAFB3", -"-. c #171A1D", -";. c #404346", -">. c #7F8589", -",. c #97999A", -"'. c #C1C1C1", -"). c #C0C0C0", -"!. c #D7D8D8", -"~. c #F8F9F9", -"{. c #F8F8F9", -"]. c #C1C3C6", -"^. c #737B83", -"/. c #535962", -"(. c #7F8081", -"_. c #E4E4E4", -":. c #E9E9E9", -"<. c #FCFDFD", -"[. c #FBFCFC", -"}. c #F9FAFA", -"|. c #EEEFEF", -"1. c #A7ACB2", -"2. c #15171A", -"3. c #11151A", -"4. c #454F5B", -"5. c #BEC4CA", -"6. c #C3C7CA", -"7. c #D4D5D6", -"8. c #DADADA", -"9. c #F2F3F3", -"0. c #D0D0D1", -"a. c #797F86", -"b. c #151719", -"c. c #26292C", -"d. c #44494C", -"e. c #7C8082", -"f. c #9A9C9E", -"g. c #9EA4AA", -"h. c #90979D", -"i. c #0C0E10", -"j. c #1F262D", -"k. c #171C20", -"l. c #1D2227", -" . + @ ", -" # $ % & * = ", -"- # $ ; > , ' ) = ", -" ! ~ ; { ] ^ / ( = = _ : = ", -" < [ } | 1 2 3 4 5 6 7 8 9 0 ", -"a b c d e 2 f g h i j k l m n o ", -"= p q r s t u : 8 v w w x y z A ", -" B C D t E F G H I J K L M N = ", -" = O P Q R S T U V W X Y Z ` = ", -" S ...+.@.#.#.$.%.&.*.=.-. ", -" = ;.>.,.R '.).!.~.{.].^.= ", -" = /.(._.:.<.[.}.|.1.2. ", -" 3.4.5.6.7.8.9.0.a.= ", -" b.c.d.e.f.g.h.i. ", -" j.k.l. ", -" "}; - -#endif diff --git a/bitmaps_xpm/local_ratsnest.xpm b/bitmaps_xpm/local_ratsnest.xpm deleted file mode 100644 index 5f7caa88bf..0000000000 --- a/bitmaps_xpm/local_ratsnest.xpm +++ /dev/null @@ -1,85 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* local_ratsnest_xpm[]; -#else -const char * local_ratsnest_xpm[] = { -"16 16 61 1", -" c None", -". c #FFFFFF", -"+ c #000000", -"@ c #040404", -"# c #C3C3C3", -"$ c #080808", -"% c #BBBBC3", -"& c #FF7800", -"* c #F5F4FF", -"= c #EBEAFF", -"- c #747479", -"; c #DADAED", -"> c #E1E1FF", -", c #F6F5FF", -"' c #323135", -") c #3D3D3F", -"! c #9493AF", -"~ c #ECECFF", -"{ c #323237", -"] c #F9F9F9", -"^ c #7B7B7B", -"/ c #EC6F00", -"( c #E3E2FF", -"_ c #2F2F37", -": c #BFBFCD", -"< c #382F2D", -"[ c #A8A8A8", -"} c #D9D8FF", -"| c #363542", -"1 c #F4F4F4", -"2 c #F7F7FF", -"3 c #E6E6FF", -"4 c #D1D1F9", -"5 c #5A5A74", -"6 c #D0CFFF", -"7 c #3E3E50", -"8 c #E5E5E5", -"9 c #F0F0FF", -"0 c #D3D3F1", -"a c #4F4F62", -"b c #2C2C30", -"c c #C1C0F8", -"d c #43435B", -"e c #D2D2D7", -"f c #7F7F8C", -"g c #9999B6", -"h c #444457", -"i c #737373", -"j c #A4A4A4", -"k c #E2E2E2", -"l c #363639", -"m c #33333E", -"n c #B2B2EE", -"o c #1A1A24", -"p c #EBEBEB", -"q c #9090C8", -"r c #7C7CBD", -"s c #010101", -"t c #393952", -"u c #6969A7", -"v c #09090E", -" ", -" ", -". +@ @+ .", -"... +#$$%+ ...", -" ...&+..*=+&... ", -" .&+.-;>+&. ", -" +,')!+ ", -"....&+~{]^@/....", -"....&+(_..:<[...", -" +}|12345+ ", -" .&+67890ab ", -" ...&+cdefghijk ", -"... +++l+mnop..", -". + +qrs .", -" tuv ", -" ++ "}; - -#endif diff --git a/bitmaps_xpm/locked.xpm b/bitmaps_xpm/locked.xpm deleted file mode 100644 index c4c69c95e6..0000000000 --- a/bitmaps_xpm/locked.xpm +++ /dev/null @@ -1,114 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* locked_xpm[]; -#else -const char * locked_xpm[] = { -"16 16 90 1", -" c None", -". c #000000", -"+ c #1E1E1E", -"@ c #7A7A7A", -"# c #D2D2D2", -"$ c #DBDBDB", -"% c #BCBCBC", -"& c #727272", -"* c #080808", -"= c #848484", -"- c #BEBEBE", -"; c #383838", -"> c #1C1C1C", -", c #4D4D4D", -"' c #B1B1B1", -") c #2D2D2D", -"! c #C2C2C2", -"~ c #090909", -"{ c #2E2E2E", -"] c #AAAAAA", -"^ c #2B2B2B", -"/ c #C0C0C0", -"( c #161616", -"_ c #C1C0C0", -": c #13110E", -"< c #9B9794", -"[ c #201D1C", -"} c #0B0B07", -"| c #040302", -"1 c #050403", -"2 c #2F2921", -"3 c #A8A39E", -"4 c #1A130B", -"5 c #A59176", -"6 c #E0C4A0", -"7 c #DFC4A3", -"8 c #DABE9A", -"9 c #D6BA94", -"0 c #CDA676", -"a c #815A2B", -"b c #E2C5A1", -"c c #D8B58C", -"d c #CA9F68", -"e c #AC8758", -"f c #A78252", -"g c #A78253", -"h c #A37B4B", -"i c #BC8849", -"j c #AC712E", -"k c #E3C6A2", -"l c #D5AE7E", -"m c #B08D5F", -"n c #D5B284", -"o c #CFAB7C", -"p c #CFAC7B", -"q c #CBA471", -"r c #BC8746", -"s c #AA6F2B", -"t c #E1C4A0", -"u c #D0A674", -"v c #C79B64", -"w c #AA8455", -"x c #A47E4E", -"y c #A07744", -"z c #BA8442", -"A c #E1C29C", -"B c #CEA470", -"C c #AD8D64", -"D c #D2B289", -"E c #CDAC83", -"F c #CEAD83", -"G c #CCA77B", -"H c #B8803E", -"I c #AD7332", -"J c #E0C29E", -"K c #D4AC79", -"L c #CDA66E", -"M c #AF8D5E", -"N c #AB8758", -"O c #AB8858", -"P c #A8814C", -"Q c #B47E3E", -"R c #D0A874", -"S c #C6965D", -"T c #BE8D50", -"U c #BA894B", -"V c #BD8C4E", -"W c #BC8A4C", -"X c #BA8647", -"Y c #A47136", -" ", -" .... ", -" +@#$$%&* ", -" =-;>>,'= ", -" )!~ {]. ", -" ^/. (_. ", -" :<[}||1234 ", -" .567788890a. ", -" .bcdeffghij. ", -" .klmnoopqrs. ", -" .tuvwxxxyzj. ", -" .ABCDEEFGHI. ", -" .JKLMNNOPrQ. ", -" .RSTTUUVWXY. ", -" .......... ", -" "}; - -#endif diff --git a/bitmaps_xpm/mirepcb.xpm b/bitmaps_xpm/mirepcb.xpm deleted file mode 100644 index 52817588bf..0000000000 --- a/bitmaps_xpm/mirepcb.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *mirepcb_xpm[]; - -#else -const char *mirepcb_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 3 1", -"- c Blue", -". c Red", -"X c None", -/* pixels */ -"XXXXXXX-XXXXXXXX", -"XXXXXXX-XXXXXXXX", -"XXXXXX...XXXXXXX", -"XXXXX.X-X.XXXXXX", -"XXXX.XX-XX.XXXXX", -"XXXX.XX-XX.XXXXX", -"XXX.XXX-XXX.XXXX", -"---.-------.----", -"XXX.XXX-XXX.XXXX", -"XXXX.XX-XX.XXXXX", -"XXXX.XX-XX.XXXXX", -"XXXXX.X-X.XXXXXX", -"XXXXXX...XXXXXXX", -"XXXXXXX-XXXXXXXX", -"XXXXXXX-XXXXXXXX", -}; -#endif - diff --git a/bitmaps_xpm/mirror_h.xpm b/bitmaps_xpm/mirror_h.xpm deleted file mode 100644 index 15c0095375..0000000000 --- a/bitmaps_xpm/mirror_h.xpm +++ /dev/null @@ -1,53 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *mirror_h_xpm[]; - -#else -const char * mirror_h_xpm[] = { -"16 16 29 1", -" c None", -". c #000000", -"+ c #9B9B9B", -"@ c #858585", -"# c #4C4C4C", -"$ c #1A1A1A", -"% c #939393", -"& c #696969", -"* c #606060", -"= c #D2D2D2", -"- c #202020", -"; c #FFFFFF", -"> c #3C3C3C", -", c #737373", -"' c #A0A0A5", -") c #373737", -"! c #EAEAF9", -"~ c #141417", -"{ c #F9F9FF", -"] c #E9E8FF", -"^ c #666578", -"/ c #F2F2FF", -"( c #E2E1FF", -"_ c #B7B6DF", -": c #0F0E0F", -"< c #EBEAFF", -"[ c #DAD9FF", -"} c #CAC9FF", -"| c #36364B", -" . ", -" .+ ", -" .+. ", -" .+.@ ", -" +.# ", -" .$% ", -" . .&* ", -" .+.=- ", -" .+.;>, ", -" .+.;') ", -" +.;!~@ ", -" .{]^# ", -" . ./(_:% ", -" .+.<[}|* ", -" .+.....- ", -" .+ ++++++"}; -#endif diff --git a/bitmaps_xpm/mirror_v.xpm b/bitmaps_xpm/mirror_v.xpm deleted file mode 100644 index 04ed85c563..0000000000 --- a/bitmaps_xpm/mirror_v.xpm +++ /dev/null @@ -1,55 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *mirror_v_xpm[]; - -#else -const char * mirror_v_xpm[] = { -"16 16 30 1", -" c None", -". c #000000", -"+ c #9B9B9B", -"@ c #E3E3FF", -"# c #EBEAFF", -"$ c #F2F2FF", -"% c #F9F9FF", -"& c #FFFFFF", -"* c #D2D2D2", -"= c #696969", -"- c #1A1A1A", -"; c #4D4D4D", -"> c #8C8C8C", -", c #D3D2FF", -"' c #DAD9FF", -") c #E2E1FF", -"! c #E4E3F9", -"~ c #9B9BA5", -"{ c #3A3A3C", -"] c #202020", -"^ c #636363", -"/ c #979797", -"( c #C3C1FF", -"_ c #B1B0DF", -": c #626278", -"< c #141417", -"[ c #373737", -"} c #7A7A7A", -"| c #34344B", -"1 c #0E0E0F", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -".... .... ....", -" ++++ ++++ +++", -" ............. ", -" .@#$%&&*=-;>++ ", -" .,')!~{]^/++ ", -" .(_:<[}++ ", -" .|1;>++ ", -" .^/++ ", -" + "}; -#endif - diff --git a/bitmaps_xpm/mode_module.xpm b/bitmaps_xpm/mode_module.xpm deleted file mode 100644 index 4e11ed5674..0000000000 --- a/bitmaps_xpm/mode_module.xpm +++ /dev/null @@ -1,120 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* mode_module_xpm[]; -#else -const char * mode_module_xpm[] = { -"16 16 96 2", -" c None", -". c #D72E2E", -"+ c #000000", -"@ c #F8F8F8", -"# c #B8B8B8", -"$ c #A9A9B8", -"% c #DAD9F8", -"& c #D42D2D", -"* c #FFFFFF", -"= c #C9C9C9", -"- c #2F2F31", -"; c #AEADBD", -"> c #E1E0FF", -", c #D7D6FF", -"' c #D12C2C", -") c #B3B3B3", -"! c #373742", -"~ c #DCDCEF", -"{ c #343441", -"] c #8887A2", -"^ c #CDCCFF", -"/ c #D62D2D", -"( c #929292", -"_ c #020202", -": c #84849B", -"< c #010101", -"[ c #605F7D", -"} c #E0E0E9", -"| c #BDBDCD", -"1 c #8A89B4", -"2 c #9594CD", -"3 c #962020", -"4 c #BEBDCD", -"5 c #E3E2FF", -"6 c #F1F1FF", -"7 c #9694CD", -"8 c #B1AFFF", -"9 c #811B1B", -"0 c #CF2C2C", -"a c #140303", -"b c #31313C", -"c c #E7E5FF", -"d c #646489", -"e c #232332", -"f c #170404", -"g c #2A0909", -"h c #FBFBFF", -"i c #EAEAFF", -"j c #E2E1FF", -"k c #DBDBFF", -"l c #D5D3FF", -"m c #CDCDFF", -"n c #C8C6FF", -"o c #C1C1FF", -"p c #9F9DDB", -"q c #1C0505", -"r c #C92B2B", -"s c #080101", -"t c #342F3B", -"u c #7A7A96", -"v c #D2D0FF", -"w c #5A5981", -"x c #241F2E", -"y c #090101", -"z c #CA2B2B", -"A c #881C1C", -"B c #8C8BB4", -"C c #9796CD", -"D c #C8C8FF", -"E c #706FA4", -"F c #8C8BCD", -"G c #5C1313", -"H c #BC2727", -"I c #9897CD", -"J c #B4B2FF", -"K c #C0BFFF", -"L c #AFADFF", -"M c #150404", -"N c #5D5C85", -"O c #010102", -"P c #5C5C82", -"Q c #B8B8FF", -"R c #56557D", -"S c #504F75", -"T c #696799", -"U c #232234", -"V c #9493D6", -"W c #1F1F31", -"X c #4B4A6E", -"Y c #9694DB", -"Z c #050508", -"` c #030305", -" . c #000001", -".. c #020204", -"+. c #040407", -"@. c #CE2C2C", -". . . + + + + + + . . . ", -". . + @ # + + + $ % + . . ", -". & . + * * = - ; > , + . ' . ", -" + * ) ! ~ { ] ^ + ", -". / / + ( _ : * : < [ + ' / / ", -". . + } | + * + 1 2 + . . ", -". ' 3 + 4 5 + 6 + 7 8 + 9 0 . ", -" a b : + + + c + + + d e f ", -". g ~ h 6 i j k l m n o p q r ", -". s t u + + + v + + + w x y z ", -". & A + B C + D + E F + G H . ", -" + I J + K + F L + M ", -". / / + N O P Q R O S + ' / / ", -". . + L T U V W X Y + . . ", -". ' . + Z Z ` ...+.Z + . @.. ", -" "}; - -#endif diff --git a/bitmaps_xpm/mode_track.xpm b/bitmaps_xpm/mode_track.xpm deleted file mode 100644 index 5a7f19095d..0000000000 --- a/bitmaps_xpm/mode_track.xpm +++ /dev/null @@ -1,66 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* mode_track_xpm[]; -#else -const char * mode_track_xpm[] = { -"16 16 42 1", -" c None", -". c #007D00", -"+ c #007C00", -"@ c #122A12", -"# c #122910", -"$ c #000500", -"% c #D72E2E", -"& c #3B1A1A", -"* c #F2D7C1", -"= c #F2BD8E", -"- c #3A150F", -"; c #057A01", -"> c #C9322B", -", c #D62D2D", -"' c #3B1715", -") c #F2B279", -"! c #F29747", -"~ c #3A1209", -"{ c #090101", -"] c #122204", -"^ c #122000", -"/ c #050300", -"( c #0B0202", -"_ c #007B00", -": c #090D01", -"< c #000600", -"[ c #067A01", -"} c #102910", -"| c #142912", -"1 c #070B01", -"2 c #3F1818", -"3 c #EFD5BE", -"4 c #F5BF90", -"5 c #37170F", -"6 c #3F1614", -"7 c #EFB078", -"8 c #F59948", -"9 c #371408", -"0 c #000000", -"a c #102203", -"b c #141F00", -"c c #000D00", -" .. .. ", -" .. +. ", -" @#$ +. ", -"%%&*=-%%%%%;.>%%", -",%')!~%%%%%;.>%%", -" {]^/( _.: ", -" ..< +. ", -" .. +. ", -" .. +. ", -" .. +. ", -" [[ }|1 ", -"%%%%%%%%%%2345%%", -",%%%%%%%%%6789%%", -" ..< 0ab<0 ", -" .. +.c ", -" .. +. "}; - -#endif diff --git a/bitmaps_xpm/modedit.xpm b/bitmaps_xpm/modedit.xpm deleted file mode 100644 index 3a54dbad99..0000000000 --- a/bitmaps_xpm/modedit.xpm +++ /dev/null @@ -1,114 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *modedit_xpm[]; - -#else -const char * modedit_xpm[] = { -"16 16 90 1", -" c None", -". c #FF7800", -"+ c #010000", -"@ c #000000", -"# c #FAE53A", -"$ c #F0B44C", -"% c #FFFFFF", -"& c #FBEA3D", -"* c #F6B343", -"= c #635632", -"- c #FDFDFF", -"; c #F9F9FF", -"> c #EDECFF", -", c #010101", -"' c #FBE73A", -") c #F6B344", -"! c #6C5E33", -"~ c #F8F8FF", -"{ c #F5F5FF", -"] c #F9E33A", -"^ c #F3B043", -"/ c #625739", -"( c #D9D8FF", -"_ c #FAFAFF", -": c #F7F7FF", -"< c #F4F4FF", -"[ c #F1F0FF", -"} c #EEEDFF", -"| c #EAEAFF", -"1 c #F8DE39", -"2 c #F2AE42", -"3 c #625738", -"4 c #CAC9F0", -"5 c #66667B", -"6 c #F6F5FF", -"7 c #F3F2FF", -"8 c #EFEFFF", -"9 c #ECECFF", -"0 c #E9E9FF", -"a c #F8DB38", -"b c #EEB34D", -"c c #665A32", -"d c #D3D2FC", -"e c #19191E", -"f c #F1F1FF", -"g c #EEEEFF", -"h c #EBEAFF", -"i c #E8E7FF", -"j c #F7D737", -"k c #EFA83F", -"l c #655930", -"m c #D5D4FF", -"n c #9291B1", -"o c #F0F0FF", -"p c #EAE9FF", -"q c #E7E6FF", -"r c #F5D136", -"s c #ECA33E", -"t c #5C5230", -"u c #D4D3FF", -"v c #D0CFFF", -"w c #8E8EB1", -"x c #ECEBFF", -"y c #E8E8FF", -"z c #E5E5FF", -"A c #E2E1FF", -"B c #D6AD74", -"C c #61562F", -"D c #D2D1FF", -"E c #CFCEFF", -"F c #CCCBFF", -"G c #C7C6FC", -"H c #17171E", -"I c #E7E7FF", -"J c #E4E3FF", -"K c #E1E0FF", -"L c #4F4115", -"M c #D1D0FF", -"N c #CECDFF", -"O c #CBC9FF", -"P c #C8C6FF", -"Q c #C4C3FF", -"R c #B6B5F0", -"S c #5C5B7B", -"T c #C9C8FF", -"U c #C6C5FF", -"V c #BAB8FF", -"W c #C5C4FF", -"X c #C2C0FF", -"Y c #B5B3FF", -" ... ... ..+@@", -" ... ... .+#$@", -"@.%.@@.%.@@+&*=@", -"@...-;...>,')!,@", -"@...~{...,]^/+(@", -"@-_:<[}|,123,45@", -"@;67890,abc,de ", -"@pq,rst,uvw@ ", -"@xyzA,BC,DEFGH ", -"@IJK,L,,MNOPQRS@", -"@...,,...TU...V@", -"@...mD...WX...Y@", -"@.%.@@.%.@@.%.@@", -" ... ... ... ", -" ... ... ... "}; -#endif diff --git a/bitmaps_xpm/modratsnest.xpm b/bitmaps_xpm/modratsnest.xpm deleted file mode 100644 index 30a94ec66e..0000000000 --- a/bitmaps_xpm/modratsnest.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * mod_ratsnest_xpm[]; - -#else -const char * mod_ratsnest_xpm[] = { -"16 15 5 1", -"X c Red", -". c None", -"o c Blue", -"c c Gray", -"- c White", - -"...........-....", -"--........-.-...", -"..--XXX..-XX.-..", -".cooX--.-..Xoo-.", -".cooX..--..Xooc.", -"....X.-..--X....", -".cooX-.....X--c.", -".coo-......Xoo-.", -"...-X......X....", -".c-oX......Xooc.", -".-ooX......Xoo-.", -"..-.XXXXXXXX..-.", -"...-..........-.", -"....-..........-", -".....-.........-" - -}; -#endif - diff --git a/bitmaps_xpm/modul_edit.xpm b/bitmaps_xpm/modul_edit.xpm deleted file mode 100644 index 5c2d886d67..0000000000 --- a/bitmaps_xpm/modul_edit.xpm +++ /dev/null @@ -1,61 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* module_edit_xpm[]; -#else -const char * module_edit_xpm[] = { -"16 16 37 1", -" c None", -". c #FF7800", -"+ c #010000", -"@ c #000000", -"# c #FAE53A", -"$ c #F0B44C", -"% c #FFFFFF", -"& c #FBEA3D", -"* c #F6B343", -"= c #635632", -"- c #010101", -"; c #FBE73A", -"> c #F6B344", -", c #6C5E33", -"' c #F9E33A", -") c #F3B043", -"! c #625739", -"~ c #F8DE39", -"{ c #F2AE42", -"] c #625738", -"^ c #F0F0F0", -"/ c #7B7B7B", -"( c #F8DB38", -"_ c #EEB34D", -": c #665A32", -"< c #FCFCFC", -"[ c #1E1E1E", -"} c #F7D737", -"| c #EFA83F", -"1 c #655930", -"2 c #B1B1B1", -"3 c #F5D136", -"4 c #ECA33E", -"5 c #5C5230", -"6 c #D6AD74", -"7 c #61562F", -"8 c #4F4115", -" ... ... ..+@@", -" ... ... .+#$@", -"@.%.@@.%.@@+&*=@", -"@...%%...%-;>,-@", -"@...%%...-')!+%@", -"@%%%%%%%-~{]-^/@", -"@%%%%%%-(_:-<[ ", -"@%%%%%-}|1-%2@ ", -"@%%%%-345-%%2@ ", -"@%%%%-67-%%%<[ ", -"@%%%-8--%%%%%^/@", -"@...--...%%...%@", -"@...%%...%%...%@", -"@.%.@@.%.@@.%.@@", -" ... ... ... ", -" ... ... ... "}; - -#endif diff --git a/bitmaps_xpm/module.xpm b/bitmaps_xpm/module.xpm deleted file mode 100644 index f8c08b03e4..0000000000 --- a/bitmaps_xpm/module.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * module_xpm[]; - -#else -const char * module_xpm[] = { -"16 15 4 1", -"X c Red", -". c None", -"o c Blue", -"c c Gray", -"....XXX..XXX....", -".cooX..XX..Xooc.", -".cooX......Xooc.", -"....X......X....", -".cooX......Xooc.", -".cooX......Xooc.", -"....X......X....", -".cooX......Xooc.", -".cooX......Xooc.", -"....X......X....", -".cooX......Xooc.", -".cooX......Xooc.", -"....X......X....", -".cooX......Xooc.", -"....XXXXXXXX...." -}; -#endif - diff --git a/bitmaps_xpm/module_check.xpm b/bitmaps_xpm/module_check.xpm deleted file mode 100644 index 1de2609f00..0000000000 --- a/bitmaps_xpm/module_check.xpm +++ /dev/null @@ -1,153 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* module_check_xpm[]; -#else -const char * module_check_xpm[] = { -"16 16 129 2", -" c None", -". c #D72E2E", -"+ c #000000", -"@ c #691717", -"# c #380C0C", -"$ c #F8F8F8", -"% c #B8B8B8", -"& c #A9A9B8", -"* c #DAD9F8", -"= c #3B0D0D", -"- c #353F4D", -"; c #477096", -"> c #D42D2D", -", c #FFFFFF", -"' c #EEEDF8", -") c #E5E4F8", -"! c #E1E0FF", -"~ c #D7D6FF", -"{ c #536980", -"] c #8EACC8", -"^ c #0D1217", -"/ c #FCFCFC", -"( c #FEFEFE", -"_ c #F5F5FF", -": c #EBEBFF", -"< c #E1E1FF", -"[ c #696983", -"} c #253341", -"| c #BFD0E0", -"1 c #31506C", -"2 c #050101", -"3 c #D62D2D", -"4 c #CD2B2B", -"5 c #3D6283", -"6 c #2D353B", -"7 c #C9C8D0", -"8 c #E7E6FA", -"9 c #E2E1FF", -"0 c #D8D7FF", -"a c #8685A6", -"b c #3F4557", -"c c #96AFC7", -"d c #628BB3", -"e c #5D1414", -"f c #C72B2B", -"g c #16222D", -"h c #D6E1EB", -"i c #26384A", -"j c #9191A4", -"k c #CFCEF4", -"l c #CECDFF", -"m c #23222D", -"n c #638AB1", -"o c #A2BBD3", -"p c #355573", -"q c #911F1F", -"r c #D12C2C", -"s c #D52E2E", -"t c #5885B0", -"u c #B1C6DA", -"v c #273C51", -"w c #777793", -"x c #52516A", -"y c #3E495E", -"z c #131D27", -"A c #470F0F", -"B c #B32626", -"C c #373B44", -"D c #7A9EC0", -"E c #769BBE", -"F c #233649", -"G c #41445C", -"H c #8AAAC8", -"I c #7298BC", -"J c #3B5F7F", -"K c #020100", -"L c #1B0505", -"M c #BAB9D9", -"N c #253849", -"O c #779CBF", -"P c #638DB5", -"Q c #33506A", -"R c #5482AE", -"S c #1B2C3C", -"T c #330B0B", -"U c #A42323", -"V c #D12D2D", -"W c #CCCBFA", -"X c #48495E", -"Y c #48739A", -"Z c #668FB6", -"` c #ACC2D7", -" . c #42698C", -".. c #05090B", -"+. c #6D1717", -"@. c #D62E2E", -"#. c #C7C6FF", -"$. c #B1AFEF", -"%. c #202A38", -"&. c #5D89B3", -"*. c #49749B", -"=. c #426A8E", -"-. c #263C51", -";. c #962020", -">. c #C82A2A", -",. c #BEBCFF", -"'. c #B2B0FC", -"). c #7372A8", -"!. c #243A4F", -"~. c #294158", -"{. c #0C141B", -"]. c #190505", -"^. c #B4B2FF", -"/. c #AFADFF", -"(. c #A8A6F5", -"_. c #2A2D41", -":. c #1B2B3A", -"<. c #0C0C11", -"[. c #C32929", -"}. c #AEACFE", -"|. c #9B99E2", -"1. c #060609", -"2. c #373650", -"3. c #D32D2D", -"4. c #050508", -"5. c #040407", -"6. c #020204", -"7. c #030305", -"8. c #CE2C2C", -". . . + + + + + + . @ # ", -". . + $ % + + + & * + = - ; + ", -". > . + , , $ ' ) ! ~ + { ] ^ + ", -" + / ( _ : < ~ [ } | 1 2 + ", -". 3 4 5 6 7 8 9 0 a b c d ^ e ", -". f g h i j k l m n o p 2 q ", -". r s + t u v w x y o t z A B ", -" + C D E F G H I J K L ", -". . . + M N O P Q u R S T U V ", -". . + W X Y Z ` P ...+. @. ", -". > . + #.$.%.&.*.=.-.+ ;.>.. ", -" + ,.'.).!.5 ~.{.+ ]. ", -". 3 3 + ^./.(._.:.{.<.+ [.3 3 ", -". . + /./.}.|.1.<.2.+ 3. . ", -". r . + 4.4.4.4.5.6.7.+ . 8.. ", -" + "}; - -#endif diff --git a/bitmaps_xpm/module_filtered_list.xpm b/bitmaps_xpm/module_filtered_list.xpm deleted file mode 100644 index 70121ab77a..0000000000 --- a/bitmaps_xpm/module_filtered_list.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *module_filtered_list_xpm[]; - -#else -const char * module_filtered_list_xpm[] = { -"16 15 5 1", -"X c #808080", -" c None", -"o c #808000", -"c c Gray", -"D c Red", -" XXX XXX ", -" cooX XX Xooc ", -" cooX Xooc ", -" XDDDDDDX ", -" cooX Xooc ", -" cooXDDDDD Xooc ", -" X X ", -" cooXDDDD Xooc ", -" cooX Xooc ", -" XDDD X ", -" cooX Xooc ", -" cooXDD Xooc ", -" X X ", -" cooXD Xooc ", -" XXXXXXXX " -}; -#endif diff --git a/bitmaps_xpm/module_full_list.xpm b/bitmaps_xpm/module_full_list.xpm deleted file mode 100644 index 5adc060b2c..0000000000 --- a/bitmaps_xpm/module_full_list.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *module_full_list_xpm[]; - -#else -const char * module_full_list_xpm[] = { -"16 15 5 1", -"X c #808080", -" c None", -"o c #808000", -"c c Gray", -"D c Red", -" XXX XXX ", -" cooX XX Xooc ", -" cooX Xooc ", -" XDDDDDDX ", -" cooX Xooc ", -" cooXDDDDDDXooc ", -" X X ", -" cooXDDDDDDXooc ", -" cooX Xooc ", -" XDDDDDDX ", -" cooX Xooc ", -" cooXDDDDDDXooc ", -" X X ", -" cooXDDDDDDXooc ", -" XXXXXXXX " -}; -#endif diff --git a/bitmaps_xpm/module_options.xpm b/bitmaps_xpm/module_options.xpm deleted file mode 100644 index e22f571276..0000000000 --- a/bitmaps_xpm/module_options.xpm +++ /dev/null @@ -1,89 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* module_options_xpm[]; -#else -const char * module_options_xpm[] = { -"16 16 65 1", -" c None", -". c #D72E2E", -"+ c #000000", -"@ c #010000", -"# c #F8F8F8", -"$ c #B8B8B8", -"% c #A9A9B8", -"& c #DAD9F8", -"* c #F9E53A", -"= c #F1B44C", -"- c #D42D2D", -"; c #FFFFFF", -"> c #EEEDF8", -", c #E5E4F8", -"' c #E1E0FF", -") c #D7D6FF", -"! c #FBE93C", -"~ c #F6B343", -"{ c #645632", -"] c #F5F5FF", -"^ c #EBEBFF", -"/ c #E1E1FF", -"( c #010101", -"_ c #FAE73A", -": c #F5B344", -"< c #6B5E33", -"[ c #D62D2D", -"} c #F6F5FF", -"| c #ECEBFF", -"1 c #E2E1FF", -"2 c #D8D7FF", -"3 c #F9E33A", -"4 c #F2B043", -"5 c #625739", -"6 c #F6F6FF", -"7 c #ECECFF", -"8 c #E2E2FF", -"9 c #F8DE39", -"0 c #F2AE42", -"a c #615637", -"b c #D12C2C", -"c c #EDECFF", -"d c #E3E2FF", -"e c #D9D8FF", -"f c #F8DB38", -"g c #EEB34D", -"h c #665A32", -"i c #CF2C2C", -"j c #E3E3FF", -"k c #F7D737", -"l c #EFA83F", -"m c #655930", -"n c #DAD9FF", -"o c #F5D136", -"p c #ECA33E", -"q c #5C5230", -"r c #AFADFF", -"s c #D62E2E", -"t c #D0CFFF", -"u c #D6AD74", -"v c #61562F", -"w c #4F4115", -"x c #B4B2FF", -"y c #050508", -"z c #CE2C2C", -"...+++ +++.@@+", -". .+#$+++%&+@*=+", -".-.+;;#>,')+!~{+", -" +;;]^/)(_:<+ ", -".[[+;}|12(345@[ ", -". .+6782(90a@ . ", -".b.+cde(fgh+.i. ", -" +je(klm(+ ", -"...+n(opq(r+-ss ", -". .+t(uv(rr+. . ", -".-.+(w((rrr+.b. ", -" +((rrrrr+ ", -".[[+xrrrrrr+b[[ ", -". .+rrrrrrr+. . ", -".b.+yyyyyyy+.z. ", -" "}; - -#endif diff --git a/bitmaps_xpm/module_ratsnest.xpm b/bitmaps_xpm/module_ratsnest.xpm deleted file mode 100644 index d5ccb77183..0000000000 --- a/bitmaps_xpm/module_ratsnest.xpm +++ /dev/null @@ -1,63 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* module_ratsnest_xpm[]; -#else -const char * module_ratsnest_xpm[] = { -"16 16 39 1", -" c None", -". c #FFFFFF", -"+ c #000000", -"@ c #040404", -"# c #030304", -"$ c #C3C3C3", -"% c #080808", -"& c #070708", -"* c #BABAC3", -"= c #FF7800", -"- c #F5F4FF", -"; c #EBEAFF", -"> c #F5F5FF", -", c #EBEBFF", -"' c #E1E1FF", -") c #F6F5FF", -"! c #ECEBFF", -"~ c #E2E1FF", -"{ c #D8D7FF", -"] c #ECECFF", -"^ c #E2E2FF", -"/ c #CECDFF", -"( c #E3E2FF", -"_ c #D9D8FF", -": c #CFCEFF", -"< c #C5C4FF", -"[ c #BBBAFF", -"} c #D0CFFF", -"| c #C6C5FF", -"1 c #BCBAFF", -"2 c #B2B0FF", -"3 c #C0BFF8", -"4 c #B6B5F8", -"5 c #AEACF8", -"6 c #AAA8F8", -"7 c #BCBCE4", -"8 c #00009B", -"9 c #7171C7", -"0 c #4444B5", -".. +@ #+ ..", -"... +$%&*+ ...", -" ..=+..-;+=.. ", -" .=+.>,'+=. ", -" +)!~{+ ", -"....=+]^{/+=....", -"....=+(_:<+=....", -" +_:<[+ ", -" .=+}|12+=. ", -" ...=+3456+=7.. ", -"... ++++++889..", -".. 8 8 0.", -" 88888 ", -" 8 8 8 ", -" 888 ", -" "}; - -#endif diff --git a/bitmaps_xpm/morgan1.xpm b/bitmaps_xpm/morgan1.xpm deleted file mode 100644 index e3be0b2031..0000000000 --- a/bitmaps_xpm/morgan1.xpm +++ /dev/null @@ -1,103 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *morgan1_xpm[]; - -#else -const char * morgan1_xpm[] = { -"16 16 79 1", -" c None", -". c #6361D1", -"+ c #6260D0", -"@ c #5452B1", -"# c #474596", -"$ c #5B5AC2", -"% c #5E5CC7", -"& c #615FCE", -"* c #302F66", -"= c #5251AE", -"- c #514FAB", -"; c #504EA9", -"> c #5A59C0", -", c #5755B9", -"' c #D72E2E", -") c #D72D2D", -"! c #D62E2E", -"~ c #FEFEFF", -"{ c #FBFBFF", -"] c #F6F6FF", -"^ c #F1F1FF", -"/ c #EBE9FC", -"( c #E3C5D9", -"_ c #DA727E", -": c #D13737", -"< c #FAFAFF", -"[ c #F5F5FF", -"} c #F0F0FF", -"| c #EBEBFF", -"1 c #E6E6FF", -"2 c #E1E1FF", -"3 c #DBDBFF", -"4 c #D65F6B", -"5 c #BE5A5A", -"6 c #9B9B9B", -"7 c #D53131", -"8 c #F4F4FF", -"9 c #EFEFFF", -"0 c #EAEAFF", -"a c #E5E5FF", -"b c #E0E0FF", -"c c #D6D6FF", -"d c #D398B6", -"e c #D13838", -"f c #D43232", -"g c #E4E4FF", -"h c #DFDFFF", -"i c #DADAFF", -"j c #D5D5FF", -"k c #D0D0FF", -"l c #CBBCEC", -"m c #B5CCFF", -"n c #D62D2D", -"o c #E9E9FF", -"p c #D4D4FF", -"q c #CFCFFF", -"r c #CACAFF", -"s c #CB92B8", -"t c #D03838", -"u c #B56A6A", -"v c #E3E3FF", -"w c #DEDEFF", -"x c #D9D9FF", -"y c #C9C9FF", -"z c #C4C4FF", -"A c #CF5C70", -"B c #BB5E5E", -"C c #DDDDFF", -"D c #D8D8FF", -"E c #D3D3FF", -"F c #CECEFF", -"G c #C9C7FC", -"H c #C6A9DA", -"I c #CD6983", -"J c #CE3D3D", -"K c #9E9494", -"L c #D52E2E", -"M c #CD4040", -"N c #BE5B5B", -" .... ", -" .+@#$+% ", -".&* =.- ... ", -".# .; .> ,,", -".# ....& .", -" ", -" ''''''') ", -" !~{]^/(_: ", -"'''<[}|12345 ", -" 67890ab3cdef ", -" !90ghijkl!mn''", -" !oghipqrs:tu66", -" !vwxpqyzAB6 ", -"'''CDEFGHIJK ", -" 67''''LMNK6 ", -" 66666666 "}; -#endif diff --git a/bitmaps_xpm/morgan2.xpm b/bitmaps_xpm/morgan2.xpm deleted file mode 100644 index 7aeb468d24..0000000000 --- a/bitmaps_xpm/morgan2.xpm +++ /dev/null @@ -1,101 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *morgan2_xpm[]; - -#else -const char * morgan2_xpm[] = { -"16 16 77 1", -" c None", -". c #6361D1", -"+ c #615FCE", -"@ c #4D4CA3", -"# c #4E4CA5", -"$ c #6260D0", -"% c #605ECC", -"& c #5755B8", -"* c #5F5DC8", -"= c #5F5DCA", -"- c #504EA9", -"; c #615FCD", -"> c #5958BD", -", c #5E5CC7", -"' c #4F4DA7", -") c #D72D2D", -"! c #D72E2E", -"~ c #D62D2D", -"{ c #D52D2D", -"] c #EEB7BA", -"^ c #F6F6FF", -"/ c #F1F1FF", -"( c #EAE1F3", -"_ c #E0A1B1", -": c #D73A3C", -"< c #D32D2D", -"[ c #B5CCFF", -"} c #D12C2C", -"| c #D93F40", -"1 c #EEE6F4", -"2 c #EBEBFF", -"3 c #E6E6FF", -"4 c #E1E1FF", -"5 c #DAC2E1", -"6 c #D6383B", -"7 c #C52A2A", -"8 c #992121", -"9 c #CD2B2B", -"0 c #921F1F", -"a c #E5B6C5", -"b c #E5E5FF", -"c c #E0E0FF", -"d c #DBDBFF", -"e c #D6D6FF", -"f c #D2A1C2", -"g c #D62E2E", -"h c #DE93A2", -"i c #DFDFFF", -"j c #DADAFF", -"k c #D5D5FF", -"l c #D0D0FF", -"m c #CBCBFF", -"n c #D25C6D", -"o c #DCA3B8", -"p c #D4D4FF", -"q c #CFCFFF", -"r c #CACAFF", -"s c #CA99C2", -"t c #5E1414", -"u c #D73233", -"v c #D8C6E8", -"w c #C9C9FF", -"x c #C6AEE1", -"y c #D5373B", -"z c #8F1E1E", -"A c #CE2B2B", -"B c #D795AD", -"C c #D3D3FF", -"D c #CECEFF", -"E c #C9C0F3", -"F c #CB8CB1", -"G c #D4373C", -"H c #A02222", -"I c #B12525", -"J c #D32C2C", -"K c #B92727", -"L c #6F1818", -" .... ", -" ..+@#$% ", -"... ..& *. ", -"= -; .. >. ", -" ,...' .. ", -" ", -" )!!!!!! ", -" ~{]^/(_:< ", -"!~[}|1234567 ", -" 890{abcdefg ", -" {hijklmn}!!!", -" ! !ojpqrs~t ", -"!~[}uvpqwxyz ", -" 8A9BCDEFGH ", -" I!!!!JKL ", -" "}; -#endif diff --git a/bitmaps_xpm/move.xpm b/bitmaps_xpm/move.xpm deleted file mode 100644 index 7b27350510..0000000000 --- a/bitmaps_xpm/move.xpm +++ /dev/null @@ -1,72 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_xpm[]; - -#else -const char * move_xpm[] = { -"16 16 48 1", -" c None", -". c #000000", -"+ c #31313D", -"@ c #DCDCEF", -"# c #33333F", -"$ c #595959", -"% c #84849B", -"& c #FFFFFF", -"* c #010101", -"= c #4B4B4B", -"- c #9B9B9B", -"; c #F1F1FF", -"> c #464646", -", c #E7E5FF", -"' c #5D5D84", -") c #232332", -"! c #767676", -"~ c #FBFBFF", -"{ c #EAEAFF", -"] c #E2E1FF", -"^ c #DBDBFF", -"/ c #D5D3FF", -"( c #CDCDFF", -"_ c #C8C6FF", -": c #C1C1FF", -"< c #BDBBFF", -"[ c #B7B7FF", -"} c #9594D7", -"| c #202020", -"1 c #33333E", -"2 c #808099", -"3 c #D2D0FF", -"4 c #53527C", -"5 c #222231", -"6 c #7D7D7D", -"7 c #C8C8FF", -"8 c #6C6C6C", -"9 c #C0BFFF", -"0 c #B8B8FF", -"a c #B2B0FF", -"b c #52527B", -"c c #ABAAFF", -"d c #4C4C76", -"e c #3E3E3E", -"f c #1F1F2F", -"g c #8887D0", -"h c #1F1F2E", -"i c #181818", -" . ", -" +@#$ ", -" .%&%*= ", -" .&.--- ", -" .&.-- ", -" . .;.-- .> ", -" +%....,.....')!", -".@&~;{]^/(_:<[}|", -" 12....3.....456", -" *---.7.----*8-", -" -- .9.-- --", -" .0.-- ", -" .a.-- ", -" .bcd*e ", -" fgh8-- ", -" i6-- "}; -#endif diff --git a/bitmaps_xpm/move_arc.xpm b/bitmaps_xpm/move_arc.xpm deleted file mode 100644 index 78f2c5076e..0000000000 --- a/bitmaps_xpm/move_arc.xpm +++ /dev/null @@ -1,80 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_arc_xpm[]; - -#else -const char * move_arc_xpm[] = { -"16 16 56 1", -" c None", -". c #00009B", -"+ c #000099", -"@ c #000097", -"# c #000096", -"$ c #000073", -"% c #000039", -"& c #000036", -"* c #000051", -"= c #000086", -"- c #00008E", -"; c #000006", -"> c #00006D", -", c #000085", -"' c #31313D", -") c #DCDCEF", -"! c #31313C", -"~ c #00005D", -"{ c #000074", -"] c #000000", -"^ c #84849B", -"/ c #FFFFFF", -"( c #00004C", -"_ c #000095", -": c #000078", -"< c #000050", -"[ c #000058", -"} c #F1F1FF", -"| c #000001", -"1 c #00003B", -"2 c #E7E5FF", -"3 c #646489", -"4 c #232333", -"5 c #FBFBFF", -"6 c #EAEAFF", -"7 c #E2E1FF", -"8 c #DBDBFF", -"9 c #D5D3FF", -"0 c #CDCDFF", -"a c #C8C6FF", -"b c #C1C1FF", -"c c #9F9DDB", -"d c #30303B", -"e c #7A7A96", -"f c #D2D0FF", -"g c #5A5981", -"h c #1F1F2F", -"i c #C8C8FF", -"j c #00000D", -"k c #C0BFFF", -"l c #5C5C82", -"m c #B8B8FF", -"n c #56557D", -"o c #20202F", -"p c #9493D6", -"q c #1D1D2C", -" ..... ", -" ........+@ ", -" #$% &*=..- ", -" ;>., ", -" ')!~.{ ", -" ]^/^](_ ", -" ]/] :<[ ", -" ] ]}] .|1 ", -" '^]]]2]]]34 ", -" ])5}67890abc]", -" de]]]f]]]gh]", -" ] ]i] |j ", -" ] ]k] ] ", -" ]lmn]] ", -" opq] ", -" ] "}; -#endif diff --git a/bitmaps_xpm/move_circle.xpm b/bitmaps_xpm/move_circle.xpm deleted file mode 100644 index 5f8a16bf0a..0000000000 --- a/bitmaps_xpm/move_circle.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_circle_xpm[]; - -#else -const char * move_circle_xpm[] = { -"16 16 49 1", -" c None", -". c #00009B", -"+ c #000096", -"@ c #00008C", -"# c #000053", -"$ c #00008A", -"% c #00009A", -"& c #000073", -"* c #000000", -"= c #000092", -"- c #31313D", -"; c #DCDCEF", -"> c #31313C", -", c #000055", -"' c #00006F", -") c #84849B", -"! c #FFFFFF", -"~ c #00004C", -"{ c #000083", -"] c #00007C", -"^ c #00004A", -"/ c #F1F1FF", -"( c #000001", -"_ c #E7E5FF", -": c #646489", -"< c #232332", -"[ c #FBFBFF", -"} c #EAEAFF", -"| c #E2E1FF", -"1 c #DBDBFF", -"2 c #D5D3FF", -"3 c #CDCDFF", -"4 c #C8C6FF", -"5 c #C1C1FF", -"6 c #9F9DDB", -"7 c #30303B", -"8 c #7A7A96", -"9 c #D2D0FF", -"0 c #5A5981", -"a c #1F1F2F", -"b c #C8C8FF", -"c c #000062", -"d c #00002E", -"e c #C0BFFF", -"f c #5C5C82", -"g c #B8B8FF", -"h c #56557D", -"i c #9493D6", -"j c #1D1D2C", -" .... ", -" .......+ ", -" ..@# #$.% ", -" ..& *#.= ", -" .@ -;>,.' ", -"..# *)!)*~{ ", -".. *!* ]^ ", -".. * */* .(* ", -"..# -)***_***:< ", -" .$*;[/}|123456*", -" +.#78***9***0a ", -" %.,* *b*cd** ", -" =.~].*e*d * ", -" '{^(fgh** ", -" *aij* ", -" * "}; -#endif diff --git a/bitmaps_xpm/move_field.xpm b/bitmaps_xpm/move_field.xpm deleted file mode 100644 index 61fe0be63c..0000000000 --- a/bitmaps_xpm/move_field.xpm +++ /dev/null @@ -1,86 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_field_xpm[]; - -#else -const char * move_field_xpm[] = { -"16 16 62 1", -" c None", -". c #D2D2D2", -"+ c #9D9D9D", -"@ c #DEDEDE", -"# c #E0E0E0", -"$ c #5C5C5C", -"% c #000000", -"& c #EDEDED", -"* c #939393", -"= c #FDFDFD", -"- c #E4E4E4", -"; c #F1F1F1", -"> c #C3C3C3", -", c #272727", -"' c #E7E7E7", -") c #F4F4F4", -"! c #30303B", -"~ c #DCDCEF", -"{ c #33333E", -"] c #9A9A9A", -"^ c #E9E9E9", -"/ c #8C8C8C", -"( c #84849B", -"_ c #FFFFFF", -": c #010101", -"< c #7C7C7C", -"[ c #FAFAFA", -"} c #B0B0B0", -"| c #7A7A7A", -"1 c #848484", -"2 c #999999", -"3 c #F0F0F0", -"4 c #B1B1B1", -"5 c #020202", -"6 c #CBCBCB", -"7 c #F1F1FF", -"8 c #989898", -"9 c #7F7F7F", -"0 c #343440", -"a c #E7E5FF", -"b c #646489", -"c c #262635", -"d c #FBFBFF", -"e c #EAEAFF", -"f c #E2E1FF", -"g c #DBDBFF", -"h c #D5D3FF", -"i c #CDCDFF", -"j c #C8C6FF", -"k c #C1C1FF", -"l c #9F9DDB", -"m c #7A7A96", -"n c #D2D0FF", -"o c #5A5981", -"p c #20202F", -"q c #C8C8FF", -"r c #C0BFFF", -"s c #5C5C82", -"t c #B8B8FF", -"u c #56557D", -"v c #9493D6", -"w c #1D1D2C", -".++++++++++++++.", -"+.@@@@@@@@@@@@@+", -"+#$%%$&%%%*&===+", -"+-%;;%;%>,%;===+", -"+'%))%)%!~{]===+", -"+^%%%%/%(_(:<==+", -"+&%[[%-%%_%}|12+", -"+3==456=%7%6=58+", -".++90(%%%a%%%bc]", -" %~d7efghijkl%", -" !m%%%n%%%op ", -" % %q% %% ", -" % %r% % ", -" %stu%% ", -" pvw% ", -" % "}; -#endif diff --git a/bitmaps_xpm/move_glabel.xpm b/bitmaps_xpm/move_glabel.xpm deleted file mode 100644 index da5b45e1bf..0000000000 --- a/bitmaps_xpm/move_glabel.xpm +++ /dev/null @@ -1,90 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_glabel_xpm[]; - -#else -const char * move_glabel_xpm[] = { -"16 16 66 1", -" c None", -". c #695F00", -"+ c #685E00", -"@ c #635A00", -"# c #4B4400", -"$ c #9191FF", -"% c #9B9BFF", -"& c #A5A5FF", -"* c #857F66", -"= c #5F5500", -"- c #5E5500", -"; c #574E00", -"> c #625800", -", c #9E9EFF", -"' c #A8A8FF", -") c #B2B2FF", -"! c #BBBBF9", -"~ c #7D7539", -"{ c #595100", -"] c #8B8BCF", -"^ c #242432", -"/ c #9292C2", -"( c #CACAFF", -"_ c #BFBDCC", -": c #494200", -"< c #353542", -"[ c #DCDCEF", -"} c #343441", -"| c #86869D", -"1 c #847C39", -"2 c #4E4700", -"3 c #000000", -"4 c #010000", -"5 c #84849B", -"6 c #FFFFFF", -"7 c #010100", -"8 c #282400", -"9 c #544C00", -"0 c #413A00", -"a c #090800", -"b c #F1F1FF", -"c c #31313D", -"d c #E7E5FF", -"e c #646489", -"f c #232332", -"g c #FBFBFF", -"h c #EAEAFF", -"i c #E2E1FF", -"j c #DBDBFF", -"k c #D5D3FF", -"l c #CDCDFF", -"m c #C8C6FF", -"n c #C1C1FF", -"o c #9F9DDB", -"p c #30303B", -"q c #7A7A96", -"r c #D2D0FF", -"s c #5A5981", -"t c #20202F", -"u c #C8C8FF", -"v c #C0BFFF", -"w c #5C5C82", -"x c #B8B8FF", -"y c #56557D", -"z c #9493D6", -"A c #1D1D2C", -" .. ..... ", -" .+@# .$%&*= ", -" .-;> .,')!~{ ", -" .... .]^/(_. ", -".+ @# :<[}|12 ", -".- .>3456578 ", -" 3 93630a3 ", -" 3 3b33 3 ", -" c5333d333ef ", -" 3[gbhijklmno3", -" pq333r333st ", -" 3 3u3 33 ", -" 3 3v3 3 ", -" 3wxy33 ", -" tzA3 ", -" 3 "}; -#endif diff --git a/bitmaps_xpm/move_line.xpm b/bitmaps_xpm/move_line.xpm deleted file mode 100644 index b0da4b0700..0000000000 --- a/bitmaps_xpm/move_line.xpm +++ /dev/null @@ -1,72 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_line_xpm[]; - -#else -const char * move_line_xpm[] = { -"16 16 48 1", -" c None", -". c #00009B", -"+ c #29299B", -"@ c #43439B", -"# c #45459B", -"$ c #46469B", -"% c #9B9B9B", -"& c #47479B", -"* c #39397D", -"= c #0D0D1E", -"- c #353575", -"; c #70709A", -"> c #2E2E9B", -", c #49499B", -"' c #4A4A9B", -") c #565656", -"! c #32323E", -"~ c #DCDCEF", -"{ c #4A4A4A", -"] c #000000", -"^ c #84849B", -"/ c #FFFFFF", -"( c #F1F1FF", -"_ c #31313D", -": c #E7E5FF", -"< c #646489", -"[ c #232332", -"} c #FBFBFF", -"| c #EAEAFF", -"1 c #E2E1FF", -"2 c #DBDBFF", -"3 c #D5D3FF", -"4 c #CDCDFF", -"5 c #C8C6FF", -"6 c #C1C1FF", -"7 c #9F9DDB", -"8 c #30303B", -"9 c #7A7A96", -"0 c #D2D0FF", -"a c #5A5981", -"b c #20202F", -"c c #C8C8FF", -"d c #C0BFFF", -"e c #5C5C82", -"f c #B8B8FF", -"g c #56557D", -"h c #9493D6", -"i c #1D1D2C", -" ", -"..... ...... ...", -"+@@#$% &*=-; >,'", -" %%%%% )!~!{ %%", -" ]^/^]] ", -" ]/] ", -" ] ](] ] ", -" _^]]]:]]]<[ ", -" ]~}(|1234567]", -" 89]]]0]]]ab ", -" ] ]c] ]] ", -" ] ]d] ] ", -" ]efg]] ", -" bhi] ", -" ] ", -" "}; -#endif diff --git a/bitmaps_xpm/move_module.xpm b/bitmaps_xpm/move_module.xpm deleted file mode 100644 index 56f0a398eb..0000000000 --- a/bitmaps_xpm/move_module.xpm +++ /dev/null @@ -1,79 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* move_module_xpm[]; -#else -const char * move_module_xpm[] = { -"16 16 55 1", -" c None", -". c #000000", -"+ c #C0C0C0", -"@ c #B8B8C0", -"# c #D72E2E", -"$ c #FFFFFF", -"% c #F5F4FF", -"& c #EBEAFF", -"* c #F5F5FF", -"= c #EBEBFF", -"- c #E1E1FF", -"; c #2A0909", -"> c #F6F5FF", -", c #ECEBFF", -"' c #E2E1FF", -") c #9796B3", -"! c #30303B", -"~ c #DCDCEF", -"{ c #31313C", -"] c #ECECFF", -"^ c #E2E2FF", -"/ c #7B7B92", -"( c #020202", -"_ c #84849B", -": c #E3E2FF", -"< c #7C7B92", -"[ c #BDBCE9", -"} c #9E9DCD", -"| c #9897B3", -"1 c #BBBAFF", -"2 c #F1F1FF", -"3 c #353542", -"4 c #E7E5FF", -"5 c #646489", -"6 c #232332", -"7 c #FBFBFF", -"8 c #EAEAFF", -"9 c #DBDBFF", -"0 c #D5D3FF", -"a c #CDCDFF", -"b c #C8C6FF", -"c c #C1C1FF", -"d c #9F9DDB", -"e c #2F2F3B", -"f c #7A7A96", -"g c #D2D0FF", -"h c #5A5981", -"i c #20202F", -"j c #C8C8FF", -"k c #C0BFFF", -"l c #5C5C82", -"m c #B8B8FF", -"n c #56557D", -"o c #9493D6", -"p c #1D1D2C", -" .. .. ", -" .+..@. ", -" #.$$%&.# ", -" #.$*=-.; ", -" .>,')!~{ ", -" #.]^/(_$_.. ", -" #.:<[}.$. ", -" .|(}1.2. . ", -" #.3_...4...56 ", -" #.~728'90abcd.", -" .ef...g...hi ", -" . .j. .. ", -" . .k. . ", -" .lmn.. ", -" iop. ", -" . "}; - -#endif diff --git a/bitmaps_xpm/move_pad.xpm b/bitmaps_xpm/move_pad.xpm deleted file mode 100644 index fb20b53e83..0000000000 --- a/bitmaps_xpm/move_pad.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* move_pad_xpm[]; -#else -const char * move_pad_xpm[] = { -"16 16 44 1", -" c None", -". c #000000", -"+ c #000200", -"@ c #003B00", -"# c #006400", -"$ c #007700", -"% c #005F00", -"& c #007D00", -"* c #007600", -"= c #006100", -"- c #006500", -"; c #000B00", -"> c #005200", -", c #30343B", -"' c #DCDCEF", -") c #30303C", -"! c #84849B", -"~ c #FFFFFF", -"{ c #005300", -"] c #F1F1FF", -"^ c #E7E5FF", -"/ c #646489", -"( c #232332", -"_ c #FBFBFF", -": c #EAEAFF", -"< c #E2E1FF", -"[ c #DBDBFF", -"} c #D5D3FF", -"| c #CDCDFF", -"1 c #C8C6FF", -"2 c #C1C1FF", -"3 c #9F9DDB", -"4 c #2F2F3B", -"5 c #7A7A96", -"6 c #D2D0FF", -"7 c #5A5981", -"8 c #20202F", -"9 c #C8C8FF", -"0 c #C0BFFF", -"a c #5C5C82", -"b c #B8B8FF", -"c c #56557D", -"d c #9493D6", -"e c #1D1D2C", -" ..... ", -" +@#$#@+ ", -" +%&&&&&%+ ", -".@&&*=*&-;. ", -".#&* >,'). ", -".$&= .!~!.. ", -".#&* %.~.. ", -".@&&{.%&.]. . ", -" +%-,!...^.../( ", -" +;'_]:<[}|123.", -" .45...6...78 ", -" .. .9. .. ", -" . .0. . ", -" .abc.. ", -" 8de. ", -" . "}; - -#endif diff --git a/bitmaps_xpm/move_pin.xpm b/bitmaps_xpm/move_pin.xpm deleted file mode 100644 index c20c48a0fd..0000000000 --- a/bitmaps_xpm/move_pin.xpm +++ /dev/null @@ -1,80 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* move_pin_xpm[]; -#else -const char * move_pin_xpm[] = { -"16 16 56 1", -" c None", -". c #D72E2E", -"+ c #DE676B", -"@ c #DA636B", -"# c #D62E2E", -"$ c #E5E5FF", -"% c #D7D7FF", -"& c #D25B6B", -"* c #D23535", -"= c #CACAFF", -"- c #CE576B", -"; c #D03939", -"> c #B96464", -", c #965151", -"' c #241313", -") c #8D4C4C", -"! c #9B9B9B", -"~ c #C35151", -"{ c #B17171", -"] c #535353", -"^ c #32323E", -"/ c #DCDCEF", -"( c #484848", -"_ c #B36E6E", -": c #CA4444", -"< c #9C9898", -"[ c #000000", -"} c #84849B", -"| c #FFFFFF", -"1 c #1B1B1B", -"2 c #F1F1FF", -"3 c #31313D", -"4 c #E7E5FF", -"5 c #646489", -"6 c #232332", -"7 c #FBFBFF", -"8 c #EAEAFF", -"9 c #E2E1FF", -"0 c #DBDBFF", -"a c #D5D3FF", -"b c #CDCDFF", -"c c #C8C6FF", -"d c #C1C1FF", -"e c #9F9DDB", -"f c #30303B", -"g c #7A7A96", -"h c #D2D0FF", -"i c #5A5981", -"j c #20202F", -"k c #C8C8FF", -"l c #C0BFFF", -"m c #5C5C82", -"n c #B8B8FF", -"o c #56557D", -"p c #9493D6", -"q c #1D1D2C", -" .. ", -" .+@. ", -"#+$%&......... ", -"*@%=-;>>,')>>>! ", -"~.&-.{!]^/^(!!! ", -" _::{< [}|}[[ ", -" !!!1 [|[ ", -" [ [2[ [ ", -" 3}[[[4[[[56 ", -" [/72890abcde[", -" fg[[[h[[[ij ", -" [ [k[ [[ ", -" [ [l[ [ ", -" [mno[[ ", -" jpq[ ", -" [ "}; - -#endif diff --git a/bitmaps_xpm/move_pinsheet.xpm b/bitmaps_xpm/move_pinsheet.xpm deleted file mode 100644 index 0302729811..0000000000 --- a/bitmaps_xpm/move_pinsheet.xpm +++ /dev/null @@ -1,105 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_pinsheet_xpm[]; - -#else -const char * move_pinsheet_xpm[] = { -"16 16 81 1", -" c None", -". c #6F6500", -"+ c #FEFEFF", -"@ c #FCFCFF", -"# c #F1F1FF", -"$ c #D3D2D8", -"% c #746B0E", -"& c #8D8A6C", -"* c #6E6400", -"= c #695F00", -"- c #4F4800", -"; c #F8F8FF", -"> c #EDEDFF", -", c #E2E2FF", -"' c #D6D6FF", -") c #AEABB1", -"! c #716707", -"~ c #92907D", -"{ c #635A00", -"] c #5C5300", -"^ c #675E00", -"/ c #F3F3FF", -"( c #E8E8FF", -"_ c #DDDDFF", -": c #D2D2FF", -"< c #C7C7FF", -"[ c #BCBCFF", -"} c #827B4C", -"| c #615A19", -"1 c #1C1B18", -"2 c #544D00", -"3 c #E4E4FF", -"4 c #D9D9FF", -"5 c #CECEFF", -"6 c #C2C2FF", -"7 c #B7B7FF", -"8 c #9895B1", -"9 c #4F4804", -"0 c #34343F", -"a c #DCDCEF", -"b c #32323B", -"c c #000000", -"d c #D4D4FF", -"e c #C9C9FF", -"f c #BEBEFF", -"g c #B3B3FF", -"h c #9E9DD8", -"i c #403B08", -"j c #010101", -"k c #84849B", -"l c #FFFFFF", -"m c #3F3900", -"n c #7C7750", -"o c #7C7C7C", -"p c #9B9B9B", -"q c #6C6C6C", -"r c #31313D", -"s c #E7E5FF", -"t c #646489", -"u c #232332", -"v c #FBFBFF", -"w c #EAEAFF", -"x c #E2E1FF", -"y c #DBDBFF", -"z c #D5D3FF", -"A c #CDCDFF", -"B c #C8C6FF", -"C c #C1C1FF", -"D c #9F9DDB", -"E c #30303B", -"F c #7A7A96", -"G c #D2D0FF", -"H c #5A5981", -"I c #20202F", -"J c #C8C8FF", -"K c #C0BFFF", -"L c #5C5C82", -"M c #B8B8FF", -"N c #56557D", -"O c #9493D6", -"P c #1D1D2C", -"...... .. ", -".++@#$%& .*=- ", -".+;>,')!~ .{]^ ", -"./(_:<[}|12... ", -".34567890abc =- ", -".defghijklkcc.^ ", -".....mnoclc ", -" pppqjopc#c c ", -" rkcccsccctu ", -" cav#wxyzABCDc", -" EFcccGcccHI ", -" c cJc cc ", -" c cKc c ", -" cLMNcc ", -" IOPc ", -" c "}; -#endif diff --git a/bitmaps_xpm/move_polygon.xpm b/bitmaps_xpm/move_polygon.xpm deleted file mode 100644 index 24f3caa364..0000000000 --- a/bitmaps_xpm/move_polygon.xpm +++ /dev/null @@ -1,70 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_polygon_xpm[]; - -#else -const char * move_polygon_xpm[] = { -"16 16 46 1", -" c None", -". c #00009B", -"+ c #000099", -"@ c #00007D", -"# c #000094", -"$ c #000074", -"% c #00001E", -"& c #000066", -"* c #31313D", -"= c #DCDCEF", -"- c #30303E", -"; c #000046", -"> c #000000", -", c #84849B", -"' c #FFFFFF", -") c #000001", -"! c #00006D", -"~ c #F1F1FF", -"{ c #00007C", -"] c #E7E5FF", -"^ c #646489", -"/ c #232332", -"( c #FBFBFF", -"_ c #EAEAFF", -": c #E2E1FF", -"< c #DBDBFF", -"[ c #D5D3FF", -"} c #CDCDFF", -"| c #C8C6FF", -"1 c #C1C1FF", -"2 c #9F9DDB", -"3 c #30303B", -"4 c #7A7A96", -"5 c #D2D0FF", -"6 c #5A5981", -"7 c #20202F", -"8 c #000062", -"9 c #C8C8FF", -"0 c #000063", -"a c #00004C", -"b c #C0BFFF", -"c c #5C5C82", -"d c #B8B8FF", -"e c #56557D", -"f c #9493D6", -"g c #1D1D2C", -"........ ", -"........+ ", -" @.# ", -" $%& ", -" *=-; ", -" >,',)> ", -" >'>!> ", -" > >~>{ > ", -" *,>>>]>>>^/ ", -" >=(~_:<[}|12>", -" 34>>>5>>>67 ", -" ...8)!{>9>0>>> ", -" ....a{.>b>{ > ", -" >>cde>> ", -" 7fg> ", -" > "}; -#endif diff --git a/bitmaps_xpm/move_rectangle.xpm b/bitmaps_xpm/move_rectangle.xpm deleted file mode 100644 index 72024fcdec..0000000000 --- a/bitmaps_xpm/move_rectangle.xpm +++ /dev/null @@ -1,64 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_rectangle_xpm[]; - -#else -const char * move_rectangle_xpm[] = { -"16 16 40 1", -" c None", -". c #00009B", -"+ c #000000", -"@ c #31313D", -"# c #DCDCEF", -"$ c #31313C", -"% c #000062", -"& c #84849B", -"* c #FFFFFF", -"= c #000001", -"- c #00004C", -"; c #00006D", -"> c #00007C", -", c #F1F1FF", -"' c #E7E5FF", -") c #646489", -"! c #232332", -"~ c #FBFBFF", -"{ c #EAEAFF", -"] c #E2E1FF", -"^ c #DBDBFF", -"/ c #D5D3FF", -"( c #CDCDFF", -"_ c #C8C6FF", -": c #C1C1FF", -"< c #9F9DDB", -"[ c #30303B", -"} c #7A7A96", -"| c #D2D0FF", -"1 c #5A5981", -"2 c #20202F", -"3 c #C8C8FF", -"4 c #000063", -"5 c #C0BFFF", -"6 c #00006F", -"7 c #5C5C82", -"8 c #B8B8FF", -"9 c #56557D", -"0 c #9493D6", -"a c #1D1D2C", -"............. ", -"............. ", -".. .. ", -".. + .. ", -".. @#$%. ", -".. +&*&=- ", -".. +*+;>+ ", -".. + +,+>.+ ", -".. @&+++'+++)! ", -".. +#~,{]^/(_:<+", -".. [}+++|+++12 ", -"....%=;>+3+4>++ ", -".....->.+5+>6+ ", -" ++789++ ", -" 20a+ ", -" + "}; -#endif diff --git a/bitmaps_xpm/move_sheet.xpm b/bitmaps_xpm/move_sheet.xpm deleted file mode 100644 index 11331bcf17..0000000000 --- a/bitmaps_xpm/move_sheet.xpm +++ /dev/null @@ -1,92 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_sheet_xpm[]; - -#else -const char * move_sheet_xpm[] = { -"16 16 68 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #B3B3B3", -"# c #393944", -"$ c #DCDCEF", -"% c #363642", -"& c #8A8A8A", -"* c #232323", -"= c #909090", -"- c #020202", -"; c #84849B", -"> c #010101", -", c #313131", -"' c #464646", -") c #FCFCFC", -"! c #E0E0E0", -"~ c #8E8E8E", -"{ c #282828", -"] c #424242", -"^ c #CFCFCF", -"/ c #EBEBEB", -"( c #F1F1FF", -"_ c #BCBCBC", -": c #BDBDBD", -"< c #31313D", -"[ c #E7E5FF", -"} c #606086", -"| c #222232", -"1 c #FBFBFF", -"2 c #EAEAFF", -"3 c #E2E1FF", -"4 c #DBDBFF", -"5 c #D5D3FF", -"6 c #CDCDFF", -"7 c #C8C6FF", -"8 c #C1C1FF", -"9 c #BDBBFF", -"0 c #9999D9", -"a c #30303B", -"b c #7A7A96", -"c c #D2D0FF", -"d c #56567F", -"e c #1E1E2D", -"f c #949494", -"g c #C8C8FF", -"h c #5B5B5B", -"i c #727272", -"j c #787878", -"k c #C0BFFF", -"l c #C6C6C6", -"m c #0E0E0E", -"n c #C9C9C9", -"o c #B8B8FF", -"p c #1A1A1A", -"q c #898989", -"r c #57577F", -"s c #B2B0FF", -"t c #51517A", -"u c #6B6B6B", -"v c #BEBEBE", -"w c #828282", -"x c #222231", -"y c #8D8CD3", -"z c #1E1E2E", -"A c #525252", -"B c #767676", -"C c #858585", -" ", -" ........ ", -" .+@#$%&*. ", -" .=-;+;>,'. ", -" .)!.+.~{]. ", -" .^/.(.~_:. ", -" <;...[....}| ", -" .$1(234567890. ", -" ab...c....de. ", -" .f~.g.hij.. ", -" .f/.k.~_lm ", -" .n/.o.~_lp ", -" .q-rst>ulp ", -" .vwxyzABC. ", -" .......... ", -" "}; -#endif diff --git a/bitmaps_xpm/move_text.xpm b/bitmaps_xpm/move_text.xpm deleted file mode 100644 index f623362d8a..0000000000 --- a/bitmaps_xpm/move_text.xpm +++ /dev/null @@ -1,70 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *move_text_xpm[]; - -#else -const char * move_text_xpm[] = { -"16 16 46 1", -" c None", -". c #00009B", -"+ c #000098", -"@ c #00005D", -"# c #00007D", -"$ c #000000", -"% c #00006C", -"& c #303040", -"* c #DCDCEF", -"= c #31313C", -"- c #000058", -"; c #000001", -"> c #84849B", -", c #FFFFFF", -"' c #00008D", -") c #00007C", -"! c #F1F1FF", -"~ c #31313D", -"{ c #E7E5FF", -"] c #646489", -"^ c #232332", -"/ c #FBFBFF", -"( c #EAEAFF", -"_ c #E2E1FF", -": c #DBDBFF", -"< c #D5D3FF", -"[ c #CDCDFF", -"} c #C8C6FF", -"| c #C1C1FF", -"1 c #9F9DDB", -"2 c #30303B", -"3 c #7A7A96", -"4 c #D2D0FF", -"5 c #5A5981", -"6 c #20202F", -"7 c #00006D", -"8 c #C8C8FF", -"9 c #00004C", -"0 c #C0BFFF", -"a c #000050", -"b c #5C5C82", -"c c #B8B8FF", -"d c #56557D", -"e c #1F1F31", -"f c #9493D6", -"g c #1C1C2F", -".............. ", -".............. ", -".+ .... +. ", -".@ ...#$ . ", -" ..%&*= ", -" .-;>,>$$ ", -" -')$,$ ", -" ;).$!$ $ ", -" ~>$$${$$$]^ ", -" $*/!(_:<[}|1$", -" 23$$$4$$$56 ", -" ;7)$8$ $$ ", -" 9).$0$ $ ", -" ..a;bcd$$ ", -" ....@efg$ ", -" $$$ "}; -#endif diff --git a/bitmaps_xpm/move_track.xpm b/bitmaps_xpm/move_track.xpm deleted file mode 100644 index 7a4cfd1b21..0000000000 --- a/bitmaps_xpm/move_track.xpm +++ /dev/null @@ -1,65 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* move_track_xpm[]; -#else -const char * move_track_xpm[] = { -"16 16 41 1", -" c None", -"! c black", -"# c #007C28", -"$ c #009B00", -"% c #3CBA00", -"& c #287C00", -"' c #0D0D1E", -"( c #9B9B9B", -") c #565656", -"* c #32323E", -"+ c #DCDCEF", -", c #4A4A4A", -"- c #D2D2D2", -". c #84849B", -"0 c white", -"1 c #F1F1FF", -"2 c #31313D", -"3 c #E7E5FF", -"4 c #646489", -"5 c #232332", -"6 c #FBFBFF", -"7 c #EAEAFF", -"8 c #E2E1FF", -"9 c #DBDBFF", -": c #D5D3FF", -"; c #CDCDFF", -"< c #C8C6FF", -"= c #C1C1FF", -"> c #9F9DDB", -"? c #30303B", -"@ c #7A7A96", -"A c #D2D0FF", -"B c #5A5981", -"C c #20202F", -"D c #C8C8FF", -"E c #C0BFFF", -"F c #5C5C82", -"G c #B8B8FF", -"H c #56557D", -"I c #9493D6", -"J c #1D1D2C", -" ", -"##$$$$$$$$$$$$%%", -"&##$$$$$$'$$$$%%", -" (((((()*+*, ---", -" !.0.!! ", -" !0! ", -" ! !1! ! ", -" 2.!!!3!!!45 ", -" !+61789:;<=>!", -" ?@!!!A!!!BC ", -" ! !D! !! ", -" ! !E! ! ", -" !FGH!! ", -" CIJ! ", -" ! ", -" "}; - -#endif diff --git a/bitmaps_xpm/move_track_segment.xpm b/bitmaps_xpm/move_track_segment.xpm deleted file mode 100644 index 93de8b5eec..0000000000 --- a/bitmaps_xpm/move_track_segment.xpm +++ /dev/null @@ -1,65 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* move_track_segment_xpm[]; -#else -const char * move_track_segment_xpm[] = { -"16 16 41 1", -" c None", -"! c black", -"# c #007C28", -"$ c #009B00", -"% c #3CBA00", -"& c #287C00", -"' c #0D0D1E", -"( c #9B9B9B", -") c #565656", -"* c #32323E", -"+ c #DCDCEF", -", c #4A4A4A", -"- c #D2D2D2", -". c #84849B", -"0 c white", -"1 c #F1F1FF", -"2 c #31313D", -"3 c #E7E5FF", -"4 c #646489", -"5 c #232332", -"6 c #FBFBFF", -"7 c #EAEAFF", -"8 c #E2E1FF", -"9 c #DBDBFF", -": c #D5D3FF", -"; c #CDCDFF", -"< c #C8C6FF", -"= c #C1C1FF", -"> c #9F9DDB", -"? c #30303B", -"@ c #7A7A96", -"A c #D2D0FF", -"B c #5A5981", -"C c #20202F", -"D c #C8C8FF", -"E c #C0BFFF", -"F c #5C5C82", -"G c #B8B8FF", -"H c #56557D", -"I c #9493D6", -"J c #1D1D2C", -" ", -"##$$$$$$$$$$$$%%", -"&##$$$$$$'$$$$%%", -" (((((()*+*, ---", -" !.0.!! ", -" !0! ", -" ! !1! ! ", -" 2.!!!3!!!45 ", -" !+61789:;<=>!", -" ?@!!!A!!!BC ", -" ! !D! !! ", -" ! !E! ! ", -" !FGH!! ", -" CIJ! ", -" ! ", -" "}; - -#endif diff --git a/bitmaps_xpm/mw_add_gap.xpm b/bitmaps_xpm/mw_add_gap.xpm deleted file mode 100644 index 0e42f54897..0000000000 --- a/bitmaps_xpm/mw_add_gap.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* mw_add_gap_xpm[]; -#else -const char * mw_add_gap_xpm[] = { -"16 16 13 1", -" c None", -". c #D72E2E", -"+ c #9B9B9B", -"@ c #3737FF", -"# c #000000", -"$ c #9A9A9A", -"% c #080808", -"& c #3B3B3B", -"* c #0F0F0F", -"= c #818181", -"- c #828282", -"; c #5E5E5E", -"> c #434343", -" ", -" ", -".... .... ", -"....+ @ ....+", -"....+ @@@ ....+", -"....+ @ ....+", -"....+ ....+", -" ++++ ++++", -" ", -" ", -" # # ", -" # $ %& ", -" ######### ", -" *=+++-*;$ ", -" &> # + ", -" + + "}; - -#endif diff --git a/bitmaps_xpm/mw_add_line.xpm b/bitmaps_xpm/mw_add_line.xpm deleted file mode 100644 index 431deebb8c..0000000000 --- a/bitmaps_xpm/mw_add_line.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* mw_add_line_xpm[]; -#else -const char * mw_add_line_xpm[] = { -"16 16 6 1", -" c None", -". c #D72E2E", -"+ c #9B9B9B", -"@ c #000000", -"# c #2E2E2E", -"$ c #5F5F5F", -" ... ... ... ", -" .+.+.+.+.+.+ ", -" .+.+.+.+.+.+ ", -" .+.+.+.+.+.+ ", -" .+.+.+.+.+.+ ", -"..+.+.+.+.+.+...", -"+++.+.+.+.+.+.++", -" .+.+.+.+.+.+ ", -" .+.+.+.+.+.+ ", -" .+.+.+.+.+.+ ", -" ...+...+...+ ", -" @+++ +++ #$+ ", -" @ @ ", -" @@@@@@@@@@@@@@ ", -" @ @ ", -" @ @ "}; - -#endif diff --git a/bitmaps_xpm/mw_add_shape.xpm b/bitmaps_xpm/mw_add_shape.xpm deleted file mode 100644 index 6171a7be29..0000000000 --- a/bitmaps_xpm/mw_add_shape.xpm +++ /dev/null @@ -1,45 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* mw_add_shape_xpm[]; -#else -const char * mw_add_shape_xpm[] = { -"16 16 21 1", -" c None", -". c #D72E2E", -"+ c #C54D4D", -"@ c #D62F2F", -"# c #B96262", -"$ c #D53131", -"% c #9B9B9B", -"& c #C84848", -"* c #AA7E7E", -"= c #BD5B5B", -"- c #B66969", -"; c #B86565", -"> c #D13737", -", c #CA4545", -"' c #9C9797", -") c #D23535", -"! c #AE7777", -"~ c #BA6262", -"{ c #C74A4A", -"] c #D03939", -"^ c #9B9999", -" ", -" .. ", -" ...+ ", -" .. ....@ ", -" ..#$...... ", -" .. ........... ", -"...............%", -"...............%", -" &&*=..........%", -" %% ..-;......%", -" >,' )...@!%", -" %% ...~% ", -" {]=^% ", -" %% ", -" ", -" "}; - -#endif diff --git a/bitmaps_xpm/mw_add_stub.xpm b/bitmaps_xpm/mw_add_stub.xpm deleted file mode 100644 index be86874560..0000000000 --- a/bitmaps_xpm/mw_add_stub.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* mw_add_stub_xpm[]; -#else -const char * mw_add_stub_xpm[] = { -"16 16 14 1", -" c None", -". c #D72E2E", -"+ c #070707", -"@ c #9B9B9B", -"# c #121212", -"$ c #747474", -"% c #565656", -"& c #8D8D8D", -"* c #0B0B0B", -"= c #060606", -"- c #1E1E1E", -"; c #131313", -"> c #404040", -", c #505050", -" ", -" .... + ", -" ....@ ++# ", -" ....@ +$% ", -" ....@ +@ ", -" ....@ +@ ", -" ....@ +@ ", -" ....@ +@ ", -" ....@ +@ ", -" ....@ +@ ", -" ....@ +@ ", -" ....@ +&+ ", -" ....@ *=-;@", -" ....@ >=,@@", -" @@@@ @@ ", -" "}; - -#endif diff --git a/bitmaps_xpm/mw_add_stub_arc.xpm b/bitmaps_xpm/mw_add_stub_arc.xpm deleted file mode 100644 index 85ec38483f..0000000000 --- a/bitmaps_xpm/mw_add_stub_arc.xpm +++ /dev/null @@ -1,79 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* mw_add_stub_arc_xpm[]; -#else -const char * mw_add_stub_arc_xpm[] = { -"16 16 55 1", -" c None", -". c #000000", -"+ c #393939", -"@ c #141414", -"# c #050505", -"$ c #101010", -"% c #030303", -"& c #020202", -"* c #0D0D0D", -"= c #080808", -"- c #343434", -"; c #949494", -"> c #9B9B9B", -", c #767676", -"' c #292929", -") c #626262", -"! c #333333", -"~ c #373737", -"{ c #0F0F0F", -"] c #1B1B1B", -"^ c #474747", -"/ c #8F8F8F", -"( c #070707", -"_ c #CD4040", -": c #D53030", -"< c #D72E2E", -"[ c #D72D2D", -"} c #D53131", -"| c #AF7676", -"1 c #151515", -"2 c #353535", -"3 c #D62E2E", -"4 c #CA4343", -"5 c #727272", -"6 c #818181", -"7 c #484848", -"8 c #D62F2F", -"9 c #D63030", -"0 c #A48A8A", -"a c #9C9C9C", -"b c #CE3E3E", -"c c #BC5E5E", -"d c #D33333", -"e c #D23636", -"f c #9E9494", -"g c #B36F6F", -"h c #D13838", -"i c #CB4141", -"j c #9C9A9A", -"k c #AB7D7D", -"l c #0C0C0C", -"m c #060606", -"n c #2F2F2F", -"o c #4F4F4F", -"p c #5E5E5E", -" . ", -".+@.#$#%&* ", -".=-;>>>,'.) ", -"!~{ %]^/ ( ", -" _:<<[}| ((12 ", -" 3<<<<<<4 (5(67 ", -" 8<<<<90a a(> ", -" b<<< (> ", -" d< (> ", -" < (> ", -" hij (6( ", -" k> lm@n ", -" <<<< o(p> ", -" <<<<> > ", -" <<<<> ", -" >>>> "}; - -#endif diff --git a/bitmaps_xpm/mw_toolbar.xpm b/bitmaps_xpm/mw_toolbar.xpm deleted file mode 100644 index ee536fbb52..0000000000 --- a/bitmaps_xpm/mw_toolbar.xpm +++ /dev/null @@ -1,91 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* mw_toolbar_xpm[]; -#else -const char * mw_toolbar_xpm[] = { -"16 16 67 1", -" c None", -". c #000000", -"+ c #E3BF40", -"@ c #EACF71", -"# c #EBD074", -"$ c #EDD78A", -"% c #F1F1F0", -"& c #EBEBEA", -"* c #ECECEB", -"= c #DDDCDA", -"- c #F3E4B0", -"; c #F2E2A9", -"> c #E8CA61", -", c #D6D5D3", -"' c #D7D6D4", -") c #D8D7D5", -"! c #B6B4AF", -"~ c #F3E4B2", -"{ c #B7B5B0", -"] c #D9D8D6", -"^ c #EEC593", -"/ c #E57054", -"( c #E88C69", -"_ c #DABEBC", -": c #D86A69", -"< c #D98685", -"[ c #DAD9D7", -"} c #1B0000", -"| c #D90000", -"1 c #EDD686", -"2 c #DB1910", -"3 c #CA6522", -"4 c #D61717", -"5 c #B25F5C", -"6 c #9F9D96", -"7 c #BE0000", -"8 c #6D0000", -"9 c #A10000", -"0 c #B44746", -"a c #BDBDBC", -"b c #AF4241", -"c c #B34646", -"d c #B1B0AF", -"e c #9C0000", -"f c #AD403F", -"g c #ACABAA", -"h c #A33634", -"i c #ABABA9", -"j c #AE4040", -"k c #92908C", -"l c #ADACAB", -"m c #A43634", -"n c #93918D", -"o c #AEADAB", -"p c #AE4140", -"q c #DBDAD8", -"r c #CE605E", -"s c #974341", -"t c #D60E0E", -"u c #BB1716", -"v c #9A3F3D", -"w c #BE1A1A", -"x c #AC3E3B", -"y c #8B0000", -"z c #480000", -"A c #B10000", -"B c #040000", -"............... ", -".+@@@#$.%&***=. ", -".@---;>.&,,')!. ", -".@--~;>.*,')){. ", -".@---;>.&,,]]{. ", -".#^//(>._::<[{}|", -".12|||3.4|||567|", -"..|8.|8.|8.|8.|9", -".%|0a|b.|ca|0d|e", -".&|fg|h.|fi|jk|e", -".*|fl|m.|fg|jn|e", -".&|fo|m.|fi|pn|e", -".q|jo|m.|jl|pn|e", -"8r|sntu8|vntwx|y", -"||8..z||AB.z||A ", -" "}; - -#endif diff --git a/bitmaps_xpm/net_highlight.xpm b/bitmaps_xpm/net_highlight.xpm deleted file mode 100644 index 0170b776f2..0000000000 --- a/bitmaps_xpm/net_highlight.xpm +++ /dev/null @@ -1,98 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* net_highlight_xpm[]; -#else -const char * net_highlight_xpm[] = { -"16 16 74 1", -" c None", -". c #46FF00", -"+ c #9B0000", -"@ c #1F4412", -"# c #1F4310", -"$ c #FF0000", -"% c #441212", -"& c #F2D7C1", -"* c #F2BD8E", -"= c #440C07", -"- c #440F0D", -"; c #F2B279", -"> c #492D15", -", c #3B0700", -"' c #1F3A04", -") c #212320", -"! c #404040", -"~ c #A00000", -"{ c #2A3A24", -"] c #FEFEFE", -"^ c #939393", -"/ c #0E0E0E", -"( c #1E3715", -"_ c #FFFFFF", -": c #CECEDD", -"< c #383841", -"[ c #123705", -"} c #F7F7FF", -"| c #E6E6FF", -"1 c #D5D5FE", -"2 c #54546D", -"3 c #000000", -"4 c #8B0000", -"5 c #114000", -"6 c #F6F6F6", -"7 c #EFEFFE", -"8 c #CCCCE9", -"9 c #2D2D39", -"0 c #154E00", -"a c #D6D6DB", -"b c #4C4C53", -"c c #9D9DBA", -"d c #4A4A5F", -"e c #000100", -"f c #987D74", -"g c #A0847A", -"h c #195D00", -"i c #1D211F", -"j c #002600", -"k c #373844", -"l c #B5B5F2", -"m c #181E23", -"n c #858874", -"o c #D6853E", -"p c #919782", -"q c #299A00", -"r c #003700", -"s c #004700", -"t c #001400", -"u c #9494CD", -"v c #8282C6", -"w c #2C2D28", -"x c #D68C4A", -"y c #D69D6A", -"z c #919A88", -"A c #3BD800", -"B c #37374F", -"C c #494974", -"D c #0A0A0C", -"E c #937C77", -"F c #A08A86", -"G c #44FA00", -"H c #8C0000", -"I c #980000", -" .. ++ ", -" .. ++ ", -" @# ++ ", -"$$%&*=$$$$$$$$$$", -"$$-;>,$$$$$$$$$$", -" ')! ~~ ", -" .{]^/ ++ ", -" .(__:< ++ ", -" .[_}|1234+ ", -" .567893 ++ ", -" .0abcde fg ", -" .hijklmnoop ", -" .qrstuvwxyz ", -" .A BCDEF ", -" .G 33 H+ ", -" .. I+ "}; - -#endif diff --git a/bitmaps_xpm/net_locked.xpm b/bitmaps_xpm/net_locked.xpm deleted file mode 100644 index 54162860da..0000000000 --- a/bitmaps_xpm/net_locked.xpm +++ /dev/null @@ -1,114 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* net_locked_xpm[]; -#else -const char * net_locked_xpm[] = { -"16 16 90 1", -" c None", -". c #007D00", -"+ c #007000", -"@ c #333533", -"# c #A4A3A3", -"$ c #33322D", -"% c #004B00", -"& c #FFE3CB", -"* c #A48060", -"= c #332D24", -"- c #A47952", -"; c #33210F", -"> c #004800", -", c #003B00", -"' c #000000", -") c #007600", -"! c #114611", -"~ c #777877", -"{ c #D0D0D0", -"] c #D9D9D9", -"^ c #B9B9B9", -"/ c #6A6A6A", -"( c #040404", -"_ c #094909", -": c #818381", -"< c #B6B6B6", -"[ c #343434", -"} c #1B1B1B", -"| c #4B4B4B", -"1 c #AFAFAF", -"2 c #7E7E7E", -"3 c #293329", -"4 c #BEBFBE", -"5 c #070707", -"6 c #2D2D2D", -"7 c #A8A8A8", -"8 c #2A2C2A", -"9 c #BCBDBC", -"0 c #151515", -"a c #BFBEBE", -"b c #12100D", -"c c #999592", -"d c #1F1C1B", -"e c #0A0A06", -"f c #030201", -"g c #040302", -"h c #2E2820", -"i c #A6A19C", -"j c #19120A", -"k c #A38F75", -"l c #DEC29E", -"m c #DDC2A1", -"n c #D8BC98", -"o c #D4B892", -"p c #CBA475", -"q c #7F592A", -"r c #E0C39F", -"s c #D6B38A", -"t c #C89D67", -"u c #AA8557", -"v c #A58051", -"w c #A58052", -"x c #A17A4A", -"y c #BA8648", -"z c #AA702D", -"A c #E1C4A0", -"B c #D3AC7D", -"C c #AE8B5E", -"D c #D3B082", -"E c #CDA97B", -"F c #CDAA7A", -"G c #C9A270", -"H c #BA8545", -"I c #A86E2A", -"J c #DFC29E", -"K c #CEA473", -"L c #C59963", -"M c #A88254", -"N c #A27D4D", -"O c #9E7643", -"P c #B88241", -"Q c #DFC09A", -"R c #CCA26F", -"S c #AB8B63", -"T c #D0B087", -"U c #CBAA81", -"V c #CCAB81", -"W c #CAA57A", -"X c #B67F3D", -"Y c #AB7231", -" ", -".....+@#$+......", -".....%#&*%......", -" =-; ", -" +> ", -" ..,'''' ", -" )!~{]]^/( ", -" _:<[}}|12 ", -".....345 67' ", -".....89' 0a' ", -" 'bcdeffghij ", -" 'klmmnnnopq'", -" 'rstuvvwxyz'", -" 'ABCDEEFGHI'", -" 'JKLMNNNOPz'", -" 'QRSTUUVWXY'"}; - -#endif diff --git a/bitmaps_xpm/net_unlocked.xpm b/bitmaps_xpm/net_unlocked.xpm deleted file mode 100644 index f71bf467b3..0000000000 --- a/bitmaps_xpm/net_unlocked.xpm +++ /dev/null @@ -1,114 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* net_unlocked_xpm[]; -#else -const char * net_unlocked_xpm[] = { -"16 16 90 1", -" c None", -". c #007D00", -"+ c #007000", -"@ c #333533", -"# c #A4A3A3", -"$ c #33322D", -"% c #004B00", -"& c #FFE3CB", -"* c #A48060", -"= c #332D24", -"- c #A47952", -"; c #33210F", -"> c #004800", -", c #000000", -"' c #006100", -") c #006300", -"! c #111111", -"~ c #777777", -"{ c #D0D0D0", -"] c #D9D9D9", -"^ c #6A716A", -"/ c #044004", -"( c #003900", -"_ c #818181", -": c #B6B6B6", -"< c #353535", -"[ c #1C1C1C", -"} c #AFAFAF", -"| c #7E837E", -"1 c #000100", -"2 c #293329", -"3 c #BEBFBE", -"4 c #071807", -"5 c #2D2F2D", -"6 c #A8A9A8", -"7 c #2A2C2A", -"8 c #BCBEBC", -"9 c #001200", -"0 c #151815", -"a c #BFBEBE", -"b c #12100D", -"c c #999592", -"d c #1F1C1B", -"e c #0A0A06", -"f c #030201", -"g c #040302", -"h c #0C0B08", -"i c #272523", -"j c #19120A", -"k c #A38F75", -"l c #DEC29E", -"m c #DDC2A1", -"n c #D8BC98", -"o c #D4B892", -"p c #CBA475", -"q c #7F592A", -"r c #E0C39F", -"s c #D6B38A", -"t c #C89D67", -"u c #AA8557", -"v c #A58051", -"w c #A58052", -"x c #A17A4A", -"y c #BA8648", -"z c #AA702D", -"A c #E1C4A0", -"B c #D3AC7D", -"C c #AE8B5E", -"D c #D3B082", -"E c #CDA97B", -"F c #CDAA7A", -"G c #C9A270", -"H c #BA8545", -"I c #A86E2A", -"J c #DFC29E", -"K c #CEA473", -"L c #C59963", -"M c #A88254", -"N c #A27D4D", -"O c #9E7643", -"P c #B88241", -"Q c #DFC09A", -"R c #CCA26F", -"S c #AB8B63", -"T c #D0B087", -"U c #CBAA81", -"V c #CCAB81", -"W c #CAA57A", -"X c #B67F3D", -"Y c #AB7231", -" ", -".....+@#$+......", -".....%#&*%......", -" =-; ", -" +> ", -" ,,'.) ", -" !~{]^/( ", -" _:<[}|1 ", -"234..56, ", -"789..0a, ", -" ,bcdeffghij ", -" ,klmmnnnopq,", -" ,rstuvvwxyz,", -" ,ABCDEEFGHI,", -" ,JKLMNNNOPz,", -" ,QRSTUUVWXY,"}; - -#endif diff --git a/bitmaps_xpm/netlist.xpm b/bitmaps_xpm/netlist.xpm deleted file mode 100644 index 469e9b15a3..0000000000 --- a/bitmaps_xpm/netlist.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *netlist_xpm[]; - -#else -const char * netlist_xpm[] = { -"16 16 44 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #BFE5FF", -"# c #45535D", -"$ c #F6F5F4", -"% c #6C5B4C", -"& c #EC8F3D", -"* c #FF7800", -"= c #C4DCEB", -"- c #B6C5CC", -"; c #A6805E", -"> c #FC9F4C", -", c #FFEAD7", -"' c #F7E2CF", -") c #E7C7AB", -"! c #E1B894", -"~ c #F0DBC8", -"{ c #ABBDC9", -"] c #FFF4EB", -"^ c #F1DECD", -"/ c #A6B9C4", -"( c #FFBF87", -"_ c #EECEB2", -": c #FFFEFD", -"< c #EDCDB1", -"[ c #DDB187", -"} c #DCC2AB", -"| c #DBC2AA", -"1 c #8B8B8B", -"2 c #898989", -"3 c #FFBB80", -"4 c #2C343B", -"5 c #B8BBBD", -"6 c #3A4248", -"7 c #394146", -"8 c #B6B9BB", -"9 c #2E373E", -"0 c #202020", -"a c #393939", -"b c #E3E3E3", -"c c #E2E2E2", -"d c #353535", -"e c #262626", -"................", -".+++++.++.+++++.", -".@.@#......#@.@.", -".+++$%&**&%$+++.", -".@.@=-;>>;-=@.@.", -".+++,')!!)~,+++.", -".@.@={]^^]/=@.@.", -".+++(_(::(<(+++.", -".@.@[}(++(|[@.@.", -".++++1++++2++++.", -".@.@*3*++*3*@.@.", -".+++*3*++*3*+++.", -".@.@@456789@@.@.", -".++++0abcde++++.", -".@.@@@@@@@@@@.@.", -"................"}; -#endif diff --git a/bitmaps_xpm/new.xpm b/bitmaps_xpm/new.xpm deleted file mode 100644 index 78da032c37..0000000000 --- a/bitmaps_xpm/new.xpm +++ /dev/null @@ -1,47 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *new_xpm[]; - -#else -const char * new_xpm[] = { -"16 16 23 1", -" c None", -"! c black", -"# c #FEFEFE", -"$ c #090909", -"% c #EEEEEE", -"& c #F1F1F1", -"' c #FBFBFB", -"( c #767676", -") c #F0F0F0", -"* c #161616", -"+ c #EFEFEF", -", c #C4C4C4", -"- c #ECECEC", -". c #EBEBEB", -"0 c #EDEDED", -"1 c #EAEAEA", -"2 c #E8E8E8", -"3 c #E9E9E9", -"4 c #E7E7E7", -"5 c #E6E6E6", -"6 c #E5E5E5", -"7 c #E4E4E4", -"8 c #E3E3E3", -" !!!!!!!!!!!! ", -"!##########$#! ", -"!#%%%&&&&&&$'#! ", -"!#%%%&&&&&&$(##!", -"!#%%%&&&&&)$$$*!", -"!#%%%&++++++%%,!", -"!#%%%+++%%%%%-,!", -"!#%%%%%%%%%%%.,!", -"!#%%%0---..111,!", -"!#%%%.22222222,!", -"!#%%%113322244,!", -"!#%%%255555556,!", -"!#%%%445556677,!", -"!#%%%%%%%%7888,!", -"!,,,,,,,,,,,,,,!", -" !!!!!!!!!!!!!! "}; -#endif diff --git a/bitmaps_xpm/new_component.xpm b/bitmaps_xpm/new_component.xpm deleted file mode 100644 index f6279fd695..0000000000 --- a/bitmaps_xpm/new_component.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -const char *new_component_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 15 1", -"# c #8C8D14", -"& c #7878B0", -"= c #9797AC", -"% c #30302D", -"o c #CDCF65", -"- c #4E4E68", -"$ c #AAABF8", -" c none", -"@ c #0A090C", -"X c #D3D30B", -"* c #B4B5B4", -"; c #6C6E6C", -". c #E0E09C", -"+ c #F6F704", -"O c #BEBE1C", -/* pixels */ -" . ", -" Xo ", -" .XX ", -" oOXX++XXO.", -" oX++++Xo ", -" .O+++Xo ", -" @@@@@#+X+X. ", -" @$$$$OO##Xo ", -"%%%@$$$$o$$&%o ", -"**=@$$$$$$$$@* ", -" @$$$$$$$$-%;;", -" @$$$$$$$$-%;;", -" @$$$$$$$$%= ", -"***@$$$$$$$&@ ", -"%%@@$=$=$&-@* ", -" @@@@@@%-* " -}; diff --git a/bitmaps_xpm/new_cvpcb.xpm b/bitmaps_xpm/new_cvpcb.xpm deleted file mode 100644 index 8d48d49082..0000000000 --- a/bitmaps_xpm/new_cvpcb.xpm +++ /dev/null @@ -1,111 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * new_cvpcb_xpm[]; -#else -const char * new_cvpcb_xpm[] = { -"16 16 87 1", -" c None", -". c #000000", -"+ c #FEFEFE", -"@ c #090909", -"# c #EEEEEE", -"$ c #F1F1F1", -"% c #FBFBFB", -"& c #FF7800", -"* c #767676", -"= c #161616", -"- c #EFEFEF", -"; c #AF5200", -"> c #6A3200", -", c #6B3200", -"' c #984700", -") c #C4C4C4", -"! c #807F7F", -"~ c #A88363", -"{ c #D5D4D3", -"] c #FFFCFA", -"^ c #FFDFC2", -"/ c #FFCFA5", -"( c #FFB06A", -"_ c #FFA04D", -": c #FF9130", -"< c #803C00", -"[ c #ECECEC", -"} c #232323", -"| c #FFA352", -"1 c #E4B58C", -"2 c #D2CAC2", -"3 c #FFDFC3", -"4 c #FECFA5", -"5 c #FEB06B", -"6 c #FFA14E", -"7 c #FF9230", -"8 c #EBEBEB", -"9 c #7D7D7D", -"0 c #D48845", -"a c #A98C73", -"b c #817C78", -"c c #585451", -"d c #987B62", -"e c #847364", -"f c #C08959", -"g c #EC8C39", -"h c #100800", -"i c #EAEAEA", -"j c #B87941", -"k c #957D69", -"l c #666260", -"m c #666666", -"n c #282524", -"o c #766454", -"p c #AD784A", -"q c #C2742F", -"r c #E8E8E8", -"s c #DA8A44", -"t c #9E7A5A", -"u c #746960", -"v c #7B6F66", -"w c #B6967C", -"x c #92663E", -"y c #C98040", -"z c #EC8830", -"A c #E7E7E7", -"B c #E4944E", -"C c #B8A595", -"D c #E8E7E6", -"E c #FFE2C9", -"F c #FFD3AC", -"G c #FFB471", -"H c #FFA454", -"I c #FF9436", -"J c #803C02", -"K c #E5E5E5", -"L c #BBB8B6", -"M c #FEFDFD", -"N c #FFFEFE", -"O c #FFE3CA", -"P c #FFD3AD", -"Q c #FFB472", -"R c #FFA555", -"S c #FF9537", -"T c #803D02", -"U c #E4E4E4", -"V c #E3E3E3", -" ............ ", -".++++++++++@+. ", -".+###$$$$$$@%+. ", -".+###$$$&&&&*++.", -".+###$$$&&&&@@=.", -".+###$--;>,'.#).", -".+#!~{]^/(_:<[).", -"...}|1234567<8).", -".+#90abcdefghi).", -".+#!jklmnopqrr).", -".+#!stuvwxyzhA).", -"...}BCDEFGHIJK).", -".+#9LMNOPQRSTU).", -".+######;>,'.V).", -".)))))))&&&&))).", -" .............. "}; -#endif - diff --git a/bitmaps_xpm/new_footprint.xpm b/bitmaps_xpm/new_footprint.xpm deleted file mode 100644 index 69f4876975..0000000000 --- a/bitmaps_xpm/new_footprint.xpm +++ /dev/null @@ -1,39 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* new_footprint_xpm[]; -#else -const char * new_footprint_xpm[] = { -"16 16 15 1", -" c None", -". c #FFF500", -"+ c #787300", -"@ c #000000", -"# c #625E00", -"$ c #EFE600", -"% c #F6ED00", -"& c #2F2D00", -"* c #D72E2E", -"= c #581212", -"- c #716C00", -"; c #FAE503", -"> c #925011", -", c #F5E402", -"' c #821B1B", -" . ", -" . .+. ", -" @@@ #$.% ", -" @ @@...&... ", -"**= -%.;> ", -"**= . .>, ", -" @ . ", -"**= ='* ", -"**= =** ", -" @ @ ", -"**= =** ", -"**= =** ", -" @ @ ", -" @ @ ", -" @@@@@@@@ ", -" "}; - -#endif diff --git a/bitmaps_xpm/new_library.xpm b/bitmaps_xpm/new_library.xpm deleted file mode 100644 index 792391bb67..0000000000 --- a/bitmaps_xpm/new_library.xpm +++ /dev/null @@ -1,157 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *new_library_xpm[]; - -#else -const char * new_library_xpm[] = { -"16 16 133 2", -" c None", -". c #060708", -"+ c #323538", -"@ c #1E1E1F", -"# c #FFF500", -"$ c #0A0D0E", -"% c #E4E6E7", -"& c #F5F5F5", -"* c #919175", -"= c #EFE500", -"- c #B4B272", -"; c #F6F6F6", -"> c #D7D7D7", -", c #DFE0E1", -"' c #636222", -") c #F7EE0B", -"! c #F7ED0C", -"~ c #9B9B9B", -"{ c #050608", -"] c #E3E6E7", -"^ c #D7D8D8", -"/ c #D1D1D1", -"( c #A9A881", -"_ c #070A0D", -": c #E5E7E9", -"< c #F8F8F8", -"[ c #D4D4D4", -"} c #BCBCBC", -"| c #CCCCCC", -"1 c #C9C9C9", -"2 c #B4B172", -"3 c #F7EE0C", -"4 c #FBF101", -"5 c #020305", -"6 c #9E9E9F", -"7 c #F4F4F5", -"8 c #CECECE", -"9 c #CFCFCF", -"0 c #B5B5B5", -"a c #CBCAAC", -"b c #FBF20F", -"c c #CBC888", -"d c #F6ED0B", -"e c #626144", -"f c #353535", -"g c #0A0A0A", -"h c #000000", -"i c #838686", -"j c #B3B7BB", -"k c #DDDDDD", -"l c #B7B7B7", -"m c #C8C8C8", -"n c #C4C4C4", -"o c #B7BABD", -"p c #A8AA8F", -"q c #A1A1A1", -"r c #E4E3C6", -"s c #A2A2A2", -"t c #DFDFDF", -"u c #232324", -"v c #1B1B1B", -"w c #98999B", -"x c #BBBBBB", -"y c #C3C3C3", -"z c #BCBDBE", -"A c #A2A5A7", -"B c #CECFD0", -"C c #DADBDB", -"D c #E1E2E3", -"E c #F6F7F8", -"F c #D6D6D8", -"G c #AEB0B1", -"H c #7B7E80", -"I c #B3B6B8", -"J c #BFBFBF", -"K c #AEB1B5", -"L c #B9BBBC", -"M c #F2F2F2", -"N c #FBFCFC", -"O c #F8FAFB", -"P c #F7F8F9", -"Q c #CACBCD", -"R c #858B91", -"S c #171818", -"T c #737E87", -"U c #B9B9B9", -"V c #D8D8D8", -"W c #A7AAAC", -"X c #E4E4E4", -"Y c #E5E5E5", -"Z c #E3E4E4", -"` c #F9FAFB", -" . c #DEDFDF", -".. c #B3B6BA", -"+. c #171A1D", -"@. c #414447", -"#. c #8D9398", -"$. c #ABADAF", -"%. c #FEFEFE", -"&. c #FDFDFD", -"*. c #F9FAFA", -"=. c #F9F9FA", -"-. c #CBCDD0", -";. c #737B84", -">. c #626973", -",. c #868788", -"'. c #EAEAEA", -"). c #FDFEFE", -"!. c #FCFDFD", -"~. c #FAFBFB", -"{. c #EFF0F0", -"]. c #A8ADB3", -"^. c #15171A", -"/. c #11151A", -"(. c #47515D", -"_. c #C0C6CC", -":. c #C4C8CB", -"<. c #D5D6D7", -"[. c #DBDBDB", -"}. c #F3F4F4", -"|. c #D1D1D2", -"1. c #798087", -"2. c #191B1D", -"3. c #2A2D30", -"4. c #474D50", -"5. c #7E8284", -"6. c #9B9D9F", -"7. c #9FA5AB", -"8. c #91989E", -"9. c #0C0E10", -"0. c #2A333D", -"a. c #181D21", -"b. c #1D2227", -" . + @ # ", -" $ % & * = # - # ", -" $ % ; > , ' ) # ! ~ ", -" { ] ; ^ / # # # ( # # # ", -" _ : < [ } | 1 2 3 # 4 2 ~ ~ ", -"5 6 7 8 9 | 0 a b c # 2 d e f g ", -"h i j k l m n o p q # ~ r s t u ", -" v w x m y z A B C D ~ E F G h ", -" h H I t J K L M N O P E Q R h ", -" S T U V W X Y Z ` P ...+. ", -" h @.#.$.[ %.&.N *.=.-.;.h ", -" h >.,.Y '.).!.~.{.].^. ", -" /.(._.:.<.[.}.|.1.h ", -" 2.3.4.5.6.7.8.9. ", -" 0.a.b. ", -" "}; -#endif diff --git a/bitmaps_xpm/new_module.xpm b/bitmaps_xpm/new_module.xpm deleted file mode 100644 index 04cf191825..0000000000 --- a/bitmaps_xpm/new_module.xpm +++ /dev/null @@ -1,97 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* new_module_xpm[]; -#else -const char * new_module_xpm[] = { -"16 16 73 1", -" c None", -". c #FFF500", -"+ c #787300", -"@ c #000000", -"# c #474400", -"$ c #EBE100", -"% c #F6ED00", -"& c #F3F3F3", -"* c #1B1B1B", -"= c #242300", -"- c #D72E2E", -"; c #FFFFFF", -"> c #E0E0E0", -", c #C8C8C8", -"' c #C3C3C8", -") c #A09D64", -"! c #F6ED0C", -"~ c #FAE503", -"{ c #925011", -"] c #FDFDFF", -"^ c #F7F7FF", -"/ c #F1F0E1", -"( c #FDF414", -"_ c #D8D4A9", -": c #F5E402", -"< c #393700", -"[ c #FCFCFF", -"} c #F6F6FF", -"| c #EFEFFF", -"1 c #E8E8FF", -"2 c #DBD9D6", -"3 c #8B8BA3", -"4 c #F5F4FF", -"5 c #EEEEFF", -"6 c #E7E7FF", -"7 c #E1E0FF", -"8 c #DAD9FF", -"9 c #C9C8F3", -"0 c #821B1B", -"a c #EDECFF", -"b c #E6E6FF", -"c c #E0DFFF", -"d c #D9D8FF", -"e c #D2D1FF", -"f c #CCCAFF", -"g c #E5E5FF", -"h c #DFDEFF", -"i c #D8D7FF", -"j c #D1D0FF", -"k c #CBC9FF", -"l c #C4C3FF", -"m c #DDDDFF", -"n c #D7D6FF", -"o c #D0CFFF", -"p c #CAC8FF", -"q c #C3C2FF", -"r c #BCBBFF", -"s c #D6D5FF", -"t c #CFCEFF", -"u c #C8C7FF", -"v c #C2C0FF", -"w c #BBBAFF", -"x c #B5B3FF", -"y c #CECDFF", -"z c #C7C6FF", -"A c #C1BFFF", -"B c #BAB8FF", -"C c #B4B2FF", -"D c #AFADFF", -"E c #C6C5FF", -"F c #C0BEFF", -"G c #B9B7FF", -"H c #B2B1FF", -" . ", -" . .+. ", -" @@@ #$.% ", -" @&*@...=... ", -"--@;>,')!.~{ ", -"--@;]^/(_.{:< ", -" @[}|123.@<@ ", -"--@456789@0- ", -"--@abcdef@-- ", -" @ghijkl@ ", -"--@mnopqr@-- ", -"--@stuvwx@-- ", -" @yzABCD@ ", -" @EFGHDD@ ", -" @@@@@@@@ ", -" "}; - -#endif diff --git a/bitmaps_xpm/new_pcb.xpm b/bitmaps_xpm/new_pcb.xpm deleted file mode 100644 index 4fb6798e8f..0000000000 --- a/bitmaps_xpm/new_pcb.xpm +++ /dev/null @@ -1,59 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * new_pcb_xpm[]; -#else -const char * new_pcb_xpm[] = { -"16 16 35 1", -" c None", -". c #000000", -"+ c #FEFEFE", -"@ c #090909", -"# c #EEEEEE", -"$ c #F1F1F1", -"% c #FBFBFB", -"& c #FEFEFF", -"* c #F9AB7F", -"= c #9B9B9B", -"- c #161616", -"; c #F55A00", -"> c #C4C4C4", -", c #F4A67F", -"' c #FFFFFF", -") c #FAFAFF", -"! c #F6F6FF", -"~ c #F2F2FF", -"{ c #EBEBFF", -"] c #E7E7FF", -"^ c #F9F9FF", -"/ c #F1F1FF", -"( c #EEEEFF", -"_ c #EAEAFF", -": c #E3E3FF", -"< c #DFDFFF", -"[ c #FBFBFF", -"} c #F7F7FF", -"| c #F0F0FF", -"1 c #ECECFF", -"2 c #E5E5FF", -"3 c #E1E1FF", -"4 c #DDDDFF", -"5 c #E3957F", -"6 c #4D4D4D", -" ............ ", -".++++++++++@+. ", -".+###$$$$$$@%+. ", -".+...........++.", -".+.&**&&&&&&.=-.", -".+.&;;;;;;;;.=>.", -".+.&&&&&&&;,.=>.", -".+.&;;;;;;';.=>.", -".+.&**&)!~{].=>.", -".+.&;;;;;;;;.=>.", -".+.&**^/(_:<.=>.", -".+.&;;;;;;';.=>.", -".+.[}|1234;5.=>.", -".+..........6=>.", -".>>===========>.", -" .............. "}; -#endif - diff --git a/bitmaps_xpm/new_project.xpm b/bitmaps_xpm/new_project.xpm deleted file mode 100644 index d1b4066b19..0000000000 --- a/bitmaps_xpm/new_project.xpm +++ /dev/null @@ -1,54 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * new_project_xpm[]; -#else -const char * new_project_xpm[] = { -"16 16 30 1", -" c None", -". c #000000", -"+ c #020202", -"@ c #F8F8F8", -"# c #ECECEC", -"$ c #EBEBEB", -"% c #6B6B6B", -"& c #2D2D2D", -"* c #181818", -"= c #C5C5C5", -"- c #434343", -"; c #5E5E5E", -"> c #F0F0F0", -", c #707070", -"' c #3D3D3D", -") c #C3C3C3", -"! c #0E0E0E", -"~ c #171717", -"{ c #4B4B4B", -"] c #616161", -"^ c #131313", -"/ c #6F6F6F", -"( c #C6C6C6", -"_ c #1B1B1B", -": c #4A4A4A", -"< c #1A1A1A", -"[ c #090909", -"} c #121212", -"| c #B1B1B1", -"1 c #111111", -" ", -" ......+ ", -" .@#$$$%& ", -" ......*=$-;. ", -" .>#$$$,')$=! ", -"......~=${]^$=! ", -".>#$$$/')$(_$=! ", -".>#$$$:]^$(_$=! ", -".>#$$$$(<$(_$=! ", -".>#$$$$(<$(_$=! ", -".>#$$$$(<$(_))[ ", -".>#$$$$(<$(_.. ", -".>#$$$$(<))} ", -".>#$$$$(<... ", -".|))))))1 ", -"......... "}; -#endif - diff --git a/bitmaps_xpm/new_sch.xpm b/bitmaps_xpm/new_sch.xpm deleted file mode 100644 index 430bfb7a70..0000000000 --- a/bitmaps_xpm/new_sch.xpm +++ /dev/null @@ -1,90 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * new_sch_xpm[]; -#else -const char * new_sch_xpm[] = { -"16 16 66 1", -" c None", -". c #000000", -"+ c #FEFEFE", -"@ c #090909", -"# c #EEEEEE", -"$ c #F1F1F1", -"% c #FBFBFB", -"& c #FDFDFD", -"* c #FCFCFC", -"= c #DEDEDE", -"- c #BFBFBF", -"; c #767676", -"> c #F0F0F0", -", c #C1C1C1", -"' c #F9F9F9", -") c #161616", -"! c #E2E2E2", -"~ c #8F8F8F", -"{ c #B1B1B1", -"] c #6F3400", -"^ c #FF7800", -"/ c #848383", -"( c #151515", -"_ c #C4C4C4", -": c #823D00", -"< c #040404", -"[ c #BDBDBD", -"} c #ECECEC", -"| c #E0E0E0", -"1 c #8E8E8E", -"2 c #AFAFAF", -"3 c #753700", -"4 c #F67400", -"5 c #BCBCBC", -"6 c #EBEBEB", -"7 c #E5E5E5", -"8 c #1A1A1A", -"9 c #AEAEAE", -"0 c #EAEAEA", -"a c #ACACAC", -"b c #BD5900", -"c c #231000", -"d c #636363", -"e c #E7E7E7", -"f c #D9D9D9", -"g c #B9B9B9", -"h c #E8E8E8", -"i c #F4F4F4", -"j c #AAAAAA", -"k c #8A8A8A", -"l c #BEBEBE", -"m c #F37200", -"n c #A8A8A8", -"o c #888888", -"p c #D6D6D6", -"q c #E6E6E6", -"r c #060606", -"s c #B05300", -"t c #1C0D00", -"u c #626262", -"v c #E3E3E3", -"w c #BABABA", -"x c #E4E4E4", -"y c #8B8B8B", -"z c #BBBBBB", -"A c #9F9F9F", -" ............ ", -".++++++++++@+. ", -".+#.......$@%+. ", -".+.&&&&*=-.@;++.", -".+.&>>>>,'..@@).", -".+.&!~{]^/(.##_.", -".+...:<^^^[.#}_.", -".+.&|1234^5.#6_.", -".+.78960a89.00_.", -".+.(bcdeefg.hh_.", -".+.i^43jkfl.ee_.", -".+.i^m]nop5.q7_.", -".+.rstuv!!w.xx_.", -".+.w(yzwwwA.vv_.", -".______________.", -" .............. "}; -#endif - diff --git a/bitmaps_xpm/new_txt.xpm b/bitmaps_xpm/new_txt.xpm deleted file mode 100644 index b903b79d49..0000000000 --- a/bitmaps_xpm/new_txt.xpm +++ /dev/null @@ -1,102 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * new_txt_xpm[]; - -#else -const char * new_txt_xpm[] = { -"16 16 78 1", -" c None", -". c #000000", -"+ c #FEFEFE", -"@ c #090909", -"# c #EEEEEE", -"$ c #F1F1F1", -"% c #FBFBFB", -"& c #FBE291", -"* c #F2CC84", -"= c #E2B497", -"- c #F3F3F3", -"; c #767676", -"> c #F3F2F1", -", c #FCE135", -"' c #FFC729", -") c #F6AB5E", -"! c #F1EBE9", -"~ c #F0F0F0", -"{ c #161616", -"] c #FCE397", -"^ c #FFDB35", -"/ c #FFC340", -"( c #EAA871", -"_ c #EFEFEF", -": c #C4C4C4", -"< c #F6F6F6", -"[ c #FDE24E", -"} c #FFCC36", -"| c #FCAC4C", -"1 c #EEE2D9", -"2 c #ECECEC", -"3 c #FBE8B5", -"4 c #FFE458", -"5 c #FFCD55", -"6 c #EDAA6D", -"7 c #EBEBEB", -"8 c #FEE473", -"9 c #FFD861", -"0 c #FDC16A", -"a c #EADBD1", -"b c #EDEDED", -"c c #EAEAEA", -"d c #F4E9CE", -"e c #FEEB80", -"f c #FFD871", -"g c #EFB579", -"h c #E9E9E9", -"i c #E8E8E8", -"j c #E3E3E6", -"k c #DDDDE1", -"l c #FDFDFD", -"m c #FBDF8D", -"n c #FFE389", -"o c #FED58A", -"p c #E7C8B2", -"q c #E2E2E5", -"r c #DEDEE2", -"s c #DFDFE2", -"t c #E7E7E7", -"u c #FCFCFC", -"v c #F7D090", -"w c #FFEAB7", -"x c #ECB989", -"y c #E0E0E4", -"z c #DCDCE1", -"A c #E6E6E6", -"B c #E5E5E5", -"C c #E0B98F", -"D c #E2AD8A", -"E c #DBD1D1", -"F c #DDDDE2", -"G c #E0E0E3", -"H c #E4E4E4", -"I c #DBBDA9", -"J c #E0DBDC", -"K c #E1E1E6", -"L c #E5E5E8", -"M c #E3E3E3", -" ............ ", -".++++++++++@+. ", -".+###$$$$$$@%+. ", -".+###&*=-$$@;++.", -".+##>,')!$~@@@{.", -".+#~]^/(-___##:.", -".+#<[}|1_####2:.", -".+#3456~#####7:.", -".+-890a222bccc:.", -".+defghihjkhii:.", -".lmnop7qkrsttt:.", -".uvwxyzzAAAAAB:.", -".uCDEFFGAABBHH:.", -".lIJKL####HMMM:.", -".::::::::::::::.", -" .............. "}; -#endif diff --git a/bitmaps_xpm/noconn.xpm b/bitmaps_xpm/noconn.xpm deleted file mode 100644 index b75d21662c..0000000000 --- a/bitmaps_xpm/noconn.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *noconn_xpm[]; - -#else -const char *noconn_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 2 1", -" c None", -"- c Blue", -/* pixels */ -" ", -" ", -" - - ", -" - - ", -" - - ", -" - - ", -" - - ", -" - ", -" - - ", -" - - ", -" - - ", -" - - ", -" - - ", -" ", -" " -}; -#endif - diff --git a/bitmaps_xpm/normal.xpm b/bitmaps_xpm/normal.xpm deleted file mode 100644 index c48435749c..0000000000 --- a/bitmaps_xpm/normal.xpm +++ /dev/null @@ -1,131 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *normal_xpm[]; - -#else -const char * normal_xpm[] = { -"16 16 107 2", -" c None", -". c #000000", -"+ c #010101", -"@ c #656565", -"# c #B2B2B2", -"$ c #DAB4B8", -"% c #D5BAC3", -"& c #A1A1AD", -"* c #585860", -"= c #1A1A1A", -"- c #BEBEBE", -"; c #FCFCFE", -"> c #F5F5FB", -", c #DC7377", -"' c #D2727A", -") c #CECEE2", -"! c #D5D5F1", -"~ c #9A9AB2", -"{ c #141418", -"] c #F4F4FB", -"^ c #ECECF8", -"/ c #D02325", -"( c #C72224", -"_ c #AAAAC0", -": c #CDCDEE", -"< c #C5C5EB", -"[ c #8E8EAE", -"} c #FBFBFD", -"| c #F3F3FB", -"1 c #DFBCCA", -"2 c #CD0100", -"3 c #927386", -"4 c #BDBDE8", -"5 c #B5B5E6", -"6 c #45455A", -"7 c #B0B0B2", -"8 c #EBEBF8", -"9 c #E3E3F5", -"0 c #D46D78", -"a c #A03C48", -"b c #ADADD6", -"c c #B4B4E5", -"d c #ADADE3", -"e c #74749D", -"f c #6C6C70", -"g c #75757B", -"h c #DBDBF2", -"i c #CD2327", -"j c #BD1417", -"k c #8E8EB5", -"l c #ACACE3", -"m c #51516F", -"n c #464663", -"o c #69696F", -"p c #70707A", -"q c #DADAF2", -"r c #D3D3F0", -"s c #FBFBFC", -"t c #FBFBFB", -"u c #E3E3E9", -"v c #737397", -"w c #A4A4E0", -"x c #4D4D6E", -"y c #424262", -"z c #9F9FAC", -"A c #D2D2EF", -"B c #CACAED", -"C c #E1E1F4", -"D c #FFFFFF", -"E c #B3B3C4", -"F c #6C6C94", -"G c #9B9BDD", -"H c #9494DA", -"I c #626298", -"J c #565660", -"K c #C2C2EA", -"L c #C6C6EB", -"M c #7B7B99", -"N c #7B7BAF", -"O c #9393DA", -"P c #8B8BD8", -"Q c #343454", -"R c #9797B1", -"S c #C1C1EA", -"T c #B9B9E7", -"U c #B2B2E5", -"V c #F1F1F8", -"W c #E2E2E9", -"X c #5D5D86", -"Y c #8888CA", -"Z c #8B8BD7", -"` c #6262A0", -" . c #000001", -".. c #8B8BAD", -"+. c #B1B1E4", -"@. c #A9A9E2", -"#. c #B0B0C7", -"$. c #616192", -"%. c #8A8AD7", -"&. c #6161A0", -"*. c #0D0D15", -"=. c #43435A", -"-. c #71719D", -";. c #A0A0D0", -">. c #7D7DAC", -",. c #4D4D79", -"'. c #333354", -" ", -" . . . . ", -" + @ # $ % & * + ", -" = - ; > , ' ) ! ~ { ", -" + - ; ] ^ / ( _ : < [ + ", -" @ } | ^ 1 2 2 3 < 4 5 6 . ", -" . 7 | 8 9 0 2 2 a b c d e . ", -" . f g 9 h i 2 2 j k l m n . ", -" . o p q r > s t u v w x y . ", -" . z q A B C D D E F G H I . ", -" J A B K L D D M N O P Q . ", -" + R S T U V W X Y Z ` . ", -" { ..+.@.A #.$.%.&.*.. ", -" + =.-.;.>.,.'. .. ", -" . . . . . . ", -" "}; -#endif diff --git a/bitmaps_xpm/online_help.xpm b/bitmaps_xpm/online_help.xpm deleted file mode 100644 index 0c40018465..0000000000 --- a/bitmaps_xpm/online_help.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *online_help_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"; c #6AAB84", -"- c #449059", -"O c #EF8A8B", -": c #87E78C", -"% c #386BA0", -"= c #36794A", -" c None", -"* c #7C94AC", -". c #DF6162", -"& c #419AED", -"@ c #F5F8F5", -"X c #F27B7C", -"$ c #235257", -"+ c #DCCFCF", -"o c #573639", -"# c #2477CD", -/* pixels */ -" ", -" .XXo ", -" oOOXXX.XXo ", -" .XOOXXX.X... ", -" o....XX.X.O++ ", -" oOX....X+@@@+ ", -"o##o.OX..@@@+Xo ", -"$###%$oX.+O.o ", -"$&&##%#%$.*++ ", -" %&&&&%@@@@+%=o ", -" -$%&#@+%$=;+o ", -" :::=$$-;:@@@$ ", -" ;:::::;@@@@:o ", -" o=:::+@@;$ ", -" o--= ", -" " -}; diff --git a/bitmaps_xpm/open_document.xpm b/bitmaps_xpm/open_document.xpm deleted file mode 100644 index dca0509740..0000000000 --- a/bitmaps_xpm/open_document.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *open_document_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"= c #7EA7D2", -"- c #546F9C", -"% c #7C7A8C", -"@ c #737372", -"+ c #E1E3E1", -" c None", -". c #AEADAE", -"# c #544A4C", -"* c #7694C0", -"O c #969799", -"; c #4D84C3", -"$ c #D0D0D0", -"o c #888988", -"& c #8188A6", -": c #485983", -"X c #A2A4A3", -/* pixels */ -" . X ", -"oOO.+XOOOOOOX+. ", -"@##o+XXXOXXXX$. ", -"ooo..@@@@@@@@$X ", -"oo% .X...... .. ", -"O@o OoooooooXO ", -"OoX&*X*******&*&", -"Oo.&===========*", -"Oo *===========&", -"OO$&===========&", -"Xo.*=======*=**.", -".o%===========& ", -".O-*****;*;*;*& ", -" @:;;;;;;;;;;-X ", -".::::::::::::-. ", -" ...X...X.... " -}; diff --git a/bitmaps_xpm/open_library.xpm b/bitmaps_xpm/open_library.xpm deleted file mode 100644 index 88ad971141..0000000000 --- a/bitmaps_xpm/open_library.xpm +++ /dev/null @@ -1,159 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *open_library_xpm[]; - -#else -const char * open_library_xpm[] = { -"16 16 135 2", -" c None", -". c #060708", -"+ c #323538", -"@ c #1E1E1F", -"# c #0A0D0E", -"$ c #E4E6E7", -"% c #F5F5F5", -"& c #828486", -"* c #040405", -"= c #F6F6F6", -"- c #D5D5D5", -"; c #DFE0E1", -"> c #1F2021", -", c #050608", -"' c #E3E6E7", -") c #F2F2F2", -"! c #7B7C7C", -"~ c #212121", -"{ c #DADADA", -"] c #BEBFC2", -"^ c #0E0E0E", -"/ c #070A0D", -"( c #E5E7E9", -"_ c #191919", -": c #777777", -"< c #C9C9C9", -"[ c #DCDDDD", -"} c #525354", -"| c #020305", -"1 c #9E9E9F", -"2 c #F4F4F5", -"3 c #3F3F3F", -"4 c #292929", -"5 c #272727", -"6 c #A6A7A8", -"7 c #C5C5C5", -"8 c #555555", -"9 c #343434", -"0 c #353535", -"a c #0A0A0A", -"b c #000000", -"c c #838686", -"d c #B3B7BB", -"e c #DDDDDD", -"f c #9A9A9A", -"g c #171717", -"h c #949494", -"i c #6D6D6E", -"j c #0F0F10", -"k c #999A9A", -"l c #FBFCFC", -"m c #FBFBFB", -"n c #FAFAFB", -"o c #F9FAFB", -"p c #E9E9E9", -"q c #232324", -"r c #1B1B1B", -"s c #98999B", -"t c #BBBBBB", -"u c #C2C2C2", -"v c #9E9E9E", -"w c #BBBCBD", -"x c #9EA0A1", -"y c #8A8B8B", -"z c #141414", -"A c #BABBBC", -"B c #F7F8F9", -"C c #F6F7F8", -"D c #DFDFE1", -"E c #AEB0B1", -"F c #7B7E80", -"G c #B3B6B8", -"H c #DFDFDF", -"I c #BEBEBE", -"J c #AEB1B5", -"K c #B9BBBC", -"L c #6B6B6B", -"M c #333334", -"N c #E0E1E2", -"O c #CDCECF", -"P c #CACBCD", -"Q c #858B91", -"R c #171818", -"S c #737E87", -"T c #B9B9B9", -"U c #D8D8D8", -"V c #A7AAAC", -"W c #E4E4E4", -"X c #D7D7D7", -"Y c #767676", -"Z c #4A4A4B", -"` c #626262", -" . c #B3B6BA", -".. c #171A1D", -"+. c #414447", -"@. c #8D9398", -"#. c #ABADAF", -"$. c #D4D4D4", -"%. c #FEFEFE", -"&. c #D0D0D0", -"*. c #323232", -"=. c #0D0D0D", -"-. c #060606", -";. c #AEAFB1", -">. c #737B84", -",. c #626973", -"'. c #868788", -"). c #E5E5E5", -"!. c #EAEAEA", -"~. c #E9EAEA", -"{. c #ABABAB", -"]. c #505050", -"^. c #4D4D4D", -"/. c #A7ACB2", -"(. c #15171A", -"_. c #11151A", -":. c #47515D", -"<. c #C0C6CC", -"[. c #C4C8CB", -"}. c #D5D6D7", -"|. c #D9D9D9", -"1. c #BCBCBC", -"2. c #BCBCBD", -"3. c #798087", -"4. c #191B1D", -"5. c #2A2D30", -"6. c #474D50", -"7. c #7E8284", -"8. c #9B9D9F", -"9. c #9FA5AB", -"0. c #91989E", -"a. c #0C0E10", -"b. c #2A333D", -"c. c #181D21", -"d. c #1D2227", -" . + @ ", -" # $ % & * ", -" # $ = - ; > ", -" , ' ) ! ~ { ] ^ ", -" / ( = ^ _ : < [ } ", -"| 1 2 < 3 ~ 4 5 6 7 8 9 9 9 0 a ", -"b c d e f g h i j k l m n o p q ", -" r s t u v w x y z A B C D E b ", -" b F G H I J K e L M N O P Q b ", -" R S T U V W X Y 5 Z ` ... ", -" b +.@.#.$.%.&.*.=.-.;.>.b ", -" b ,.'.).!.~.{.].^./.(. ", -" _.:.<.[.}.|.1.2.3.b ", -" 4.5.6.7.8.9.0.a. ", -" b.c.d. ", -" "}; -#endif diff --git a/bitmaps_xpm/open_project.xpm b/bitmaps_xpm/open_project.xpm deleted file mode 100644 index 52d099f27c..0000000000 --- a/bitmaps_xpm/open_project.xpm +++ /dev/null @@ -1,91 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * open_project_xpm[]; -#else -const char * open_project_xpm[] = { -"16 16 67 1", -" c None", -"! c black", -"# c #020202", -"$ c #F8F8F8", -"% c #ECECEC", -"& c #EBEBEB", -"' c #6B6B6B", -"( c #2D2D2D", -") c #181818", -"* c #C5C5C5", -"+ c #434343", -", c #5E5E5E", -"- c #F0F0F0", -". c #707070", -"0 c #3D3D3D", -"1 c #C3C3C3", -"2 c #0E0E0E", -"3 c #171717", -"4 c #4B4B4B", -"5 c #616161", -"6 c #131313", -"7 c #E4E5DF", -"8 c #6F6F6F", -"9 c #C6C6C6", -": c #1B1B1B", -"; c #8D907B", -"< c #4A4A4A", -"= c #A6A6A6", -"> c #8A8C7D", -"? c #1A1A1A", -"@ c #878A75", -"A c #666858", -"B c #4B4D3F", -"C c #4D4F40", -"D c #404135", -"E c #424337", -"F c #434437", -"G c #404236", -"H c #3C3D32", -"I c #48493C", -"J c #1A1A16", -"K c #848672", -"L c #25261F", -"M c #F1F2E9", -"N c #DDE0C7", -"O c #D6DABB", -"P c #CDD2AC", -"Q c #C7CCA7", -"R c #989C80", -"S c #090909", -"T c #5F6152", -"U c #888980", -"V c #A7AB8C", -"W c #878A70", -"X c #EFF0E5", -"Y c #9EA284", -"Z c #0C0C0C", -"[ c #96968D", -"] c #E3E5D1", -"^ c #83866D", -"_ c #EDEFE2", -"` c #A2A688", -"a c #E7E9DA", -"b c #D1D3BD", -"c c #BBBF9D", -"d c #989B80", -"e c #6E715C", -" !!!!!!# ", -" !$%&&&'( ", -" !!!!!!)*&+,!", -" !-%&&&.01&*2", -"!!!!!!!3*&456&*2", -"7!-%&&&801&9:&*2", -";!-%&&&<56=9:&*2", -">!-%&&&&9?&9:&*2", -"@ABCDEEFGHIJ6&*2", -"KLMNOPPPPPQR!11S", -"TUNPPPPPPPVW!!! ", -"LXOPPPPPPPY!Z ", -"[]PPPPPPPP^!! ", -"_PPPPPPPP`!! ", -"abccccccde! ", -"!!!!!!!!!!! "}; -#endif - diff --git a/bitmaps_xpm/opt_show_polygon.xpm b/bitmaps_xpm/opt_show_polygon.xpm deleted file mode 100644 index cd952bb307..0000000000 --- a/bitmaps_xpm/opt_show_polygon.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *opt_show_polygon_xpm[]; - -#else -const char * opt_show_polygon_xpm[] = { -"16 16 3 1", -" c None", -"! c black", -"# c #D90000", -" ", -" ####### ", -" # # ", -" # # ", -" # # ", -" # # ", -" # # ", -" # # ", -"# # ", -"# # ", -" # # ", -" # # ", -" # # ", -" # # ", -" # # ", -" ###### "}; -#endif diff --git a/bitmaps_xpm/options_all_tracks.xpm b/bitmaps_xpm/options_all_tracks.xpm deleted file mode 100644 index 7452e510d1..0000000000 --- a/bitmaps_xpm/options_all_tracks.xpm +++ /dev/null @@ -1,63 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* options_all_tracks_xpm[]; -#else -const char * options_all_tracks_xpm[] = { -"16 16 39 1", -" c None", -". c #007D00", -"+ c #004000", -"@ c #007700", -"# c #005800", -"$ c #007C00", -"% c #004900", -"& c #006900", -"* c #000000", -"= c #F0F0F0", -"- c #DEDEDE", -"; c #DFDFDF", -"> c #BFBFBF", -", c #C0C0C0", -"' c #006D00", -") c #979797", -"! c #989898", -"~ c #004500", -"{ c #E3E3E3", -"] c #DDDDDD", -"^ c #C8C8C8", -"/ c #656565", -"( c #838383", -"_ c #878787", -": c #888888", -"< c #AFAFAF", -"[ c #A3A3A3", -"} c #F1F1F1", -"| c #CECECE", -"1 c #ABABAB", -"2 c #EEEEEE", -"3 c #EDEDED", -"4 c #E9E9E9", -"5 c #D9D9D9", -"6 c #C1C1C1", -"7 c #B5B5B5", -"8 c #757575", -"9 c #6B6B6B", -"0 c #777777", -".......... ", -"........... ", -" +.. ", -" @. ", -"....... #.. ", -"........ $. ", -" %.. &.....", -" ************", -"...*=-;;;;;;;;;;", -"...*;>>>>>>,,,,,", -" '*;>)***!,,,,,", -" ~*;>*{]^*/(_:<", -" *;>*],[*****}", -" *;>*|[)*12345", -" *;,!***/(6666", -" *;,789/0:***!"}; - -#endif diff --git a/bitmaps_xpm/options_all_tracks_and_vias.xpm b/bitmaps_xpm/options_all_tracks_and_vias.xpm deleted file mode 100644 index 21cc1a3366..0000000000 --- a/bitmaps_xpm/options_all_tracks_and_vias.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* options_all_tracks_and_vias_xpm[]; -#else -const char * options_all_tracks_and_vias_xpm[] = { -"16 16 49 1", -" c None", -". c #007D00", -"+ c #D62D2D", -"@ c #BC2828", -"# c #D02C2C", -"$ c #B82727", -"% c #004000", -"& c #D72E2E", -"* c #007700", -"= c #8A1D1D", -"- c #C52A2A", -"; c #CA2B2B", -"> c #005800", -", c #007C00", -"' c #004900", -") c #006900", -"! c #000000", -"~ c #F0F0F0", -"{ c #DEDEDE", -"] c #DFDFDF", -"^ c #010000", -"/ c #BFBFBF", -"( c #C0C0C0", -"_ c #C42929", -": c #BB2828", -"< c #979797", -"[ c #989898", -"} c #E3E3E3", -"| c #DDDDDD", -"1 c #C8C8C8", -"2 c #656565", -"3 c #838383", -"4 c #878787", -"5 c #888888", -"6 c #AFAFAF", -"7 c #A3A3A3", -"8 c #F1F1F1", -"9 c #CECECE", -"0 c #ABABAB", -"a c #EEEEEE", -"b c #EDEDED", -"c c #E9E9E9", -"d c #D9D9D9", -"e c #881D1D", -"f c #C1C1C1", -"g c #B5B5B5", -"h c #757575", -"i c #6B6B6B", -"j c #777777", -".......... +@ ", -"........... #$ ", -" %.. +#&", -" *. =-;", -"....... >.. ", -"........ ,. ", -" '.. ).....", -" !!!!!!!!!!!!", -" !~{]]]]]]]]]]", -"&& ^]//////(((((", -"_:+^]/ c #B82727", -", c #C32929", -"' c #541212", -") c #831C1C", -"! c #7A1A1A", -"~ c #8A1D1D", -"{ c #CA2B2B", -"] c #881D1D", -"^ c #CD2C2C", -"/ c #CE2C2C", -"( c #A82424", -"_ c #010000", -": c #000000", -"< c #F0F0F0", -"[ c #DEDEDE", -"} c #DFDFDF", -"| c #BFBFBF", -"1 c #C0C0C0", -"2 c #979797", -"3 c #989898", -"4 c #E3E3E3", -"5 c #DDDDDD", -"6 c #C8C8C8", -"7 c #656565", -"8 c #838383", -"9 c #878787", -"0 c #888888", -"a c #AFAFAF", -"b c #E0DFDF", -"c c #C0BFBF", -"d c #A3A3A3", -"e c #F1F1F1", -"f c #CECECE", -"g c #ABABAB", -"h c #EEEEEE", -"i c #EDEDED", -"j c #E9E9E9", -"k c #D9D9D9", -"l c #C1C0C0", -"m c #C1C1C1", -"n c #B5B5B5", -"o c #757575", -"p c #6B6B6B", -"q c #777777", -" .. ", -" +@#+ ", -" ... +$ #% ", -" +&*=- ;> ;, ", -" .' . +;.+) ", -" . .! ~%{] ", -" ^;../ ", -" (;_:::::::::::", -" :<[}}}}}}}}}}", -" :}||||||11111", -" :}|2:::311111", -" :}|:456:7890a", -" ._bc:51d:::::e", -" +@_bc:fd2:ghijk", -"+$ :bl3:::78mmmm", -";> :blnop7q0:::3"}; - -#endif diff --git a/bitmaps_xpm/options_arc.xpm b/bitmaps_xpm/options_arc.xpm deleted file mode 100644 index 8fd91190fe..0000000000 --- a/bitmaps_xpm/options_arc.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *options_arc_xpm[]; - -#else -const char * options_arc_xpm[] = { -"16 16 49 1", -" c None", -". c #00009B", -"+ c #000099", -"@ c #000097", -"# c #000096", -"$ c #000073", -"% c #000039", -"& c #000036", -"* c #000051", -"= c #000086", -"- c #00008E", -"; c #000093", -"> c #000085", -", c #000074", -"' c #000095", -") c #000058", -"! c #000000", -"~ c #000001", -"{ c #F0F0F0", -"] c #DEDEDE", -"^ c #DFDFDF", -"/ c #DFDFE0", -"( c #BFBFBF", -"_ c #C0C0C0", -": c #C0C0C1", -"< c #979797", -"[ c #989898", -"} c #E3E3E3", -"| c #DDDDDD", -"1 c #C8C8C8", -"2 c #656565", -"3 c #838384", -"4 c #878788", -"5 c #888888", -"6 c #AFAFAF", -"7 c #A3A3A3", -"8 c #F1F1F1", -"9 c #CECECE", -"0 c #ABABAB", -"a c #EEEEEE", -"b c #EDEDED", -"c c #E9E9E9", -"d c #D9D9D9", -"e c #838383", -"f c #C1C1C1", -"g c #B5B5B5", -"h c #757575", -"i c #6B6B6B", -"j c #777777", -" ..... ", -" ........+@ ", -" #$% &*=..- ", -" ;.> ", -" #., ", -" .' ", -" +.) ", -" !!!!!!!!~~!!", -" !{]^^^^^^//^^", -" !^((((((_::__", -" !^( c #000001", -", c #F0F0F0", -"' c #DEDEDE", -") c #DFDFDF", -"! c #DFDFE0", -"~ c #BFBFBF", -"{ c #C0C0C1", -"] c #C0C0C0", -"^ c #979797", -"/ c #989898", -"( c #E3E3E3", -"_ c #DDDDDD", -": c #C8C8C8", -"< c #656566", -"[ c #838384", -"} c #878787", -"| c #888888", -"1 c #AFAFAF", -"2 c #A3A3A4", -"3 c #F1F1F1", -"4 c #BFBFC0", -"5 c #CECECF", -"6 c #979798", -"7 c #ABABAC", -"8 c #EEEEEE", -"9 c #EDEDED", -"0 c #E9E9E9", -"a c #D9D9D9", -"b c #989899", -"c c #838383", -"d c #C1C1C1", -"e c #B5B5B6", -"f c #757576", -"g c #6B6B6C", -"h c #656565", -"i c #777777", -"j c #A7A7A7", -"k c #7B7B7B", -"l c #747474", -"m c #717171", -"n c #7D7D7D", -"o c #A3A3A3", -" .... ", -" .......+ ", -" ..@# #$.% ", -" ..& *.= ", -" .@ =.- ", -"..# ;;;;;;;>>>;;", -".. ;,')))))!!!))", -".. ;)~~~~~~{{{]]", -"..#;)~^;;;/{{{]]", -" .$;)~;(_:><[}|1", -" +.;)~;_]2>>>;;3", -" %>!4>526>7890a", -" >!{b>>> c #ECEBFF", -", c #E2E1FF", -"' c #D8D7FF", -") c #ECECFF", -"! c #E2E2FF", -"~ c #CECDFF", -"{ c #E3E2FF", -"] c #D9D8FF", -"^ c #CFCEFF", -"/ c #C5C4FF", -"( c #010101", -"_ c #D0CFFF", -": c #F1F1F1", -"< c #DFDFDF", -"[ c #E0DFDF", -"} c #C6C5FF", -"| c #E0E0E0", -"1 c #BFBFBF", -"2 c #C0BFBF", -"3 c #979797", -"4 c #989898", -"5 c #E3E3E3", -"6 c #DDDDDD", -"7 c #C8C8C8", -"8 c #656565", -"9 c #838383", -"0 c #878787", -"a c #888888", -"b c #AFAFAF", -"c c #A3A3A3", -"d c #CECECE", -"e c #ABABAB", -"f c #EEEEEE", -"g c #EDEDED", -"h c #E9E9E9", -"i c #D9D9D9", -"j c #C1C1C1", -"k c #B5B5B5", -"l c #757575", -"m c #6B6B6B", -"n c #777777", -" .. .. ", -" .+..@. ", -"#.$$%&.# ", -"#.$*=-.# ", -" .;>,'. ", -"#.)!'~.# ", -"#.{]^/.# ", -" .]^((..........", -"#._(:<<[<<<<<<<<", -"#.}(|+12111+++++", -" ...<13...4+++++", -" .<1.567.890ab", -" .<1.6+c.....:", -" .<1.dc3.efghi", -" .<+4...89jjjj", -" .<+klm8na...4"}; - -#endif diff --git a/bitmaps_xpm/options_new_pad.xpm b/bitmaps_xpm/options_new_pad.xpm deleted file mode 100644 index b9feadfb90..0000000000 --- a/bitmaps_xpm/options_new_pad.xpm +++ /dev/null @@ -1,77 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *options_new_pad_xpm[]; - -#else -const char * options_new_pad_xpm[] = { -"16 16 53 1", -" c None", -". c #000000", -"+ c #FFF500", -"@ c #000200", -"# c #003B00", -"$ c #006400", -"% c #007700", -"& c #1E5000", -"* c #ECE300", -"= c #787300", -"- c #005F00", -"; c #007D00", -"> c #428200", -", c #EBE200", -"' c #F6ED00", -") c #007600", -"! c #006100", -"~ c #2B2900", -"{ c #427600", -"] c #EBE600", -"^ c #F8EF00", -"/ c #6A6500", -"( c #268200", -"_ c #EBEB00", -": c #428D00", -"< c #585400", -"[ c #F7ED00", -"} c #007800", -"| c #1E8600", -"1 c #003F00", -"2 c #006E00", -"3 c #003800", -"4 c #F0F0F0", -"5 c #DEDEDE", -"6 c #DFDFDF", -"7 c #BFBFBF", -"8 c #C0C0C0", -"9 c #979797", -"0 c #989898", -"a c #E3E3E3", -"b c #DDDDDD", -"c c #C8C8C8", -"d c #656565", -"e c #838383", -"f c #878787", -"g c #888888", -"h c #A3A3A3", -"i c #CECECE", -"j c #ABABAB", -"k c #EEEEEE", -"l c #EDEDED", -"m c #E9E9E9", -"n c #C1C1C1", -" ..... + ", -" @#$%$&* +=+ ", -" @-;;;;;>,+' ", -".#;;)!)+++~+++ ", -".$;) %{]+^/ ", -".%;! (_:+<[ ", -".$;) }|1+. ", -".#;;%2};;3.. ", -" @-;;...........", -" @#.45666666666", -" ..67777778888", -" .679...08888", -" .67.abc.defg", -" .67.b8h.....", -" .67.ih9.jklm", -" .680...dennn"}; -#endif diff --git a/bitmaps_xpm/options_pad.xpm b/bitmaps_xpm/options_pad.xpm deleted file mode 100644 index 7592386513..0000000000 --- a/bitmaps_xpm/options_pad.xpm +++ /dev/null @@ -1,57 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *options_pad_xpm[]; - -#else -const char * options_pad_xpm[] = { -"16 16 33 1", -" c None", -". c #000000", -"+ c #000200", -"@ c #003B00", -"# c #006400", -"$ c #007700", -"% c #005F00", -"& c #007D00", -"* c #007600", -"= c #006100", -"- c #006E00", -"; c #007800", -"> c #F0F0F0", -", c #DEDEDE", -"' c #DFDFDF", -") c #BFBFBF", -"! c #C0C0C0", -"~ c #979797", -"{ c #989898", -"] c #E3E3E3", -"^ c #DDDDDD", -"/ c #C8C8C8", -"( c #656565", -"_ c #838383", -": c #878787", -"< c #888888", -"[ c #A3A3A3", -"} c #CECECE", -"| c #ABABAB", -"1 c #EEEEEE", -"2 c #EDEDED", -"3 c #E9E9E9", -"4 c #C1C1C1", -" ..... ", -" +@#$#@+ ", -" +%&&&&&%+ ", -".@&&*=*&&@. ", -".#&* $&#. ", -".$&= -&$. ", -".#&* ;&#. ", -".@&&$-;&&@. ", -" +%&&...........", -" +@.>,'''''''''", -" ..'))))))!!!!", -" .')~...{!!!!", -" .').]^/.(_:<", -" .').^![.....", -" .').}[~.|123", -" .'!{...(_444"}; -#endif diff --git a/bitmaps_xpm/options_pin.xpm b/bitmaps_xpm/options_pin.xpm deleted file mode 100644 index de669169b3..0000000000 --- a/bitmaps_xpm/options_pin.xpm +++ /dev/null @@ -1,72 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *options_pin_xpm[]; - -#else -const char * options_pin_xpm[] = { -"16 16 48 1", -" c None", -". c #D72E2E", -"+ c #DE676B", -"@ c #DA636B", -"# c #D62E2E", -"$ c #E5E5FF", -"% c #D7D7FF", -"& c #D25B6B", -"* c #D23535", -"= c #CACAFF", -"- c #CE576B", -"; c #D03939", -"> c #B96464", -", c #9B9B9B", -"' c #C35151", -") c #B17171", -"! c #B36E6E", -"~ c #CA4444", -"{ c #9C9898", -"] c #000000", -"^ c #F0F0F0", -"/ c #DEDEDE", -"( c #DFDFDF", -"_ c #BFBFBF", -": c #C0C0C0", -"< c #979797", -"[ c #989898", -"} c #C1C1C1", -"| c #E3E3E3", -"1 c #DDDDDD", -"2 c #C8C8C8", -"3 c #656565", -"4 c #838383", -"5 c #878787", -"6 c #888888", -"7 c #AFAFAF", -"8 c #A3A3A3", -"9 c #F1F1F1", -"0 c #CECECE", -"a c #ABABAB", -"b c #EEEEEE", -"c c #EDEDED", -"d c #E9E9E9", -"e c #D9D9D9", -"f c #B5B5B5", -"g c #757575", -"h c #6B6B6B", -"i c #777777", -" .. ", -" .+@. ", -"#+$%&......... ", -"*@%=-;>>>>>>>>, ", -"'.&-.),,,,,,,,, ", -" !~~){ ", -" ,,, ", -" ]]]]]]]]]]]]]", -" ]^/(((((((((((", -" ](______::::::", -" ](_<]]][:::::}", -" ](_]|12]34567}", -" ](_]1:8]]]]]9:", -" ](_]08<]abcde}", -" ](:[]]]34}}}}:", -" ](:fgh3i6]]][:"}; -#endif diff --git a/bitmaps_xpm/options_pinsheet.xpm b/bitmaps_xpm/options_pinsheet.xpm deleted file mode 100644 index 7e08179820..0000000000 --- a/bitmaps_xpm/options_pinsheet.xpm +++ /dev/null @@ -1,102 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *options_pinsheet_xpm[]; - -#else -const char * options_pinsheet_xpm[] = { -"16 16 78 1", -" c None", -". c #6F6500", -"+ c #FEFEFF", -"@ c #FCFCFF", -"# c #F1F1FF", -"$ c #D3D2D8", -"% c #746B0E", -"& c #8D8A6C", -"* c #6E6400", -"= c #695F00", -"- c #4F4800", -"; c #F8F8FF", -"> c #EDEDFF", -", c #E2E2FF", -"' c #D6D6FF", -") c #AEABB1", -"! c #716707", -"~ c #92907D", -"{ c #635A00", -"] c #5C5300", -"^ c #675E00", -"/ c #F3F3FF", -"( c #E8E8FF", -"_ c #DDDDFF", -": c #D2D2FF", -"< c #C7C7FF", -"[ c #BCBCFF", -"} c #827B4C", -"| c #787020", -"1 c #939180", -"2 c #E4E4FF", -"3 c #D9D9FF", -"4 c #CECEFF", -"5 c #C2C2FF", -"6 c #B7B7FF", -"7 c #9895B1", -"8 c #847F4D", -"9 c #72690E", -"0 c #D4D4FF", -"a c #C9C9FF", -"b c #BEBEFF", -"c c #B3B3FF", -"d c #9E9DD8", -"e c #71680E", -"f c #9B9B9B", -"g c #756D18", -"h c #675F0B", -"i c #888358", -"j c #010101", -"k c #000000", -"l c #F0F0F0", -"m c #DEDEDE", -"n c #DFDFDF", -"o c #BFBFBF", -"p c #C0C0C0", -"q c #979797", -"r c #989898", -"s c #C1C1C1", -"t c #E3E3E3", -"u c #DDDDDD", -"v c #C8C8C8", -"w c #656565", -"x c #838383", -"y c #878787", -"z c #888888", -"A c #AFAFAF", -"B c #A3A3A3", -"C c #F1F1F1", -"D c #CECECE", -"E c #ABABAB", -"F c #EEEEEE", -"G c #EDEDED", -"H c #E9E9E9", -"I c #D9D9D9", -"J c #B5B5B5", -"K c #757575", -"L c #6B6B6B", -"M c #777777", -"...... .. ", -".++@#$%& .*=- ", -".+;>,')!~ .{]^ ", -"./(_:<[}|1.... ", -".234567!~89 =- ", -".0abcde&fgh .^ ", -"......iff ", -" ffjjjjjjkkkkkkk", -" klmnnnnnnnnnnn", -" knoooooopppppp", -" knoqkkkrppppps", -" knoktuvkwxyzAs", -" knokupBkkkkkCp", -" knokDBqkEFGHIs", -" knprkkkwxssssp", -" knpJKLwMzkkkrp"}; -#endif diff --git a/bitmaps_xpm/options_rectangle.xpm b/bitmaps_xpm/options_rectangle.xpm deleted file mode 100644 index 99ab0fc401..0000000000 --- a/bitmaps_xpm/options_rectangle.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *options_rectangle_xpm[]; - -#else -const char * options_rectangle_xpm[] = { -"16 16 44 1", -" c None", -". c #00009B", -"+ c #000000", -"@ c #000001", -"# c #F0F0F0", -"$ c #DEDEDE", -"% c #DFDFDF", -"& c #DFDFE0", -"* c #BFBFBF", -"= c #C0C0C1", -"- c #C0C0C0", -"; c #979797", -"> c #989898", -", c #E3E3E3", -"' c #DDDDDD", -") c #C8C8C8", -"! c #656566", -"~ c #838384", -"{ c #878787", -"] c #888888", -"^ c #AFAFAF", -"/ c #A3A3A3", -"( c #F1F1F1", -"_ c #BFBFC0", -": c #CECECF", -"< c #A3A3A4", -"[ c #979798", -"} c #ABABAC", -"| c #EEEEEF", -"1 c #EDEDED", -"2 c #E9E9E9", -"3 c #D9D9D9", -"4 c #989899", -"5 c #C1C1C1", -"6 c #B5B5B5", -"7 c #757575", -"8 c #6B6B6B", -"9 c #656565", -"0 c #777777", -"a c #A7A7A7", -"b c #7B7B7B", -"c c #747474", -"d c #717171", -"e c #7D7D7D", -"............. ", -"............. ", -".. .. ", -".. .. ", -".. .. ", -".. +++++++@@+++", -".. +#$%%%%%&&%%%", -".. +%******==---", -".. +%*;+++>==---", -".. +%*+,')+!~{]^", -".. +%*+'-/+@@++(", -"...@&_@:<[@}|123", -"...@&=4@@@!~5555", -" +%-67890]+++>", -" +%-abbcd+,')+", -" +%-e+++++'-/+"}; -#endif diff --git a/bitmaps_xpm/options_segment.xpm b/bitmaps_xpm/options_segment.xpm deleted file mode 100644 index bbe9141261..0000000000 --- a/bitmaps_xpm/options_segment.xpm +++ /dev/null @@ -1,55 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *options_segment_xpm[]; - -#else -const char * options_segment_xpm[] = { -"16 16 31 1", -" c None", -". c #007D00", -"+ c #000000", -"@ c #F0F0F0", -"# c #DEDEDE", -"$ c #DFDFDF", -"% c #BFBFBF", -"& c #C0C0C0", -"* c #979797", -"= c #989898", -"- c #E3E3E3", -"; c #DDDDDD", -"> c #C8C8C8", -", c #656565", -"' c #838383", -") c #878787", -"! c #888888", -"~ c #AFAFAF", -"{ c #A3A3A3", -"] c #F1F1F1", -"^ c #CECECE", -"/ c #ABABAB", -"( c #EEEEEE", -"_ c #EDEDED", -": c #E9E9E9", -"< c #D9D9D9", -"[ c #C1C1C1", -"} c #B5B5B5", -"| c #757575", -"1 c #6B6B6B", -"2 c #777777", -" ", -" ", -"................", -"................", -" ", -" ", -" ", -" ++++++++++++", -" +@#$$$$$$$$$$", -" +$%%%%%%&&&&&", -" +$%*+++=&&&&&", -" +$%+-;>+,')!~", -" +$%+;&{+++++]", -" +$%+^{*+/(_:<", -" +$&=+++,'[[[[", -" +$&}|1,2!+++="}; -#endif diff --git a/bitmaps_xpm/options_text.xpm b/bitmaps_xpm/options_text.xpm deleted file mode 100644 index ada985f3a0..0000000000 --- a/bitmaps_xpm/options_text.xpm +++ /dev/null @@ -1,64 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *options_text_xpm[]; - -#else -const char * options_text_xpm[] = { -"16 16 40 1", -" c None", -". c #00009B", -"+ c #000098", -"@ c #00005D", -"# c #000000", -"$ c #000001", -"% c #F0F0F0", -"& c #DEDEDE", -"* c #DFDFE0", -"= c #DFDFDF", -"- c #BFBFBF", -"; c #BFBFC0", -"> c #C0C0C0", -", c #979798", -"' c #989898", -") c #C1C1C1", -"! c #E3E3E4", -"~ c #DDDDDE", -"{ c #C8C8C9", -"] c #656565", -"^ c #838383", -"/ c #878787", -"( c #888888", -"_ c #AFAFAF", -": c #C0C0C1", -"< c #A3A3A4", -"[ c #F1F1F1", -"} c #CECECF", -"| c #ABABAC", -"1 c #EEEEEE", -"2 c #EDEDED", -"3 c #E9E9E9", -"4 c #D9D9D9", -"5 c #989899", -"6 c #656566", -"7 c #838384", -"8 c #B5B5B5", -"9 c #757575", -"0 c #6B6B6B", -"a c #777777", -".............. ", -".............. ", -".+ .... +. ", -".@ .... . ", -" .... ", -" .... ", -" .... ", -" ##$$$$#######", -" #%&****=======", -" #=-;;;;->>>>>>", -" #=-,$$$'>>>>>)", -" #=-$!~{#]^/(_)", -" #=;$~:<#####[>", -" #*;$}<,$|1234)", -" #*:5$$$67))))>", -" #=>890]a(###'>"}; -#endif diff --git a/bitmaps_xpm/options_track.xpm b/bitmaps_xpm/options_track.xpm deleted file mode 100644 index e71b6d27c1..0000000000 --- a/bitmaps_xpm/options_track.xpm +++ /dev/null @@ -1,69 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* options_track_xpm[]; -#else -const char * options_track_xpm[] = { -"16 16 45 1", -" c None", -". c #007D00", -"+ c #006100", -"@ c #004400", -"# c #007800", -"$ c #007B00", -"% c #004000", -"& c #007C00", -"* c #006500", -"= c #D72E2E", -"- c #007A00", -"; c #004600", -"> c #010000", -", c #000000", -"' c #F1F0F0", -") c #DFDEDE", -"! c #E0DFDF", -"~ c #DFDFDF", -"{ c #C0BFBF", -"] c #BFBFBF", -"^ c #C0C0C0", -"/ c #989797", -"( c #989898", -"_ c #E3E3E3", -": c #DDDDDD", -"< c #C8C8C8", -"[ c #656565", -"} c #838383", -"| c #878787", -"1 c #888888", -"2 c #AFAFAF", -"3 c #A3A3A3", -"4 c #F1F1F1", -"5 c #CECECE", -"6 c #979797", -"7 c #ABABAB", -"8 c #EEEEEE", -"9 c #EDEDED", -"0 c #E9E9E9", -"a c #D9D9D9", -"b c #C1C1C1", -"c c #B5B5B5", -"d c #757575", -"e c #6B6B6B", -"f c #777777", -"........ ", -"........+ ", -" @.# ", -" $.% ", -" &.* ", -" === .- ", -" ===== $.; ", -"=== >>>,,,,,,,,,", -"== ,')!~~~~~~~~~", -"===>!{{]]]]^^^^^", -" ==>!{/,,,(^^^^^", -" =>!{,_:<,[}|12", -" ,~],:^3,,,,,4", -" ,~],536,7890a", -" ,~^(,,,[}bbbb", -" ,~^cde[f1,,,("}; - -#endif diff --git a/bitmaps_xpm/options_tracks.xpm b/bitmaps_xpm/options_tracks.xpm deleted file mode 100644 index 6ba475bdcf..0000000000 --- a/bitmaps_xpm/options_tracks.xpm +++ /dev/null @@ -1,60 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* options_tracks_xpm[]; -#else -const char * options_tracks_xpm[] = { -"16 16 36 1", -" c None", -". c #007D00", -"+ c #004000", -"@ c #007700", -"# c #005800", -"$ c #007C00", -"% c #006900", -"& c #000000", -"* c #F0F0F0", -"= c #DEDEDE", -"- c #DFDFDF", -"; c #BFBFBF", -"> c #C0C0C0", -", c #979797", -"' c #989898", -") c #E3E3E3", -"! c #DDDDDD", -"~ c #C8C8C8", -"{ c #656565", -"] c #838383", -"^ c #878787", -"/ c #888888", -"( c #AFAFAF", -"_ c #A3A3A3", -": c #F1F1F1", -"< c #CECECE", -"[ c #ABABAB", -"} c #EEEEEE", -"| c #EDEDED", -"1 c #E9E9E9", -"2 c #D9D9D9", -"3 c #C1C1C1", -"4 c #B5B5B5", -"5 c #757575", -"6 c #6B6B6B", -"7 c #777777", -".......... ", -"........... ", -" +.. ", -" @. ", -" #.. ", -" $. ", -" %.....", -" &&&&&&&&&&&&", -" &*=----------", -" &-;;;;;;>>>>>", -" &-;,&&&'>>>>>", -" &-;&)!~&{]^/(", -" &-;&!>_&&&&&:", -" &-;&<_,&[}|12", -" &->'&&&{]3333", -" &->456{7/&&&'"}; - -#endif diff --git a/bitmaps_xpm/options_vias.xpm b/bitmaps_xpm/options_vias.xpm deleted file mode 100644 index 66ba4ee4d5..0000000000 --- a/bitmaps_xpm/options_vias.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* options_vias_xpm[]; -#else -const char * options_vias_xpm[] = { -"16 16 44 1", -" c None", -". c #000000", -"+ c #030101", -"@ c #661616", -"# c #AD2525", -"$ c #CD2C2C", -"% c #A32323", -"& c #D72E2E", -"* c #CD2B2B", -"= c #A82424", -"- c #CE2B2B", -"; c #BD2929", -"> c #010000", -", c #F1F0F0", -"' c #DFDEDE", -") c #E0DFDF", -"! c #DFDFDF", -"~ c #C0BFBF", -"{ c #BFBFBF", -"] c #C0C0C0", -"^ c #979797", -"/ c #989898", -"( c #E3E3E3", -"_ c #DDDDDD", -": c #C8C8C8", -"< c #656565", -"[ c #838383", -"} c #878787", -"| c #888888", -"1 c #A3A3A3", -"2 c #CECECE", -"3 c #ABABAB", -"4 c #EEEEEE", -"5 c #EDEDED", -"6 c #E9E9E9", -"7 c #C1C1C1", -"8 c #B5B5B5", -"9 c #757575", -"0 c #6B6B6B", -"a c #777777", -"b c #A7A7A7", -"c c #7B7B7B", -"d c #747474", -"e c #717171", -" ..... ", -" +@#$#@+ ", -" +%&&&&&%+ ", -".@&&*=*&&@. ", -".#&* -&#. ", -".$&= ;&$. ", -".#&* .>>>>......", -".@&&>,'))!!!!!!!", -" +%&>)~~~{{{]]]]", -" +@>)~^.../]]]]", -" ..!{.(_:.<[}|", -" .!{._]1.....", -" .!{.21^.3456", -" .!]/...<[777", -" .!]890 c #F5F5FB", -", c #76767B", -"' c #72727A", -") c #DDDDF3", -"! c #D5D5F1", -"~ c #9A9AB2", -"{ c #141418", -"] c #BEBEBE", -"^ c #F3DBDD", -"/ c #CE0D0C", -"( c #E0959D", -"_ c #E4E4F6", -": c #DCDCF3", -"< c #D5D5F0", -"[ c #CDCDEE", -"} c #C5C5EB", -"| c #8E8EAE", -"1 c #676262", -"2 c #FAF3F5", -"3 c #F2F0F8", -"4 c #C42223", -"5 c #CD0100", -"6 c #D14D54", -"7 c #D3C7E1", -"8 c #CCCCEE", -"9 c #BDBDE8", -"0 c #B5B5E6", -"a c #45455A", -"b c #B1A4A6", -"c c #E18185", -"d c #D96166", -"e c #C8282B", -"f c #CD1416", -"g c #CCA4BE", -"h c #BCBCE8", -"i c #B4B4E5", -"j c #ADADE3", -"k c #74749D", -"l c #6C6C70", -"m c #767278", -"n c #DB8E99", -"o c #CD474E", -"p c #D87F81", -"q c #F5F3F6", -"r c #C4C4EA", -"s c #ACACE3", -"t c #51516F", -"u c #464663", -"v c #69696F", -"w c #70707A", -"x c #DADAF2", -"y c #D09AB0", -"z c #C81415", -"A c #E0ACAF", -"B c #FFFFFF", -"C c #DCDCEE", -"D c #C1C1E9", -"E c #4D4D6E", -"F c #424262", -"G c #9F9FAC", -"H c #D2D2EF", -"I c #CACAED", -"J c #B99BB0", -"K c #F7F5F6", -"L c #E2E2ED", -"M c #C0C0E9", -"N c #66669B", -"O c #565660", -"P c #C2C2EA", -"Q c #B2B2DD", -"R c #8484A3", -"S c #D4D4DD", -"T c #DBDBE6", -"U c #9696DB", -"V c #9292DA", -"W c #3B3B5A", -"X c #9797B1", -"Y c #C1C1EA", -"Z c #B9B9E7", -"` c #B2B2E5", -" . c #A7A7DE", -".. c #7B7BAA", -"+. c #A4A4BB", -"@. c #F8F8FA", -"#. c #8E8ED0", -"$. c #6262A0", -"%. c #000001", -"&. c #8B8BAD", -"*. c #B1B1E4", -"=. c #A9A9E2", -"-. c #50506F", -";. c #4C4C6D", -">. c #8080BF", -",. c #75759D", -"'. c #7777A0", -"). c #0D0D15", -"!. c #43435A", -"~. c #71719D", -"{. c #444462", -"]. c #414162", -"^. c #616197", -"/. c #313150", -" ", -" . . . . ", -" + @ # $ % & * + ", -" = - ; > , ' ) ! ~ { ", -" + ] ^ / ( _ : < [ } | + ", -" 1 2 3 4 5 6 7 8 } 9 0 a . ", -" . b c d e 5 5 f g h i j k . ", -" . l m n o 5 5 p q r s t u . ", -" . v w x y z A B B C D E F . ", -" . G x H I J K B B L ! M N . ", -" O H I P Q R S B T U V W . ", -" + X Y Z ` ...+.@.#.$.%. ", -" { &.*.=.-.;.>.,.'.).. ", -" + !.~.{.].^./.. . ", -" . . . . . . ", -" "}; -#endif diff --git a/bitmaps_xpm/ortho.xpm b/bitmaps_xpm/ortho.xpm deleted file mode 100644 index 14bdb5b70d..0000000000 --- a/bitmaps_xpm/ortho.xpm +++ /dev/null @@ -1,21 +0,0 @@ -/* XPM */ -const char *ortho_xpm[]={ -"16 15 2 1", -"# c #008080", -". c none", -"................", -"......####......", -".....######.....", -"....###..###....", -"....##....##....", -"...##......##...", -"...##......##...", -"...##......##...", -"...##......##...", -"...##......##...", -"....##....##....", -"....###..###....", -".....######.....", -"......####......", -"................" -}; diff --git a/bitmaps_xpm/pad.xpm b/bitmaps_xpm/pad.xpm deleted file mode 100644 index 2510d1926b..0000000000 --- a/bitmaps_xpm/pad.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *pad_xpm[]; - -#else -const char * pad_xpm[] = { -"16 15 3 1", -"- c green", -" c None", -": c Red", - -/* pixels */ -" ---- ", -" --::::-- ", -" -::::::::- ", -" -::::::::::- ", -" -::::::::::::- ", -" -:::: ::::- ", -"-:::: ::::-", -"-:::: ::::-", -"-:::: ::::-", -" -:::: ::::- ", -" -::::::::::::- ", -" -::::::::: - ", -" -::::::::- ", -" --::::-- ", -" ---- " -}; -#endif - diff --git a/bitmaps_xpm/pad_sketch.xpm b/bitmaps_xpm/pad_sketch.xpm deleted file mode 100644 index 4fc011f806..0000000000 --- a/bitmaps_xpm/pad_sketch.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *pad_sketch_xpm[]; - -#else -const char * pad_sketch_xpm[] = { -"16 16 3 1", -" c None", -". c #007D00", -"+ c #007C00", -" ", -" .... ", -" ..++++.. ", -" .. .. ", -" .. .. ", -" . .. . ", -" .+ .... +. ", -" .+ .. .. +. ", -" .+ .. .. +. ", -" .+ .... +. ", -" . .. . ", -" .. .. ", -" .. .. ", -" ..++++.. ", -" .... ", -" "}; -#endif diff --git a/bitmaps_xpm/pads_mask_layers.xpm b/bitmaps_xpm/pads_mask_layers.xpm deleted file mode 100644 index 5fb5782473..0000000000 --- a/bitmaps_xpm/pads_mask_layers.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *pads_mask_layers_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"= c #9E0808", -"- c #AC2A2C", -"X c #5E9A86", -"* c #782222", -"% c #54392C", -"$ c #B19D9F", -" c None", -"@ c #376836", -"o c #629B65", -": c #B48684", -"+ c #347E47", -"O c #3C8C57", -"# c #2E551D", -"; c #B46E6E", -". c #8FAD90", -"& c #4C5E44", -/* pixels */ -" ", -" ", -" ....X ", -".XoXoooooooOo ", -".OoOOOOOOOOOo. ", -" O+++@@@@##@Oo ", -" X@#########+o. ", -" $O#########@Oo ", -" X@#########+o.", -" O######%#%&X ", -" X&%%%*****=$ ", -" $========-; ", -" ;;;:$ ", -" ", -" ", -" " -}; diff --git a/bitmaps_xpm/palette.xpm b/bitmaps_xpm/palette.xpm deleted file mode 100644 index 33c9c436ed..0000000000 --- a/bitmaps_xpm/palette.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -const char * palette_xpm[] = { -"16 15 14 1", -" c #c0c0c0", -". c #808080", -"X c Gray100", -"o c Yellow", -"O c Blue", -"+ c Red", -"@ c Cyan", -"# c #800000", -"$ c #000080", -"% c Green", -"& c #008000", -"* c #808000", -"= c Magenta", -"- c #800080", -" ..... ", -" .XoXoX. O ", -" .Xo+++Xo. @O ", -" .oX##++X. @O$ ", -" .oXoXo#oXo.O$$ ", -" .X%&&XoXoX*#. ", -" .o&&&oXoX*##. ", -" .X&XoXoX*##Xo. ", -" .oXoOoX*##XoX. ", -" .o$$Oo * oXo. ", -" .X$$$Xo=-XoX. ", -" ..X$oX=---Xo. ", -" .oXo---Xo. ", -" *#.oXXoXo.. ", -" *# ...... "} -; diff --git a/bitmaps_xpm/part_properties.xpm b/bitmaps_xpm/part_properties.xpm deleted file mode 100644 index fdba115f33..0000000000 --- a/bitmaps_xpm/part_properties.xpm +++ /dev/null @@ -1,109 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *part_properties_xpm[]; - -#else -const char * part_properties_xpm[] = { -"16 16 85 1", -" c None", -". c #000000", -"+ c #585858", -"@ c #B0B0B0", -"# c #1C1A19", -"$ c #303030", -"% c #FFF3EC", -"& c #F3DBCB", -"* c #6F5E53", -"= c #0E0D0D", -"- c #FFE8D8", -"; c #FFDBC2", -"> c #FFCEAB", -", c #CC9A77", -"' c #332419", -") c #FFDDC5", -"! c #FFD0AF", -"~ c #FFC298", -"{ c #FFB582", -"] c #FCA66A", -"^ c #905830", -"/ c #17120E", -"( c #3F3F3F", -"_ c #030303", -": c #FFD1B2", -"< c #FFC49C", -"[ c #FFB785", -"} c #FFAA6F", -"| c #FF9D58", -"1 c #FF8F42", -"2 c #E37426", -"3 c #100701", -"4 c #B8B8B8", -"5 c #B89984", -"6 c #131313", -"7 c #444444", -"8 c #1C1C1C", -"9 c #FFC69F", -"0 c #FFB988", -"a c #010100", -"b c #010000", -"c c #010101", -"d c #FFBB8C", -"e c #F1F1F0", -"f c #DFDFDE", -"g c #E0E0DF", -"h c #E0DFDF", -"i c #DFDFDF", -"j c #E0E0E0", -"k c #FFB079", -"l c #C0BFBF", -"m c #BFBFBF", -"n c #C0C0C0", -"o c #C1C1C1", -"p c #FFA465", -"q c #979797", -"r c #999999", -"s c #B06A39", -"t c #E4E4E4", -"u c #DEDEDE", -"v c #C8C8C8", -"w c #656565", -"x c #838383", -"y c #878787", -"z c #888888", -"A c #AFAFAF", -"B c #A3A3A3", -"C c #F1F1F1", -"D c #CECECE", -"E c #ABABAB", -"F c #EEEEEE", -"G c #EDEDED", -"H c #E9E9E9", -"I c #D9D9D9", -"J c #989898", -"K c #B5B5B5", -"L c #757575", -"M c #6B6B6B", -"N c #777777", -"O c #A7A7A7", -"P c #7B7B7B", -"Q c #747474", -"R c #717171", -"S c #E3E3E3", -"T c #DDDDDD", -" ..+ ", -" .@#$ ", -" .%&*=+ ", -"..-;>,'$ ", -" .)!~{]^/(_. ", -" .:<[}|12345678 ", -" .90aaaab.cb...c", -" .daefghiiiiijjj", -"..kaglmmnnnoooon", -" .paimqcccrnnnnn", -" .s.inctuv.wxyzA", -" ...jncunB.....C", -" . cjn.DBq.EFGHI", -" cjnJ...wxoooo", -" .inKLMwNz...J", -" .inOPPQR.STv."}; -#endif diff --git a/bitmaps_xpm/paste.xpm b/bitmaps_xpm/paste.xpm deleted file mode 100644 index 9ba98f2767..0000000000 --- a/bitmaps_xpm/paste.xpm +++ /dev/null @@ -1,78 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *paste_xpm[]; - -#else -const char * paste_xpm[] = { -"16 16 54 1", -" c None", -". c #000000", -"+ c #8E8E8E", -"@ c #E3E3E3", -"# c #696969", -"$ c #F1F0E1", -"% c #ECE9D5", -"& c #EDEBD8", -"* c #2E2D29", -"= c #7E7D76", -"- c #5D5C58", -"; c #53534F", -"> c #21211E", -", c #79776C", -"' c #979487", -") c #8C866C", -"! c #EBE7D3", -"~ c #C1B485", -"{ c #343124", -"] c #ABA89E", -"^ c #EFECE0", -"/ c #AEABA3", -"( c #6C6A66", -"_ c #26241A", -": c #8F8663", -"< c #7A7251", -"[ c #988E69", -"} c #353225", -"| c #26231A", -"1 c #302D21", -"2 c #333023", -"3 c #6E674C", -"4 c #A69B72", -"5 c #7A7051", -"6 c #EBE8D4", -"7 c #D8D0B3", -"8 c #58523D", -"9 c #E9E6D2", -"0 c #FFFFFF", -"a c #B9B9B9", -"b c #A1A1A1", -"c c #AAAAAA", -"d c #D3D3D3", -"e c #E9E6D1", -"f c #E9E6D0", -"g c #E8E5D0", -"h c #A39870", -"i c #EDEAD7", -"j c #E9E5CE", -"k c #AEAEAE", -"l c #898267", -"m c #746A45", -"n c #6B623D", -"o c #655A37", -" ... ", -" ....+@#.... ", -".$%&*=-;>,'). ", -".!~{]^^/(_:<. ", -".%~[}|1|2345. ", -".6~~78......... ", -".9~[~.000000000.", -".9~~7.0aba0cbd0.", -".e~[~.000000000.", -".f~~7.0abadab00.", -".g~h~.000000000.", -".g~~7.0abba0cd0.", -".i~h~.000000000.", -".j~~~.0dbb0cbk0.", -".lmno.000000000.", -" .............. "}; -#endif diff --git a/bitmaps_xpm/pcbnew.xpm b/bitmaps_xpm/pcbnew.xpm deleted file mode 100644 index e6322832c0..0000000000 --- a/bitmaps_xpm/pcbnew.xpm +++ /dev/null @@ -1,80 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *pcbnew_xpm[]; - -#else -const char *pcbnew_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 54 1", -" c None", -". c #000000", -"+ c #FEFEFF", -"@ c #F9AB7F", -"# c #F55A00", -"$ c #FDFDFF", -"% c #9B9B9B", -"& c #FFFFFF", -"* c #F9F9FF", -"= c #FCFCFF", -"- c #F8F8FF", -"; c #F4F4FF", -"> c #F8AA7F", -", c #F4A67F", -"' c #F0F0FF", -") c #ECECFF", -"! c #FAFAFF", -"~ c #F7F7FF", -"{ c #F0A27F", -"] c #E8E8FF", -"^ c #F6F6FF", -"/ c #F2F2FF", -"( c #EFEFFF", -"_ c #EBEBFF", -": c #E7E7FF", -"< c #E4E4FF", -"[ c #DFDFFF", -"} c #F5F5FF", -"| c #F1F1FF", -"1 c #EEEEFF", -"2 c #EAEAFF", -"3 c #E6E6FF", -"4 c #E3E3FF", -"5 c #DBDBFF", -"6 c #EDEDFF", -"7 c #EB9D7F", -"8 c #E89A7F", -"9 c #D7D7FF", -"0 c #D3D3FF", -"a c #FBFBFF", -"b c #E9E9FF", -"c c #E5E5FF", -"d c #E1E1FF", -"e c #DDDDFF", -"f c #E7997F", -"g c #E3957F", -"h c #CFCFFF", -"i c #F3F3FF", -"j c #D9D9FF", -"k c #D5D5FF", -"l c #D2D2FF", -"m c #CECEFF", -"n c #CACAFF", -"o c #4D4D4D", -"............... ", -".+@#@++++++++$.%", -".+#&#########*.%", -".+@#@++++++=-;.%", -".+++++++++>#,'.%", -".+#########&#).%", -".+++++++!~,#{].%", -".+@#@++!^/(_:<.%", -".+#&#########[.%", -".+@#@*}|1234[5.%", -".++=-}|6237#89.%", -".+#########�.%", -".a~;')bcdef#gh.%", -".~i')] c #3B3B4B", -", c #00002E", -"' c #000092", -") c #000016", -"! c #0A0A0A", -"~ c #CACAFF", -"{ c #37374B", -"] c #0F0F0F", -"^ c #4C4C4C", -"/ c #49494C", -"( c #161682", -"_ c #040493", -": c #000097", -"< c #141462", -"[ c #484848", -"} c #9B9B9B", -"| c #323232", -"1 c #606060", -"2 c #95959B", -"3 c #1C1C9B", -"4 c #08089A", -"5 c #3C3C5A", -"6 c #2E2E67", -"7 c #010199", -"8 c #252586", -"9 c #5B5B5B", -"0 c #1F1F1F", -"a c #989898", -"b c #000098", -"c c #000088", -"d c #D72E2E", -"e c #DE676B", -"f c #DA636B", -"g c #D62E2E", -"h c #D25B6B", -"i c #D62F2F", -"j c #D23636", -"k c #CE576B", -"l c #D03939", -"m c #B96363", -"n c #B96262", -"o c #BA6262", -"p c #BA6161", -"q c #BA6060", -"r c #C35050", -"s c #B27171", -"t c #B36D6D", -"u c #CA4444", -"v c #9C9898", -" ", -" .. +@ #$ ", -" %&*% $=#+ ", -" .&-;>...,$').% ", -" !*;~{]^/(_:<[[}", -" |%>{%12345678}}", -" 9001a b c ", -" }}} ", -" ", -" dd ", -" defd ", -" ge-;hgggggggii ", -" jf;~klmnmmnopq}", -" rdhkds}}}}}}}}}", -" tuusv ", -" }}} "}; -#endif diff --git a/bitmaps_xpm/pin_name_to.xpm b/bitmaps_xpm/pin_name_to.xpm deleted file mode 100644 index 9bae8e0f28..0000000000 --- a/bitmaps_xpm/pin_name_to.xpm +++ /dev/null @@ -1,82 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *pin_name_to_xpm[]; - -#else -const char * pin_name_to_xpm[] = { -"16 16 58 1", -" c None", -". c #D72E2E", -"+ c #D72D2D", -"@ c #D72F2F", -"# c #E06E72", -"$ c #DC6A72", -"% c #CA4343", -"& c #D62E2E", -"* c #DF696D", -"= c #E5E5FF", -"- c #D7D7FF", -"; c #D35D6D", -"> c #D23636", -", c #DB6168", -"' c #CACAFF", -") c #CF5568", -"! c #CF3A3A", -"~ c #B76767", -"{ c #B76666", -"] c #B86666", -"^ c #B86565", -"/ c #B86464", -"( c #9B9B9B", -"_ c #C35151", -": c #D35664", -"< c #CF5264", -"[ c #B17272", -"} c #B17171", -"| c #C84747", -"1 c #553838", -"2 c #393838", -"3 c #000000", -"4 c #161616", -"5 c #006600", -"6 c #004500", -"7 c #008C00", -"8 c #00A300", -"9 c #000800", -"0 c #002100", -"a c #006000", -"b c #00BD00", -"c c #009500", -"d c #005100", -"e c #002C00", -"f c #00AA00", -"g c #002500", -"h c #009300", -"i c #00B000", -"j c #002300", -"k c #000D00", -"l c #004F00", -"m c #008B00", -"n c #00A200", -"o c #00AD00", -"p c #001800", -"q c #00B200", -"r c #002D00", -"s c #004000", -" ... ", -" . . ", -" .. +.+ ", -" @#$@% . . ", -"&*=-;....... ", -">,-')!~{]]^/( ", -"_.:<.[( ", -" }||123 ", -" ((456 ", -" 3789 0 ", -" abcdefg ", -" 9hbbbbij ", -" klmnbop ", -" 33qr3 ", -" 3s3 ", -" "}; -#endif diff --git a/bitmaps_xpm/pin_number_to.xpm b/bitmaps_xpm/pin_number_to.xpm deleted file mode 100644 index 0b71e36a00..0000000000 --- a/bitmaps_xpm/pin_number_to.xpm +++ /dev/null @@ -1,82 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *pin_number_to_xpm[]; - -#else -const char * pin_number_to_xpm[] = { -"16 16 58 1", -" c None", -". c #D72E2E", -"+ c #D72F2F", -"@ c #E06E72", -"# c #DC6A72", -"$ c #CA4343", -"% c #00009B", -"& c #D62E2E", -"* c #DF696D", -"= c #E5E5FF", -"- c #D7D7FF", -"; c #D35D6D", -"> c #D23636", -", c #DB6168", -"' c #CACAFF", -") c #CF5568", -"! c #CF3A3A", -"~ c #B76767", -"{ c #B76666", -"] c #B86666", -"^ c #B86565", -"/ c #B86464", -"( c #9B9B9B", -"_ c #C35151", -": c #D35664", -"< c #CF5264", -"[ c #B17272", -"} c #B17171", -"| c #C84747", -"1 c #553838", -"2 c #393838", -"3 c #000000", -"4 c #161616", -"5 c #006600", -"6 c #004500", -"7 c #008C00", -"8 c #00A300", -"9 c #000800", -"0 c #002100", -"a c #006000", -"b c #00BD00", -"c c #009500", -"d c #005100", -"e c #002C00", -"f c #00AA00", -"g c #002500", -"h c #009300", -"i c #00B000", -"j c #002300", -"k c #000D00", -"l c #004F00", -"m c #008B00", -"n c #00A200", -"o c #00AD00", -"p c #001800", -"q c #00B200", -"r c #002D00", -"s c #004000", -" ", -" ", -" .. ", -" +@#+$ %%%", -"&*=-;....... % %", -">,-')!~{]]^/(%%%", -"_.:<.[( % %", -" }||123 ", -" ((456 ", -" 3789 0 ", -" abcdefg ", -" 9hbbbbij ", -" klmnbop ", -" 33qr3 ", -" 3s3 ", -" "}; -#endif diff --git a/bitmaps_xpm/pin_size_to.xpm b/bitmaps_xpm/pin_size_to.xpm deleted file mode 100644 index 3865d71fee..0000000000 --- a/bitmaps_xpm/pin_size_to.xpm +++ /dev/null @@ -1,77 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *pin_size_to_xpm[]; - -#else -const char * pin_size_to_xpm[] = { -"16 16 53 1", -" c None", -". c #D72E2E", -"+ c #DE676B", -"@ c #DA636B", -"# c #D62E2E", -"$ c #E5E5FF", -"% c #D7D7FF", -"& c #D25B6B", -"* c #D62F2F", -"= c #D23535", -"- c #CACAFF", -"; c #CE576B", -"> c #D03939", -", c #B96363", -"' c #B96262", -") c #BA6262", -"! c #BA6161", -"~ c #BA6060", -"{ c #9B9B9B", -"] c #C35151", -"^ c #B17171", -"/ c #B36E6E", -"( c #CA4444", -"_ c #9C9898", -": c #989898", -"< c #777777", -"[ c #000000", -"} c #006600", -"| c #004500", -"1 c #008C00", -"2 c #00A300", -"3 c #000700", -"4 c #002100", -"5 c #006000", -"6 c #00BD00", -"7 c #009500", -"8 c #005100", -"9 c #002C00", -"0 c #00AA00", -"a c #002500", -"b c #000800", -"c c #009300", -"d c #00B000", -"e c #002300", -"f c #000D00", -"g c #004F00", -"h c #008B00", -"i c #00A200", -"j c #00AD00", -"k c #001800", -"l c #00B200", -"m c #002D00", -"n c #004000", -" .. ", -" .+@. ", -"#+$%&.######** ", -"=@%-;>,',,')!~{ ", -"].&;.^{{{{{{{{{ ", -" /((^_ ", -" :<{ ", -"[ [[[[[ [[ [ ", -"[[[ [}| [[[ ", -"[[[[[123[[4[[[[ ", -"[[[ 567890a[[[ ", -"[ [[ bc6666de [ ", -" fghi6jk ", -" [[lm[ ", -" [n[ ", -" "}; -#endif diff --git a/bitmaps_xpm/pin_to.xpm b/bitmaps_xpm/pin_to.xpm deleted file mode 100644 index 9482191b9c..0000000000 --- a/bitmaps_xpm/pin_to.xpm +++ /dev/null @@ -1,72 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *pin_to_xpm[]; - -#else -const char * pin_to_xpm[] = { -"16 16 48 1", -" c None", -". c #D72E2E", -"+ c #DE676B", -"@ c #DA636B", -"# c #D62E2E", -"$ c #E5E5FF", -"% c #D7D7FF", -"& c #D25B6B", -"* c #D23535", -"= c #CACAFF", -"- c #CE576B", -"; c #D03939", -"> c #B96464", -", c #9B9B9B", -"' c #C35151", -") c #B17171", -"! c #B36E6E", -"~ c #CA4444", -"{ c #9C9898", -"] c #939393", -"^ c #838383", -"/ c #000900", -"( c #001100", -"_ c #000000", -": c #004D00", -"< c #00BD00", -"[ c #001700", -"} c #000100", -"| c #002500", -"1 c #008000", -"2 c #005200", -"3 c #001E00", -"4 c #000400", -"5 c #009500", -"6 c #00BA00", -"7 c #009800", -"8 c #009E00", -"9 c #00AB00", -"0 c #008C00", -"a c #00BC00", -"b c #001D00", -"c c #003F00", -"d c #008700", -"e c #00AF00", -"f c #001A00", -"g c #006000", -"h c #003000", -"i c #000D00", -" .. ", -" .+@. ", -"#+$%&......... ", -"*@%=-;>>>>>>>>, ", -"'.&-.),,,,,,,,, ", -" !~~){ ", -" ,]^ ", -" /(_ ", -" :<[ } ", -" |<1/ 23 ", -" 45<67893 ", -" (0a<<<0_ ", -" _bcdef ", -" gh ", -" i_ ", -" "}; -#endif diff --git a/bitmaps_xpm/pinorient_down.xpm b/bitmaps_xpm/pinorient_down.xpm deleted file mode 100644 index a19725a5ab..0000000000 --- a/bitmaps_xpm/pinorient_down.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pinorient_down_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" XXX ", -" X...X ", -" X...X. ", -" X...X ", -" XXX ", -" X ", -" X ", -" X ", -" X. ", -" X ", -" X ", -" X ", -" X ", -"XXXXXXXXXXXXXXX" -}; diff --git a/bitmaps_xpm/pinorient_left.xpm b/bitmaps_xpm/pinorient_left.xpm deleted file mode 100644 index 0de66ec112..0000000000 --- a/bitmaps_xpm/pinorient_left.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pinorient_left_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -"X ", -"X ", -"X ", -"X XXX ", -"X X...X ", -"XXXXXXXXXX...X ", -"X X...X ", -"X XXX ", -"X ", -"X ", -"X ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinorient_right.xpm b/bitmaps_xpm/pinorient_right.xpm deleted file mode 100644 index 5642a998f9..0000000000 --- a/bitmaps_xpm/pinorient_right.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pinorient_right_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -" X", -" X", -" X", -" XXX X", -" X...X X", -" X...XXXXXXXXXX", -" X...X X", -" XXX X", -" X", -" X", -" X", -" ", -" " -}; diff --git a/bitmaps_xpm/pinorient_up.xpm b/bitmaps_xpm/pinorient_up.xpm deleted file mode 100644 index 9401527f1b..0000000000 --- a/bitmaps_xpm/pinorient_up.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pinorient_up_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -"XXXXXXXXXXXXXXX", -" X ", -" X ", -" X ", -" X ", -" X ", -" X ", -" X. ", -" X ", -" XXX ", -" X...X ", -" X...X ", -" X...X ", -" XXX ", -" " -}; diff --git a/bitmaps_xpm/pinshape_active_low_input.xpm b/bitmaps_xpm/pinshape_active_low_input.xpm deleted file mode 100644 index cb491bac68..0000000000 --- a/bitmaps_xpm/pinshape_active_low_input.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_active_low_input_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . . ", -" . ... ", -" . .. . ", -" .. . ", -" .......... ", -" . ", -" . ", -" . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinshape_active_low_output.xpm b/bitmaps_xpm/pinshape_active_low_output.xpm deleted file mode 100644 index 7f736293b1..0000000000 --- a/bitmaps_xpm/pinshape_active_low_output.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_active_low_output_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . ", -" ... ", -" . .. ", -" . .. ", -" .......... ", -" . ", -" . ", -" . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinshape_clock_active_low.xpm b/bitmaps_xpm/pinshape_clock_active_low.xpm deleted file mode 100644 index 628a956de8..0000000000 --- a/bitmaps_xpm/pinshape_clock_active_low.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_clock_active_low_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . . ", -" . ... ", -" .. .. . ", -" . .. . ", -" . .......... ", -" . . ", -" .. ", -" . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinshape_clock_fall.xpm b/bitmaps_xpm/pinshape_clock_fall.xpm deleted file mode 100644 index f763865616..0000000000 --- a/bitmaps_xpm/pinshape_clock_fall.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_clock_fall_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . ", -" . ", -" .. ", -" . . ", -" . ....... ", -" . . ", -" .. ", -" . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinshape_clock_invert.xpm b/bitmaps_xpm/pinshape_clock_invert.xpm deleted file mode 100644 index 8fef4858d1..0000000000 --- a/bitmaps_xpm/pinshape_clock_invert.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_clock_invert_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . ", -" . ", -" .. ... ", -" . .. . ", -" . .. ..... ", -" . .. . ", -" .. ... ", -" . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinshape_clock_normal.xpm b/bitmaps_xpm/pinshape_clock_normal.xpm deleted file mode 100644 index d9a5273b23..0000000000 --- a/bitmaps_xpm/pinshape_clock_normal.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_clock_normal_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . ", -" . ", -" .. ", -" . . ", -" . .......... ", -" . . ", -" .. ", -" . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinshape_invert.xpm b/bitmaps_xpm/pinshape_invert.xpm deleted file mode 100644 index 6958a20370..0000000000 --- a/bitmaps_xpm/pinshape_invert.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_invert_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . ", -" . ", -" . ... ", -" .. . ", -" .. ..... ", -" .. . ", -" . ... ", -" . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinshape_nonlogic.xpm b/bitmaps_xpm/pinshape_nonlogic.xpm deleted file mode 100644 index fa0dc6893e..0000000000 --- a/bitmaps_xpm/pinshape_nonlogic.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_nonlogic_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . ", -" . . . ", -" . . . ", -" ... ", -" .......... ", -" ... ", -" . . . ", -" . . . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pinshape_normal.xpm b/bitmaps_xpm/pinshape_normal.xpm deleted file mode 100644 index 88aa195754..0000000000 --- a/bitmaps_xpm/pinshape_normal.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -const char *pinshape_normal_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 2 1", -". c Black", -" c #FFFFFF", -/* pixels */ -" ", -" ", -" . ", -" . ", -" . ", -" . ", -" . ", -" .......... ", -" . ", -" . ", -" . ", -" . ", -" . ", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_3states.xpm b/bitmaps_xpm/pintype_3states.xpm deleted file mode 100644 index c2a156d2ee..0000000000 --- a/bitmaps_xpm/pintype_3states.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_3states_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -" ", -"X XXXXXXX X", -"X X X X", -"X X X X", -"X X X", -"XXXXXXXXXXXXXXX", -"X X", -"X X", -"X X", -"X X", -" ", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_bidi.xpm b/bitmaps_xpm/pintype_bidi.xpm deleted file mode 100644 index a6b622c4e3..0000000000 --- a/bitmaps_xpm/pintype_bidi.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_bidi_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -" ", -" ", -" XX XX ", -" XX. .XX ", -" XX.. ..XX ", -"XXXXXXXXXXXXXX ", -" XX.. ..XX ", -" XX. .XX ", -" XX XX ", -" ", -" ", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_input.xpm b/bitmaps_xpm/pintype_input.xpm deleted file mode 100644 index f3f8fbb1f0..0000000000 --- a/bitmaps_xpm/pintype_input.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_input_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -" X", -" X", -" XX X", -" .XX X", -" ..XX X", -"XXXXXXXXXXXXXXX", -" ..XX X", -" .XX X", -" XX X", -" X", -" X", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_noconnect.xpm b/bitmaps_xpm/pintype_noconnect.xpm deleted file mode 100644 index 96ca99c385..0000000000 --- a/bitmaps_xpm/pintype_noconnect.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_noconnect_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #0402C4", -/* pixels */ -" ", -" ", -" ", -" X", -". . X", -" . . X", -" . . X", -" .XXXXXXXXXXX", -" . . X", -" . . X", -". . X", -" X", -" ", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_notspecif.xpm b/bitmaps_xpm/pintype_notspecif.xpm deleted file mode 100644 index 66ef8269c0..0000000000 --- a/bitmaps_xpm/pintype_notspecif.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_notspecif_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" XXXX ", -" X X ", -" X X ", -" X ", -" X ", -" X ", -" X ", -"XXXXXXXXXXXXXXX", -" ", -" X ", -" X ", -" ", -" ", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_opencoll.xpm b/bitmaps_xpm/pintype_opencoll.xpm deleted file mode 100644 index d846909d37..0000000000 --- a/bitmaps_xpm/pintype_opencoll.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_opencoll_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #040204", -/* pixels */ -" ", -" ", -" XXXX ", -" X ", -" X ", -" X ", -" X ", -"XXXXXX ", -" X ", -" X ", -" XXXXX ", -" XXX ", -" X ", -" ..... ", -" . . . " -}; diff --git a/bitmaps_xpm/pintype_openemit.xpm b/bitmaps_xpm/pintype_openemit.xpm deleted file mode 100644 index 5139c34569..0000000000 --- a/bitmaps_xpm/pintype_openemit.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_openemit_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #840204", -/* pixels */ -" ...... ", -" . ", -" X ", -" X ", -" X ", -" X ", -" X ", -"XXXXXX ", -" X ", -" X ", -" XXXXX ", -" XXX ", -" X ", -" XXXX", -" " -}; diff --git a/bitmaps_xpm/pintype_output.xpm b/bitmaps_xpm/pintype_output.xpm deleted file mode 100644 index 7fe22a3851..0000000000 --- a/bitmaps_xpm/pintype_output.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_output_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -"X ", -"X ", -"X XX ", -"X .XX ", -"X ..XX ", -"XXXXXXXXXXXXXX ", -"X ..XX ", -"X .XX ", -"X XX ", -"X ", -"X ", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_passive.xpm b/bitmaps_xpm/pintype_passive.xpm deleted file mode 100644 index cba04781b8..0000000000 --- a/bitmaps_xpm/pintype_passive.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_passive_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -" ", -"X X", -"X X", -"X X", -"X X", -"XXXXXXXXXXXXXXX", -"X X", -"X X", -"X X", -"X X", -" ", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_powerinput.xpm b/bitmaps_xpm/pintype_powerinput.xpm deleted file mode 100644 index 1cf9f1d04d..0000000000 --- a/bitmaps_xpm/pintype_powerinput.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_powerinput_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -" X", -" X", -"XX XX X", -" XX .XX X", -" XXXXXXXXXXX X", -" XXXXXXXXXXXX", -" XXXXXXXXXXX X", -" XX .XX X", -"XX XX X", -" X", -" X", -" ", -" " -}; diff --git a/bitmaps_xpm/pintype_poweroutput.xpm b/bitmaps_xpm/pintype_poweroutput.xpm deleted file mode 100644 index a5270c2747..0000000000 --- a/bitmaps_xpm/pintype_poweroutput.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -const char *pintype_poweroutput_xpm[] = { -/* columns rows colors chars-per-pixel */ -"15 15 3 1", -" c none", -"X c #040204", -". c #C4C2C4", -/* pixels */ -" ", -" ", -"X ", -"X ", -"X XXX ", -"X .XXX ", -"XXXXXXXXXXXXXX ", -"XXXXXXXXXXXXXXX", -"XXXXXXXXXXXXXX ", -"X .XXX ", -"X XXX ", -"X ", -"X ", -" ", -" " -}; diff --git a/bitmaps_xpm/plot_hpg.xpm b/bitmaps_xpm/plot_hpg.xpm deleted file mode 100644 index 2e4abc6e66..0000000000 --- a/bitmaps_xpm/plot_hpg.xpm +++ /dev/null @@ -1,41 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *plot_hpg_xpm[]; - -#else -const char * plot_hpg_xpm[] = { -"16 16 17 1", -" c None", -". c #000000", -"+ c #C3C3C3", -"@ c #616161", -"# c #D72E2E", -"$ c #F5F5F5", -"% c #EBEBEB", -"& c #E1E1E1", -"* c #006900", -"= c #EEEEEE", -"- c #5B5B5B", -"; c #2B2B2B", -"> c #757575", -", c #707070", -"' c #C8C8C8", -") c #A6A6A6", -"! c #3C3C3C", -"................", -".++++++++++++++.", -".+..........@#+.", -".+$%%%%%%%%%&++.", -".+$%%%%...%%&*+.", -".+$%%%%%%%%%&++.", -"..$...%...%%&...", -" .=%%%%%%%%%&-. ", -" ..%.%..;%>.,-. ", -" ..%.%.%.%.%&-. ", -" ....%..>%.>.-. ", -" ..%.%.%%%.%.-. ", -" ..%.%.%%%>.,-. ", -" .'))))))))))-. ", -" .-..........-. ", -" .!. .!. "}; -#endif diff --git a/bitmaps_xpm/plot_ps.xpm b/bitmaps_xpm/plot_ps.xpm deleted file mode 100644 index 56d5860ba0..0000000000 --- a/bitmaps_xpm/plot_ps.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *plot_ps_xpm[]; - -#else -const char * plot_ps_xpm[] = { -"16 16 14 1", -" c None", -"! c black", -"# c #C3C3C3", -"$ c #616161", -"% c #D72E2E", -"& c #F5F5F5", -"' c #EBEBEB", -"( c #E1E1E1", -") c #006900", -"* c #5B5B5B", -"+ c #D2D2D2", -", c #C8C8C8", -"- c #A6A6A6", -". c #3C3C3C", -"!!!!!!!!!!!!!!!!", -"!##############!", -"!#!!!!!!!!!!$%#!", -"!#&'''''''''(##!", -"!#&''''!!!''()#!", -"!#&'''''''''(##!", -"!!&!!!'!!!''(!!!", -" !&'''''''''(*! ", -" !&'!!+'+!+'(*! ", -" !&'!'!'!'''(*! ", -" !&'!!+'+!+'(*! ", -" !&'!'''''!'(*! ", -" !&'!'''!!+'(*! ", -" !,----------*! ", -" !*!!!!!!!!!!*! ", -" !.! !.! "}; -#endif diff --git a/bitmaps_xpm/plot_xpm.xpm b/bitmaps_xpm/plot_xpm.xpm deleted file mode 100644 index 3fc749f776..0000000000 --- a/bitmaps_xpm/plot_xpm.xpm +++ /dev/null @@ -1,36 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *plot_xpm[]; - -#else -const char * plot_xpm[] = { -"16 16 12 1", -" c None", -". c #000000", -"+ c #C3C3C3", -"@ c #D72E2E", -"# c #F5F5F5", -"$ c #EBEBEB", -"% c #E1E1E1", -"& c #006900", -"* c #5B5B5B", -"= c #C8C8C8", -"- c #A6A6A6", -"; c #3C3C3C", -"................", -".++++++++++++++.", -".+..........+@+.", -".+#$$$$$$$$%+++.", -".+#$$$$...$%+&+.", -".+#$$$$$$$$%+++.", -"..#...$...$%....", -" .#$$$$$$$$%.*. ", -" .#...$...$%.*. ", -" .#$$$$$$$$%.*. ", -" .#$$$$$$$$%.*. ", -" .#$$$$$$$$%.*. ", -" .#$$$$$$$$%.*. ", -" .=---------.*. ", -" .*..........*. ", -" .;. .;. "}; -#endif diff --git a/bitmaps_xpm/polar.xpm b/bitmaps_xpm/polar.xpm deleted file mode 100644 index dee6210a3d..0000000000 --- a/bitmaps_xpm/polar.xpm +++ /dev/null @@ -1,57 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *polar_coord_xpm[]; - -#else -const char * polar_coord_xpm[] = { -"16 16 33 1", -" c None", -"! c black", -"# c #161616", -"$ c #161513", -"% c #F2D7C0", -"& c #F2BC8E", -"' c #140D07", -"( c #14111C", -") c #F2B279", -"* c #F29647", -"+ c #140A01", -", c #000075", -"- c #120A1F", -". c #130904", -"0 c #00009A", -"1 c #000046", -"2 c #00009B", -"3 c #000066", -"4 c #00007B", -"5 c #000034", -"6 c #000097", -"7 c #000093", -"8 c #000098", -"9 c #000036", -": c #000088", -"; c #00008D", -"< c #000052", -"= c #00006B", -"> c #00006C", -"? c #000081", -"@ c #000080", -"A c #000094", -"B c #121212", -"! #$ ", -"! #%&' ", -"! ()*+ ", -"! ,-.! ", -"! 001 ", -"! 223 ", -"! 224 ", -"! 2205 ", -"! 2627 ", -"! 089:2; ", -"! 20< 62= ", -"! 22> 2: ", -"!?2@ 2A ", -"!2; 28 ", -"!!!!!!!!!!!!!!!B", -" "}; -#endif diff --git a/bitmaps_xpm/post_compo.xpm b/bitmaps_xpm/post_compo.xpm deleted file mode 100644 index ad9cde62d8..0000000000 --- a/bitmaps_xpm/post_compo.xpm +++ /dev/null @@ -1,86 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* post_compo_xpm[]; -#else -const char * post_compo_xpm[] = { -"16 16 62 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #FEFEFE", -"# c #FDFDFD", -"$ c #FCFCFC", -"% c #FBFBFB", -"& c #FAFAFA", -"* c #F9F9F9", -"= c #F8F8F8", -"- c #7C7C7C", -"; c #232323", -"> c #EBEBEB", -", c #B5B5B5", -"' c #BEBEBE", -") c #424242", -"! c #454545", -"~ c #C9C9C9", -"{ c #A5A5A5", -"] c #B8B8B8", -"^ c #282828", -"/ c #050505", -"( c #6E6E6E", -"_ c #DFDFDF", -": c #D3D3D3", -"< c #B1B1B1", -"[ c #838383", -"} c #BABABA", -"| c #2E2E30", -"1 c #181818", -"2 c #989898", -"3 c #DCDCDC", -"4 c #CDCDCD", -"5 c #AFAFAF", -"6 c #F4F4FF", -"7 c #E9E9FE", -"8 c #8E8EA2", -"9 c #1A1A1F", -"0 c #373737", -"a c #919191", -"b c #313131", -"c c #B3B3B3", -"d c #EAEAFF", -"e c #E0DFFF", -"f c #D6D5FF", -"g c #C6C4F8", -"h c #6A698B", -"i c #020203", -"j c #A4A3B4", -"k c #242424", -"l c #575757", -"m c #E0E0FF", -"n c #CCCBFF", -"o c #BDBBF8", -"p c #64638B", -"q c #A8A7B8", -"r c #9494B4", -"s c #CBCAFE", -"t c #7B7AA2", -"u c #16161F", -"v c #9594BA", -"w c #252430", -"........... ", -".+@#$%&*=-;. ", -".+>>>>>>>,'). ", -".+!~>>>>>,{]^. ", -".+./(_>>>:<<[. ", -"...}|12>>3445. ", -".@.67890abbc5. ", -".@.defghi]jkl. ", -".@.mfnopiqrkl. ", -".#.fstu0abbc5. ", -"...vw12>>>>>5. ", -".#./(_>>>>>>5. ", -".#!~>>>>>>>>5. ", -".#>>>>>>>>>>5. ", -".555555555555. ", -".............. "}; - -#endif diff --git a/bitmaps_xpm/post_drill.xpm b/bitmaps_xpm/post_drill.xpm deleted file mode 100644 index 3cdf4b147a..0000000000 --- a/bitmaps_xpm/post_drill.xpm +++ /dev/null @@ -1,59 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* post_drill_xpm[]; -#else -const char * post_drill_xpm[] = { -"16 16 35 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #FEFEFE", -"# c #FDFDFD", -"$ c #FCFCFC", -"% c #FBFBFB", -"& c #696969", -"* c #F9F9F9", -"= c #F8F8F8", -"- c #7C7C7C", -"; c #232323", -"> c #EBEBEB", -", c #9E9E9E", -"' c #B5B5B5", -") c #BEBEBE", -"! c #424242", -"~ c #A5A5A5", -"{ c #B8B8B8", -"] c #282828", -"^ c #A6A6A6", -"/ c #303030", -"( c #0B0B0B", -"_ c #D3D3D3", -": c #B1B1B1", -"< c #838383", -"[ c #1A1A1A", -"} c #8C8C8C", -"| c #9C9C9C", -"1 c #CDCDCD", -"2 c #AFAFAF", -"3 c #AAAAAA", -"4 c #5E5E5E", -"5 c #7A7A7A", -"6 c #101010", -"........... ", -".+@#$%&*=-;. ", -".+>>>>&,>')!. ", -".+>>>>>,>'~{]. ", -".+>>^/(/^_::<. ", -".@>^[}_}[|112. ", -".@>/}>&>}/>>2. ", -"&&>(_&&&_(>&&. ", -".3,/}>&,4/>>56 ", -".#>^[}_4[^>>2. ", -".#>>^/(/^>>>2. ", -".#>>>>>>>>>>2. ", -".#>>>>&>>>>>2. ", -".#>>>>&,>>>>2. ", -".222222522222. ", -".............. "}; - -#endif diff --git a/bitmaps_xpm/post_module.xpm b/bitmaps_xpm/post_module.xpm deleted file mode 100644 index 55ee483235..0000000000 --- a/bitmaps_xpm/post_module.xpm +++ /dev/null @@ -1,76 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* post_module_xpm[]; -#else -const char * post_module_xpm[] = { -"16 16 52 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #FEFEFE", -"# c #FDFDFD", -"$ c #FCFCFC", -"% c #FBFBFB", -"& c #FAFAFA", -"* c #F9F9F9", -"= c #F8F8F8", -"- c #7C7C7C", -"; c #232323", -"> c #EBEBEB", -", c #B5B5B5", -"' c #BEBEBE", -") c #424242", -"! c #B0B0B0", -"~ c #A5A5A5", -"{ c #B8B8B8", -"] c #282828", -"^ c #C0C0C0", -"/ c #B8B8C0", -"( c #D3D3D3", -"_ c #B1B1B1", -": c #838383", -"< c #FF7800", -"[ c #F5F4FF", -"} c #EBEAFF", -"| c #CDCDCD", -"1 c #AFAFAF", -"2 c #F5F5FF", -"3 c #EBEBFF", -"4 c #E1E1FF", -"5 c #F6F5FF", -"6 c #ECEBFF", -"7 c #E2E1FF", -"8 c #D8D7FF", -"9 c #ECECFF", -"0 c #E2E2FF", -"a c #CECDFF", -"b c #E3E2FF", -"c c #D9D8FF", -"d c #CFCEFF", -"e c #C5C4FF", -"f c #BBBAFF", -"g c #D0CFFF", -"h c #C6C5FF", -"i c #BCBAFF", -"j c #B2B0FF", -"k c #BCBBFF", -"l c #B3B1FF", -"m c #AFADFF", -"........... ", -".+@#$%&*=-;. ", -".+>>>>>>>,'). ", -".+>..!!..,~{]. ", -".+>.^../.(__:. ", -".@<.++[}.<||1. ", -".@<.+234.<>>1. ", -".@>.5678.>>>1. ", -".@<.908a.<>>1. ", -".#<.bcde.<>>1. ", -".#>.cdef.>>>1. ", -".#<.ghij.<>>1. ", -".#<.hklm.<>>1. ", -".#>......>>>1. ", -".111111111111. ", -".............. "}; - -#endif diff --git a/bitmaps_xpm/preference.xpm b/bitmaps_xpm/preference.xpm deleted file mode 100644 index 2a02404469..0000000000 --- a/bitmaps_xpm/preference.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *preference_xpm[]; - -#else -const char * preference_xpm[] = { -"16 15 7 1", -" c None", -". c #808000", -"X c #c0c0c0", -"o c #808080", -"O c Black", -"+ c #008080", -"@ c Blue", -" .... ", -" ..XXoo.. ", -" .XXoo..O.O ", -" .Xoo.X XOO ", -" .Xo.. XXO ", -" .X.O XX +O ", -" .o.OX XXXO ", -" .o..OXXXXOO ", -" .o. XXXXO ", -" .OXXXXXO ", -" O OOOO ", -" ++XXO ", -" +++@@@@ ", -" ++++++@@@ ", -" OOOOOOOOOO "}; -#endif diff --git a/bitmaps_xpm/print_button.xpm b/bitmaps_xpm/print_button.xpm deleted file mode 100644 index fbdd731422..0000000000 --- a/bitmaps_xpm/print_button.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *print_button_xpm[]; - -#else -const char *print_button_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"X c Gray100", -"o c #808000", -"O c Yellow", -/* pixels */ -" ", -" ......... ", -" .XXXXXXXX. ", -" .X.....X. ", -" .XXXXXXXX. ", -" .X.....X.... ", -" .XXXXXXXX. . .", -" .......... . ..", -". . . .", -"............. .", -". ooo . . ", -". OOO ... ", -"............. . ", -" . . . ", -" ........... " -}; -#endif - diff --git a/bitmaps_xpm/ratsnest.xpm b/bitmaps_xpm/ratsnest.xpm deleted file mode 100644 index 4ba2cd372a..0000000000 --- a/bitmaps_xpm/ratsnest.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *ratsnest_xpm[]; - -#else -const char *ratsnest_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 3 1", -"- c White", -"o c Red", -"X c None", - -/* pixels */ -"XoXXXXXXXXXXXX-o", -"XX-XXXXXXXXXX-XX", -"XXX-XXXXXXXo-XXX", -"XXXX-XXXXXo-oXXX", -"XXXXX-XXXXXo-XXX", -"XXXXXX-XXXXXX-XX", -"XXXXXXX-oXXXX-XX", -"XXXXXXXoooXXXX-o", -"XXXXXXX-oXXXXXo-", -"XXXXXX-XXXXXXXXo", -"XXXXX-XXXXXXXXXX", -"XXXX-oXXXXXXXXXX", -"XXXXooo-XXXXXXXX", -"XXXX-oXXX--XXXXX", -"XXX-XXXXXXXX--XX", -"XX-XXXXXXXXXXXX-" -}; -#endif - diff --git a/bitmaps_xpm/read_setup.xpm b/bitmaps_xpm/read_setup.xpm deleted file mode 100644 index a135a56374..0000000000 --- a/bitmaps_xpm/read_setup.xpm +++ /dev/null @@ -1,109 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *read_setup_xpm[]; - -#else -const char * read_setup_xpm[] = { -"16 16 85 1", -" c None", -". c #000000", -"+ c #E1E1E1", -"@ c #C1C1C1", -"# c #999999", -"$ c #9A9A9A", -"% c #C2C2C2", -"& c #E5E5E5", -"* c #DFDFDF", -"= c #CACACA", -"- c #666666", -"; c #858585", -"> c #898989", -", c #8A8A8A", -"' c #B1B1B1", -") c #A5A5A5", -"! c #F3F3F3", -"~ c #D0D0D0", -"{ c #ADADAD", -"] c #F0F0F0", -"^ c #EFEFEF", -"/ c #EBEBEB", -"( c #DBDBDB", -"_ c #C3C3C3", -": c #E4E5DF", -"< c #D5D6CB", -"[ c #D6D7CA", -"} c #B7B7B7", -"| c #767676", -"1 c #6C6C6C", -"2 c #787878", -"3 c #8D907B", -"4 c #92957E", -"5 c #90937D", -"6 c #A9A9A9", -"7 c #7C7C7C", -"8 c #757575", -"9 c #505050", -"0 c #8A8C7D", -"a c #8E917B", -"b c #91947F", -"c c #7E7E7E", -"d c #878A75", -"e c #666858", -"f c #4B4D3F", -"g c #4D4F40", -"h c #404135", -"i c #424337", -"j c #434437", -"k c #404236", -"l c #3C3D32", -"m c #48493C", -"n c #1A1A16", -"o c #939393", -"p c #848672", -"q c #25261F", -"r c #F1F2E9", -"s c #DDE0C7", -"t c #D6DABB", -"u c #CDD2AC", -"v c #C7CCA7", -"w c #989C80", -"x c #5F6152", -"y c #888980", -"z c #A7AB8C", -"A c #878A70", -"B c #6D6D6D", -"C c #676767", -"D c #777777", -"E c #EFF0E5", -"F c #9EA284", -"G c #606060", -"H c #888888", -"I c #818181", -"J c #7B7B7B", -"K c #96968D", -"L c #E3E5D1", -"M c #83866D", -"N c #EDEFE2", -"O c #A2A688", -"P c #E7E9DA", -"Q c #D1D3BD", -"R c #BBBF9D", -"S c #989B80", -"T c #6E715C", -" .+@#...$%%%%%", -" .+@.&*=.-;>,'", -" .+@.*%).....!", -" .+@.~)#.{]^/(", -"....+%$...-;____", -":<[.+%}|1-2,...$", -"345.+%67789.&*=.", -"0ab.+%c.....*%).", -"defghiijklmno)#.", -"pqrstuuuuuvw...-", -"xysuuuuuuuzA.BCD", -"qEtuuuuuuuF.GHIJ", -"KLuuuuuuuuM.....", -"NuuuuuuuuO.. ", -"PQRRRRRRST. ", -"........... "}; -#endif diff --git a/bitmaps_xpm/red.xpm b/bitmaps_xpm/red.xpm deleted file mode 100644 index 78de821f5a..0000000000 --- a/bitmaps_xpm/red.xpm +++ /dev/null @@ -1,36 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *red_xpm[]; - -#else -const char *red_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 6 1", -" c Gray0", -"X c #7b7b7b7b7b7b", -"O c Red", -"# c White", -"+ c Yellow", -"@ c None", - -/* pixels */ -"@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@", -"@@@@X X@@@@@@", -"@@@ OOOO @@@@@", -"@@X +#OOOO X@@@@", -"@@ O#+OOOOO @@@@", -"@@ OOOOOOOO @@@@", -"@@ OOOOOO+O X@@@", -"@@ OOOOO++O X@@@", -"@@X OOO++O XX@@@", -"@@@ OOOO XXX@@", -"@@@@X XXXX@@@", -"@@@@@@@XXXXXX@@@", -"@@@@@@@@@@X@@@@@" -}; -#endif - - - diff --git a/bitmaps_xpm/redo.xpm b/bitmaps_xpm/redo.xpm deleted file mode 100644 index 2e684a08f1..0000000000 --- a/bitmaps_xpm/redo.xpm +++ /dev/null @@ -1,67 +0,0 @@ -/* XPM */ -const char *redo_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 45 1", -"p c #78B83A", -" c none", -"> c #B6F17D", -"u c #4E8F0F", -"w c #77D917", -"3 c #BCF387", -"* c #DFF8C5", -"2 c #CFF6A8", -"5 c #4D8D0F", -". c #4E9A06", -"% c #D4F7B1", -"8 c #87E927", -"1 c #D2F7AD", -"y c #93EB3D", -"4 c #CDEDAC", -"a c #A7DE72", -"$ c #EAFBD9", -"g c #ABEF69", -"j c #B7F17F", -"q c #B5F17B", -"9 c #6DC715", -"< c #B1F173", -"& c #BFF38D", -"e c #9DDB60", -"0 c #A4DC6F", -"s c #C4F496", -"h c #9BD860", -": c #C2F492", -"; c #D0F6AA", -"t c #D7F7B7", -", c #DEF8C3", -"O c #DEF8C4", -"- c #CEF6A6", -"X c #E3F9CE", -"i c #D3F7AF", -"7 c #DAF8BC", -"6 c #DFF9C5", -"# c #E6FAD2", -"@ c #EBFBDB", -"f c #B3F076", -"o c #E2FACA", -"= c #E9FBD7", -"+ c #A3EE5A", -"r c #A4DB6F", -"d c #63B513", -/* pixels */ -" . ", -" .. ", -" .X. ", -" .....oO. ", -" ..+@#$%&*. ", -" ..%=-;:>>>,. ", -" ..<$123>>>>>4.", -" .56789999990..", -" .q6weeeee9r.. ", -" .tyeu...er.. ", -" .iep. .a.. ", -" .se.. ... ", -" .df. .. ", -" ..g.. ", -" .hj. ", -" .... " -}; diff --git a/bitmaps_xpm/reload.xpm b/bitmaps_xpm/reload.xpm deleted file mode 100644 index 4101ddcc29..0000000000 --- a/bitmaps_xpm/reload.xpm +++ /dev/null @@ -1,176 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * reload_xpm[]; -#else -const char * reload_xpm[] = { -"16 16 152 2", -" c None", -". c #3ACF73", -"+ c #35C96E", -"@ c #64D790", -"# c #3DC973", -"$ c #51CE81", -"% c #56CE84", -"& c #55CE84", -"* c #54CE83", -"= c #53CE82", -"- c #52CE82", -"; c #4FCF80", -"> c #4CD07F", -", c #97F1B8", -"' c #29A759", -") c #70D697", -"! c #F0FEF5", -"~ c #D3F8E1", -"{ c #CEF8DF", -"] c #C3F7D8", -"^ c #B4F5CD", -"/ c #A7F2C2", -"( c #9CEDBA", -"_ c #8DE7AF", -": c #84E4A7", -"< c #6FDA97", -"[ c #32B966", -"} c #23A254", -"| c #76D79B", -"1 c #CCFADD", -"2 c #80EFAA", -"3 c #7BF0A8", -"4 c #69ED9C", -"5 c #56EB8F", -"6 c #47E382", -"7 c #3FD778", -"8 c #39CB6F", -"9 c #32BF67", -"0 c #2BB25F", -"a c #2EAF5F", -"b c #2CAD5D", -"c c #107D3C", -"d c #73D699", -"e c #C5F9D9", -"f c #75ECA2", -"g c #6AE898", -"h c #5EE992", -"i c #50E487", -"j c #47D67C", -"k c #40CC74", -"l c #37BE6A", -"m c #30B160", -"n c #2DAD5D", -"o c #2BA85A", -"p c #158643", -"q c #01421D", -"r c #77DF9E", -"s c #B8F8D1", -"t c #5FE994", -"u c #34C169", -"v c #1E974D", -"w c #1A8B46", -"x c #168643", -"y c #12803E", -"z c #0F7639", -"A c #107639", -"B c #26A155", -"C c #158442", -"D c #003717", -"E c #95F1B8", -"F c #A8F7C6", -"G c #3ED878", -"H c #60C687", -"I c #388558", -"J c #000700", -"K c #001D0A", -"L c #0A6E34", -"M c #12793C", -"N c #076328", -"O c #1F7A3C", -"P c #267544", -"Q c #EEFFF3", -"R c #85E4A9", -"S c #51C07B", -"T c #8BEDB0", -"U c #13813F", -"V c #001C09", -"W c #00260F", -"X c #015C28", -"Y c #076026", -"Z c #1A853C", -"` c #178042", -" . c #186D2F", -".. c #C1EED2", -"+. c #73C592", -"@. c #80E1A4", -"#. c #3DD275", -"$. c #51B979", -"%. c #65D28F", -"&. c #56D486", -"*. c #47CE7B", -"=. c #36BD6A", -"-. c #2A9D57", -";. c #2EA556", -">. c #1C8E49", -",. c #126C38", -"'. c #084E20", -"). c #54B77B", -"!. c #7FE1A3", -"~. c #3ECF74", -"{. c #38C66D", -"]. c #4ED17E", -"^. c #52CC7F", -"/. c #45C273", -"(. c #3BBA6B", -"_. c #31B261", -":. c #2EAC5E", -"<. c #259E55", -"[. c #188944", -"}. c #106835", -"|. c #00421D", -"1. c #01471E", -"2. c #27A658", -"3. c #3BC971", -"4. c #36BB68", -"5. c #26A555", -"6. c #229E52", -"7. c #1E954C", -"8. c #1C8C48", -"9. c #198443", -"0. c #167C3E", -"a. c #13733B", -"b. c #14723A", -"c. c #0F5F32", -"d. c #01451F", -"e. c #02441E", -"f. c #209B51", -"g. c #198745", -"h. c #055F2A", -"i. c #05612C", -"j. c #035F2B", -"k. c #035D2A", -"l. c #045A29", -"m. c #045828", -"n. c #045628", -"o. c #045428", -"p. c #05592A", -"q. c #004820", -"r. c #087435", -"s. c #00210D", -"t. c #00461E", -"u. c #00230F", -" . ", -" + @ ", -"# $ % & & * = - ; > , ' ", -") ! ~ { ] ^ / ( _ : < [ } ", -"| 1 2 3 4 5 6 7 8 9 0 a b c ", -"d e f g h i j k l m n o p q ", -"r s t u v w x y z A B C D ", -"E F G H I J K L M N O P ", -"Q R S T U V W X Y Z ` . ", -"..+.@.#.$.%.&.*.=.-.;.>.,.'. ", -").!.~.{.].^./.(._.:.<.[.}.|. ", -"1.2.3.4.5.6.7.8.9.0.a.b.c.d. ", -" e.f.g.h.i.j.k.l.m.n.o.p.q. ", -" e.r.s. ", -" t.u. ", -" "}; -#endif - diff --git a/bitmaps_xpm/reload2.xpm b/bitmaps_xpm/reload2.xpm deleted file mode 100644 index ceca8695cf..0000000000 --- a/bitmaps_xpm/reload2.xpm +++ /dev/null @@ -1,134 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * reload2_xpm[]; - -#else -const char * reload2_xpm[] = { -"16 16 110 2", -" c None", -". c #000000", -"+ c #766B3F", -"@ c #F7F8FA", -"# c #CBDDEB", -"$ c #5D5332", -"% c #EFE5BA", -"& c #7A7A7A", -"* c #E9E9E9", -"= c #EAEAEA", -"- c #F1F1F1", -"; c #BFD5E8", -"> c #DCE5E8", -", c #5A5230", -"' c #EEE5BB", -") c #EED680", -"! c #231F13", -"~ c #2A2516", -"{ c #12100A", -"] c #707070", -"^ c #ABABAB", -"/ c #C0C0C0", -"( c #E0E0E0", -"_ c #8DA9BE", -": c #54697C", -"< c #574F2E", -"[ c #EFE4B6", -"} c #CCB76D", -"| c #96864F", -"1 c #636363", -"2 c #FEFEFE", -"3 c #F9F9F9", -"4 c #84A0B5", -"5 c #4F6475", -"6 c #4B4428", -"7 c #EEE2B2", -"8 c #AF9D5D", -"9 c #919191", -"0 c #819AAE", -"a c #496072", -"b c #494227", -"c c #8F6406", -"d c #D1940C", -"e c #D7A328", -"f c #DEB446", -"g c #A49357", -"h c #CFCFCF", -"i c #302C19", -"j c #765204", -"k c #9E7009", -"l c #D9AA35", -"m c #909090", -"n c #666E75", -"o c #272315", -"p c #986B07", -"q c #737373", -"r c #5C4003", -"s c #B07D0A", -"t c #767676", -"u c #CFE0ED", -"v c #6C7E87", -"w c #1E1A0F", -"x c #896611", -"y c #676D73", -"z c #54595E", -"A c #986B08", -"B c #57626A", -"C c #6B7C85", -"D c #221E11", -"E c #0B0B06", -"F c #576876", -"G c #AE9141", -"H c #847645", -"I c #8CA8BD", -"J c #8E96A0", -"K c #616161", -"L c #C5C5C5", -"M c #CECECE", -"N c #E0C978", -"O c #131D24", -"P c #A0A8AF", -"Q c #183042", -"R c #C9B46B", -"S c #817444", -"T c #0E222D", -"U c #586D80", -"V c #97A5B0", -"W c #86A4B9", -"X c #CDCDCD", -"Y c #AE9C5C", -"Z c #626262", -"` c #112835", -" . c #5A7082", -".. c #9DA9B0", -"+. c #6B7882", -"@. c #839EB2", -"#. c #E6E6E6", -"$. c #213648", -"%. c #666666", -"&. c #8D8D8D", -"*. c #112C3A", -"=. c #9FA9B0", -"-. c #59636D", -";. c #A1A1A1", -">. c #868686", -",. c #6E6E6E", -"'. c #2D3949", -"). c #3E4F5C", -"!. c #80878F", -"~. c #1A3140", -" . . . + . . . . . . . . . . ", -". @ # $ % . & * * * = * - ; ; . ", -". > , ' ) . ! ~ { ] ^ / ( _ : . ", -". < [ ) ) ) ) } | . 1 2 3 4 5 . ", -"6 7 ) ) ) ) ) ) ) 8 . 9 - 0 a . ", -"b c d d d d d e f ) g . h 0 a . ", -". i c d d . . j k l } . m 0 a . ", -". n o p d . q . r s ) . t 0 a . ", -". u v w x . y z . A ) . B 0 a . ", -". u _ C D E F 0 . G H . 0 0 a . ", -". u _ I J K L M . N . O P 0 a . ", -". u _ 4 L L Q . R S . T U V a . ", -". u W 0 L X . Y | . Z ` ...a . ", -". +.@.0 X #.$.. . %.&.*. .=.a . ", -" . -.5 ;./ m m >.,.& '.).!.~.. ", -" . . . . . . . . . . . . . "}; -#endif diff --git a/bitmaps_xpm/reset_text.xpm b/bitmaps_xpm/reset_text.xpm deleted file mode 100644 index 504ede9b3a..0000000000 --- a/bitmaps_xpm/reset_text.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *reset_text_xpm[]; - -#else -const char * reset_text_xpm[] = { -"16 16 3 1", -" c None", -". c #00009B", -"+ c #ACACAC", -" ", -" ", -" ...+ ", -" .++ ", -" ... .+ ", -" ..+.+ ", -" . .+++ ", -" . + + ", -" ..... + ", -" .+++ ", -" .+ ", -" .+ ", -" .+ ", -" .+ ", -" .+ ", -" ++ "}; -#endif diff --git a/bitmaps_xpm/resize_sheet.xpm b/bitmaps_xpm/resize_sheet.xpm deleted file mode 100644 index e74f0cedc1..0000000000 --- a/bitmaps_xpm/resize_sheet.xpm +++ /dev/null @@ -1,39 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *resize_sheet_xpm[]; - -#else -const char * resize_sheet_xpm[] = { -"16 16 15 1", -" c None", -". c #000000", -"+ c #020202", -"@ c #F8F8F8", -"# c #ECECEC", -"$ c #EBEBEB", -"% c #6A6A6A", -"& c #2C2C2C", -"* c #424242", -"= c #5E5E5E", -"- c #C4C4C4", -"; c #0D0D0D", -"> c #B8B8B8", -", c #C3C3C3", -"' c #080808", -" ......+ ", -" .@#$$$%& ... ", -" .@#$$$*=. ... ", -" .@#$$$$-; . ", -" .@#$$$$-; . ", -" .@#$$$$-; . ", -" .@#$$$$-; . ", -" .@#$$$$-; . ", -" .@#$$$$-; . ", -" .>,,,,,,' ....", -" ........ ... ", -" ", -" .. .. ", -" ......... ", -" .. .. ", -" "}; -#endif diff --git a/bitmaps_xpm/right.xpm b/bitmaps_xpm/right.xpm deleted file mode 100644 index 6ee334b186..0000000000 --- a/bitmaps_xpm/right.xpm +++ /dev/null @@ -1,49 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *right_xpm[]; - -#else -const char * right_xpm[] = { -"16 16 25 1", -" c None", -". c #000000", -"+ c #5B88B2", -"@ c #9EB8D1", -"# c #5080AD", -"$ c #B5C9DC", -"% c #AFC5DA", -"& c #B2C7DB", -"* c #B6CADD", -"= c #A4BDD5", -"- c #9CB7D1", -"; c #080D11", -"> c #9BB6D0", -", c #A0BAD3", -"' c #9AB5CF", -") c #97B3CE", -"! c #5F8BB4", -"~ c #91B0CC", -"{ c #95B2CE", -"] c #4C79A3", -"^ c #49749C", -"/ c #3F6588", -"( c #2A435B", -"_ c #456F96", -": c #375978", -" ", -" . ", -" .. ", -" .+. ", -" .......@#. ", -" .$%&***=-#; ", -" .>,-->',-)!. ", -" .~@''>---,{]. ", -" .^////////(. ", -" ._::::://(. ", -" ......./(. ", -" .(. ", -" .. ", -" . ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/rotate_ccw.xpm b/bitmaps_xpm/rotate_ccw.xpm deleted file mode 100644 index 29f2f83d3c..0000000000 --- a/bitmaps_xpm/rotate_ccw.xpm +++ /dev/null @@ -1,112 +0,0 @@ -/* XPM */ -const char *rotate_ccw_xpm[] = { -"16 16 93 2", -" c None", -". c #202020", -"+ c #090909", -"@ c #0C0C0C", -"# c #CACACB", -"$ c #3E3E3E", -"% c #9B9B9B", -"& c #010101", -"* c #A8A8A9", -"= c #FEFEFF", -"- c #727275", -"; c #646469", -"> c #505057", -", c #141416", -"' c #4A4A4A", -") c #F8F8FF", -"! c #F1F1FF", -"~ c #EBEBFF", -"{ c #E0E0FA", -"] c #A3A3BC", -"^ c #484855", -"/ c #171717", -"( c #96969A", -"_ c #C3C3CE", -": c #E6E6FA", -"< c #E4E4FF", -"[ c #DDDDFF", -"} c #D7D7FF", -"| c #707089", -"1 c #3B3B3D", -"2 c #000000", -"3 c #272727", -"4 c #444444", -"5 c #727272", -"6 c #4B4B4C", -"7 c #46464C", -"8 c #B3B3CE", -"9 c #D0D0FF", -"0 c #49495C", -"a c #5B5B5B", -"b c #5A5A76", -"c c #656580", -"d c #3B3B48", -"e c #5C5C5C", -"f c #313131", -"g c #4B4B4B", -"h c #494949", -"i c #8C8C8C", -"j c #212122", -"k c #BCBCDF", -"l c #8686AA", -"m c #474747", -"n c #8888B2", -"o c #C9C9FF", -"p c #B1B1D9", -"q c #262627", -"r c #595959", -"s c #2F2F2F", -"t c #40404C", -"u c #686880", -"v c #5A5A72", -"w c #262626", -"x c #4C4C64", -"y c #A9A9C9", -"z c #404048", -"A c #0D0D0F", -"B c #C0C0C5", -"C c #323232", -"D c #222222", -"E c #4D4D4D", -"F c #535353", -"G c #28282A", -"H c #737392", -"I c #DFDFF9", -"J c #BCBCCC", -"K c #93939C", -"L c #A1A1A2", -"M c #383838", -"N c #353535", -"O c #4F4F5F", -"P c #A3A3C1", -"Q c #DADAFC", -"R c #424242", -"S c #6C6C6C", -"T c #3D3D3F", -"U c #595961", -"V c #62626A", -"W c #73737A", -"X c #404040", -"Y c #040404", -"Z c #303031", -"` c #989898", -" . c #8F8F8F", -" ", -" . + ", -" @ # $ % ", -" & * = - ; > , ", -" ' = = ) ! ~ { ] ^ ", -" / * = ( _ : < [ } | 1 ", -" 2 2 2 3 # 4 5 6 7 8 } 9 0 a ", -"2 b c d e f g h i j k 9 l m ", -"2 n o p q r s q t u v w ", -" x o 9 y z A w B C D E E F ", -" G H 9 } [ I J K ) L M % % % ", -" N O P Q < ~ ! ) = R S ", -" r T U V W ) L ' % ", -" % % X B $ % % ", -" Y Z ` % ", -" .% "}; diff --git a/bitmaps_xpm/rotate_cw.xpm b/bitmaps_xpm/rotate_cw.xpm deleted file mode 100644 index e136e31801..0000000000 --- a/bitmaps_xpm/rotate_cw.xpm +++ /dev/null @@ -1,116 +0,0 @@ -/* XPM */ - -const char *rotate_cw_xpm[] = { -"16 16 96 2", -" c None", -". c #000000", -"+ c #2A2A2B", -"@ c #C5C5CB", -"# c #313131", -"$ c #141416", -"% c #4D4D57", -"& c #5F5F67", -"* c #6F6F75", -"= c #F8F8FF", -"- c #A8A8A9", -"; c #343434", -"> c #444454", -", c #9F9FBC", -"' c #D9D9FA", -") c #E4E4FF", -"! c #EBEBFF", -"~ c #F1F1FF", -"{ c #FEFEFF", -"] c #4A4A4A", -"^ c #646464", -"/ c #6C6C89", -"( c #D0D0FF", -"_ c #D7D7FF", -": c #DDDDFF", -"< c #E0E0FA", -"[ c #BEBECE", -"} c #92929A", -"| c #3F3F3F", -"1 c #9B9B9B", -"2 c #46465C", -"3 c #C9C9FF", -"4 c #AEAECE", -"5 c #44444C", -"6 c #4B4B4C", -"7 c #727272", -"8 c #444444", -"9 c #363636", -"0 c #949494", -"a c #3A3A3A", -"b c #8282AA", -"c c #B6B6DF", -"d c #252526", -"e c #939393", -"f c #8F8F8F", -"g c #494949", -"h c #202020", -"i c #2C2C2D", -"j c #686868", -"k c #3D3D48", -"l c #686880", -"m c #5D5D76", -"n c #575772", -"o c #656580", -"p c #3E3E4C", -"q c #6E6E6E", -"r c #959595", -"s c #1E1E1E", -"t c #050505", -"u c #828282", -"v c #050507", -"w c #B7B7D9", -"x c #8C8CB2", -"y c #272727", -"z c #4D4D4D", -"A c #929292", -"B c #1F1F1F", -"C c #C4C4C5", -"D c #292929", -"E c #2C2C2C", -"F c #3A3A41", -"G c #AEAEC9", -"H c #4F4F64", -"I c #6F6F6F", -"J c #2F2F2F", -"K c #A1A1A2", -"L c #98989C", -"M c #C1C1CC", -"N c #E5E5F9", -"O c #777792", -"P c #545455", -"Q c #424242", -"R c #E1E1FC", -"S c #A7A7C1", -"T c #51515F", -"U c #525252", -"V c #101010", -"W c #77777A", -"X c #65656A", -"Y c #5B5B61", -"Z c #3D3D3F", -"` c #5D5D5D", -" . c #3E3E3E", -".. c #989898", -"+. c #3D3D3D", -"@. c #404040", -" ", -" . + ", -" . @ # ", -" $ % & * = - ; ", -" > , ' ) ! ~ = { ] ^ ", -" / ( _ : < [ } = - | 1 ", -" 2 3 ( 4 5 6 7 8 @ 9 0 a . . ", -". b 3 c d e f g h i 0 j k l m . ", -". n o p q r s t u e v w ( x y ", -" | z z A B C D E F G _ ( H I ", -" 1 1 J K { L M N ) : _ O P 1 ", -" Q { { = ~ ! R S T U 1 1 ", -" V K { W X Y Z ` r 1 1 ", -" 1 .C 8 1 1 1 1 1 1 ", -" ..+.@.1 1 1 1 ", -" e ` "}; diff --git a/bitmaps_xpm/rotate_field.xpm b/bitmaps_xpm/rotate_field.xpm deleted file mode 100644 index 07329fec1c..0000000000 --- a/bitmaps_xpm/rotate_field.xpm +++ /dev/null @@ -1,100 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_field_xpm[]; - -#else -const char * rotate_field_xpm[] = { -"16 16 76 1", -" c None", -". c #D2D2D2", -"+ c #9D9D9D", -"@ c #DEDEDE", -"# c #E0E0E0", -"$ c #5C5C5C", -"% c #000000", -"& c #EDEDED", -"* c #939393", -"= c #FDFDFD", -"- c #E4E4E4", -"; c #F1F1F1", -"> c #CFCFCF", -", c #C7C7C7", -"' c #E7E7E7", -") c #F4F4F4", -"! c #8F8F8F", -"~ c #E9E9E9", -"{ c #B1B1B1", -"] c #373737", -"^ c #67676A", -"/ c #3B3B3B", -"( c #A3A3A3", -"_ c #D1D1D1", -": c #FAFAFA", -"< c #636363", -"[ c #F7F7F8", -"} c #F8F8FF", -"| c #EBEBF9", -"1 c #E0E0F3", -"2 c #BFBFD6", -"3 c #8B8BA0", -"4 c #4F4F57", -"5 c #B6B6B6", -"6 c #F0F0F0", -"7 c #9F9F9F", -"8 c #F1F1FF", -"9 c #EBEBFF", -"0 c #E4E4FF", -"a c #DDDDFF", -"b c #CECEF4", -"c c #393945", -"d c #777777", -"e c #606060", -"f c #3A3A3A", -"g c #69696C", -"h c #353536", -"i c #3B3B3E", -"j c #3F3F45", -"k c #777789", -"l c #D4D4FC", -"m c #8888A7", -"n c #2E2E2E", -"o c #9494B0", -"p c #B8B8E2", -"q c #A1A1CC", -"r c #A0A0C4", -"s c #757594", -"t c #CFCFFE", -"u c #7D7D94", -"v c #383842", -"w c #2F2F34", -"x c #1D1D1F", -"y c #5C5C61", -"z c #434345", -"A c #2B2B37", -"B c #C2C2EE", -"C c #D7D7FF", -"D c #F5F5FC", -"E c #6F6F6F", -"F c #22222A", -"G c #83839B", -"H c #B5B5D1", -"I c #D8D8F2", -"J c #E5E5F9", -"K c #59595E", -".++++++++++++++.", -"+.@@@@@@@@@@@@@+", -"+#$%%$&%%%*&===+", -"+-%;;%;%>,%;===+", -"+'%))%)%%%!)===+", -"+~%%%%{]^/%(_==+", -"+&%::%<[}|12345+", -"+6===7<[}890abcd", -".+++++efghijklmn", -" %%% % %op%", -" %qr% % %%%", -" %stuvwxyz ", -" ABCa098DE ", -" FGHIJ8DE% ", -" %%%Kz% ", -" %% "}; -#endif diff --git a/bitmaps_xpm/rotate_glabel.xpm b/bitmaps_xpm/rotate_glabel.xpm deleted file mode 100644 index 9f6e8d40e1..0000000000 --- a/bitmaps_xpm/rotate_glabel.xpm +++ /dev/null @@ -1,115 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_glabel_xpm[]; - -#else -const char * rotate_glabel_xpm[] = { -"16 16 91 1", -" c None", -". c #695F00", -"+ c #685E00", -"@ c #635A00", -"# c #4B4400", -"$ c #9191FF", -"% c #9B9BFF", -"& c #A5A5FF", -"* c #857F66", -"= c #5F5500", -"- c #5E5500", -"; c #574E00", -"> c #625800", -", c #9E9EFF", -"' c #A8A8FF", -") c #B2B2FF", -"! c #BBBBF9", -"~ c #7D7539", -"{ c #595100", -"] c #675D00", -"^ c #4A4A6F", -"/ c #B6B6FF", -"( c #C0C0FF", -"_ c #CACAFF", -": c #BFBDCC", -"< c #201D03", -"[ c #252526", -"} c #9898C7", -"| c #CECEFF", -"1 c #D5D5F9", -"2 c #847C39", -"3 c #4E4700", -"4 c #594F00", -"5 c #141414", -"6 c #B9B9BA", -"7 c #B5B5BA", -"8 c #73737B", -"9 c #757580", -"0 c #59595C", -"a c #302D1B", -"b c #020200", -"c c #000000", -"d c #B7B7B8", -"e c #FEFEFF", -"f c #F8F8FF", -"g c #F1F1FF", -"h c #EBEBFF", -"i c #E4E4FF", -"j c #DDDDFF", -"k c #7C7C93", -"l c #020204", -"m c #131313", -"n c #B8B8BD", -"o c #8B8B93", -"p c #9999A6", -"q c #A5A5B9", -"r c #D6D6F7", -"s c #D7D7FF", -"t c #606076", -"u c #030303", -"v c #242425", -"w c #19191D", -"x c #C6C6EB", -"y c #9494B5", -"z c #5F5F78", -"A c #3E3E4C", -"B c #474754", -"C c #5B5B70", -"D c #9B9BC5", -"E c #B7B7E0", -"F c #151518", -"G c #252527", -"H c #010101", -"I c #6A6A86", -"J c #D0D0FF", -"K c #CDCDF3", -"L c #9F9FB7", -"M c #9393A4", -"N c #878792", -"O c #BABAC5", -"P c #AAAAAF", -"Q c #0F0F0F", -"R c #070708", -"S c #8787A5", -"T c #A8A8A9", -"U c #202026", -"V c #50505C", -"W c #6A6A76", -"X c #70707A", -"Y c #B7B7C2", -"Z c #0D0D0D", -" .. ..... ", -" .+@# .$%&*= ", -" .-;> .,')!~{ ", -" .... ]^/(_:. ", -".+ @# <[}|123 ", -".- .4567890ab ", -" cdefghijkl ", -" m6nopqrstc", -" cc uv ccwxyc", -" czA c c BCc", -" cDEF GH ccc", -" IJKLMNOPQ ", -" RSsjihgfTc ", -" cUVWXYPZ ", -" GH ", -" c "}; -#endif diff --git a/bitmaps_xpm/rotate_module_neg.xpm b/bitmaps_xpm/rotate_module_neg.xpm deleted file mode 100644 index d0d3db17f0..0000000000 --- a/bitmaps_xpm/rotate_module_neg.xpm +++ /dev/null @@ -1,113 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* rotate_module_neg_xpm[]; -#else -const char * rotate_module_neg_xpm[] = { -"16 16 89 1", -" c None", -". c #000000", -"+ c #C0C0C0", -"@ c #B8B8C0", -"# c #D72E2E", -"$ c #FFFFFF", -"% c #F5F4FF", -"& c #EBEAFF", -"* c #CD2C2C", -"= c #F5F5FF", -"- c #EBEBFF", -"; c #C4C4DF", -"> c #B62626", -", c #F6F5FF", -"' c #ECEBFF", -") c #B9B8D1", -"! c #36363A", -"~ c #717172", -"{ c #ECECFF", -"] c #AAAAC0", -"^ c #505052", -"/ c #EEEEEF", -"( c #FBFBFC", -"_ c #EEEEF5", -": c #E4E4F2", -"< c #C9C9DB", -"[ c #9393A5", -"} c #3D3D46", -"| c #E3E2FF", -"1 c #8F8FA9", -"2 c #585859", -"3 c #F3F3F4", -"4 c #FEFEFF", -"5 c #F8F8FF", -"6 c #F1F1FF", -"7 c #E4E4FF", -"8 c #D8D8FA", -"9 c #4A4A58", -"0 c #D9D8FF", -"a c #CFCEFF", -"b c #8180A7", -"c c #323234", -"d c #838384", -"e c #19191A", -"f c #2B2B2D", -"g c #37373C", -"h c #6E6E7B", -"i c #D3D3F4", -"j c #A7A7C7", -"k c #616077", -"l c #5C5B77", -"m c #ADABEB", -"n c #8685C1", -"o c #6D1616", -"p c #7C7C90", -"q c #D1D1F9", -"r c #060608", -"s c #5B5B73", -"t c #4C4C5D", -"u c #686795", -"v c #AFADFF", -"w c #831C1C", -"x c #8989AE", -"y c #C2C2EE", -"z c #1D1D22", -"A c #252527", -"B c #070707", -"C c #595971", -"D c #D0D0FF", -"E c #D3D3FA", -"F c #A7A7C1", -"G c #9C9CAE", -"H c #8F8F9B", -"I c #B6B6C1", -"J c #BEBEC3", -"K c #191919", -"L c #020202", -"M c #71718B", -"N c #D7D7FF", -"O c #DDDDFF", -"P c #B8B8B9", -"Q c #141418", -"R c #44444F", -"S c #63636F", -"T c #6A6A73", -"U c #AAAAB4", -"V c #B1B1B6", -"W c #111111", -"X c #1F1F21", -" .. .. ", -" .+..@. ", -" #.$$%&.* ", -" #.$=-;.> ", -" .,')!~. ", -" #.{]^/(_:<[} ", -" #.|123456-789 ", -" .0abcdefghij.", -" #.klmn.o .pqr", -" #.stuv.w. ...", -" .xyz.. AB ", -" CDEFGHIJK ", -" LMNO7-65P. ", -" .QRSTUVW ", -" XL ", -" . "}; - -#endif diff --git a/bitmaps_xpm/rotate_module_pos.xpm b/bitmaps_xpm/rotate_module_pos.xpm deleted file mode 100644 index 6f2d000ce9..0000000000 --- a/bitmaps_xpm/rotate_module_pos.xpm +++ /dev/null @@ -1,101 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* rotate_module_pos_xpm[]; -#else -const char * rotate_module_pos_xpm[] = { -"16 16 77 1", -" c None", -". c #000000", -"+ c #C0C0C0", -"@ c #B8B8C0", -"# c #D72E2E", -"$ c #FFFFFF", -"% c #F5F4FF", -"& c #EBEAFF", -"* c #F5F5FF", -"= c #EBEBFF", -"- c #E1E1FF", -"; c #D22D2D", -"> c #F6F5FF", -", c #ECEBFF", -"' c #E2E1FF", -") c #D8D7FF", -"! c #1E1E1F", -"~ c #EBEBFE", -"{ c #A4A4BA", -"] c #595969", -"^ c #636272", -"/ c #616169", -"( c #6B676D", -"_ c #B9B9BE", -": c #9C9C9D", -"< c #090909", -"[ c #3C3B44", -"} c #86869F", -"| c #DDDDFF", -"1 c #E4E4FF", -"2 c #F1F1FF", -"3 c #F8F8FF", -"4 c #FEFEFF", -"5 c #9F9FA0", -"6 c #71718A", -"7 c #D7D7FF", -"8 c #D3D3F4", -"9 c #ABABBF", -"0 c #A1A1AF", -"a c #96969F", -"b c #C9C9CF", -"c c #B6B6B7", -"d c #131313", -"e c #B02525", -"f c #A6A6CC", -"g c #B7B7D9", -"h c #23232C", -"i c #494869", -"j c #691616", -"k c #2F2F30", -"l c #030303", -"m c #962020", -"n c #67677E", -"o c #3F3F4B", -"p c #7F7EB6", -"q c #A1A0EC", -"r c #7A1919", -"s c #9494B0", -"t c #B8B8E2", -"u c #383838", -"v c #69696C", -"w c #1C1C1D", -"x c #2E2E32", -"y c #393940", -"z c #777789", -"A c #D4D4FC", -"B c #8888A7", -"C c #616161", -"D c #F7F7F8", -"E c #CECEF4", -"F c #353541", -"G c #EBEBF9", -"H c #E0E0F3", -"I c #BFBFD6", -"J c #8B8BA0", -"K c #2D2D36", -"L c #67676A", -" .. .. ", -" .+..@. ", -" #.$$%&.# ", -" #.$*=-.; ", -" .>,'). !. ", -" #.~{]^/(_:< ", -" #.[}|1=2345. ", -" .67890abcd ", -" e.fghi.jkl ", -" m.nopq.r. ...", -" ...... .st.", -" uvwxyzAB.", -" CD32=1|EF ", -" .CD3GHIJK ", -" .uL... ", -" .. "}; - -#endif diff --git a/bitmaps_xpm/rotate_neg_x.xpm b/bitmaps_xpm/rotate_neg_x.xpm deleted file mode 100644 index 93fa0f145b..0000000000 --- a/bitmaps_xpm/rotate_neg_x.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_neg_x_xpm[]; - -#else -const char *rotate_neg_x_xpm[] = { -/* width height num_colors const chars_per_pixel */ -" 16 15 4 1", -/* colors */ -". c #000080", -"# c #c0c0c0", -"a c #808080", -"o c #004000", -/* pixels */ -"##oo###oo#######", -"###oo#oo########", -"####ooo#########", -"###oo#oo########", -"##oo###oo...a###", -"##.###...###.a##", -"##..#.#######.##", -"##...########.##", -"##....#######.##", -"##.....#####.a##", -"###########a.###", -"################", -"################", -"################", -"################" -}; - -#endif diff --git a/bitmaps_xpm/rotate_neg_y.xpm b/bitmaps_xpm/rotate_neg_y.xpm deleted file mode 100644 index 0547623b3e..0000000000 --- a/bitmaps_xpm/rotate_neg_y.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_neg_y_xpm[]; - -#else -const char *rotate_neg_y_xpm[] = { -/* width height num_colors const chars_per_pixel */ -" 16 15 4 1", -/* colors */ -". c #000080", -"# c #c0c0c0", -"a c #808080", -"o c #FF0000", -/* pixels */ -"##oo###oo#######", -"###oo#oo########", -"####ooo#########", -"####oo##########", -"o##oo###....a###", -"#oo###..####.a##", -"##..#.#######.##", -"##...########.##", -"##....#######.##", -"##.....#####.a##", -"###########a.###", -"################", -"################", -"################", -"################" -}; - -#endif diff --git a/bitmaps_xpm/rotate_neg_z.xpm b/bitmaps_xpm/rotate_neg_z.xpm deleted file mode 100644 index cba802f4d2..0000000000 --- a/bitmaps_xpm/rotate_neg_z.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_neg_z_xpm[]; - -#else -const char *rotate_neg_z_xpm[] = { -/* width height num_colors const chars_per_pixel */ -" 16 15 4 1", -/* colors */ -". c #000080", -"# c #c0c0c0", -"a c #808080", -"o c #008000", -/* pixels */ -"###oooooo#######", -"######oo########", -"#####oo#########", -"####oo##########", -"###oooooo...a###", -"##.###..####.a##", -"##..#.#######.##", -"##...########.##", -"##....#######.##", -"##.....#####.a##", -"###########a.###", -"################", -"################", -"################", -"################" -}; - -#endif diff --git a/bitmaps_xpm/rotate_pin.xpm b/bitmaps_xpm/rotate_pin.xpm deleted file mode 100644 index 9589fc555f..0000000000 --- a/bitmaps_xpm/rotate_pin.xpm +++ /dev/null @@ -1,96 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_pin_xpm[]; - -#else -const char * rotate_pin_xpm[] = { -"16 16 72 1", -" c None", -". c #D72E2E", -"+ c #DE676B", -"@ c #DA636B", -"# c #D62E2E", -"$ c #E5E5FF", -"% c #D7D7FF", -"& c #D25B6B", -"* c #D23535", -"= c #CACAFF", -"- c #CE576B", -"; c #D03939", -"> c #B96464", -", c #9F5656", -"' c #B86363", -") c #9B9B9B", -"! c #C35151", -"~ c #B17171", -"{ c #666666", -"] c #070707", -"^ c #7E7E7E", -"/ c #B36E6E", -"( c #CA4444", -"_ c #9C9898", -": c #393939", -"< c #67676A", -"[ c #000000", -"} c #626262", -"| c #F7F7F8", -"1 c #F8F8FF", -"2 c #EBEBF9", -"3 c #E0E0F3", -"4 c #BFBFD6", -"5 c #8B8BA0", -"6 c #30303A", -"7 c #616161", -"8 c #F1F1FF", -"9 c #EBEBFF", -"0 c #E4E4FF", -"a c #DDDDFF", -"b c #CECEF4", -"c c #353541", -"d c #383838", -"e c #69696C", -"f c #161617", -"g c #28282B", -"h c #36363D", -"i c #777789", -"j c #D4D4FC", -"k c #8888A7", -"l c #9494B0", -"m c #B8B8E2", -"n c #A1A1CC", -"o c #A0A0C4", -"p c #757594", -"q c #CFCFFE", -"r c #7D7D94", -"s c #383842", -"t c #2F2F34", -"u c #1D1D1F", -"v c #5C5C61", -"w c #434345", -"x c #2B2B37", -"y c #C2C2EE", -"z c #F5F5FC", -"A c #6F6F6F", -"B c #22222A", -"C c #83839B", -"D c #B5B5D1", -"E c #D8D8F2", -"F c #E5E5F9", -"G c #59595E", -" .. ", -" .+@. ", -"#+$%&......... ", -"*@%=-;>>,'>>>>) ", -"!.&-.~){]^))))) ", -" /((~_ :<[ ", -" ))) }|123456 ", -" 7|1890abc ", -" defghijk[", -" [[[ [ [lm[", -" [no[ [ [[[", -" [pqrstuvw ", -" xy%a098zA ", -" BCDEF8zA[ ", -" [[[Gw[ ", -" [[ "}; -#endif diff --git a/bitmaps_xpm/rotate_pos_x.xpm b/bitmaps_xpm/rotate_pos_x.xpm deleted file mode 100644 index f936e3aa3c..0000000000 --- a/bitmaps_xpm/rotate_pos_x.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_pos_x_xpm[]; - -#else -const char *rotate_pos_x_xpm[] = { -/* width height num_colors const chars_per_pixel */ -" 16 15 4 1", -/* colors */ -". c #000080", -"# c #c0c0c0", -"a c #808080", -"o c #004000", -/* pixels */ -"##oo###oo#######", -"###oo#oo########", -"####ooo#########", -"###oo#oo########", -"##oo...oo#######", -"##a.####..###.##", -"##.#######.#..##", -"##.########...##", -"##.#######....##", -"##a.#####.....##", -"###.a###########", -"################", -"################", -"################", -"################" -}; - -#endif diff --git a/bitmaps_xpm/rotate_pos_y.xpm b/bitmaps_xpm/rotate_pos_y.xpm deleted file mode 100644 index 9132d9149b..0000000000 --- a/bitmaps_xpm/rotate_pos_y.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_pos_y_xpm[]; - -#else -const char *rotate_pos_y_xpm[] = { -/* width height num_colors const chars_per_pixel */ -" 16 15 4 1", -/* colors */ -". c #000080", -"# c #c0c0c0", -"a c #808080", -"o c #FF0000", -/* pixels */ -"##oo###oo#######", -"###oo#oo########", -"####ooo#########", -"####oo##########", -"o##oo...########", -"#oo.####..###.##", -"##.#######.#..##", -"##.########...##", -"##.#######....##", -"##a.#####.....##", -"###.a###########", -"################", -"################", -"################", -"################" -}; - -#endif diff --git a/bitmaps_xpm/rotate_pos_z.xpm b/bitmaps_xpm/rotate_pos_z.xpm deleted file mode 100644 index 744800216a..0000000000 --- a/bitmaps_xpm/rotate_pos_z.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *rotate_pos_z_xpm[]; - -#else -const char *rotate_pos_z_xpm[] = { -/* width height num_colors const chars_per_pixel */ -" 16 15 4 1", -/* colors */ -". c #000080", -"# c #c0c0c0", -"a c #808080", -"o c #008000", -/* pixels */ -"###oooooo#######", -"######oo########", -"#####oo#########", -"####oo##########", -"###oooooo#######", -"##a.####..###.##", -"##.#######.#..##", -"##.########...##", -"##.#######....##", -"##a.#####.....##", -"###.a###########", -"################", -"################", -"################", -"################" -}; - -#endif diff --git a/bitmaps_xpm/save.xpm b/bitmaps_xpm/save.xpm deleted file mode 100644 index 2745939f0c..0000000000 --- a/bitmaps_xpm/save.xpm +++ /dev/null @@ -1,107 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *save_xpm[]; - -#else -const char * save_xpm[] = { -"16 16 83 1", -" c None", -". c #000000", -"+ c #F7F8FA", -"@ c #CBDDEB", -"# c #C88A80", -"$ c #D18F84", -"% c #D19084", -"& c #D39186", -"* c #BFD5E8", -"= c #DBE7F1", -"- c #8DA9BE", -"; c #B7877E", -"> c #C77568", -", c #C77467", -"' c #C77466", -") c #C87668", -"! c #CD867A", -"~ c #54697C", -"{ c #CFE0ED", -"] c #D7D7D7", -"^ c #FEFEFE", -"/ c #F9F9F9", -"( c #84A0B5", -"_ c #4F6475", -": c #D6D6D6", -"< c #F1F1F1", -"[ c #819AAE", -"} c #496072", -"| c #FCFCFC", -"1 c #F4F4F4", -"2 c #EBEBEB", -"3 c #D4D4D4", -"4 c #C5C5C5", -"5 c #EEEEEE", -"6 c #F2F2F2", -"7 c #AEBFCD", -"8 c #CAD6DF", -"9 c #C7CFDA", -"0 c #BFCBD6", -"a c #A1B6C4", -"b c #89A6BC", -"c c #7F9AAE", -"d c #7E99AD", -"e c #7D97AC", -"f c #8CA8BD", -"g c #A8B1BD", -"h c #CECECE", -"i c #9C9D9D", -"j c #2F4656", -"k c #80868C", -"l c #183042", -"m c #33495A", -"n c #B9B9B9", -"o c #132D3C", -"p c #586D80", -"q c #97A5B0", -"r c #86A4B9", -"s c #CDCDCD", -"t c #2E4353", -"u c #5A7082", -"v c #BFBFBF", -"w c #112835", -"x c #9DA9B0", -"y c #6B7882", -"z c #839EB2", -"A c #E6E6E6", -"B c #213648", -"C c #5F7989", -"D c #C2C2C2", -"E c #B2B2B2", -"F c #112C3A", -"G c #9FA9B0", -"H c #59636D", -"I c #A1A1A1", -"J c #C0C0C0", -"K c #909090", -"L c #868686", -"M c #6E6E6E", -"N c #7A7A7A", -"O c #2D3949", -"P c #3E4F5C", -"Q c #80878F", -"R c #1A3140", -" .............. ", -".+@#$$$$$$%$&**.", -".=-;>,,,,',)!-~.", -".{-]^^^^^^^^/(_.", -".{-]]]]]]]]:<[}.", -".{-]^^^^|122<[}.", -".{-]]]]34444<[}.", -".{-5^^6222225[}.", -".{-789000000a[}.", -".{--bc[[[[de[[}.", -".{-fg44h2]ijk[}.", -".{-(44lm:4nopq}.", -".{r[4stu44vwux}.", -".yz[sABC4DEFuG}.", -" .H_IJKKLMNOPQR.", -" ............. "}; -#endif diff --git a/bitmaps_xpm/save_as.xpm b/bitmaps_xpm/save_as.xpm deleted file mode 100644 index fe71362aa2..0000000000 --- a/bitmaps_xpm/save_as.xpm +++ /dev/null @@ -1,135 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *save_as_xpm[]; - -#else -const char * save_as_xpm[] = { -"16 16 111 2", -" c None", -". c #000000", -"+ c #F7F8FA", -"@ c #CBDDEB", -"# c #C88A80", -"$ c #D18F84", -"% c #CF8D82", -"& c #A49626", -"* c #634A1E", -"= c #A8BBCC", -"- c #BFD5E8", -"; c #DBE7F1", -"> c #8DA9BE", -", c #B7877E", -"' c #C77568", -") c #C77467", -"! c #C57366", -"~ c #FCEB3D", -"{ c #F7B544", -"] c #61522E", -"^ c #72899A", -"/ c #54697C", -"( c #CFE0ED", -"_ c #D7D7D7", -": c #FEFEFE", -"< c #FCFCFC", -"[ c #F9DF39", -"} c #F7B545", -"| c #6C5F34", -"1 c #B4B4B4", -"2 c #84A0B5", -"3 c #4F6475", -"4 c #D6D6D6", -"5 c #F8D837", -"6 c #EFB44D", -"7 c #584D2B", -"8 c #8F8F8F", -"9 c #F1F1F1", -"0 c #819AAE", -"a c #496072", -"b c #FDFDFD", -"c c #F6D236", -"d c #EDA43E", -"e c #584E2B", -"f c #AAAAAA", -"g c #D3D3D3", -"h c #485F71", -"i c #D5D5D5", -"j c #D7AE74", -"k c #61562F", -"l c #737373", -"m c #C5C5C5", -"n c #B0B0B0", -"o c #7F98AC", -"p c #EDEDED", -"q c #4F4115", -"r c #8D8D8D", -"s c #EBEBEB", -"t c #ECECEC", -"u c #ACBDCB", -"v c #6F767D", -"w c #9AA3AC", -"x c #BFCBD6", -"y c #BDC9D4", -"z c #A1B6C4", -"A c #8BA7BC", -"B c #809CB0", -"C c #6C8394", -"D c #7D97AB", -"E c #7D97AC", -"F c #A4ACB8", -"G c #B9B9B9", -"H c #C7C7C7", -"I c #E1E1E1", -"J c #D4D4D4", -"K c #9C9D9D", -"L c #2F4656", -"M c #80868C", -"N c #183042", -"O c #33495A", -"P c #132D3C", -"Q c #586D80", -"R c #97A5B0", -"S c #86A4B9", -"T c #CDCDCD", -"U c #2E4353", -"V c #5A7082", -"W c #BFBFBF", -"X c #112835", -"Y c #9DA9B0", -"Z c #6B7882", -"` c #829DB1", -" . c #CBCBCB", -".. c #E5E5E5", -"+. c #213648", -"@. c #5F7989", -"#. c #C2C2C2", -"$. c #B2B2B2", -"%. c #112C3A", -"&. c #9FA9B0", -"*. c #59636D", -"=. c #A1A1A1", -"-. c #C0C0C0", -";. c #909090", -">. c #868686", -",. c #6E6E6E", -"'. c #7A7A7A", -"). c #2D3949", -"!. c #3E4F5C", -"~. c #80878F", -"{. c #1A3140", -" . . . . . . . . . . . . . . ", -". + @ # $ $ $ $ % . & * . = - . ", -". ; > , ' ) ) ! . ~ { ] . ^ / . ", -". ( > _ : : < . [ } | . 1 2 3 . ", -". ( > _ _ 4 . 5 6 7 . 8 9 0 a . ", -". ( > _ b . c d e . f g 9 0 h . ", -". ( > _ i . j k . l m n 9 o a . ", -". ( > p . q . . r g s s t 0 a . ", -". ( > u . . v w x x x y z 0 a . ", -". ( > A B C 0 0 0 0 D E 0 0 a . ", -". ( > A F G G H I J K L M 0 a . ", -". ( > 2 m m N O i m G P Q R a . ", -". ( S 0 m T U V m m W X V Y a . ", -". Z ` o ...+.@.m #.$.%.V &.a . ", -". . *.3 =.-.;.;.>.,.'.).!.~.{.. ", -" . . . . . . . . . . . . . . "}; -#endif diff --git a/bitmaps_xpm/save_library.xpm b/bitmaps_xpm/save_library.xpm deleted file mode 100644 index b1f8951aae..0000000000 --- a/bitmaps_xpm/save_library.xpm +++ /dev/null @@ -1,123 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *save_library_xpm[]; - -#else -const char * save_library_xpm[] = { -"16 16 99 2", -" c None", -". c #070809", -"+ c #323538", -"@ c #1F1F20", -"# c #0B0D0E", -"$ c #E5E7E8", -"% c #F6F6F6", -"& c #838587", -"* c #050506", -"= c #0B0D0F", -"- c #F7F7F7", -"; c #D8D8D8", -"> c #E0E1E2", -", c #1F2021", -"' c #050709", -") c #E4E7E8", -"! c #D8D9D9", -"~ c #D2D2D2", -"{ c #E2E2E2", -"] c #BFC1C3", -"^ c #0F0F0F", -"/ c #000000", -"( c #363737", -"_ c #D18F84", -": c #D19084", -"< c #D39186", -"[ c #BFD5E8", -"} c #565656", -"| c #353535", -"1 c #363636", -"2 c #0B0B0B", -"3 c #C77467", -"4 c #C77466", -"5 c #C87668", -"6 c #CD867A", -"7 c #8DA9BE", -"8 c #54697C", -"9 c #FCFDFD", -"0 c #FCFCFC", -"a c #FBFBFC", -"b c #FAFBFC", -"c c #EAEAEA", -"d c #242425", -"e c #FEFEFE", -"f c #F9F9F9", -"g c #84A0B5", -"h c #4F6475", -"i c #E2E3E4", -"j c #F8F9FA", -"k c #F7F8F9", -"l c #E0E0E2", -"m c #AFB1B2", -"n c #D7D7D7", -"o c #D6D6D6", -"p c #F1F1F1", -"q c #819AAE", -"r c #496072", -"s c #F9FBFC", -"t c #CBCCCE", -"u c #868C92", -"v c #F4F4F4", -"w c #EBEBEB", -"x c #DFE0E0", -"y c #B4B7BB", -"z c #181B1E", -"A c #D4D4D4", -"B c #C5C5C5", -"C c #FAFBFB", -"D c #FAFAFB", -"E c #CCCED1", -"F c #747C85", -"G c #F2F2F2", -"H c #EEEEEE", -"I c #FBFCFC", -"J c #F0F1F1", -"K c #A9AEB4", -"L c #16181B", -"M c #BFCBD6", -"N c #A1B6C4", -"O c #F4F5F5", -"P c #D2D2D3", -"Q c #7A8188", -"R c #7E99AD", -"S c #7D97AC", -"T c #A0A6AD", -"U c #92999F", -"V c #0D0F11", -"W c #CECECE", -"X c #9C9D9D", -"Y c #2F4656", -"Z c #80868C", -"` c #191E22", -" . c #1E2328", -".. c #183042", -"+. c #33495A", -"@. c #B9B9B9", -"#. c #132D3C", -"$. c #586D80", -"%. c #97A5B0", -" . + @ ", -" # $ % & * ", -" = $ - ; > , ", -" ' ) - ! ~ { ] ^ ", -"/ / / / / / / / / ( ", -"_ _ _ _ : _ < [ [ / } | | | 1 2 ", -"3 3 3 4 3 5 6 7 8 / 9 0 a b c d ", -"e e e e e e f g h / i j k l m / ", -"n n n n n o p q r / s j k t u / ", -"e e 0 v w w p q r / b j x y z ", -"n A B B B B p q r / C D E F / ", -"G w w w w w H q r / I J K L ", -"M M M M M M N q r / O P Q / ", -"q q q q R S q q r / T U V ", -"B W w n X Y Z q r / ` . ", -"..+.o B @.#.$.%.r / "}; -#endif diff --git a/bitmaps_xpm/save_netlist.xpm b/bitmaps_xpm/save_netlist.xpm deleted file mode 100644 index 8c36cec5ee..0000000000 --- a/bitmaps_xpm/save_netlist.xpm +++ /dev/null @@ -1,115 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *save_netlist_xpm[]; - -#else -const char * save_netlist_xpm[] = { -"16 16 91 1", -" c None", -". c #000000", -"+ c #F0F0F0", -"@ c #FFFFFF", -"# c #0F0F0F", -"$ c #EFEFEF", -"% c #101010", -"& c #B3D7F0", -"* c #0B0D0F", -"= c #B3D6EF", -"- c #51616D", -"; c #39454D", -"> c #BFE5FF", -", c #0B0E10", -"' c #FAF9F9", -") c #746355", -"! c #E3C8B4", -"~ c #FFCAA5", -"{ c #FFBD8E", -"] c #F1B58B", -"^ c #4C392A", -"/ c #F3F1F0", -"( c #A7C8E0", -"_ c #C3DCEC", -": c #B9C9D3", -"< c #A38266", -"[ c #FDC49C", -"} c #FEB481", -"| c #AE8868", -"1 c #777471", -"2 c #C4DCEB", -"3 c #BFE5FE", -"4 c #FFEBD9", -"5 c #FFEAD7", -"6 c #E9CAAF", -"7 c #E3BB9E", -"8 c #EBBB99", -"9 c #E4C2A5", -"0 c #A38E7B", -"a c #FFFDFC", -"b c #8EA0AA", -"c c #010101", -"d c #000101", -"e c #FFC38E", -"f c #F6F7F9", -"g c #CADCEA", -"h c #C78980", -"i c #D08E83", -"j c #CF8E82", -"k c #DBB48E", -"l c #DAE6F0", -"m c #8CA8BD", -"n c #B6867E", -"o c #C67568", -"p c #C67467", -"q c #C57366", -"r c #C67466", -"s c #CEDFEC", -"t c #D6D6D6", -"u c #FDFDFD", -"v c #FCFCFC", -"w c #FB7E0F", -"x c #010100", -"y c #CEDEEB", -"z c #D6D6D5", -"A c #D6D5D5", -"B c #D5D5D5", -"C c #FF800F", -"D c #FDFDFC", -"E c #FDFCFC", -"F c #FBFBFB", -"G c #F3F3F3", -"H c #E9E9E9", -"I c #D5D6D6", -"J c #D3D3D3", -"K c #C3C3C3", -"L c #C4C4C4", -"M c #EDEDED", -"N c #F1F1F1", -"O c #EAEAEA", -"P c #ADBECC", -"Q c #C9D5DE", -"R c #C6CED9", -"S c #BECAD5", -"T c #BDC9D4", -"U c #CDDEEB", -"V c #8BA7BC", -"W c #87A4BA", -"X c #7E98AC", -"Y c #7F98AC", -"Z c #7D97AB", -" ...............", -".+@@@@#$@#$@@@@%", -".&*=-......;>*=,", -".+@@')!~{]^/@@@%", -".&.(_:<[}|123.(,", -".+@@45678905a@@%", -".&*=_bccccdcc.c.", -".+@@ecfghiiiiiij", -".&.(kclmnopppqrq", -".+@@@csmtuuuuuuv", -".&*=wxymtzzAtBtB", -".+@@CxymtDDEuFGH", -".&.(>csmttItJKLK", -".+@@@csmMuuNOOOH", -".&*=>csmPQRSSTST", -" .....UVVWXYYYYZ"}; -#endif diff --git a/bitmaps_xpm/save_project.xpm b/bitmaps_xpm/save_project.xpm deleted file mode 100644 index 85442d086d..0000000000 --- a/bitmaps_xpm/save_project.xpm +++ /dev/null @@ -1,87 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *save_project_xpm[]; - -#else -const char * save_project_xpm[] = { -"16 16 63 1", -" c None", -". c #000000", -"+ c #020202", -"@ c #F8F8F8", -"# c #ECECEC", -"$ c #EBEBEB", -"% c #6B6B6B", -"& c #2D2D2D", -"* c #181818", -"= c #C5C5C5", -"- c #434343", -"; c #5E5E5E", -"> c #F0F0F0", -", c #707070", -"' c #3D3D3D", -") c #C3C3C3", -"! c #0E0E0E", -"~ c #9C9C9C", -"{ c #4B4B4B", -"] c #616161", -"^ c #131313", -"/ c #D18F84", -"( c #D19084", -"_ c #D39186", -": c #BFD5E8", -"< c #C6C6C6", -"[ c #1B1B1B", -"} c #C77467", -"| c #C77466", -"1 c #C87668", -"2 c #CD867A", -"3 c #8DA9BE", -"4 c #54697C", -"5 c #FEFEFE", -"6 c #F9F9F9", -"7 c #84A0B5", -"8 c #4F6475", -"9 c #D7D7D7", -"0 c #D6D6D6", -"a c #F1F1F1", -"b c #819AAE", -"c c #496072", -"d c #FCFCFC", -"e c #F4F4F4", -"f c #090909", -"g c #D4D4D4", -"h c #F2F2F2", -"i c #EEEEEE", -"j c #121212", -"k c #BFCBD6", -"l c #A1B6C4", -"m c #7E99AD", -"n c #7D97AC", -"o c #CECECE", -"p c #9C9D9D", -"q c #2F4656", -"r c #80868C", -"s c #183042", -"t c #33495A", -"u c #B9B9B9", -"v c #132D3C", -"w c #586D80", -"x c #97A5B0", -" ......+ ", -" .@#$$$%& ", -" ......*=$-;.", -" .>#$$$,')$=!", -".........~{]^$=!", -"////(/_::.$<[$=!", -"}}}|}1234.$<[$=!", -"555555678.$<[$=!", -"999990abc.$<[$=!", -"55de$$abc.$<[))f", -"9g====abc.$<[.. ", -"h$$$$$ibc.))j ", -"kkkkkklbc.... ", -"bbbbmnbbc. ", -"=o$9pqrbc. ", -"st0=uvwxc. "}; -#endif diff --git a/bitmaps_xpm/save_setup.xpm b/bitmaps_xpm/save_setup.xpm deleted file mode 100644 index cdc4192390..0000000000 --- a/bitmaps_xpm/save_setup.xpm +++ /dev/null @@ -1,98 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *save_setup_xpm[]; - -#else -const char * save_setup_xpm[] = { -"16 16 74 1", -" c None", -". c #000000", -"+ c #E1E1E1", -"@ c #C1C1C1", -"# c #999999", -"$ c #9A9A9A", -"% c #C2C2C2", -"& c #E5E5E5", -"* c #DFDFDF", -"= c #CACACA", -"- c #666666", -"; c #858585", -"> c #898989", -", c #8A8A8A", -"' c #B1B1B1", -") c #A5A5A5", -"! c #F3F3F3", -"~ c #D0D0D0", -"{ c #ADADAD", -"] c #F0F0F0", -"^ c #EFEFEF", -"/ c #EBEBEB", -"( c #DBDBDB", -"_ c #C3C3C3", -": c #D18F84", -"< c #D19084", -"[ c #D39186", -"} c #BFD5E8", -"| c #787878", -"1 c #C77467", -"2 c #C77466", -"3 c #C87668", -"4 c #CD867A", -"5 c #8DA9BE", -"6 c #54697C", -"7 c #727272", -"8 c #FEFEFE", -"9 c #F9F9F9", -"0 c #84A0B5", -"a c #4F6475", -"b c #D7D7D7", -"c c #D6D6D6", -"d c #F1F1F1", -"e c #819AAE", -"f c #496072", -"g c #FCFCFC", -"h c #F4F4F4", -"i c #9C9C9C", -"j c #D4D4D4", -"k c #C5C5C5", -"l c #C4C4C4", -"m c #B9B9B9", -"n c #777777", -"o c #6D6D6D", -"p c #676767", -"q c #F2F2F2", -"r c #EEEEEE", -"s c #979797", -"t c #888888", -"u c #818181", -"v c #7B7B7B", -"w c #BFCBD6", -"x c #A1B6C4", -"y c #7E99AD", -"z c #7D97AC", -"A c #CECECE", -"B c #9C9D9D", -"C c #2F4656", -"D c #80868C", -"E c #183042", -"F c #33495A", -"G c #132D3C", -"H c #586D80", -"I c #97A5B0", -" .+@#...$%%%%%", -" .+@.&*=.-;>,'", -" .+@.*%).....!", -" .+@.~)#.{]^/(", -"..........-;____", -"::::<:[}}.|,...$", -"111213456.7.&*=.", -"88888890a...*%).", -"bbbbbcdef.^.~)#.", -"88gh//def._i...-", -"bjkkkkdef.lmnopn", -"q/////ref.ssttuv", -"wwwwwwxef.......", -"eeeeyzeef. ", -"kA/bBCDef. ", -"EFckmGHIf. "}; -#endif diff --git a/bitmaps_xpm/schematic.xpm b/bitmaps_xpm/schematic.xpm deleted file mode 100644 index e7d6f6fca9..0000000000 --- a/bitmaps_xpm/schematic.xpm +++ /dev/null @@ -1,35 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * schematic_xpm[]; - -#else -const char *schematic_xpm[] = { - -/* columns rows colors const chars-per-pixel */ -"16 15 6 1", -" c None", -". c Black", -"X c Gray100", -"o c Blue", -"- c Green", -"! c Red", - -/* pixels */ -".............. ", -".XXXXXXXXXXXX.. ", -".XXXXXXXXXXXX...", -".XXoooooXXXXXXX.", -".oooXXXXoXXXXXX.", -".XXoXXXXo--XXXX.", -".oooXXXXoX-XXXX.", -".XXoooooXX-XXXX.", -".XXXXXXXXX-XXXX.", -".XX--------XXXX.", -".XX-XXXXXXXXXXX.", -".XX-XX!XXX!XXXX.", -".XX--!X!X!X!X!-.", -".XXXXXXX!XXX!XX.", -"................" -}; -#endif - diff --git a/bitmaps_xpm/select_grid.xpm b/bitmaps_xpm/select_grid.xpm deleted file mode 100644 index 1ae8466e13..0000000000 --- a/bitmaps_xpm/select_grid.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *select_grid_xpm[]; - -#else -const char *select_grid_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 5 1", -" c #ffffff", -". c none", -"X c #04827c", -"o c #048284", -"O c #04867c", -" .. .. .. .. .. ", -"................", -"................", -" .. .. .. .. .. ", -"................", -"................", -" .X.oX .. oX.o. ", -"..oXXo....XXXX..", -"..XoX......oXo..", -" .oXoXooXooXoX. ", -"..XXo......oXo..", -"..oOXX....XXOX..", -" .o.oo .. oo.o. ", -"................", -"................", -" .. .. .. .. .. "}; -#endif diff --git a/bitmaps_xpm/select_layer_pair.xpm b/bitmaps_xpm/select_layer_pair.xpm deleted file mode 100644 index c18257036d..0000000000 --- a/bitmaps_xpm/select_layer_pair.xpm +++ /dev/null @@ -1,99 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* select_layer_pair_xpm[]; -#else -const char * select_layer_pair_xpm[] = { -"16 16 75 1", -" c None", -". c #000000", -"+ c #590000", -"@ c #9F0000", -"# c #A50000", -"$ c #AC0000", -"% c #B10000", -"& c #BD0000", -"* c #C30000", -"= c #A60000", -"- c #0D0000", -"; c #070707", -"> c #0A0A0A", -", c #050505", -"' c #730000", -") c #8F0000", -"! c #020000", -"~ c #1D1D1D", -"{ c #D0D0D0", -"] c #EDECFF", -"^ c #69687B", -"/ c #B00000", -"( c #140000", -"_ c #191919", -": c #C9C9DA", -"< c #C5C5EA", -"[ c #585773", -"} c #72727F", -"| c #383842", -"1 c #020202", -"2 c #B9B9CA", -"3 c #8A89A4", -"4 c #15141B", -"5 c #35344D", -"6 c #030303", -"7 c #B6B6DA", -"8 c #A2A1CD", -"9 c #010101", -"0 c #5F5E68", -"a c #B4B4D9", -"b c #08070A", -"c c #4B4A61", -"d c #BAB9FF", -"e c #14131D", -"f c #8A89A7", -"g c #807FAB", -"h c #303044", -"i c #AEACFE", -"j c #030305", -"k c #8785B6", -"l c #9C9BE4", -"m c #050507", -"n c #7574AB", -"o c #6F6EA3", -"p c #2F2E44", -"q c #AFADFF", -"r c #3A3954", -"s c #008100", -"t c #00B900", -"u c #040406", -"v c #7371A7", -"w c #505076", -"x c #9C9AE4", -"y c #0F0F17", -"z c #424160", -"A c #011402", -"B c #009A00", -"C c #09090E", -"D c #A9A7F7", -"E c #1B1B28", -"F c #000200", -"G c #008900", -"H c #7A79B3", -"I c #7E7CB8", -"J c #464567", -" ", -"............ ", -" .+@#$%&***=- ", -" .;>,.'****)! ", -" ~{]^'****/(. ", -" _:<[......}|.", -" 12345 6789", -" 0ab.. cde", -" .fg. . hij", -"..klm......m.no.", -" .pqrsttttuvwxy ", -" .zABttttCqDE ", -" FGtttttCHIJ. ", -" ............", -" ", -" "}; - -#endif diff --git a/bitmaps_xpm/select_w_layer.xpm b/bitmaps_xpm/select_w_layer.xpm deleted file mode 100644 index 745fa79933..0000000000 --- a/bitmaps_xpm/select_w_layer.xpm +++ /dev/null @@ -1,48 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* select_w_layer_xpm[]; -#else -const char * select_w_layer_xpm[] = { -"16 16 24 1", -" c None", -". c #000000", -"+ c #959595", -"@ c #FFFFFF", -"# c #D9D9D9", -"$ c #111111", -"% c #040404", -"& c #BBBBBB", -"* c #720000", -"= c #630000", -"- c #030000", -"; c #8F0000", -"> c #A10000", -", c #760000", -"' c #560000", -") c #010000", -"! c #0D0000", -"~ c #A60000", -"{ c #C30000", -"] c #828282", -"^ c #D3D3D3", -"/ c #9B9B9B", -"( c #717171", -"_ c #020202", -"............ ", -" .+@@@@@@@@#$ ", -" %&@@@@@@@@&% ", -"...$#@@@@@@@@+. ", -" .*=............", -" -;>,,,,,,,') ", -"...!~{{{{{{{{*. ", -" .+]............", -" %&^///////(_ ", -"...$#@@@@@@@@+. ", -" .+]............", -" %&^///////(_ ", -" $#@@@@@@@@+. ", -" ............", -" ", -" "}; - -#endif diff --git a/bitmaps_xpm/shape_3d.xpm b/bitmaps_xpm/shape_3d.xpm deleted file mode 100644 index e204e7745a..0000000000 --- a/bitmaps_xpm/shape_3d.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -const char *shape_3d_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 11 1", -" c none", -"$ c #ACAEAC", -"% c #3C3E3C", -"+ c #535553", -"X c #B40204", -"@ c #2C2A2C", -"# c #CCCECC", -"& c #044A04", -". c #6B6A6B", -"o c #6C6E6C", -"O c #353335", -/* pixels */ -" .X ", -" ..o..o.. X ", -" O..oo......o. ", -" O..........o...", -" .o.O.......o...", -" o..O...oo.o.oo.", -" ...Oo..oo.o.oo.", -" .+++...oo.o.oo.", -" ....o......o...", -" .......oo......", -" @@@@o........o.", -" ### ###@+##@@", -" $$$ $$$ $$$ ", -" ++$ O$$ %$$ ", -" &XX &X %X ", -" " -}; diff --git a/bitmaps_xpm/sheetset.xpm b/bitmaps_xpm/sheetset.xpm deleted file mode 100644 index fbd133031f..0000000000 --- a/bitmaps_xpm/sheetset.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *sheetset_xpm[]; - -#else -const char *sheetset_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"= c Blue", -"X c Gray100", -/* pixels */ -" ............ ", -" .XXX=XXXXX.. ", -" .XX===XXXX.X. ", -" .XXX=XXXXX.... ", -" .XXX=XXXXXXXX. ", -" .X=X=XXXXXX=X. ", -" .============. ", -" .X=X=XXXXXX=X. ", -" .XXX=XXXXXXXX. ", -" .XXX=XXXXXXXX. ", -" .XXX=XXXXXXXX. ", -" .XXX=XX.....X. ", -" .XX===X.....X. ", -" .XXX=XXXXXXXX. ", -" .............. " -}; -#endif - diff --git a/bitmaps_xpm/show_footprint.xpm b/bitmaps_xpm/show_footprint.xpm deleted file mode 100644 index a1da261505..0000000000 --- a/bitmaps_xpm/show_footprint.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *show_footprint_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"* c #4E4F5E", -"O c #797C84", -"; c #4343B7", -"= c #7F7FF8", -". c #AAABB0", -"+ c #7197E4", -" c None", -"& c #62616F", -"o c #6E92B7", -"X c #95969C", -": c #363557", -"@ c #90C7EA", -"$ c #6B79B8", -"# c #7FACE8", -"% c #B4D8E6", -"- c #424286", -/* pixels */ -" .X.. ", -" .XoooOX ", -" X+@@@#$X ", -"Xo#@@@@#X ", -"X#@%%%@o$&*. ", -"X#@ oo++$$=$-O ", -"Xoo####+o=====-O", -"*.###@#+X===$;;:", -"-O.o$+#.%o$-;;-:", -"-;-X..X$&%o--OX*", -":;;;;;$;-& .&:O*", -"O*;;;;-*X&O .:&O", -" .X:;;-:*&:O. &O", -" O:::*& &X. .", -" O.&& *O.. ", -" ** .X " -}; diff --git a/bitmaps_xpm/show_zone.xpm b/bitmaps_xpm/show_zone.xpm deleted file mode 100644 index b8080f2f61..0000000000 --- a/bitmaps_xpm/show_zone.xpm +++ /dev/null @@ -1,95 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* show_zone_xpm[]; -#else -const char * show_zone_xpm[] = { -"16 16 71 1", -" c None", -". c #007D00", -"+ c #007E00", -"@ c #004100", -"# c #002700", -"$ c #000900", -"% c #000400", -"& c #000000", -"* c #007100", -"= c #040404", -"- c #716F7F", -"; c #A7A3DA", -"> c #A9A4E2", -", c #8E8CA2", -"' c #191919", -") c #000600", -"! c #006400", -"~ c #000F00", -"{ c #2F2F2F", -"] c #CBCBD0", -"^ c #A8A0FF", -"/ c #6D67AC", -"( c #615B98", -"_ c #A198FD", -": c #EAE8F8", -"< c #515151", -"[ c #000100", -"} c #006E00", -"| c #000800", -"1 c #2D2D2D", -"2 c #F5F5F5", -"3 c #DCD9FF", -"4 c #928AE5", -"5 c #000001", -"6 c #7972BE", -"7 c #CEC9FF", -"8 c #FBFBFB", -"9 c #484848", -"0 c #007C00", -"a c #003300", -"b c #030303", -"c c #939393", -"d c #F1F0FE", -"e c #A39AFE", -"f c #403C65", -"g c #333050", -"h c #9A91F1", -"i c #E5E2FF", -"j c #B8B8B8", -"k c #0B0B0B", -"l c #001D00", -"m c #005300", -"n c #000B00", -"o c #383838", -"p c #B4B0DA", -"q c #B0A9FE", -"r c #ACA4FF", -"s c #C1BCF1", -"t c #757575", -"u c #050505", -"v c #002300", -"w c #007800", -"x c #007500", -"y c #003400", -"z c #0A0A0A", -"A c #0C0C0D", -"B c #001700", -"C c #004F00", -"D c #007B00", -"E c #006500", -"F c #006C00", -"................", -".... ........", -"... .......", -".. ++ .....", -". .... ...", -". +. ..... ..", -". +. ...... ..", -". .... .. .", -".. @#$%& .. ", -"..*&=-;>,') ... ", -".!~{]^/(_:<[ ...", -"}|12345&6789& ..", -"0abcdefghijkl .", -"..mnopqrstuvw. .", -"...xy|zA&BCD... ", -".....0E!F...... "}; - -#endif diff --git a/bitmaps_xpm/show_zone_disable.xpm b/bitmaps_xpm/show_zone_disable.xpm deleted file mode 100644 index 549c4b8ae0..0000000000 --- a/bitmaps_xpm/show_zone_disable.xpm +++ /dev/null @@ -1,96 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* show_zone_disable_xpm[]; -#else -const char * show_zone_disable_xpm[] = { -"16 16 72 1", -" c None", -". c #009000", -"G c #C0C0C0", -"+ c #007E00", -"@ c #004100", -"# c #002700", -"$ c #000900", -"% c #000400", -"& c #000000", -"* c #007100", -"= c #040404", -"- c #716F7F", -"; c #A7A3DA", -"> c #A9A4E2", -", c #8E8CA2", -"' c #191919", -") c #000600", -"! c #006400", -"~ c #000F00", -"{ c #2F2F2F", -"] c #CBCBD0", -"^ c #A8A0FF", -"/ c #6D67AC", -"( c #615B98", -"_ c #A198FD", -": c #EAE8F8", -"< c #515151", -"[ c #000100", -"} c #006E00", -"| c #000800", -"1 c #2D2D2D", -"2 c #F5F5F5", -"3 c #DCD9FF", -"4 c #928AE5", -"5 c #000001", -"6 c #7972BE", -"7 c #CEC9FF", -"8 c #FBFBFB", -"9 c #484848", -"0 c #007C00", -"a c #003300", -"b c #030303", -"c c #939393", -"d c #F1F0FE", -"e c #A39AFE", -"f c #403C65", -"g c #333050", -"h c #9A91F1", -"i c #E5E2FF", -"j c #B8B8B8", -"k c #0B0B0B", -"l c #001D00", -"m c #005300", -"n c #000B00", -"o c #383838", -"p c #B4B0DA", -"q c #B0A9FE", -"r c #ACA4FF", -"s c #C1BCF1", -"t c #757575", -"u c #050505", -"v c #002300", -"w c #007800", -"x c #007500", -"y c #003400", -"z c #0A0A0A", -"A c #0C0C0D", -"B c #001700", -"C c #004F00", -"D c #007B00", -"E c #006500", -"F c #006C00", -"GGGGGGGGGGGGGGGG", -"GGGG GGGGGGGG", -"GGG GGGGGGG", -"GG ++ GGGGG", -"G .... GGG", -"G +. ..... GG", -"G +. ...... GG", -"G .... .. G", -"GG @#$%& .. ", -"GG*&=-;>,') ... ", -"G!~{]^/(_:<[ ...", -"}|12345&6789& ..", -"0abcdefghijkl .", -"GGmnopqrstuvw. .", -"GGGxy|zA&BCDGGG ", -"GGGGG0E!FGGGGGG "}; - -#endif diff --git a/bitmaps_xpm/show_zone_outline_only.xpm b/bitmaps_xpm/show_zone_outline_only.xpm deleted file mode 100644 index 81a88f1505..0000000000 --- a/bitmaps_xpm/show_zone_outline_only.xpm +++ /dev/null @@ -1,95 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* show_zone_outline_only_xpm[]; -#else -const char * show_zone_outline_only_xpm[] = { -"16 16 71 1", -" c None", -". c #007F00", -"+ c #007E00", -"@ c #004100", -"# c #002700", -"$ c #000900", -"% c #000400", -"& c #000000", -"* c #009000", -"= c #040404", -"- c #716F7F", -"; c #A7A3DA", -"> c #A9A4E2", -", c #8E8CA2", -"' c #191919", -") c #000600", -"! c #006400", -"~ c #000F00", -"{ c #2F2F2F", -"] c #CBCBD0", -"^ c #A8A0FF", -"/ c #6D67AC", -"( c #615B98", -"_ c #A198FD", -": c #EAE8F8", -"< c #515151", -"[ c #000100", -"} c #006E00", -"| c #000800", -"1 c #2D2D2D", -"2 c #F5F5F5", -"3 c #DCD9FF", -"4 c #928AE5", -"5 c #000001", -"6 c #7972BE", -"7 c #CEC9FF", -"8 c #FBFBFB", -"9 c #484848", -"0 c #007C00", -"a c #003300", -"b c #030303", -"c c #939393", -"d c #F1F0FE", -"e c #A39AFE", -"f c #403C65", -"g c #333050", -"h c #9A91F1", -"i c #E5E2FF", -"j c #B8B8B8", -"k c #0B0B0B", -"l c #001D00", -"m c #005300", -"n c #000B00", -"o c #383838", -"p c #B4B0DA", -"q c #B0A9FE", -"r c #ACA4FF", -"s c #C1BCF1", -"t c #757575", -"u c #050505", -"v c #002300", -"w c #007800", -"x c #007500", -"y c #003400", -"z c #0A0A0A", -"A c #0C0C0D", -"B c #001700", -"C c #004F00", -"D c #007B00", -"E c #006500", -"F c #006C00", -"****************", -"* * * ", -"* * * ", -"** ++ * ", -"* .... * ", -"* +. ..... * ", -"* +. ...... **", -"* .... .. *", -"** @#$%& .. ", -"***&=-;>,') ... ", -".!~{]^/(_:<[ ...", -"}|12345&6789& ..", -"0abcdefghijkl .", -"**mnopqrstuvw .", -"* *xy|zA&BCD* * ", -"*****0E!F****** "}; - -#endif diff --git a/bitmaps_xpm/showdcode.xpm b/bitmaps_xpm/showdcode.xpm deleted file mode 100644 index b3de081f68..0000000000 --- a/bitmaps_xpm/showdcode.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *show_dcodenumber_xpm[]; - -#else -const char * show_dcodenumber_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 3 1", -"- c Red", -"X c None", -": c Blue", - -/* pixels */ -"XXXXXX----XXXXXX", -"XXXX--XXXX--XXXX", -"XXX-XXXXXXXX-XXX", -"XX-XXXXXXXXXX-XX", -"X-XX:::::XXXXX-X", -"X-XX:XXXX:XXXX-X", -"-XXX:XXXXX:XXXX-", -"-XXX:XXXXX:XXXX-", -"-XXX:XXXXX:XXXX-", -"X-XX:XXXX:XXXX-X", -"X-XX:::::XXXXX-X", -"XX-XXXXXXXXXX-XX", -"XXX-XXXXXXXX-XXX", -"XXXX--XXXX--XXXX", -"XXXXXX----XXXXXX" -}; -#endif - diff --git a/bitmaps_xpm/showmodedge.xpm b/bitmaps_xpm/showmodedge.xpm deleted file mode 100644 index a385cbeeaf..0000000000 --- a/bitmaps_xpm/showmodedge.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * show_mod_edge_xpm[]; - -#else -const char * show_mod_edge_xpm[] = { -"16 15 4 1", -"X c Red", -". c None", -"o c Blue", -"c c Gray", -"..XXXXX..XXXXX..", -"coX....XX....Xoc", -"coX.XXX..XXX.Xoc", -"..X.X..XX..X.X..", -"coX.X......X.Xoc", -"coX.X......X.Xoc", -"..X.X......X.X..", -"coX.X......X.Xoc", -"coX.X......X.Xoc", -"..X.X......X.X..", -"coX.X......X.Xoc", -"coX.X......X.oc.", -"..X.XXXXXXXX.X..", -"coX..........Xoc", -"..XXXXXXXXXXXX.." -}; -#endif - diff --git a/bitmaps_xpm/showtrack.xpm b/bitmaps_xpm/showtrack.xpm deleted file mode 100644 index e01c294aff..0000000000 --- a/bitmaps_xpm/showtrack.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *showtrack_xpm[]; - -#else -const char *showtrack_xpm[] = { -/* columns rows colors const chars per pixel */ -"16 15 3 1", -"= c Red", -": c #008000", -" c none", -/* pixels */ -" : : ", -"====== : : ", -" = : : ", -" = : : ", -"==== = : : ", -" = = : : ", -" = = : : ", -" = = : : ", -" = = : : ", -" = = : : ", -" = = : : ", -" = ==========", -" = : : ", -" = : : ", -" ============" -}; -#endif - diff --git a/bitmaps_xpm/sources/Add_Cotation.svg b/bitmaps_xpm/sources/Add_Cotation.svg deleted file mode 100644 index 092c21a22e..0000000000 --- a/bitmaps_xpm/sources/Add_Cotation.svg +++ /dev/null @@ -1,2903 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Add_HLabel.svg b/bitmaps_xpm/sources/Add_HLabel.svg deleted file mode 100644 index dcde86dc5e..0000000000 --- a/bitmaps_xpm/sources/Add_HLabel.svg +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Add_Junction.svg b/bitmaps_xpm/sources/Add_Junction.svg deleted file mode 100644 index 3d0f1d59fb..0000000000 --- a/bitmaps_xpm/sources/Add_Junction.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Add_Label.svg b/bitmaps_xpm/sources/Add_Label.svg deleted file mode 100644 index 661afe1644..0000000000 --- a/bitmaps_xpm/sources/Add_Label.svg +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Add_Pin.svg b/bitmaps_xpm/sources/Add_Pin.svg deleted file mode 100644 index 8cb8851d8d..0000000000 --- a/bitmaps_xpm/sources/Add_Pin.svg +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - P - 1 - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Add_Text.svg b/bitmaps_xpm/sources/Add_Text.svg deleted file mode 100644 index 5213a3d646..0000000000 --- a/bitmaps_xpm/sources/Add_Text.svg +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/BOM.svg b/bitmaps_xpm/sources/BOM.svg deleted file mode 100644 index db556d4470..0000000000 --- a/bitmaps_xpm/sources/BOM.svg +++ /dev/null @@ -1,512 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Enter_Sheet.svg b/bitmaps_xpm/sources/Enter_Sheet.svg deleted file mode 100644 index 3507b49eda..0000000000 --- a/bitmaps_xpm/sources/Enter_Sheet.svg +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Export.svg b/bitmaps_xpm/sources/Export.svg deleted file mode 100644 index eedae57f70..0000000000 --- a/bitmaps_xpm/sources/Export.svg +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Move.svg b/bitmaps_xpm/sources/Move.svg deleted file mode 100644 index c6e08dc469..0000000000 --- a/bitmaps_xpm/sources/Move.svg +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/New_Project.svg b/bitmaps_xpm/sources/New_Project.svg deleted file mode 100644 index 6943df5088..0000000000 --- a/bitmaps_xpm/sources/New_Project.svg +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Plot.svg b/bitmaps_xpm/sources/Plot.svg deleted file mode 100644 index 2cc84bced1..0000000000 --- a/bitmaps_xpm/sources/Plot.svg +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Plot_HPG.svg b/bitmaps_xpm/sources/Plot_HPG.svg deleted file mode 100644 index 355c524a8c..0000000000 --- a/bitmaps_xpm/sources/Plot_HPG.svg +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Plot_PS.svg b/bitmaps_xpm/sources/Plot_PS.svg deleted file mode 100644 index cba5e04e9e..0000000000 --- a/bitmaps_xpm/sources/Plot_PS.svg +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Polar_Coord.svg b/bitmaps_xpm/sources/Polar_Coord.svg deleted file mode 100644 index a5c4781eb7..0000000000 --- a/bitmaps_xpm/sources/Polar_Coord.svg +++ /dev/null @@ -1,1713 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/RotateHLabel.svg b/bitmaps_xpm/sources/RotateHLabel.svg deleted file mode 100644 index 7be0707361..0000000000 --- a/bitmaps_xpm/sources/RotateHLabel.svg +++ /dev/null @@ -1,1323 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Rotate_CCW.svg b/bitmaps_xpm/sources/Rotate_CCW.svg deleted file mode 100644 index 5773bb06fe..0000000000 --- a/bitmaps_xpm/sources/Rotate_CCW.svg +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/Rotate_CW.svg b/bitmaps_xpm/sources/Rotate_CW.svg deleted file mode 100644 index 19397a4466..0000000000 --- a/bitmaps_xpm/sources/Rotate_CW.svg +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/addCompo.svg b/bitmaps_xpm/sources/addCompo.svg deleted file mode 100644 index 2ebfb18b97..0000000000 --- a/bitmaps_xpm/sources/addCompo.svg +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/addVCC.svg b/bitmaps_xpm/sources/addVCC.svg deleted file mode 100644 index d54143efef..0000000000 --- a/bitmaps_xpm/sources/addVCC.svg +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/annotate_down_right.svg b/bitmaps_xpm/sources/annotate_down_right.svg deleted file mode 100644 index 75fc4ac469..0000000000 --- a/bitmaps_xpm/sources/annotate_down_right.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/annotate_right_down.svg b/bitmaps_xpm/sources/annotate_right_down.svg deleted file mode 100644 index 1cf916c8b8..0000000000 --- a/bitmaps_xpm/sources/annotate_right_down.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/copyComponent.svg b/bitmaps_xpm/sources/copyComponent.svg deleted file mode 100644 index 24cf16380e..0000000000 --- a/bitmaps_xpm/sources/copyComponent.svg +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/datasheet.svg b/bitmaps_xpm/sources/datasheet.svg deleted file mode 100644 index a55b0e01c5..0000000000 --- a/bitmaps_xpm/sources/datasheet.svg +++ /dev/null @@ -1,2256 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/export_footprint_names.svg b/bitmaps_xpm/sources/export_footprint_names.svg deleted file mode 100644 index 8ef2cc41ce..0000000000 --- a/bitmaps_xpm/sources/export_footprint_names.svg +++ /dev/null @@ -1,1172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/fabrication.svg b/bitmaps_xpm/sources/fabrication.svg deleted file mode 100644 index 8fabcdd9c6..0000000000 --- a/bitmaps_xpm/sources/fabrication.svg +++ /dev/null @@ -1,371 +0,0 @@ - - - - - fabrication.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Jakub Steiner - - - - - fabrication.svg - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gbr_select_mode0.svg b/bitmaps_xpm/sources/gbr_select_mode0.svg deleted file mode 100644 index 933d112b2d..0000000000 --- a/bitmaps_xpm/sources/gbr_select_mode0.svg +++ /dev/null @@ -1,325 +0,0 @@ - - - - - fabrication.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Jakub Steiner - - - - - fabrication.svg - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gbr_select_mode1.svg b/bitmaps_xpm/sources/gbr_select_mode1.svg deleted file mode 100644 index 55c507ac38..0000000000 --- a/bitmaps_xpm/sources/gbr_select_mode1.svg +++ /dev/null @@ -1,325 +0,0 @@ - - - - - fabrication.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Jakub Steiner - - - - - fabrication.svg - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gbr_select_mode2.svg b/bitmaps_xpm/sources/gbr_select_mode2.svg deleted file mode 100644 index 9d3624309f..0000000000 --- a/bitmaps_xpm/sources/gbr_select_mode2.svg +++ /dev/null @@ -1,252 +0,0 @@ - - - - - fabrication.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Jakub Steiner - - - - - fabrication.svg - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gerber_file.svg b/bitmaps_xpm/sources/gerber_file.svg deleted file mode 100644 index 87af2f9db8..0000000000 --- a/bitmaps_xpm/sources/gerber_file.svg +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Avi file icon - nov. 2009 - - - Zlatko Nikolic - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gerber_open_dcode_file.svg b/bitmaps_xpm/sources/gerber_open_dcode_file.svg deleted file mode 100644 index 758ce8fb26..0000000000 --- a/bitmaps_xpm/sources/gerber_open_dcode_file.svg +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gerber_recent_files.svg b/bitmaps_xpm/sources/gerber_recent_files.svg deleted file mode 100644 index 500b57fbec..0000000000 --- a/bitmaps_xpm/sources/gerber_recent_files.svg +++ /dev/null @@ -1,2463 +0,0 @@ - - - - - - - - - - - - unsorted - - - - - Open Clip Art Library, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors - - - - - - - - - - - - - - image/svg+xml - - - en - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gerbview_clear_layers.svg b/bitmaps_xpm/sources/gerbview_clear_layers.svg deleted file mode 100644 index c095ab4042..0000000000 --- a/bitmaps_xpm/sources/gerbview_clear_layers.svg +++ /dev/null @@ -1,554 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Andreas Nilsson - - - http://www.tango-project.org - - - clear - reset - blank - edit - - - - - - Jakub Steiner (although minimally ;) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gerbview_drill_file.svg b/bitmaps_xpm/sources/gerbview_drill_file.svg deleted file mode 100644 index b959105470..0000000000 --- a/bitmaps_xpm/sources/gerbview_drill_file.svg +++ /dev/null @@ -1,281 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - vrtacka - 2.1.2006 - - - Ivan Bilek - - - - - ZS a MS Machovo nam - - - cz - - - vrtacka - drilling machine - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/gerbview_icon.svg b/bitmaps_xpm/sources/gerbview_icon.svg deleted file mode 100644 index 0e818f38c1..0000000000 --- a/bitmaps_xpm/sources/gerbview_icon.svg +++ /dev/null @@ -1,25203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/image.svg b/bitmaps_xpm/sources/image.svg deleted file mode 100644 index 18d5ee872d..0000000000 --- a/bitmaps_xpm/sources/image.svg +++ /dev/null @@ -1,2884 +0,0 @@ - - - - - - - - Photos - - - - unsorted - - - - - Open Clip Art Library, Source: GNOME Icon Theme, Source: GNOME Icon Theme, Source: GNOME Icon Theme, Source: GNOME Icon Theme - - - - - Lapo Calamandrei - - - - - Lapo Calamandrei - - - 2006-06-11 - image/svg+xml - - - en - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/import_GLabel.svg b/bitmaps_xpm/sources/import_GLabel.svg deleted file mode 100644 index 132074e806..0000000000 --- a/bitmaps_xpm/sources/import_GLabel.svg +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/import_footprint_names.svg b/bitmaps_xpm/sources/import_footprint_names.svg deleted file mode 100644 index 6f580a6ad5..0000000000 --- a/bitmaps_xpm/sources/import_footprint_names.svg +++ /dev/null @@ -1,1172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/layers_manager.svg b/bitmaps_xpm/sources/layers_manager.svg deleted file mode 100644 index 9f5ba85c71..0000000000 --- a/bitmaps_xpm/sources/layers_manager.svg +++ /dev/null @@ -1,422 +0,0 @@ - - - - - fabrication.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Jakub Steiner - - - - - fabrication.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/load_component_from_lib.svg b/bitmaps_xpm/sources/load_component_from_lib.svg deleted file mode 100644 index 8a042021c1..0000000000 --- a/bitmaps_xpm/sources/load_component_from_lib.svg +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/logos_32.svg b/bitmaps_xpm/sources/logos_32.svg deleted file mode 100644 index 71faf804ef..0000000000 --- a/bitmaps_xpm/sources/logos_32.svg +++ /dev/null @@ -1,2268 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/new_component.svg b/bitmaps_xpm/sources/new_component.svg deleted file mode 100644 index 11b80ff610..0000000000 --- a/bitmaps_xpm/sources/new_component.svg +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/open_document.svg b/bitmaps_xpm/sources/open_document.svg deleted file mode 100644 index 039c72b01a..0000000000 --- a/bitmaps_xpm/sources/open_document.svg +++ /dev/null @@ -1,592 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - 2005-01-31 - - - Jakub Steiner - - - - http://jimmac.musichall.cz - Active state - when files are being dragged to. - - - Novell, Inc. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/pads_mask_layers.svg b/bitmaps_xpm/sources/pads_mask_layers.svg deleted file mode 100644 index 17da6ab905..0000000000 --- a/bitmaps_xpm/sources/pads_mask_layers.svg +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/pin2pin.svg b/bitmaps_xpm/sources/pin2pin.svg deleted file mode 100644 index a55e49c966..0000000000 --- a/bitmaps_xpm/sources/pin2pin.svg +++ /dev/null @@ -1,3093 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/show_footprint.svg b/bitmaps_xpm/sources/show_footprint.svg deleted file mode 100644 index d47cff5b91..0000000000 --- a/bitmaps_xpm/sources/show_footprint.svg +++ /dev/null @@ -1,2535 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/window_close.svg b/bitmaps_xpm/sources/window_close.svg deleted file mode 100644 index 4033a8b111..0000000000 --- a/bitmaps_xpm/sources/window_close.svg +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - - - - - unsorted - - - - - Open Clip Art Library, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors, Source: GNOME-Colors - - - - - - - - - - - - - - image/svg+xml - - - en - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/zoom.svg b/bitmaps_xpm/sources/zoom.svg deleted file mode 100644 index 5dd236f46e..0000000000 --- a/bitmaps_xpm/sources/zoom.svg +++ /dev/null @@ -1,794 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bitmaps_xpm/sources/zoom_area.svg b/bitmaps_xpm/sources/zoom_area.svg deleted file mode 100644 index 5521264919..0000000000 --- a/bitmaps_xpm/sources/zoom_area.svg +++ /dev/null @@ -1,911 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bitmaps_xpm/sources/zoom_center_on_screen.svg b/bitmaps_xpm/sources/zoom_center_on_screen.svg deleted file mode 100644 index 3e298f35ec..0000000000 --- a/bitmaps_xpm/sources/zoom_center_on_screen.svg +++ /dev/null @@ -1,803 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bitmaps_xpm/sources/zoom_fit_in_page.svg b/bitmaps_xpm/sources/zoom_fit_in_page.svg deleted file mode 100644 index b539a2fbfe..0000000000 --- a/bitmaps_xpm/sources/zoom_fit_in_page.svg +++ /dev/null @@ -1,945 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bitmaps_xpm/sources/zoom_in.svg b/bitmaps_xpm/sources/zoom_in.svg deleted file mode 100644 index 91ab1d976e..0000000000 --- a/bitmaps_xpm/sources/zoom_in.svg +++ /dev/null @@ -1,703 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - + - - - - - - - - - + - - diff --git a/bitmaps_xpm/sources/zoom_out.svg b/bitmaps_xpm/sources/zoom_out.svg deleted file mode 100644 index 6935d7a546..0000000000 --- a/bitmaps_xpm/sources/zoom_out.svg +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - + - - - - - - - - - - - - diff --git a/bitmaps_xpm/sources/zoom_selection.svg b/bitmaps_xpm/sources/zoom_selection.svg deleted file mode 100644 index 8700a26716..0000000000 --- a/bitmaps_xpm/sources/zoom_selection.svg +++ /dev/null @@ -1,805 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ? - - \ No newline at end of file diff --git a/bitmaps_xpm/swap_layer.xpm b/bitmaps_xpm/swap_layer.xpm deleted file mode 100644 index b2eb9feedc..0000000000 --- a/bitmaps_xpm/swap_layer.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* swap_layer_xpm[]; -#else -const char * swap_layer_xpm[] = { -"16 16 6 1", -" c None", -". c #B70000", -"+ c #000000", -"@ c #9B0000", -"# c #008F00", -"$ c #007900", -".......... ", -".......... + ", -".........@++++ ", -".........@+++++ ", -".......... + +++", -".......... ++", -"......##########", -"......##########", -"......##########", -"......##########", -"++ ##########", -"+++ + ##########", -" +++++$#########", -" ++++$#########", -" + ##########", -" ##########"}; - -#endif diff --git a/bitmaps_xpm/text_sketch.xpm b/bitmaps_xpm/text_sketch.xpm deleted file mode 100644 index b597b42b27..0000000000 --- a/bitmaps_xpm/text_sketch.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *text_sketch_xpm[]; - -#else -const char * text_sketch_xpm[] = { -"16 16 2 1", -" c None", -". c #00009B", -" .............. ", -" . . ", -" . .... .... . ", -" .. . . .. ", -" . . . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" . . ", -" ........ "}; -#endif diff --git a/bitmaps_xpm/three_d.xpm b/bitmaps_xpm/three_d.xpm deleted file mode 100644 index 21fd2571f6..0000000000 --- a/bitmaps_xpm/three_d.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *three_d_xpm[]; - -#else -const char *three_d_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 3 1", -"J c #FF0000", -"x c #0000FF", -". c none", -"................", -"..JJJJ...JJ.....", -".JJJJJJ..JJJJ...", -".JJ..JJ..JJ.JJ..", -".....JJ..JJ..JJ.", -"..JJJJ...JJ...JJ", -"..JJJJJ..JJ...JJ", -".....JJ..JJ...JJ", -".JJ..JJ..JJ..JJJ", -".JJJJJJ..JJJJJJ.", -"..JJJJ....JJJJ.x", -"..........xxxxxx", -".....xxxxxx.....", -"xxxxxx..........", -"x..............." -}; -#endif diff --git a/bitmaps_xpm/tool_ratsnest.xpm b/bitmaps_xpm/tool_ratsnest.xpm deleted file mode 100644 index f140d88d04..0000000000 --- a/bitmaps_xpm/tool_ratsnest.xpm +++ /dev/null @@ -1,77 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* tool_ratsnest_xpm[]; -#else -const char * tool_ratsnest_xpm[] = { -"16 16 53 1", -" c None", -". c #FFFFFF", -"+ c #161616", -"@ c #161513", -"# c #3E3E3E", -"$ c #D9C1AD", -"% c #CCA078", -"& c #443E39", -"* c #3F3C3A", -"= c #CC9666", -"- c #0E0B09", -"; c #211C18", -"> c #FAFAFA", -", c #C3C3C3", -"' c #362F29", -") c #636363", -"! c #9A9A9A", -"~ c #111112", -"{ c #F6F6F6", -"] c #555555", -"^ c #D5D5E4", -"/ c #42424C", -"( c #474747", -"_ c #F7F7FF", -": c #E6E6FF", -"< c #D6D6FF", -"[ c #7F7FA4", -"} c #0F0F17", -"| c #404040", -"1 c #F0F0FF", -"2 c #DFDFFF", -"3 c #C3C3F2", -"4 c #75759D", -"5 c #232334", -"6 c #3A3A3B", -"7 c #E8E8FF", -"8 c #9898B4", -"9 c #9E9ECB", -"0 c #040405", -"a c #353536", -"b c #656572", -"c c #000000", -"d c #8787B4", -"e c #5B5B85", -"f c #2C2C3E", -"g c #A6A6FD", -"h c #25253D", -"i c #BBBBBB", -"j c #7C7CC5", -"k c #6C6CB1", -"l c #E0E0E0", -"m c #12121D", -"n c #020203", -" ", -" ", -".. ...", -".... +@ .......", -" ..#$%&..... ", -" .*=-;> ", -" .,')!~ ", -" ...{].^/ ", -".... .(_:<[} ", -"... .|12345 ", -". .67890 ", -" .abcdec ", -" .|c fgh ", -" .i cjkc ", -" .l mn ", -" .. c "}; - -#endif diff --git a/bitmaps_xpm/tools.xpm b/bitmaps_xpm/tools.xpm deleted file mode 100644 index 58cc1004ac..0000000000 --- a/bitmaps_xpm/tools.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -const char *tools_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 16 5 1", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #BFE5FF", -"# c #696969", -"............... ", -".+++++++++++++. ", -".@#@..@....@#@. ", -".+++++++++++++. ", -".@#@..@..@@@#@. ", -".+++++++++++++. ", -".@#@..@....@#@. ", -".+++++++++++++. ", -".@#@..@...@@#@. ", -".+++++++++++++. ", -".@#@..@....@#@. ", -".+++++++++++++. ", -".@#@..@..@..#@. ", -".+++++++++++++. ", -"............... ", -" "}; diff --git a/bitmaps_xpm/track_locked.xpm b/bitmaps_xpm/track_locked.xpm deleted file mode 100644 index 54cf02c01a..0000000000 --- a/bitmaps_xpm/track_locked.xpm +++ /dev/null @@ -1,113 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* track_locked_xpm[]; -#else -const char * track_locked_xpm[] = { -"16 16 89 1", -" c None", -". c #007D00", -"+ c #006100", -"@ c #004400", -"# c #007800", -"$ c #007B00", -"% c #004000", -"& c #007C00", -"* c #006500", -"= c #004A00", -"- c #002200", -"; c #001C00", -"> c #000300", -", c #000000", -"' c #111111", -") c #777977", -"! c #D0D0D0", -"~ c #D9D9D9", -"{ c #B9B9B9", -"] c #6A6A6A", -"^ c #040404", -"/ c #818181", -"( c #B6B6B6", -"_ c #343B34", -": c #1B1E1B", -"< c #4B4D4B", -"[ c #AFAFAF", -"} c #7E837E", -"| c #004700", -"1 c #292929", -"2 c #BEBEBE", -"3 c #070707", -"4 c #2D2F2D", -"5 c #A8A9A8", -"6 c #002100", -"7 c #2A2A2A", -"8 c #BCBCBC", -"9 c #151515", -"0 c #BFBEBE", -"a c #12100D", -"b c #999592", -"c c #1F1C1B", -"d c #0A0A06", -"e c #030201", -"f c #040302", -"g c #2E2820", -"h c #A6A19C", -"i c #19120A", -"j c #A38F75", -"k c #DEC29E", -"l c #DDC2A1", -"m c #D8BC98", -"n c #D4B892", -"o c #CBA475", -"p c #7F592A", -"q c #E0C39F", -"r c #D6B38A", -"s c #C89D67", -"t c #AA8557", -"u c #A58051", -"v c #A58052", -"w c #A17A4A", -"x c #BA8648", -"y c #AA702D", -"z c #E1C4A0", -"A c #D3AC7D", -"B c #AE8B5E", -"C c #D3B082", -"D c #CDA97B", -"E c #CDAA7A", -"F c #C9A270", -"G c #BA8545", -"H c #A86E2A", -"I c #DFC29E", -"J c #CEA473", -"K c #C59963", -"L c #A88254", -"M c #A27D4D", -"N c #9E7643", -"O c #B88241", -"P c #DFC09A", -"Q c #CCA26F", -"R c #AB8B63", -"S c #D0B087", -"T c #CBAA81", -"U c #CCAB81", -"V c #CAA57A", -"W c #B67F3D", -"X c #AB7231", -"........ ", -"........+ ", -" @.# ", -" $.% ", -" &.* ", -" =-;>, ", -" ')!~~{]^ ", -" /(_::<[}|.", -" 123 ...456.", -" 78, 90, ", -" abcdeefghi ", -" ,jkllmmmnop,", -" ,qrstuuvwxy,", -" ,zABCDDEFGH,", -" ,IJKLMMMNOy,", -" ,PQRSTTUVWX,"}; - -#endif diff --git a/bitmaps_xpm/track_sketch.xpm b/bitmaps_xpm/track_sketch.xpm deleted file mode 100644 index 9588a8fb7c..0000000000 --- a/bitmaps_xpm/track_sketch.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* track_sketch_xpm[]; -#else -const char * track_sketch_xpm[] = { -"16 16 5 1", -" c None", -". c #007D00", -"+ c #D72E2E", -"@ c #6B5517", -"# c #8F481E", -" .. .. ", -"++++++ .. .. ", -"+++++++ .. .. ", -" ++ .. .. ", -"++++ ++ .. .. ", -"+++++ ++ .. .. ", -" ++ + .. .. ", -" ++ ++ .. .. ", -" ++ + .. .. ", -" + ++++++++", -" ++ +@#+@#+", -" + .. .. ", -" ++++++++++", -" +++@#+@#+", -" .. .. ", -" .. .. "}; - -#endif diff --git a/bitmaps_xpm/track_unlocked.xpm b/bitmaps_xpm/track_unlocked.xpm deleted file mode 100644 index 20b88fcd00..0000000000 --- a/bitmaps_xpm/track_unlocked.xpm +++ /dev/null @@ -1,105 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* track_unlocked_xpm[]; -#else -const char * track_unlocked_xpm[] = { -"16 16 81 1", -" c None", -". c #007D00", -"+ c #004C00", -"@ c #007B00", -"# c #006800", -"$ c #000000", -"% c #004300", -"& c #111111", -"* c #777777", -"= c #D0D0D0", -"- c #D9D9D9", -"; c #6A6A6A", -"> c #040404", -", c #007900", -"' c #818181", -") c #B6B6B6", -"! c #353535", -"~ c #1C1C1C", -"{ c #AFAFAF", -"] c #7E7E7E", -"^ c #006300", -"/ c #292929", -"( c #BEBEBE", -"_ c #070707", -": c #2D2D2D", -"< c #A8A8A8", -"[ c #003700", -"} c #2A2A2A", -"| c #BCBCBC", -"1 c #151515", -"2 c #BFBEBE", -"3 c #12100D", -"4 c #999592", -"5 c #1F1C1B", -"6 c #0A0A06", -"7 c #030201", -"8 c #040302", -"9 c #0C0B08", -"0 c #272523", -"a c #19120A", -"b c #A38F75", -"c c #DEC29E", -"d c #DDC2A1", -"e c #D8BC98", -"f c #D4B892", -"g c #CBA475", -"h c #7F592A", -"i c #E0C39F", -"j c #D6B38A", -"k c #C89D67", -"l c #AA8557", -"m c #A58051", -"n c #A58052", -"o c #A17A4A", -"p c #BA8648", -"q c #AA702D", -"r c #E1C4A0", -"s c #D3AC7D", -"t c #AE8B5E", -"u c #D3B082", -"v c #CDA97B", -"w c #CDAA7A", -"x c #C9A270", -"y c #BA8545", -"z c #A86E2A", -"A c #DFC29E", -"B c #CEA473", -"C c #C59963", -"D c #A88254", -"E c #A27D4D", -"F c #9E7643", -"G c #B88241", -"H c #DFC09A", -"I c #CCA26F", -"J c #AB8B63", -"K c #D0B087", -"L c #CBAA81", -"M c #CCAB81", -"N c #CAA57A", -"O c #B67F3D", -"P c #AB7231", -".......... ", -"........... ", -" +.. ", -" @. ", -" #.. ", -" $$ %.. ", -" &*=-;> ,. ", -" ')!~{] ^.....", -"/(_ :<$ [.....", -"}|$ 12$ ", -" 345677890a ", -" $bcddeeefgh$", -" $ijklmmnopq$", -" $rstuvvwxyz$", -" $ABCDEEEFGq$", -" $HIJKLLMNOP$"}; - -#endif diff --git a/bitmaps_xpm/transistor.xpm b/bitmaps_xpm/transistor.xpm deleted file mode 100644 index 9756490efd..0000000000 --- a/bitmaps_xpm/transistor.xpm +++ /dev/null @@ -1,41 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *transistor_xpm[]; - -#else -const char * transistor_xpm[] = -{ -"16 15 16 1", -" c none", -". c #050305", -"X c Gray15", -"o c #5a5146", -"O c #191a19", -"+ c #8e8d8c", -"@ c #eaeaea", -"# c #dcdddc", -"$ c #66625f", -"% c #5c442c", -"& c #49372c", -"* c #b2b4b2", -"= c #fb7904", -"- c #97500c", -"; c #c5c6c5", -": c #4a2b10", -" .... . ", -" ..XXooXOO.. ", -" .O+ @+O. ", -" .X#$%&# *.. ", -".O# o=-; $$;O.", -"O+ o=-; *&; +O", -"X# o=-*$$@ #X", -"O o=-X; O", -"X o=-o+ #@ O", -"O@ o=-;+$*:+ @O", -"O* o=-; +:=% *O", -".X@ o=-; o&-:;X.", -" .o $-:; ;%O. ", -" OX*#@ ;X. ", -" .OX$++$XO.. " -}; -#endif diff --git a/bitmaps_xpm/treensel.xpm b/bitmaps_xpm/treensel.xpm deleted file mode 100644 index a5735898cd..0000000000 --- a/bitmaps_xpm/treensel.xpm +++ /dev/null @@ -1,35 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *tree_nosel_xpm[]; - -#else -const char *tree_nosel_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 6 1", -" c Gray0", -"X c #7b7b7b", -"O c Red", -"# c White", -"+ c Yellow", -"@ c None", - -/* pixels */ -"@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@", -"@@@@X X@@@@@@", -"@@@ OOOO @@@@@", -"@@X +#OOOO X@@@@", -"@@ O#+OOOOO @@@@", -"@@ OOOOOOOO @@@@", -"@@ OOOOOO+O X@@@", -"@@ OOOOO++O X@@@", -"@@X OOO++O XX@@@", -"@@@ OOOO XXX@@", -"@@@@X XXXX@@@", -"@@@@@@@XXXXXX@@@", -"@@@@@@@@@@X@@@@@" -}; - -#endif - diff --git a/bitmaps_xpm/treesel.xpm b/bitmaps_xpm/treesel.xpm deleted file mode 100644 index 748130c942..0000000000 --- a/bitmaps_xpm/treesel.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * tree_sel_xpm[]; -#else -const char *tree_sel_xpm[] = { -/* columns rows colors const chars-per-pixel */ -"16 15 6 1", -" c Gray0", -"X c #7b7b7b", -"O c Green", -"# c White", -"+ c Yellow", -"@ c None", - -/* pixels */ -"@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@", -"@@@@@@@@@@@@@@@@", -"@@@@X X@@@@@@", -"@@@ OOOO @@@@@", -"@@X +#OOOO X@@@@", -"@@ O#+OOOOO @@@@", -"@@ OOOOOOOO @@@@", -"@@ OOOOOO+O X@@@", -"@@ OOOOO++O X@@@", -"@@X OOO++O XX@@@", -"@@@ OOOO XXX@@", -"@@@@X XXXX@@@", -"@@@@@@@XXXXXX@@@", -"@@@@@@@@@@X@@@@@" -}; -#endif - diff --git a/bitmaps_xpm/undelete.xpm b/bitmaps_xpm/undelete.xpm deleted file mode 100644 index d9a0acd44e..0000000000 --- a/bitmaps_xpm/undelete.xpm +++ /dev/null @@ -1,117 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *undelete_xpm[]; - -#else -const char * undelete_xpm[] = { -"16 16 93 2", -" c None", -". c #000000", -"+ c #FFFFFF", -"@ c #2A2A2A", -"# c #EFEFEF", -"$ c #267726", -"% c #CCCCCC", -"& c #0F0F0F", -"* c #F4F4F4", -"= c #CDCDCA", -"- c #A7A7A2", -"; c #E1E1E0", -"> c #45453F", -", c #47473E", -"' c #515147", -") c #D3D3D2", -"! c #5F5F56", -"~ c #44443C", -"{ c #111111", -"] c #919185", -"^ c #DADAD7", -"/ c #EBEBEB", -"( c #EDEDED", -"_ c #BBC2CC", -": c #1C1C1C", -"< c #A6A699", -"[ c #828276", -"} c #79796E", -"| c #4E4E45", -"1 c #181818", -"2 c #ADAD9F", -"3 c #8F8F81", -"4 c #C6C6BD", -"5 c #88887B", -"6 c #090909", -"7 c #818173", -"8 c #D1D1C9", -"9 c #858577", -"0 c #A4A494", -"a c #646454", -"b c #7F7F71", -"c c #4D4D3F", -"d c #68685B", -"e c #4A4023", -"f c #ABAB9E", -"g c #CDCDC6", -"h c #A9A999", -"i c #666656", -"j c #7D7D6F", -"k c #49493C", -"l c #636358", -"m c #5A491D", -"n c #ACAC9F", -"o c #878779", -"p c #CECEC4", -"q c #89897D", -"r c #A8A89A", -"s c #656558", -"t c #79796B", -"u c #434336", -"v c #5D5D53", -"w c #5D4B1B", -"x c #A9A99B", -"y c #CACAC1", -"z c #A5A596", -"A c #616156", -"B c #77776B", -"C c #47473B", -"D c #535349", -"E c #614F20", -"F c #C7C7BE", -"G c #B1B1A3", -"H c #B2B2A9", -"I c #8F8F7D", -"J c #888880", -"K c #67675A", -"L c #65655F", -"M c #675B36", -"N c #493A12", -"O c #010101", -"P c #8B8B7C", -"Q c #79796A", -"R c #6C6C5E", -"S c #646459", -"T c #545448", -"U c #424238", -"V c #272720", -"W c #564210", -"X c #020202", -"Y c #040404", -"Z c #060606", -"` c #050505", -" . c #030303", -" . . . . . . . . . ", -" . + + + + + + + . ", -" @ @ @ . + # $ $ $ $ % . ", -" & @ * = - . + # # $ $ $ % . ", -" @ ; > , ' . + # $ $ $ $ % . ", -" @ ) ! ~ ' . + $ $ $ # $ % . ", -" { ] ^ / ( . + _ $ # # # % . ", -" : < [ } | . + % % % % % % 1 ", -" : 2 3 4 5 . . 6 . . . . . . ", -" : 2 7 8 9 0 a b c d e . ", -" : f 9 g 5 h i j k l m . ", -" { n o p q r s t u v w . ", -" . x 5 y 5 z A B C D E . ", -" . n F G H I J K L M N . ", -" O P Q R S T U V W . . ", -" X Y Z ` .X . . "}; -#endif diff --git a/bitmaps_xpm/undo.xpm b/bitmaps_xpm/undo.xpm deleted file mode 100644 index 83910d6194..0000000000 --- a/bitmaps_xpm/undo.xpm +++ /dev/null @@ -1,79 +0,0 @@ -/* XPM */ -const char *undo_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 57 1", -"X c #FFF9C9", -" c none", -"n c #988F00", -"8 c #FFE611", -"a c #F6EC9D", -"+ c #7A9402", -"= c #FFEC49", -"w c #FFEC4B", -"6 c #FFEC4D", -"5 c #FFEF65", -"# c #FFF281", -": c #FFF287", -"r c #FFF290", -", c #FFF59D", -"3 c #FFF59F", -"0 c #9C8B00", -"> c #FFF5A1", -"4 c #FFF5A5", -"s c #FFF5AB", -"y c #FFF5AD", -"g c #939000", -"o c #FFF8BD", -"@ c #FFF8BF", -"% c #FFFBD5", -"* c #FFFBD7", -"u c #FDF5AF", -"h c #BCA800", -"q c #849201", -"p c #9E8D00", -"2 c #FFF17B", -"v c #FFF181", -"x c #EBDE7A", -"1 c #FFF49B", -"b c #C6B94C", -"z c #FFF49F", -"t c #FFF4A2", -"d c #FFF7AF", -"9 c #FFF7B5", -"B c #799402", -"& c #FFFACD", -"< c #FFFAD3", -"7 c #DCC500", -"M c #FFEA39", -"- c #819302", -"e c #FFEA3D", -". c #A08F00", -"f c #FFED51", -"c c #7F9302", -"i c #FFF06D", -"; c #FFF06F", -"m c #FFF071", -"k c #7D9302", -"l c #FFF38B", -"j c #FFF6A7", -"N c #879201", -"$ c #FFF6A9", -"O c #FFF9C5", -/* pixels */ -" . ", -" .. ", -" .X. ", -" .oO....+ ", -" .@#$%&*=.- ", -" .o;;;:>,<$.- ", -".1;;;;;234%5.+ ", -"-.677777789@0q ", -" -.w7errtyu@i. ", -" -.we...pasd. ", -" -.f. ghtj. ", -" -.. k.yl. ", -" -. .zx. ", -" c.vbn ", -" .mM. ", -" N..B " -}; diff --git a/bitmaps_xpm/unit_inch.xpm b/bitmaps_xpm/unit_inch.xpm deleted file mode 100644 index 513b31cb4d..0000000000 --- a/bitmaps_xpm/unit_inch.xpm +++ /dev/null @@ -1,43 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *unit_inch_xpm[]; - -#else -const char * unit_inch_xpm[] = { -"16 16 19 1", -" c None", -". c #3F3F9B", -"+ c #9B9B9B", -"@ c #000000", -"# c #010101", -"$ c #232323", -"% c #666666", -"& c #111111", -"* c #252525", -"= c #0D0D0D", -"- c #747474", -"; c #878787", -"> c #131313", -", c #585858", -"' c #565656", -") c #0B0B0B", -"! c #272727", -"~ c #5E5E5E", -"{ c #949494", -" ", -" .... ", -" ..++ ", -" ..+ ", -" ..+ ", -" ..+ ", -" ..+ ", -" .... ", -" ++++ ", -" @ #$ ", -" @%+ &* ", -" @@@@@@@@@@@@@@ ", -" =-++++++++;>,+", -" ') @!+ ", -" ~{ + ", -" "}; -#endif diff --git a/bitmaps_xpm/unit_mm.xpm b/bitmaps_xpm/unit_mm.xpm deleted file mode 100644 index 2f79c4b048..0000000000 --- a/bitmaps_xpm/unit_mm.xpm +++ /dev/null @@ -1,47 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *unit_mm_xpm[]; - -#else -const char * unit_mm_xpm[] = { -"16 16 23 1", -" c None", -"! c black", -"# c #FF0000", -"$ c #FF4848", -"% c #9B9B9B", -"& c #98989B", -"' c #99999B", -"( c #9A9A9B", -") c #010101", -"* c #232323", -"+ c #666666", -", c #111111", -"- c #252525", -". c #0D0D0D", -"0 c #747474", -"1 c #878787", -"2 c #131313", -"3 c #585858", -"4 c #565656", -"5 c #0B0B0B", -"6 c #272727", -"7 c #5E5E5E", -"8 c #949494", -" ", -" ", -" ## ## ## ## ", -"#$$#$$# #$$#$$# ", -"#%%#%%#%#%%#&%#'", -"#% #% #%#% #' #'", -"#% #% #%#% #( #&", -" % % % % % %", -" ", -" ! )* ", -" !+% ,- ", -" !!!!!!!!!!!!!!)", -" .0%%%%%%%%123%", -" 45 !6% ", -" 78 % ", -" "}; -#endif diff --git a/bitmaps_xpm/unknown.xpm b/bitmaps_xpm/unknown.xpm deleted file mode 100644 index 8b2242cc65..0000000000 --- a/bitmaps_xpm/unknown.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * unknown_xpm[]; -#else -const char * unknown_xpm[] = { -"16 16 49 1", -" c None", -". c #C6C6D5", -"+ c #9494AD", -"@ c #FBFBFC", -"# c #F8F8FA", -"$ c #F4F4F7", -"% c #EEEEF2", -"& c #EAEAF0", -"* c #DEDEE7", -"= c #E0E0E9", -"- c #F5F5F8", -"; c #F0F0F4", -"> c #EDEDF2", -", c #E1E1E9", -"' c #C9C9D7", -") c #E4E4EB", -"! c #F7F7F9", -"~ c #F1F1F5", -"{ c #E6E6ED", -"] c #DBDBE5", -"^ c #CDCDDA", -"/ c #BFBFD0", -"( c #F2F2F6", -"_ c #E7E7EE", -": c #E3E3EA", -"< c #D0D0DC", -"[ c #C4C4D3", -"} c #C2C2D1", -"| c #FAFAFB", -"1 c #F3F3F6", -"2 c #E8E8EE", -"3 c #CBCBD9", -"4 c #C8C8D6", -"5 c #F9F9FA", -"6 c #DCDCE5", -"7 c #D6D6E1", -"8 c #D2D2DE", -"9 c #D1D1DD", -"0 c #CECEDB", -"a c #EBEBF1", -"b c #DADAE4", -"c c #D4D4E0", -"d c #E5E5EC", -"e c #DFDFE8", -"f c #DDDDE6", -"g c #D7D7E2", -"h c #E9E9EF", -"i c #D9D9E3", -"j c #EFEFF3", -" ........+ ", -" .@#$%&*=.+ ", -" .@#-;>,=.'+ ", -" .@#-;%)=++++ ", -" .@!-~%{=]^/+ ", -" .@!-(;_:<[}+ ", -" .|!-1;2=34.+ ", -" .5$(%&67890+ ", -" .-(~a:]b7c8+ ", -" .-$%d:efbg7+ ", -" .!~h{)=e]i7+ ", -" .!j2{)=e6bg+ ", -" .$&2{d:e6bg+ ", -" .12_d),e]bg+ ", -" .;22{)=e6bg+ ", -" ++++++++++++ "}; -#endif - diff --git a/bitmaps_xpm/unlocked.xpm b/bitmaps_xpm/unlocked.xpm deleted file mode 100644 index fa811089ec..0000000000 --- a/bitmaps_xpm/unlocked.xpm +++ /dev/null @@ -1,112 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* unlocked_xpm[]; -#else -const char * unlocked_xpm[] = { -"16 16 88 1", -" c None", -". c #000000", -"+ c #1E1E1E", -"@ c #7A7A7A", -"# c #D2D2D2", -"$ c #DBDBDB", -"% c #727272", -"& c #080808", -"* c #848484", -"= c #BEBEBE", -"- c #363636", -"; c #1D1D1D", -"> c #B1B1B1", -", c #2D2D2D", -"' c #C2C2C2", -") c #090909", -"! c #2E2E2E", -"~ c #AAAAAA", -"{ c #2B2B2B", -"] c #C0C0C0", -"^ c #161616", -"/ c #C1C0C0", -"( c #13110E", -"_ c #9B9794", -": c #201D1C", -"< c #0B0B07", -"[ c #040302", -"} c #050403", -"| c #0D0C09", -"1 c #282624", -"2 c #1A130B", -"3 c #A59176", -"4 c #E0C4A0", -"5 c #DFC4A3", -"6 c #DABE9A", -"7 c #D6BA94", -"8 c #CDA676", -"9 c #815A2B", -"0 c #E2C5A1", -"a c #D8B58C", -"b c #CA9F68", -"c c #AC8758", -"d c #A78252", -"e c #A78253", -"f c #A37B4B", -"g c #BC8849", -"h c #AC712E", -"i c #E3C6A2", -"j c #D5AE7E", -"k c #B08D5F", -"l c #D5B284", -"m c #CFAB7C", -"n c #CFAC7B", -"o c #CBA471", -"p c #BC8746", -"q c #AA6F2B", -"r c #E1C4A0", -"s c #D0A674", -"t c #C79B64", -"u c #AA8455", -"v c #A47E4E", -"w c #A07744", -"x c #BA8442", -"y c #E1C29C", -"z c #CEA470", -"A c #AD8D64", -"B c #D2B289", -"C c #CDAC83", -"D c #CEAD83", -"E c #CCA77B", -"F c #B8803E", -"G c #AD7332", -"H c #E0C29E", -"I c #D4AC79", -"J c #CDA66E", -"K c #AF8D5E", -"L c #AB8758", -"M c #AB8858", -"N c #A8814C", -"O c #B47E3E", -"P c #D0A874", -"Q c #C6965D", -"R c #BE8D50", -"S c #BA894B", -"T c #BD8C4E", -"U c #BC8A4C", -"V c #BA8647", -"W c #A47136", -" ", -" .. ", -" +@#$%& ", -" *=-;>* ", -",') !~. ", -"{]. ^/. ", -" (_:<[[}|12 ", -" .3455666789.", -" .0abcddefgh.", -" .ijklmmnopq.", -" .rstuvvvwxh.", -" .yzABCCDEFG.", -" .HIJKLLMNpO.", -" .PQRRSSTUVW.", -" .......... ", -" "}; - -#endif diff --git a/bitmaps_xpm/unzip.xpm b/bitmaps_xpm/unzip.xpm deleted file mode 100644 index 1a5a7d091e..0000000000 --- a/bitmaps_xpm/unzip.xpm +++ /dev/null @@ -1,40 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * unzip_xpm[]; -#else -const char * unzip_xpm[] = { -"16 16 16 1", -" c none", -". c #060304", -"X c #1c2824", -"o c #043e50", -"O c #045b72", -"+ c #047796", -"@ c #048cb0", -"# c #2e1806", -"$ c #4a2204", -"% c #833b04", -"& c #a04904", -"* c #0a2e36", -"= c #eb6d04", -"- c #5d2b04", -"; c #fcb472", -": c #cc925c", -" ..... ", -" ..XoO++. ", -" .o@@@O. ", -" ....+@@O. ", -" ...#$$O@++o. ", -" ..$%&%*@@X#*. ", -" .=-%&%%*X==#.. ", -" .==&%&&-%--&&..", -" #====%$-&=&==$.", -" .====;%=&==&=%.", -" .====;-&==%$.. ", -" .====;&#$.... ", -" .$===;&$..-$. ", -" ...%=;&&%%#.. ", -" ..#:%$.... ", -" ..... "}; -#endif - diff --git a/bitmaps_xpm/up.xpm b/bitmaps_xpm/up.xpm deleted file mode 100644 index d117b968f2..0000000000 --- a/bitmaps_xpm/up.xpm +++ /dev/null @@ -1,50 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *up_xpm[]; - -#else -const char * up_xpm[] = { -"16 16 26 1", -" c None", -". c #1C2D3D", -"+ c #000000", -"@ c #C5D5E4", -"# c #C4D4E3", -"$ c #9FB9D2", -"% c #2A435B", -"& c #9CB7D1", -"* c #A0BAD3", -"= c #3F6588", -"- c #A6BED5", -"; c #A4BDD5", -"> c #9EB8D1", -", c #A3BCD4", -"' c #AAC1D7", -") c #ABC2D8", -"! c #29425A", -"~ c #AFC5DA", -"{ c #9BB6D0", -"] c #AEC4D9", -"^ c #9AB5CF", -"/ c #6892B9", -"( c #49759E", -"_ c #4B78A2", -": c #34536F", -"< c #2D4760", -" ", -" . ", -" +@+ ", -" +#$%+ ", -" +#&*=%+ ", -" +#-;>==%+ ", -" +#,',>===%+ ", -" ++++)$&=!++++ ", -" +~{$=!+ ", -" +){$=!+ ", -" +]$$=!+ ", -" +,^$=!+ ", -" +/(_:<+ ", -" +++++++ ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/update_module_board.xpm b/bitmaps_xpm/update_module_board.xpm deleted file mode 100644 index 47a908d5e7..0000000000 --- a/bitmaps_xpm/update_module_board.xpm +++ /dev/null @@ -1,105 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* update_module_board_xpm[]; -#else -const char * update_module_board_xpm[] = { -"16 16 81 1", -" c None", -". c #000000", -"+ c #FEFEFF", -"@ c #F9AB7F", -"# c #F55A00", -"$ c #EFEFF0", -"% c #AFAFB0", -"& c #080808", -"* c #FFFFFF", -"= c #ED5700", -"- c #3B1500", -"; c #7E7E7F", -"> c #070707", -", c #008100", -"' c #009F00", -") c #FBFBFC", -"! c #4E4E4F", -"~ c #001000", -"{ c #535353", -"] c #030303", -"^ c #000700", -"/ c #00B400", -"( c #006F00", -"_ c #5F4130", -": c #005800", -"< c #005E00", -"[ c #000A00", -"} c #002500", -"| c #008700", -"1 c #00B100", -"2 c #002700", -"3 c #AA3E00", -"4 c #003400", -"5 c #00BD00", -"6 c #00B800", -"7 c #008200", -"8 c #001F00", -"9 c #FDFDFE", -"0 c #503628", -"a c #006A00", -"b c #006600", -"c c #010B02", -"d c #000100", -"e c #F5F5FA", -"f c #313133", -"g c #002000", -"h c #4C4C52", -"i c #040404", -"j c #E65400", -"k c #210C00", -"l c #4B4B52", -"m c #050506", -"n c #F9F9FF", -"o c #F5F5FF", -"p c #F1F1FF", -"q c #EEEEFF", -"r c #CFCFE2", -"s c #676773", -"t c #FCFCFF", -"u c #F8F8FF", -"v c #F1A37F", -"w c #ED9F7F", -"x c #DADAF7", -"y c #060606", -"z c #DEDEFF", -"A c #070708", -"B c #FBFBFF", -"C c #F7F7FF", -"D c #F4F4FF", -"E c #F0F0FF", -"F c #ECECFF", -"G c #E9E9FF", -"H c #E99B7F", -"I c #DADAFF", -"J c #F3F3FF", -"K c #E8E8FF", -"L c #E4E4FF", -"M c #E1E1FF", -"N c #DDDDFF", -"O c #D9D9FF", -"P c #D5D5FF", -"............ ", -".+@#@++++$%& ...", -".+#*####=-;>.,'.", -".+@#@++)!~{]^/(.", -".++++++_:<[}|12 ", -".+####34565178. ", -".+++++90abcd.. ", -".+@#@++efghi. ", -".+#*####jklm ", -".+@#@nopqrsm ", -".++tuopv#wxy ", -".+######*#zA ", -".BCDEFGw#HIA ", -".CJEFKLMNOPA ", -"............ ", -" "}; - -#endif diff --git a/bitmaps_xpm/via_sketch.xpm b/bitmaps_xpm/via_sketch.xpm deleted file mode 100644 index efeda149f4..0000000000 --- a/bitmaps_xpm/via_sketch.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *via_sketch_xpm[]; - -#else -const char * via_sketch_xpm[] = { -"16 16 5 1", -" c None", -". c #7D7D00", -"+ c #7C7C00", -"* c #CC0000", -"= c #00AC00", -" .... ", -" ..++++.. ", -" .. .. ", -" .. .. ", -" . .. . ", -"***+***.... +.", -"**.+**..**.. +.", -"**.+**..**.. +.", -"***+***.... +.", -" . =..= . ", -" .. ==== .. ", -" .. ==== .. ", -" ..++++.. ", -" ...= ", -" ==== ", -" ==== "}; -#endif diff --git a/bitmaps_xpm/viewlibs_icon.xpm b/bitmaps_xpm/viewlibs_icon.xpm deleted file mode 100644 index 9873a78163..0000000000 --- a/bitmaps_xpm/viewlibs_icon.xpm +++ /dev/null @@ -1,385 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *viewlibs_icon_xpm[]; - -#else -const char * viewlibs_icon_xpm[] = { -"32 32 345 2", -" c None", -". c #0C0C0E", -"+ c #373747", -"@ c #434354", -"# c #5D5D71", -"$ c #7B7B8D", -"% c #848491", -"& c #66666C", -"* c #535353", -"= c #262626", -"- c #1A1A1C", -"; c #575768", -"> c #A4A4CE", -", c #BEBEFF", -"' c #BFBFFF", -") c #C9C9FF", -"! c #D4D4FF", -"~ c #DEDEFF", -"{ c #E8E8FF", -"] c #F2F2FF", -"^ c #9D9D9E", -"/ c #3D3D40", -"( c #C8C8DE", -"_ c #DADAFF", -": c #D0D0FF", -"< c #C6C6FF", -"[ c #BCBCFF", -"} c #C2C2FF", -"| c #BCBCEC", -"1 c #9393B0", -"2 c #E0E0FF", -"3 c #EBEBFF", -"4 c #F5F5FF", -"5 c #5A5A5A", -"6 c #292929", -"7 c #D9D9E1", -"8 c #ECECFF", -"9 c #E2E2FF", -"0 c #D8D8FF", -"a c #CDCDFF", -"b c #C3C3FF", -"c c #B1B1F4", -"d c #A2A2D3", -"e c #777790", -"f c #757588", -"g c #E2E2FE", -"h c #EDEDFF", -"i c #E1E1E8", -"j c #303030", -"k c #1C1C20", -"l c #3F3F4C", -"m c #4A4A57", -"n c #3F3F47", -"o c #222225", -"p c #5E5E5E", -"q c #FEFEFF", -"r c #F4F4FF", -"s c #EAEAFF", -"t c #CFCFF8", -"u c #85859B", -"v c #A3A3AA", -"w c #CCCCCE", -"x c #C7C7C7", -"y c #AFAFB0", -"z c #9898A1", -"A c #A5A5B5", -"B c #EFEFFF", -"C c #B1B1B4", -"D c #202025", -"E c #65657E", -"F c #9090BC", -"G c #ACACE7", -"H c #8585A2", -"I c #858590", -"J c #757582", -"K c #D7D7F5", -"L c #9A9AA2", -"M c #F7F7F7", -"N c #FCFCFF", -"O c #E7E7FF", -"P c #8C8C9B", -"Q c #AA927D", -"R c #9B693D", -"S c #EFEDEC", -"T c #979797", -"U c #FFFFFF", -"V c #F6F6F6", -"W c #DADADB", -"X c #ADADBC", -"Y c #6C6C6C", -"Z c #3F3F48", -"` c #BABADD", -" . c #B6B6E5", -".. c #7A7A92", -"+. c #8B8B96", -"@. c #EBEBEB", -"#. c #D7D7D9", -"$. c #89899B", -"%. c #C6C6DF", -"&. c #B4B4B7", -"*. c #F9F9FF", -"=. c #9D9DA3", -"-. c #E2DDD7", -";. c #BE6B22", -">. c #905D2F", -",. c #919191", -"'. c #AAAAAA", -"). c #7C4C22", -"!. c #896D55", -"~. c #898996", -"{. c #E7E7F2", -"]. c #3A3A3A", -"^. c #787881", -"/. c #B3B3C9", -"(. c #7D7D89", -"_. c #9F9FA4", -":. c #F8F8F8", -"<. c #EFEFEF", -"[. c #6B533D", -"}. c #514A46", -"|. c #6B6B7B", -"1. c #CECEE6", -"2. c #CFCFD0", -"3. c #F7F7FF", -"4. c #76767B", -"5. c #A4A4A4", -"6. c #A99F97", -"7. c #C86C1B", -"8. c #9F7550", -"9. c #E3E2E2", -"0. c #A99482", -"a. c #9A9693", -"b. c #646475", -"c. c #D3D3EF", -"d. c #C2C2C8", -"e. c #191919", -"f. c #515153", -"g. c #7E7E85", -"h. c #979798", -"i. c #806A56", -"j. c #8E6E52", -"k. c #906C4D", -"l. c #8F6846", -"m. c #8E643E", -"n. c #524336", -"o. c #775F49", -"p. c #D8D5D3", -"q. c #939399", -"r. c #C3C3DF", -"s. c #BABAC8", -"t. c #EAEAEB", -"u. c #C9C9C9", -"v. c #C0C0C9", -"w. c #8B8B93", -"x. c #AEAEB2", -"y. c #CABBAE", -"z. c #A26938", -"A. c #B3AEAA", -"B. c #A0A0A9", -"C. c #9393B3", -"D. c #CECEFD", -"E. c #ACACC9", -"F. c #E5E5FF", -"G. c #7E7E81", -"H. c #1E1E1E", -"I. c #DADADA", -"J. c #DFDFE8", -"K. c #58585A", -"L. c #533C28", -"M. c #ED7000", -"N. c #FF7800", -"O. c #9E591D", -"P. c #D2CDC9", -"Q. c #7C7C85", -"R. c #D9D9F5", -"S. c #AEAEB4", -"T. c #FEFEFE", -"U. c #CECEE3", -"V. c #9393A4", -"W. c #9595AF", -"X. c #A4A4CF", -"Y. c #B6B6F3", -"Z. c #D3D3FF", -"`. c #DDDDFF", -" + c #EDEDFA", -".+ c #464646", -"++ c #2D2D2D", -"@+ c #E0E0E0", -"#+ c #C9C9CC", -"$+ c #A8A8B0", -"%+ c #9A9A9D", -"&+ c #755436", -"*+ c #FC7700", -"=+ c #BF620F", -"-+ c #B1A59B", -";+ c #F4F4F4", -">+ c #7B7B87", -",+ c #DCDCF7", -"'+ c #B0B0B2", -")+ c #FAFAFF", -"!+ c #DBDBFF", -"~+ c #D1D1FF", -"{+ c #BBBBF8", -"]+ c #A3A3CB", -"^+ c #8B8BA3", -"/+ c #9999AB", -"(+ c #BBBBCA", -"_+ c #C9C9D2", -":+ c #232323", -"<+ c #5D5D5D", -"[+ c #8B8B92", -"}+ c #5C5B5B", -"|+ c #663B14", -"1+ c #8F7C6B", -"2+ c #8F7D6C", -"3+ c #61544B", -"4+ c #4C4C55", -"5+ c #AEAEBE", -"6+ c #DBDBDC", -"7+ c #E3E3FF", -"8+ c #8686A4", -"9+ c #656578", -"0+ c #5C5B6C", -"a+ c #545367", -"b+ c #5B5A71", -"c+ c #59586F", -"d+ c #535265", -"e+ c #565565", -"f+ c #29282E", -"g+ c #A6A6A6", -"h+ c #B4B4BA", -"i+ c #85858C", -"j+ c #BABABA", -"k+ c #877A6E", -"l+ c #917760", -"m+ c #907258", -"n+ c #8F6E50", -"o+ c #8E6949", -"p+ c #614B38", -"q+ c #6F5B4A", -"r+ c #9F9083", -"s+ c #BDBDC0", -"t+ c #AAAABF", -"u+ c #B1B1BA", -"v+ c #F2F2F2", -"w+ c #BDBDCE", -"x+ c #696878", -"y+ c #5A5970", -"z+ c #1A1A1D", -"A+ c #363636", -"B+ c #EAEAEA", -"C+ c #FDFDFF", -"D+ c #F2F2FC", -"E+ c #6E5F53", -"F+ c #CC6306", -"G+ c #D86A08", -"H+ c #948476", -"I+ c #6F6F74", -"J+ c #D2D2ED", -"K+ c #B3B3B6", -"L+ c #DDDCDF", -"M+ c #5B5A6B", -"N+ c #56556A", -"O+ c #3A3946", -"P+ c #232329", -"Q+ c #1F1F24", -"R+ c #1E1E22", -"S+ c #19191D", -"T+ c #686868", -"U+ c #F6F6FA", -"V+ c #77777E", -"W+ c #6E6E72", -"X+ c #EA6E00", -"Y+ c #F07100", -"Z+ c #7E6652", -"`+ c #F9F9F9", -" @ c #A0A0A6", -".@ c #7A7A8B", -"+@ c #ABABCC", -"@@ c #D1D1E8", -"#@ c #CACACB", -"$@ c #7E7E86", -"%@ c #363542", -"&@ c #131315", -"*@ c #B8B8B8", -"=@ c #F8F8FF", -"-@ c #A2A2AC", -";@ c #4F4F51", -">@ c #5F3F22", -",@ c #7A5738", -"'@ c #E2E2E2", -")@ c #8E8E97", -"!@ c #787893", -"~@ c #8B8ABA", -"{@ c #797892", -"]@ c #6D6C7E", -"^@ c #6C6B7B", -"/@ c #747381", -"(@ c #76757E", -"_@ c #656571", -":@ c #454555", -"<@ c #3E3E3E", -"[@ c #F3F3F3", -"}@ c #C8C8D1", -"|@ c #A4A4AF", -"1@ c #908F90", -"2@ c #79787F", -"3@ c #86869C", -"4@ c #747489", -"5@ c #646376", -"6@ c #58576C", -"7@ c #58576D", -"8@ c #27262F", -"9@ c #757575", -"0@ c #FBFBFF", -"a@ c #F3F3FF", -"b@ c #C4C4D5", -"c@ c #A1A1B4", -"d@ c #626271", -"e@ c #545369", -"f@ c #57566C", -"g@ c #56556B", -"h@ c #31313C", -"i@ c #161618", -"j@ c #C8C8C8", -"k@ c #EFEFF5", -"l@ c #797883", -"m@ c #5A596C", -"n@ c #504F62", -"o@ c #31313D", -"p@ c #212127", -"q@ c #050507", -"r@ c #1C1C21", -"s@ c #2F2F3B", -"t@ c #1A1A1E", -"u@ c #454545", -"v@ c #EDEDED", -"w@ c #6D6D76", -"x@ c #353541", -"y@ c #0C0C0F", -"z@ c #2D2D32", -"A@ c #555469", -"B@ c #24242B", -"C@ c #302F3B", -"D@ c #1C1B20", -" ", -" ", -" ", -" ", -" ", -" ", -" . + @ # $ % & * = ", -" - ; > , ' ) ! ~ { ] ^ ", -" / ( _ : < [ } | 1 2 3 4 5 ", -" 6 7 8 9 0 a b c d e f g h i j ", -" k l m n o p q r s 2 t u v w x y z A B C ", -" D E F G H I J K L M N ] O P Q R S T U V W X ] Y ", -" Z ` ...+.@.U #.$.%.&.U *.B =.-.;.>.,.'.).!.~.s {.]. ", -" ^./.(._.:.U U <.[.}.|.1.2.U 3.4.5.6.7.8.9.0.a.b.c.h d.e. ", -" f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.B G. ", -"H.I.J.K.L.M.N.N.O.P.U U U Q.R.S.T.N ] U.V.W.X.Y., ) Z.`.O +.+ ", -"++@+#+$+%+&+*+=+-+U U U U ;+>+,+'+U )+B F.!+~+< [ {+]+^+/+(+_+:+", -" <+U )+[+}+|+1+U U U U U 2+3+4+5+6+U 3.h 7+0 8+9+0+a+b+c+d+e+f+", -" g+U h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+U 4 w+x+c+b+b+b+b+b+b+y+z+", -" A+B+C+D+4.E+F+N.N.G+H+U U U I+J+K+U L+M+b+b+N+O+P+Q+R+k S+ ", -" T+U U+V+W+i.X+Y+Z+U `+ @.@+@~ @@#@$@b+b+%@&@ ", -" *@U =@-@;@>@,@'@)@!@~@{@]@^@/@(@_@b+:@ ", -" <@[@q }@|@1@2@3@4@5@6@b+b+b+b+y+7@b+8@ ", -" 9@U 0@a@b@c@d@b+b+b+b+e@f@b+b+g@h@i@ ", -" j@U k@l@m@b+b+n@o@p@ q@r@s@t@ ", -" u@v@w@y+b+y+x@y@ ", -" z@f@b+A@B@ ", -" t@C@D@ ", -" ", -" ", -" ", -" "}; -#endif diff --git a/bitmaps_xpm/web_support.xpm b/bitmaps_xpm/web_support.xpm deleted file mode 100644 index fcd6aba2e2..0000000000 --- a/bitmaps_xpm/web_support.xpm +++ /dev/null @@ -1,166 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *web_support_xpm[]; - -#else -const char * web_support_xpm[] = { -"16 16 140 2", -" c None", -". c #22345B", -"+ c #273C68", -"@ c #263C68", -"# c #253A64", -"$ c #233760", -"% c #000000", -"& c #F1EDED", -"* c #FAF4F2", -"= c #E1DFE6", -"- c #B5C2D9", -"; c #D9D3DD", -"> c #89A9CA", -", c #22355D", -"' c #243962", -") c #E5E5EB", -"! c #BDD1E7", -"~ c #83ADD7", -"{ c #8BB6DB", -"] c #BBD1E4", -"^ c #8FA8CE", -"/ c #3E76BA", -"( c #325DA1", -"_ c #304975", -": c #1F3054", -"< c #273D6A", -"[ c #8EBAD8", -"} c #B1D5EA", -"| c #D3E6F1", -"1 c #C5D9EA", -"2 c #E8F0F5", -"3 c #D0DFEC", -"4 c #86ABD2", -"5 c #8CADD1", -"6 c #96B2D2", -"7 c #5378A5", -"8 c #1D2D4E", -"9 c #85ABBF", -"0 c #7EB6DD", -"a c #9DC8E5", -"b c #DAE8F2", -"c c #E9F1F6", -"d c #F0F4F7", -"e c #DDE8F0", -"f c #B9D2E4", -"g c #587CB0", -"h c #436BA6", -"i c #4A6F9E", -"j c #324E82", -"k c #15213A", -"l c #87B6D1", -"m c #C7DEED", -"n c #9AC1E0", -"o c #8999A7", -"p c #497299", -"q c #2D3A49", -"r c #0C0C0C", -"s c #5C9AC6", -"t c #9FC6E4", -"u c #82ADD5", -"v c #8A8993", -"w c #52667A", -"x c #767371", -"y c #D8D5D1", -"z c #F2F1ED", -"A c #F2F1EB", -"B c #E7E4DE", -"C c #BAB7B5", -"D c #646361", -"E c #83B1CF", -"F c #8ABCDF", -"G c #87888C", -"H c #E8A291", -"I c #F0D2C7", -"J c #E8E5E1", -"K c #E4E3DF", -"L c #ECEBE7", -"M c #EDEAE6", -"N c #E38C74", -"O c #C4D2D8", -"P c #BBD6EA", -"Q c #C9DBE9", -"R c #6D84A1", -"S c #E8B1A5", -"T c #F0AA97", -"U c #D67D69", -"V c #C9BBB4", -"W c #B4B3AD", -"X c #C0BEB7", -"Y c #E1E0DA", -"Z c #E8C9BF", -"` c #E4512F", -" . c #678493", -".. c #DDEAF2", -"+. c #BCD6E7", -"@. c #65696D", -"#. c #51504E", -"$. c #F1A998", -"%. c #D76348", -"&. c #943019", -"*. c #645551", -"=. c #1F1E1E", -"-. c #903F2D", -";. c #EA7B61", -">. c #374D79", -",. c #89AEC3", -"'. c #C0D1E0", -"). c #42484F", -"!. c #E6E2E1", -"~. c #DEA191", -"{. c #BA4429", -"]. c #3B3938", -"^. c #141E2E", -"/. c #263B61", -"(. c #1C2C4B", -"_. c #C4624B", -":. c #3D527C", -"<. c #92B2C6", -"[. c #D0CFCB", -"}. c #A68E85", -"|. c #45597D", -"1. c #355580", -"2. c #243961", -"3. c #21355B", -"4. c #394C75", -"5. c #6377A2", -"6. c #F3F0EA", -"7. c #D4D1CF", -"8. c #B1AEA8", -"9. c #3E597E", -"0. c #192948", -"a. c #1D2E50", -"b. c #E7E2DE", -"c. c #DDDBD8", -"d. c #CBCAC6", -"e. c #263554", -"f. c #EAE6E3", -"g. c #E3BAAE", -"h. c #9B5B4C", -"i. c #D39382", -" ", -" . + + + @ # ", -" $ % & * = - ; > , ' ", -" + ) ! ~ { ] ^ / ( _ : ", -" < [ } | 1 2 3 4 5 6 7 8 ", -"% 9 0 a b c d e f g h i j k ", -"% l m n o % % p q % % % % % r ", -"% s t u % v w % x y z A B C D ", -"% E F 1 % G % H I J K J L M N ", -"% O P Q R % S T U V W X Y Z ` ", -"% ...+.@.#.$.%.&.*.=.% #.-.;. ", -" >.,.'.).!.~.{.].^./., (.% _. ", -" :. <.% z [.}.].|.1.2.3. ]. ", -" 4.5.% 6.7.8.% 9.0.a. % ", -" % b.c.d.].e. ]. ", -" % C f.g.h.% % i. " -}; - -#endif diff --git a/bitmaps_xpm/width_net.xpm b/bitmaps_xpm/width_net.xpm deleted file mode 100644 index ba9b810f95..0000000000 --- a/bitmaps_xpm/width_net.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* width_net_xpm[]; -#else -const char * width_net_xpm[] = { -"16 16 6 1", -" c None", -"! c black", -"# c #3CBA00", -"$ c #BABA00", -"% c #FF0000", -"& c #00BA00", -" ! ## ", -" ! $$ ", -" ! ! ! %%%$$$$%%", -" !!!!! %%%$$$$%%", -" !!! %% $$ ", -" !!!!! %% ## ", -" &%%&&##&&&", -" &%%&&##&&&", -" !!!!! %% ## ", -" !!! %% ## ", -" !!!!! %% ## ", -" ! ! ! %% ## ", -" ! %% ## ", -" ! %% ## ", -" ! %% ## ", -" %% ##"}; - -#endif diff --git a/bitmaps_xpm/width_segment.xpm b/bitmaps_xpm/width_segment.xpm deleted file mode 100644 index e351af0007..0000000000 --- a/bitmaps_xpm/width_segment.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char *width_segment_xpm[]; - -#else -const char * width_segment_xpm[] = { -"16 16 3 1", -" c None", -"! c black", -"# c #00BA00", -" ! ", -" ! ", -" ! ! ! ", -" !!!!! ", -" !!! ", -" !!!!! ", -" ##########", -" ##########", -" !!!!! ", -" !!! ", -" !!!!! ", -" ! ! ! ", -" ! ", -" ! ", -" ! ", -" "}; -#endif diff --git a/bitmaps_xpm/width_track.xpm b/bitmaps_xpm/width_track.xpm deleted file mode 100644 index 6ee5f2e479..0000000000 --- a/bitmaps_xpm/width_track.xpm +++ /dev/null @@ -1,33 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* width_track_xpm[]; -#else -const char * width_track_xpm[] = { -"16 16 9 1", -" c None", -". c #000000", -"+ c #007D00", -"@ c #007100", -"# c #004D00", -"$ c #007A00", -"% c #006100", -"& c #002B00", -"* c #006F00", -" . ", -" . ", -" . . . ", -" ..... ", -" ... ", -" ..... ", -" +++++ ", -" +++++ ", -" ..... @++ ", -" ... #++ ", -" ..... $+ ", -" . . . %++ ", -" . &+++++", -" . *++++", -" . ", -" "}; - -#endif diff --git a/bitmaps_xpm/width_track_via.xpm b/bitmaps_xpm/width_track_via.xpm deleted file mode 100644 index e9894fc9bc..0000000000 --- a/bitmaps_xpm/width_track_via.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* width_track_via_xpm[]; -#else -const char * width_track_via_xpm[] = { -"16 16 10 1", -" c None", -"! c black", -"# c #FF0000", -"$ c #007D00", -"% c #007100", -"& c #004D00", -"' c #007A00", -"( c #006100", -") c #002B00", -"* c #006F00", -" ! ### ", -" ! # # ", -" ! ! ! # # ", -" !!!!! # # ", -" !!! ### ", -" !!!!! ", -" $$$$$ ", -" $$$$$ ", -" !!!!! %$$ ", -" !!! &$$ ", -" !!!!! '$ ", -" ! ! ! ($$ ", -" ! )$$$$$", -" ! *$$$$", -" ! ", -" "}; - -#endif diff --git a/bitmaps_xpm/width_vias.xpm b/bitmaps_xpm/width_vias.xpm deleted file mode 100644 index 42a27800ef..0000000000 --- a/bitmaps_xpm/width_vias.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char* width_vias_xpm[]; -#else -const char * width_vias_xpm[] = { -"16 16 5 1", -" c None", -"! c black", -"# c #FF0000", -"$ c #0046D9", -"% c #00FF00", -" ! ### ", -" ! # # ", -" ! ! ! # # ", -" !!!!! # # ", -" !!! ### ", -" !!!!! ", -" ", -" $$$ ", -" !!!!!$ $ ", -" !!! $ $ ", -" !!!!!$ $ %% ", -" ! ! ! $$$ % % ", -" ! % %", -" ! % %", -" ! % % ", -" %% "}; - -#endif diff --git a/bitmaps_xpm/window_close.xpm b/bitmaps_xpm/window_close.xpm deleted file mode 100644 index 6493afc754..0000000000 --- a/bitmaps_xpm/window_close.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *window_close_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"O c #DE7070", -"& c #BC9392", -"o c #BF9D9C", -"X c #DC6464", -"* c #CA4545", -"% c #D45051", -"- c #C03433", -"+ c #E88080", -"= c #C43C3C", -". c #C2A6A6", -"; c #BC8684", -": c #B47274", -" c None", -"$ c #BFB0AF", -"@ c #C55A5B", -"# c #DD5A59", -/* pixels */ -" .X. .X. ", -" oO+O. .O+Oo ", -"oOOO+O. .O+OOOo", -"@OXXXOO..OOXXXO@", -".XO#XXOXXOXX#OX.", -" $@O###OO###O@$ ", -" $@X######X@$ ", -" $@X%%%%X@$ ", -" &@%%%%%%@& ", -" &%%******%%& ", -" o*****%%*****o ", -"o**===****===**o", -"==---==.&*=---==", -"&=---=. ;=---=.", -" &---o :--=$ ", -" &-o @* " -}; diff --git a/bitmaps_xpm/zip.xpm b/bitmaps_xpm/zip.xpm deleted file mode 100644 index 97410af391..0000000000 --- a/bitmaps_xpm/zip.xpm +++ /dev/null @@ -1,40 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * zip_xpm[]; -#else -const char * zip_xpm[] = { -"16 16 16 1", -" c none", -". c #060304", -"X c #1a1804", -"o c #074d04", -"O c #04ca04", -"+ c #2f2704", -"@ c #047e04", -"# c #046704", -"$ c #572704", -"% c #9f4904", -"& c #7d3904", -"* c #049a04", -"= c #fc7604", -"- c #d56204", -"; c #fcb472", -": c #cc925c", -" . .X. ", -" ...oO+. ", -" o@oOOo. ", -" ..oOOO#. ", -" ...X$oOOOX. ", -" ..$%%&#OOO*.. ", -" .%$&%&o#o&&$.. ", -" .==&&&$$%$$%%..", -" .===-$$&%----$.", -" .====;&------&.", -" .====;$%--&$.. ", -" .====;%X$.... ", -" .$-==;%$..$$. ", -" ...&=;%%&&X.. ", -" ..X:&$.... ", -" ..... "}; -#endif - diff --git a/bitmaps_xpm/zip_tool.xpm b/bitmaps_xpm/zip_tool.xpm deleted file mode 100644 index 409569db17..0000000000 --- a/bitmaps_xpm/zip_tool.xpm +++ /dev/null @@ -1,41 +0,0 @@ -/* XPM */ -#ifndef XPMMAIN -extern const char * zip_tool_xpm[]; -#else -const char *zip_tool_xpm[] = { -/* width height num_colors const chars_per_pixel */ -"16 15 16 1", -"A c #040604", -"B c #9C9A04", -"C c #FCCE9C", -"D c #DCDEDC", -"E c #FCFE9C", -"F c #FCFAFC", -"G c #0402FC", -"H c #CCCE64", -"I c #FCFECC", -"J c #FCFEFC", -"K c #150016", -"L c #000000", -"M c #20CC00", -"N c #1CEB00", -"O c #161200", -"P c #000000", -"FFFFFFGGGGGGGGGG", -"FFBBBBGJJJJJJJJG", -"FBDIIEGJJGGGGGJG", -"BHHHHHGJJJJJGGJG", -"BIIIIIGJJJJGGJJG", -"BIEEEEGJJJGGJJJG", -"BIEEEEGJJGGJJJJG", -"BIEEEEGJJGGGGGJG", -"BIEEEEGJJJJJJJJG", -"BIEEEEGGGGGGGGGG", -"BIEEECECECECCHAF", -"BICECECECECCCHAF", -"BHHHHHHHHHHHHHAF", -"FAAAAAAAAAAAAAAF", -"FFFFFFFFFFFFFFFF" -}; -#endif - diff --git a/bitmaps_xpm/zoom.xpm b/bitmaps_xpm/zoom.xpm deleted file mode 100644 index cda574d842..0000000000 --- a/bitmaps_xpm/zoom.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"X c #989392", -"o c #7D7979", -"$ c #A3D1FB", -"+ c #989EA2", -"= c #F6AD3E", -"& c #F4C284", -" c None", -"% c #2E2D2E", -"O c #656566", -"- c #FCDB4E", -"@ c #49494B", -"; c #BA4D36", -": c #F07716", -"# c #CAE5FB", -". c #BDBBBC", -"* c #C16854", -/* pixels */ -" .XoOOOX ", -" .OX +@O. ", -".O ##### @O ", -"XX$####$$+%X ", -"O$$$$$$$$$@O ", -"O#$$$$$$$$o% ", -"O##$$$$$##O% ", -"O ########@O ", -"+o#######X%+ ", -" oX#####+o@X. ", -" .oO+.+O@@.&*. ", -" +Xooo.X=--*. ", -" .;:=-*.", -" .;:=-*", -" .;:=:", -" .*;o" -}; diff --git a/bitmaps_xpm/zoom_area.xpm b/bitmaps_xpm/zoom_area.xpm deleted file mode 100644 index bb35209862..0000000000 --- a/bitmaps_xpm/zoom_area.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_area_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -" c #6C0A84", -"X c #7A6F6D", -". c #9B9A9C", -"% c #C0DFFB", -"# c #545456", -"; c #FCD046", -"* c #343334", -"= c #F4C284", -"O c None", -"$ c #2C5630", -"- c #BC5040", -": c #FC760C", -"+ c #978980", -"& c #D4EAFB", -"o c #0C8922", -"@ c #BBC7D3", -/* pixels */ -" .XXXX.oOoO ", -" +@@@.#$OoO ", -" %&&&%@##OO ", -"+.%%%%%%%.*.OOOO", -"X@%%%%%%%%##OOoo", -"#%%%%%%%%%X*OOOO", -"#&%%%%%%%&X*OOoo", -"X@&&%%%&&%*#OOOO", -".X&&&&&&&.*.OOoo", -"o$.%&&&&.X#.OOOO", -"OO+X.O.X*#O=-Ooo", -"ooO.+XX+O.+;;-OO", -"OOOOOOOOOO-:;;oo", -" OOOOOOOO-: ", -" OoOoOoOoOo ", -" OoOoOoOoOo " -}; diff --git a/bitmaps_xpm/zoom_auto.xpm b/bitmaps_xpm/zoom_auto.xpm deleted file mode 100644 index cc6ba6f67a..0000000000 --- a/bitmaps_xpm/zoom_auto.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_auto_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"@ c #A1BDDC", -": c #74726C", -"* c #739AC8", -"% c #5D87BC", -"= c #787A78", -"; c #585955", -" c None", -"& c #8EB0D2", -"X c #8B918E", -"O c #C0D2E1", -"$ c #537EB4", -"+ c #D9E0E7", -"# c #85A6CD", -"o c #B4BBBD", -"- c #A0A29C", -". c #898A86", -/* pixels */ -" ..X..... ", -" X.oO+++o.. ", -" .XO+@@@@O+X. ", -"..O#$%##%$#OX. ", -".o+$ &% $Oo. ", -"XO@% %&&$ %@+. ", -"X+&#$&@@#**&+X ", -".+&***@@*$%&+. ", -"XO@$ $**$ $@OX ", -".o+$ $* $+o. ", -".X+@$%##$%&+.= ", -" .X+++O+O++--;; ", -" .Xo++++o..oo;;", -" .XXXXXX:;=.o;", -" ;;=-;", -" ;;;;" -}; diff --git a/bitmaps_xpm/zoom_center_on_screen.xpm b/bitmaps_xpm/zoom_center_on_screen.xpm deleted file mode 100644 index 1fe0baa412..0000000000 --- a/bitmaps_xpm/zoom_center_on_screen.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_center_on_screen_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"& c #C6E2FA", -"$ c #3D3D40", -"@ c #768AE3", -"% c #85635C", -"; c #BC4828", -"= c #F4C284", -" c None", -"X c #737576", -"# c #6D73C3", -"* c #0A16D2", -". c #94979C", -"O c #A1A6AA", -"+ c #9E908B", -": c #F07716", -"- c #FCCB43", -"o c #4C509C", -/* pixels */ -" .XooX. ", -" OX+ @#.$% ", -" X &&@@& $% ", -"+.&&&@@&&O$+ ", -"X&&&&@@&&&$% ", -"%&&&&@@&&&X$ ", -"****************", -"X &&&@@&&&$% ", -".X&&&@@&&.$O ", -" X.&&@@&OX%+ ", -" XX.##X$$ =% ", -" O+ooXO++--% ", -" ## ;:--% ", -" ## ;:--%", -" ## ;:-:", -" ## %;+" -}; diff --git a/bitmaps_xpm/zoom_fit_in_page.xpm b/bitmaps_xpm/zoom_fit_in_page.xpm deleted file mode 100644 index 4cf254ba03..0000000000 --- a/bitmaps_xpm/zoom_fit_in_page.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_fit_in_page_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"# c #323432", -"@ c #9D9187", -"X c #6E6A6A", -"& c #121322", -"O c #595FCC", -" c #1521D7", -"$ c #9A9EB7", -"= c #F4C284", -"* c #6C727C", -"o c None", -"- c #D65A1F", -". c #545056", -"+ c #282EA4", -"% c #CAE5FB", -": c #B22407", -"; c #FCCB43", -/* pixels */ -" ..X..XooO O", -" +.@ooo@.#$o ", -" .o%%%%%o.&$ ", -".@%%%%%%%$#& ", -".o%%%%%%%%.& O$O", -".%%o%%%o%%*&Oooo", -".%%%%%%%%%X&oooo", -".o%%%%%%%%#&oooo", -"**%%%%%%%@&@oooo", -"o.@%%%%%$*.Xoooo", -"o$.X$$$X#.o=-ooo", -"$o$+.X..@X@;;-oo", -" O $oooo:-;;-o", -" $oooooo:-;;-", -" Ooooooooo:-;-", -"O $oooooooo::-" -}; diff --git a/bitmaps_xpm/zoom_in.xpm b/bitmaps_xpm/zoom_in.xpm deleted file mode 100644 index a3c60fedb1..0000000000 --- a/bitmaps_xpm/zoom_in.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_in_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"# c #2D2D2D", -"@ c #828FB4", -"O c #958B86", -". c #6D6E8C", -"% c #0A0B88", -"+ c #A8CFF7", -"* c #F4C284", -" c None", -"$ c #CCE6FA", -"o c #9FA7B5", -"& c #3C3EA4", -"X c #585859", -"; c #B23014", -"= c #B45644", -"- c #FCCB43", -": c #E1651E", -/* pixels */ -" .XXXX. ", -" oXO + @X#o ", -" X $$ +$ X# ", -".O+$$%.++o#. ", -"X++++%.+++X# ", -"X$o%%%%%&+.# ", -"X$+..%&.@$.# ", -"X+$$$%.$$$## ", -"O.$$$&@$$O#O ", -" XO$$$$$o.XO ", -" oX.ooo.#X *= ", -" O.XXXoOO--= ", -" ;:--= ", -" ;:--=", -" ;:-:", -" ;;=" -}; diff --git a/bitmaps_xpm/zoom_out.xpm b/bitmaps_xpm/zoom_out.xpm deleted file mode 100644 index 69da25a95e..0000000000 --- a/bitmaps_xpm/zoom_out.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_out_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"$ c #2C3EA4", -"X c #736E6F", -"% c #3443A6", -"@ c #2A2B2A", -"O c #989EA3", -"& c #050785", -"# c #CBE5FB", -"* c #F4C284", -" c None", -"o c #515252", -". c #BDBCBD", -"; c #B23014", -"+ c #9C9089", -"= c #B45644", -"- c #FCCB43", -": c #E1651E", -/* pixels */ -" .XXXooX ", -" Oo+ Oo@. ", -".o.##### o@ ", -"X+#######O@X ", -"o ########o@ ", -"o##$%%%$%#X@ ", -"o##&&&&&&#X@ ", -"o ########@@ ", -"+X#######O@+ ", -" o+#####OXoX. ", -" .XXO.OX@o.*=. ", -" +XXXXOX+--=. ", -" .;:--=.", -" .;:--=", -" .;:-:", -" .;;=" -}; diff --git a/bitmaps_xpm/zoom_redraw.xpm b/bitmaps_xpm/zoom_redraw.xpm deleted file mode 100644 index 68145cfb1e..0000000000 --- a/bitmaps_xpm/zoom_redraw.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_redraw_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"$ c #7195C3", -"X c #2E5893", -": c #3E6BA4", -"- c #ACC0DC", -"O c #4774AE", -"o c #3665A0", -"@ c #597EAF", -" c None", -"# c #2F5E9C", -"= c #3C6AAC", -"+ c #6287B4", -". c #244B87", -"; c #5482BC", -"* c #A1B8D4", -"% c #81A0C9", -"& c #8EA9CE", -/* pixels */ -" ........ ..", -" ..XoO+@#.. ...", -" ..#oO+$%&%X....", -" .X#...#+&**@&..", -" ..X#=...o&*--..", -" ..$=o ..&%-..", -" .o%;o ..@-*-..", -" . ..XXX#..", -" .............. ", -" .--*+.. %$..", -" .-&&.. o=$O..", -" .-*-%X.. o=OX. ", -" .*+**%@X..X... ", -" .o.X$%$@O###.. ", -" .. ..X:O=##.. ", -" .. ........ " -}; diff --git a/bitmaps_xpm/zoom_selection.xpm b/bitmaps_xpm/zoom_selection.xpm deleted file mode 100644 index 46bc0be5a9..0000000000 --- a/bitmaps_xpm/zoom_selection.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -const char *zoom_selection_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 16 16 1", -"+ c #9D9DA9", -"& c #4C2C2F", -"# c #66535A", -"% c #640F10", -"; c #B7503A", -"@ c #464647", -"O c #816964", -"* c #F4C284", -" c None", -"= c #D88648", -"X c #958D8C", -"$ c #CCE5FA", -". c #BABABF", -": c #FC760C", -"o c #77747A", -"- c #FCCB43", -/* pixels */ -" .XoOOOX ", -" .OX +@#. ", -".O.$$+.$ ## ", -"XX$+%#&&$+&X ", -"O $oo$ %+$@# ", -"#$$$$$@% $o& ", -"#$$$$#% $$O@ ", -"O $$$&+$$$@# ", -"+o$$$O.$$X&+ ", -" oX$$#+$+o#X. ", -" .oO+.+O@@.*O. ", -" +XooX+X=--O. ", -" .;:--O.", -" .;:--O", -" .;:-=", -" .;;X" -}; diff --git a/common/basicframe.cpp b/common/basicframe.cpp index a322e734d0..d5d96c10e0 100644 --- a/common/basicframe.cpp +++ b/common/basicframe.cpp @@ -517,13 +517,6 @@ void EDA_BASE_FRAME::CopyVersionInfoToClipboard( wxCommandEvent& event ) tmp << wxT( "Options: " ); - tmp << wxT( "USE_PNG_BITMAPS=" ); -#ifdef USE_PNG_BITMAPS - tmp << wxT( "ON\n" ); -#else - tmp << wxT( "OFF\n" ); -#endif - tmp << wxT( " KICAD_GOST=" ); #ifdef KICAD_GOST tmp << wxT( "ON\n" ); diff --git a/common/bitmap.cpp b/common/bitmap.cpp index ed886ba87d..25cb8ada6b 100644 --- a/common/bitmap.cpp +++ b/common/bitmap.cpp @@ -30,8 +30,6 @@ #include -#if defined(USE_PNG_BITMAPS) - wxBitmap KiBitmap( BITMAP_DEF aBitmap ) { wxMemoryInputStream is( aBitmap->png, aBitmap->byteCount ); @@ -45,20 +43,3 @@ wxBitmap* KiBitmapNew( BITMAP_DEF aBitmap ) return new wxBitmap( wxImage( is, wxBITMAP_TYPE_PNG, -1 ), -1 ); } - -#else - -// temporary during migration to PNG. Soon the argument to these calls becomes the -// opaque BITMAP_DEF&. - -wxBitmap KiBitmap( BITMAP_DEF aBitmap ) -{ - return wxBitmap( aBitmap ); -} - -wxBitmap* KiBitmapNew( BITMAP_DEF aBitmap ) -{ - return new wxBitmap( aBitmap ); -} - -#endif diff --git a/cvpcb/cvpcb.rc b/cvpcb/cvpcb.rc index 69b038bd17..4c06802a27 100644 --- a/cvpcb/cvpcb.rc +++ b/cvpcb/cvpcb.rc @@ -1,6 +1,2 @@ -#ifdef USE_PNG_BITMAPS icon_cvpcb ICON "../bitmaps_png/icons/icon_cvpcb.ico" -#else -icon_cvpcb ICON "../bitmaps_xpm/icons/icon_cvpcb.ico" -#endif #include "wx/msw/wx.rc" diff --git a/eeschema/eeschema.rc b/eeschema/eeschema.rc index af1d25751f..6c12ddd863 100644 --- a/eeschema/eeschema.rc +++ b/eeschema/eeschema.rc @@ -1,7 +1,3 @@ -#ifdef USE_PNG_BITMAPS icon_eeschema ICON "../bitmaps_png/icons/icon_eeschema.ico" -#else -icon_eeschema ICON "../bitmaps_xpm/icons/icon_eeschema.ico" -#endif #include "wx/msw/wx.rc" diff --git a/gerbview/gerbview.rc b/gerbview/gerbview.rc index 9a6be7986e..05e745b8f0 100644 --- a/gerbview/gerbview.rc +++ b/gerbview/gerbview.rc @@ -1,7 +1,3 @@ -#ifdef USE_PNG_BITMAPS icon_gerbview ICON "../bitmaps_png/icons/icon_gerbview.ico" -#else -icon_gerbview ICON "../bitmaps_xpm/icons/icon_gerbview.ico" -#endif #include "wx/msw/wx.rc" diff --git a/include/bitmaps.h b/include/bitmaps.h index d7da0aaafd..8a5d4242cb 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -10,8 +10,6 @@ class wxBitmap; // only to define wxBitmap #include -#if defined(USE_PNG_BITMAPS) - #define VTOOLBAR_WIDTH 29 #define TOOL_SIZE 26 @@ -27,17 +25,6 @@ struct BITMAP_OPAQUE // declared as single element _array_, so its name assigns to pointer #define EXTERN_BITMAP(x) extern const BITMAP_OPAQUE x[1]; -#else // XPM - -#define VTOOLBAR_WIDTH 26 -#define TOOL_SIZE 23 - -// temporary during migration to KiBitmap() and KiBitmapNew(). -typedef const char* BITMAP_OPAQUE; - -#define EXTERN_BITMAP(x) extern const char* x[]; - -#endif /// a BITMAP_DEF is really a const pointer to an opaque /// structure. So you should never need to use 'const' with it. diff --git a/kicad/kicad.rc b/kicad/kicad.rc index 0978d7d981..578d82c465 100644 --- a/kicad/kicad.rc +++ b/kicad/kicad.rc @@ -1,7 +1,3 @@ -#ifdef USE_PNG_BITMAPS icon_kicad ICON "../bitmaps_png/icons/icon_kicad.ico" -#else -icon_kicad ICON "../bitmaps_xpm/icons/icon_kicad.ico" -#endif #include "wx/msw/wx.rc" diff --git a/pcb_calculator/pcb_calculator.rc b/pcb_calculator/pcb_calculator.rc index f214b0e672..2695e79589 100644 --- a/pcb_calculator/pcb_calculator.rc +++ b/pcb_calculator/pcb_calculator.rc @@ -1,7 +1,3 @@ -#ifdef USE_PNG_BITMAPS icon_pcbcalculator ICON "../bitmaps_png/icons/icon_pcbcalculator.ico" -#else -icon_pcbcalculator ICON "../bitmaps_xpm/icons/icon_pcbcalculator.ico" -#endif #include "wx/msw/wx.rc" diff --git a/pcbnew/pcbnew.rc b/pcbnew/pcbnew.rc index d993dfb98c..f568bb0391 100644 --- a/pcbnew/pcbnew.rc +++ b/pcbnew/pcbnew.rc @@ -1,7 +1,3 @@ -#ifdef USE_PNG_BITMAPS icon_pcbnew ICON "../bitmaps_png/icons/icon_pcbnew.ico" -#else -icon_pcbnew ICON "../bitmaps_xpm/icons/icon_pcbnew.ico" -#endif #include "wx/msw/wx.rc" From 961b408f10fbe6ca1a40fc72a43e6152e6a54226 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Sat, 7 Apr 2012 14:05:56 -0400 Subject: [PATCH 50/68] Pcbnew s-expression file format changes. * Save dialog now supports saving boards to new file format. * Add CMake option to build s-expression file save. * Add check to main CMakeList.txt file to make sure nanometers are enables when the new file format is built. * Minor tweaks to object format functions for improved output. * Rename kicad_plugin.h/cpp to legacy_plugin.h/cpp. --- CMakeLists.txt | 10 +- CMakeModules/config.h.cmake | 11 +- common/CMakeLists.txt | 10 +- common/base_struct.cpp | 28 +- common/wildcards_and_files_ext.cpp | 3 +- common/worksheet.cpp | 20 +- gerbview/export_to_pcbnew.cpp | 2 +- include/wildcards_and_files_ext.h | 1 + pcbnew/class_board.cpp | 92 +- pcbnew/class_board_item.cpp | 2 +- pcbnew/class_drawsegment.cpp | 24 +- pcbnew/class_module.cpp | 46 +- pcbnew/class_netclass.cpp | 22 +- pcbnew/class_pad.cpp | 33 +- pcbnew/class_pcb_text.cpp | 6 +- pcbnew/class_text_mod.cpp | 4 +- pcbnew/class_track.cpp | 10 +- pcbnew/class_zone.cpp | 45 +- pcbnew/files.cpp | 54 +- pcbnew/io_mgr.cpp | 27 +- pcbnew/io_mgr.h | 29 +- pcbnew/ioascii.cpp | 2 +- pcbnew/kicad_plugin.cpp | 3739 +--------------------------- pcbnew/kicad_plugin.h | 305 +-- pcbnew/legacy_plugin.cpp | 3682 +++++++++++++++++++++++++++ pcbnew/legacy_plugin.h | 240 ++ 26 files changed, 4339 insertions(+), 4108 deletions(-) create mode 100644 pcbnew/legacy_plugin.cpp create mode 100644 pcbnew/legacy_plugin.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e515314b7..20a86c8d9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,9 @@ set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules) # reports. # +option(USE_PCBNEW_SEXPR_FILE_FORMAT + "Use s-expression Pcbnew file format support (default OFF)." ) + option(USE_NEW_PCBNEW_LOAD "use new plugin support for legacy file format" ON) option(USE_NEW_PCBNEW_SAVE "use new plugin support for legacy file format" ON) option(USE_PCBNEW_NANOMETRES @@ -68,7 +71,12 @@ else (KICAD_STABLE_VERSION ) endif(KICAD_TESTING_VERSION ) endif(KICAD_STABLE_VERSION ) - +# Nanometers must be enabled when USE_PCBNEW_SEXPR_FILE_FORMAT=ON. +if( USE_PCBNEW_SEXPR_FILE_FORMAT AND NOT USE_PCBNEW_NANOMETRES ) + set( TMP "The Pcbnew s-expression file format requires nano-meter internal units to be " ) + set( TMP "${TMP} enabled using -DUSE_PCBNEW_NANOMETRES=ON." ) + message( FATAL_ERROR ${TMP} ) +endif( USE_PCBNEW_SEXPR_FILE_FORMAT AND NOT USE_PCBNEW_NANOMETRES ) #================================================ # Set flags for GCC. diff --git a/CMakeModules/config.h.cmake b/CMakeModules/config.h.cmake index 95c5155d68..90e656c470 100644 --- a/CMakeModules/config.h.cmake +++ b/CMakeModules/config.h.cmake @@ -57,13 +57,14 @@ #cmakedefine USE_NEW_PCBNEW_LOAD #cmakedefine USE_NEW_PCBNEW_SAVE -#cmakedefine USE_PCBNEW_NANAMETERS +#cmakedefine USE_PCBNEW_NANOMETRES +#cmakedefine USE_PCBNEW_SEXPR_FILE_FORMAT -/// The file format revision of the *.brd file created by this build -#if defined(KICAD_NANOMETRE) -#define BOARD_FILE_VERSION 2 +/// The legacy file format revision of the *.brd file created by this build +#if defined(USE_PCBNEW_NANOMETRES) +#define LEGACY_BOARD_FILE_VERSION 2 #else -#define BOARD_FILE_VERSION 1 +#define LEGACY_BOARD_FILE_VERSION 1 #endif #endif // CONFIG_H_ diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 225f66ccc4..b42c2004f5 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -118,8 +118,14 @@ set(PCB_COMMON_SRCS dialogs/dialog_page_settings.cpp ) -if ( USE_NEW_PCBNEW_LOAD OR USE_NEW_PCBNEW_SAVE ) - set( PCB_COMMON_SRCS ${PCB_COMMON_SRCS} ../pcbnew/item_io.cpp ../pcbnew/io_mgr.cpp ../pcbnew/kicad_plugin.cpp ) +if( USE_NEW_PCBNEW_LOAD OR USE_NEW_PCBNEW_SAVE ) + set( PCB_COMMON_SRCS + ${PCB_COMMON_SRCS} + ../pcbnew/item_io.cpp + ../pcbnew/io_mgr.cpp + ../pcbnew/legacy_plugin.cpp + ../pcbnew/kicad_plugin.cpp + ) else() set( PCB_COMMON_SRCS ${PCB_COMMON_SRCS} ../pcbnew/item_io.cpp ) endif() diff --git a/common/base_struct.cpp b/common/base_struct.cpp index 50d8c61df6..be2fb8465f 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -574,12 +574,12 @@ void EDA_TEXT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControl throw( IO_ERROR ) { aFormatter->Print( aNestLevel, "(text %s (at %s", - EscapedUTF8( m_Text ).c_str(), FormatBIU( m_Pos ).c_str() ); + aFormatter->Quotew( m_Text ).c_str(), FormatBIU( m_Pos ).c_str() ); if( m_Orient != 0.0 ) - aFormatter->Print( aNestLevel, "%0.1f", m_Orient ); + aFormatter->Print( 0, " %0.1f", m_Orient ); - aFormatter->Print( aNestLevel, ")\n" ); + aFormatter->Print( 0, ")\n" ); if( !IsDefaultFormatting() ) { @@ -593,15 +593,15 @@ void EDA_TEXT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControl // Add font support here at some point in the future. if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) ) - aFormatter->Print( aNestLevel+2, " (size %s)", FormatBIU( m_Size ).c_str() ); + aFormatter->Print( 0, " (size %s)", FormatBIU( m_Size ).c_str() ); if( m_Bold ) - aFormatter->Print( aNestLevel+2, " bold" ); + aFormatter->Print( 0, " bold" ); if( m_Bold ) - aFormatter->Print( aNestLevel+2, " italic" ); + aFormatter->Print( 0, " italic" ); - aFormatter->Print( aNestLevel+1, ")\n"); + aFormatter->Print( 0, ")\n"); } if( m_Mirror || ( m_HJustify != GR_TEXT_HJUSTIFY_CENTER ) @@ -610,24 +610,22 @@ void EDA_TEXT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControl aFormatter->Print( aNestLevel+2, "(justify"); if( m_HJustify != GR_TEXT_HJUSTIFY_CENTER ) - aFormatter->Print( aNestLevel+2, - (m_HJustify == GR_TEXT_HJUSTIFY_LEFT) ? " left" : " right" ); + aFormatter->Print( 0, (m_HJustify == GR_TEXT_HJUSTIFY_LEFT) ? " left" : " right" ); if( m_VJustify != GR_TEXT_VJUSTIFY_CENTER ) - aFormatter->Print( aNestLevel+2, - (m_VJustify == GR_TEXT_VJUSTIFY_TOP) ? " top" : " bottom" ); + aFormatter->Print( 0, (m_VJustify == GR_TEXT_VJUSTIFY_TOP) ? " top" : " bottom" ); if( m_Mirror ) - aFormatter->Print( aNestLevel+2, " mirror" ); + aFormatter->Print( 0, " mirror" ); - aFormatter->Print( aNestLevel+2, ")\n" ); + aFormatter->Print( 0, ")\n" ); } // As of now the only place this is used is in Eeschema to hide or show the text. if( m_Attributs ) - aFormatter->Print( aNestLevel+2, "hide" ); + aFormatter->Print( aNestLevel+2, "hide\n" ); - aFormatter->Print( aNestLevel+1, "\n)\n" ); + aFormatter->Print( aNestLevel+1, ")\n" ); } aFormatter->Print( aNestLevel, ")\n" ); diff --git a/common/wildcards_and_files_ext.cpp b/common/wildcards_and_files_ext.cpp index b95206625f..6c50f1df52 100644 --- a/common/wildcards_and_files_ext.cpp +++ b/common/wildcards_and_files_ext.cpp @@ -54,7 +54,8 @@ const wxString ProjectFileWildcard( _( "KiCad project files (*.pro)|*.pro" ) ); const wxString SchematicFileWildcard( _( "KiCad schematic files (*.sch)|*.sch" ) ); const wxString NetlistFileWildcard( _( "KiCad netlist files (*.net)|*.net" ) ); const wxString GerberFileWildcard( _( "Gerber files (*.pho)|*.pho" ) ); -const wxString PcbFileWildcard( _( "KiCad printed circuit board files (*.brd)|*.brd" ) ); +const wxString LegacyPcbFileWildcard( _( "KiCad printed circuit board files (*.brd)|*.brd" ) ); +const wxString PcbFileWildcard( _( "KiCad s-expr printed circuit board files (*.kicad_brd)|*.kicad_brd" ) ); const wxString FootprintLibFileWildcard( _( "KiCad footprint library file (*.mod)|*.mod" ) ); const wxString PdfFileWildcard( _( "Portable document format files (*.pdf)|*.pdf" ) ); const wxString MacrosFileWildcard( _( "KiCad recorded macros (*.mcr)|*.mcr" ) ); diff --git a/common/worksheet.cpp b/common/worksheet.cpp index 7afd03f888..517eee5e0a 100644 --- a/common/worksheet.cpp +++ b/common/worksheet.cpp @@ -1671,32 +1671,32 @@ void TITLE_BLOCK::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCont || !m_company.IsEmpty() || !m_comment1.IsEmpty() || !m_comment2.IsEmpty() || !m_comment3.IsEmpty() || !m_comment4.IsEmpty() ) { - aFormatter->Print( aNestLevel, "(title-block\n" ); + aFormatter->Print( aNestLevel, "(title_block\n" ); if( !m_title.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "\n(title %s)", EscapedUTF8( m_title ).c_str() ); + aFormatter->Print( aNestLevel+1, "(title %s)\n", EscapedUTF8( m_title ).c_str() ); if( !m_date.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "\n(date %s)", EscapedUTF8( m_date ).c_str() ); + aFormatter->Print( aNestLevel+1, "(date %s)\n", EscapedUTF8( m_date ).c_str() ); if( !m_revision.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "\n(rev %s)", EscapedUTF8( m_revision ).c_str() ); + aFormatter->Print( aNestLevel+1, "(rev %s)\n", EscapedUTF8( m_revision ).c_str() ); if( !m_company.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "\n(company %s)", EscapedUTF8( m_company ).c_str() ); + aFormatter->Print( aNestLevel+1, "(company %s)\n", EscapedUTF8( m_company ).c_str() ); if( !m_comment1.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "\n(comment1 %s)", EscapedUTF8( m_comment1 ).c_str() ); + aFormatter->Print( aNestLevel+1, "(comment1 %s)\n", EscapedUTF8( m_comment1 ).c_str() ); if( !m_comment2.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "\n(comment2 %s)", EscapedUTF8( m_comment2 ).c_str() ); + aFormatter->Print( aNestLevel+1, "(comment2 %s)\n", EscapedUTF8( m_comment2 ).c_str() ); if( !m_comment3.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "\n(comment3 %s)", EscapedUTF8( m_comment3 ).c_str() ); + aFormatter->Print( aNestLevel+1, "(comment3 %s)\n", EscapedUTF8( m_comment3 ).c_str() ); if( !m_comment4.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "\n(comment4 %s)", EscapedUTF8( m_comment4 ).c_str() ); + aFormatter->Print( aNestLevel+1, "(comment4 %s)\n", EscapedUTF8( m_comment4 ).c_str() ); - aFormatter->Print( aNestLevel, "\n)\n" ); + aFormatter->Print( aNestLevel, ")\n\n" ); } } diff --git a/gerbview/export_to_pcbnew.cpp b/gerbview/export_to_pcbnew.cpp index 5cc9740e89..0e294a75b1 100644 --- a/gerbview/export_to_pcbnew.cpp +++ b/gerbview/export_to_pcbnew.cpp @@ -239,7 +239,7 @@ bool GBR_TO_PCB_EXPORTER::ExportPcb( int* LayerLookUpTable ) SetLocaleTo_C_standard(); // write PCB header - fprintf( m_file, "PCBNEW-BOARD Version %d date %s\n\n", BOARD_FILE_VERSION, + fprintf( m_file, "PCBNEW-BOARD Version %d date %s\n\n", LEGACY_BOARD_FILE_VERSION, TO_UTF8( DateAndTime() ) ); WriteGeneralDescrPcb( ); WriteSetup( ); diff --git a/include/wildcards_and_files_ext.h b/include/wildcards_and_files_ext.h index e6a01c9c7e..60a80c2dc6 100644 --- a/include/wildcards_and_files_ext.h +++ b/include/wildcards_and_files_ext.h @@ -61,6 +61,7 @@ extern const wxString SchematicFileWildcard; extern const wxString BoardFileWildcard; extern const wxString NetlistFileWildcard; extern const wxString GerberFileWildcard; +extern const wxString LegacyPcbFileWildcard; extern const wxString PcbFileWildcard; extern const wxString PdfFileWildcard; extern const wxString MacrosFileWildcard; diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 317f5c215a..6be88e0307 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -35,7 +35,7 @@ BOARD::BOARD() : m_NetClasses( this ) { // we have not loaded a board yet, assume latest until then. - m_fileFormatVersionAtLoad = BOARD_FILE_VERSION; + m_fileFormatVersionAtLoad = LEGACY_BOARD_FILE_VERSION; m_Status_Pcb = 0; // Status word: bit 1 = calculate. SetColorsSettings( &g_ColorsSettings ); @@ -2154,7 +2154,7 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit { aFormatter->Print( aNestLevel, "(general\n" ); aFormatter->Print( aNestLevel+1, "(links %d)\n", GetRatsnestsCount() ); - aFormatter->Print( aNestLevel+1, "(no-connects %d)\n", m_NbNoconnect ); + aFormatter->Print( aNestLevel+1, "(no_connects %d)\n", m_NbNoconnect ); // Write Bounding box info aFormatter->Print( aNestLevel+1, "(area %s %s %s %s)\n", @@ -2179,7 +2179,9 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit aFormatter->Print( aNestLevel, "(layers %d %08X", GetCopperLayerCount(), GetEnabledLayers() ); if( GetEnabledLayers() != GetVisibleLayers() ) - aFormatter->Print( aNestLevel+1, " %08X", GetVisibleLayers() ); + aFormatter->Print( 0, " %08X", GetVisibleLayers() ); + + aFormatter->Print( 0, "\n" ); unsigned layerMask = ALL_CU_LAYERS & GetEnabledLayers(); @@ -2187,7 +2189,7 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit { if( layerMask & 1 ) { - aFormatter->Print( aNestLevel+1, "(layer%d %s %s\n", layer, + aFormatter->Print( aNestLevel+1, "(layer%d %s %s)\n", layer, TO_UTF8( GetLayerName( layer ) ), LAYER::ShowType( GetLayerType( layer ) ) ); } @@ -2199,36 +2201,36 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit aFormatter->Print( aNestLevel, "(setup\n" ); // Save current default track width, for compatibility with older Pcbnew version; - aFormatter->Print( aNestLevel+1, "(last-trace-width %s)\n", + aFormatter->Print( aNestLevel+1, "(last_trace_width %s)\n", FormatBIU( m_TrackWidthList[m_TrackWidthSelector] ).c_str() ); // Save custom tracks width list (the first is not saved here: this is the netclass value for( unsigned ii = 1; ii < m_TrackWidthList.size(); ii++ ) - aFormatter->Print( aNestLevel+1, "(user-trace-width%d %s)\n", + aFormatter->Print( aNestLevel+1, "(user_trace_width%d %s)\n", ii+1, FormatBIU( m_TrackWidthList[ii] ).c_str() ); - aFormatter->Print( aNestLevel+1, "(trace-clearance %s)\n)", + aFormatter->Print( aNestLevel+1, "(trace_clearance %s)\n", FormatBIU( m_NetClasses.GetDefault()->GetClearance() ).c_str() ); // ZONE_SETTINGS - aFormatter->Print( aNestLevel+1, "(zone-clearance %s)\n", + aFormatter->Print( aNestLevel+1, "(zone_clearance %s)\n", FormatBIU( GetZoneSettings().m_ZoneClearance ).c_str() ); - aFormatter->Print( aNestLevel+1, "(zone-45-only %d)\n", GetZoneSettings().m_Zone_45_Only ); + aFormatter->Print( aNestLevel+1, "(zone_45_only %d)\n", GetZoneSettings().m_Zone_45_Only ); - aFormatter->Print( aNestLevel+1, "(trace-min %s)\n", + aFormatter->Print( aNestLevel+1, "(trace_min %s)\n", FormatBIU( GetDesignSettings().m_TrackMinWidth ).c_str() ); - aFormatter->Print( aNestLevel+1, "(segment-width %s)\n", + aFormatter->Print( aNestLevel+1, "(segment_width %s)\n", FormatBIU( GetDesignSettings().m_DrawSegmentWidth ).c_str() ); - aFormatter->Print( aNestLevel+1, "(edge-width %s)\n", + aFormatter->Print( aNestLevel+1, "(edge_width %s)\n", FormatBIU( GetDesignSettings().m_EdgeSegmentWidth ).c_str() ); // Save current default via size, for compatibility with older Pcbnew version; - aFormatter->Print( aNestLevel+1, "(via-size %s)\n", + aFormatter->Print( aNestLevel+1, "(via_size %s)\n", FormatBIU( m_NetClasses.GetDefault()->GetViaDiameter() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(via-drill %s)\n", + aFormatter->Print( aNestLevel+1, "(via_drill %s)\n", FormatBIU( m_NetClasses.GetDefault()->GetViaDrill() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(via-min-size %s)\n", + aFormatter->Print( aNestLevel+1, "(via_min_size %s)\n", FormatBIU( GetDesignSettings().m_ViasMinSize ).c_str() ); aFormatter->Print( aNestLevel+1, "(via_min_drill %s)\n", FormatBIU( GetDesignSettings().m_ViasMinDrill ).c_str() ); @@ -2236,58 +2238,58 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit // Save custom vias diameters list (the first is not saved here: this is // the netclass value for( unsigned ii = 1; ii < m_ViasDimensionsList.size(); ii++ ) - aFormatter->Print( aNestLevel+1, "(user-via%d %s %s)\n", ii, + aFormatter->Print( aNestLevel+1, "(user_via%d %s %s)\n", ii, FormatBIU( m_ViasDimensionsList[ii].m_Diameter ).c_str(), FormatBIU( m_ViasDimensionsList[ii].m_Drill ).c_str() ); // for old versions compatibility: - aFormatter->Print( aNestLevel+1, "(uvia-size %s)\n", + aFormatter->Print( aNestLevel+1, "(uvia_size %s)\n", FormatBIU( m_NetClasses.GetDefault()->GetuViaDiameter() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(uvia-drill %s)\n", + aFormatter->Print( aNestLevel+1, "(uvia_drill %s)\n", FormatBIU( m_NetClasses.GetDefault()->GetuViaDrill() ).c_str() ); aFormatter->Print( aNestLevel+1, "(uvias_allow %s)\n", FormatBIU( GetDesignSettings().m_MicroViasAllowed ).c_str() ); - aFormatter->Print( aNestLevel+1, "(uvia-min-size %s)\n", + aFormatter->Print( aNestLevel+1, "(uvia_min_size %s)\n", FormatBIU( GetDesignSettings().m_MicroViasMinSize ).c_str() ); - aFormatter->Print( aNestLevel+1, "(uvia-min-drill %s)\n", + aFormatter->Print( aNestLevel+1, "(uvia_min_drill %s)\n", FormatBIU( GetDesignSettings().m_MicroViasMinDrill ).c_str() ); - aFormatter->Print( aNestLevel+1, "(pcb-text-width %s)\n", + aFormatter->Print( aNestLevel+1, "(pcb_text_width %s)\n", FormatBIU( GetDesignSettings().m_PcbTextWidth ).c_str() ); - aFormatter->Print( aNestLevel+1, "(pcb-text-size %s %s)\n", + aFormatter->Print( aNestLevel+1, "(pcb_text_size %s %s)\n", FormatBIU( GetDesignSettings().m_PcbTextSize.x ).c_str(), FormatBIU( GetDesignSettings().m_PcbTextSize.y ).c_str() ); - aFormatter->Print( aNestLevel+1, "(mod-edge-width %s)\n", + aFormatter->Print( aNestLevel+1, "(mod_edge_width %s)\n", FormatBIU( GetDesignSettings().m_ModuleSegmentWidth ).c_str() ); - aFormatter->Print( aNestLevel+1, "(mod-text-size %s %s)\n", + aFormatter->Print( aNestLevel+1, "(mod_text_size %s %s)\n", FormatBIU( GetDesignSettings().m_ModuleTextSize.x ).c_str(), FormatBIU( GetDesignSettings().m_ModuleTextSize.y ).c_str() ); - aFormatter->Print( aNestLevel+1, "(mod-text-width %s)\n", + aFormatter->Print( aNestLevel+1, "(mod_text_width %s)\n", FormatBIU( GetDesignSettings().m_ModuleTextWidth ).c_str() ); - aFormatter->Print( aNestLevel+1, "(pad-size %s %s)\n", + aFormatter->Print( aNestLevel+1, "(pad_size %s %s)\n", FormatBIU( GetDesignSettings().m_Pad_Master.GetSize().x ).c_str(), FormatBIU( GetDesignSettings().m_Pad_Master.GetSize().x ).c_str() ); - aFormatter->Print( aNestLevel+1, "(pad-drill %s)\n", + aFormatter->Print( aNestLevel+1, "(pad_drill %s)\n", FormatBIU( GetDesignSettings().m_Pad_Master.GetDrillSize().x ).c_str() ); - aFormatter->Print( aNestLevel+1, "(pad-to-mask-clearance %s)\n", + aFormatter->Print( aNestLevel+1, "(pad_to_mask_clearance %s)\n", FormatBIU( GetDesignSettings().m_SolderMaskMargin ).c_str() ); if( GetDesignSettings().m_SolderPasteMargin != 0 ) - aFormatter->Print( aNestLevel+1, "(pad-to-paste-clearance %s)\n", + aFormatter->Print( aNestLevel+1, "(pad_to_paste_clearance %s)\n", FormatBIU( GetDesignSettings().m_SolderPasteMargin ).c_str() ); if( GetDesignSettings().m_SolderPasteMarginRatio != 0 ) - aFormatter->Print( aNestLevel+1, "(pad-to-paste-clearance-ratio %g)\n", + aFormatter->Print( aNestLevel+1, "(pad_to_paste_clearance_ratio %g)\n", GetDesignSettings().m_SolderPasteMarginRatio ); - aFormatter->Print( aNestLevel+1, "(aux-axis-origin %s %s)\n", + aFormatter->Print( aNestLevel+1, "(aux_axis_origin %s %s)\n", FormatBIU( GetOriginAxisPosition().x ).c_str(), FormatBIU( GetOriginAxisPosition().y ).c_str() ); - aFormatter->Print( aNestLevel+1, "(visible-elements %X)\n", + aFormatter->Print( aNestLevel+1, "(visible_elements %X)\n", GetDesignSettings().GetVisibleElements() ); aFormatter->Print( aNestLevel, ")\n\n" ); @@ -2298,7 +2300,9 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit for( int i = 0; i < netcount; ++i ) aFormatter->Print( aNestLevel, "(net %d %s)\n", FindNet( i )->GetNet(), - EscapedUTF8( FindNet( i )->GetNetname() ).c_str() ); + aFormatter->Quotew( FindNet( i )->GetNetname() ).c_str() ); + + aFormatter->Print( 0, "\n" ); // Save the default net class first. m_NetClasses.GetDefault()->Format( aFormatter, aNestLevel, aControlBits ); @@ -2310,14 +2314,17 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit netclass->Format( aFormatter, aNestLevel, aControlBits ); } - // Save the modules. - for( MODULE* module = m_Modules; module; module = (MODULE*) module->Next() ) - module->Format( aFormatter, aNestLevel, aControlBits ); - // Save the graphical items on the board (not owned by a module) for( BOARD_ITEM* item = m_Drawings; item; item = item->Next() ) - { item->Format( aFormatter, aNestLevel, aControlBits ); + + aFormatter->Print( 0, "\n" ); + + // Save the modules. + for( MODULE* module = m_Modules; module; module = (MODULE*) module->Next() ) + { + module->Format( aFormatter, aNestLevel, aControlBits ); + aFormatter->Print( 0, "\n" ); } // Do not save MARKER_PCBs, they can be regenerated easily. @@ -2326,15 +2333,14 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit for( TRACK* track = m_Track; track; track = track->Next() ) track->Format( aFormatter, aNestLevel, aControlBits ); - // Save the old obsolete zones which were done by segments (tracks). - for( SEGZONE* zone = m_Zone; zone; zone = zone->Next() ) - zone->Format( aFormatter, aNestLevel, aControlBits ); + /// @todo Add warning here that the old segment filed zones are no longer supported and + /// will not be saved. + + aFormatter->Print( 0, "\n" ); // Save the polygon (which are the newer technology) zones. for( int i=0; i < GetAreaCount(); ++i ) GetArea( i )->Format( aFormatter, aNestLevel, aControlBits ); - - aFormatter->Print( aNestLevel, "\n)\n" ); } diff --git a/pcbnew/class_board_item.cpp b/pcbnew/class_board_item.cpp index d76c0e7987..7db715d625 100644 --- a/pcbnew/class_board_item.cpp +++ b/pcbnew/class_board_item.cpp @@ -67,7 +67,7 @@ wxString BOARD_ITEM::GetLayerName() const /** @todo Move Pcbnew version of FormatBIU() where ever the common DSO/DSL code ends up. */ std::string FormatBIU( int aValue ) { -#if !defined( USE_PCBNEW_NANOMETERS ) +#if !defined( USE_PCBNEW_NANOMETRES ) wxFAIL_MSG( wxT( "Cannot use FormatBIU() unless Pcbnew is build with PCBNEW_NANOMETERS=ON." ) ); #endif diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 9f37dfbca5..a72e569b6a 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -554,35 +554,35 @@ void DRAWSEGMENT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCont switch( m_Shape ) { case S_SEGMENT: // Line - aFormatter->Print( aNestLevel, "line (pts xy(%s) xy(%s))", + aFormatter->Print( 0, "line (pts xy(%s) xy(%s))", FormatBIU( m_Start ).c_str(), FormatBIU( m_End ).c_str() ); break; case S_CIRCLE: // Circle - aFormatter->Print( aNestLevel, "circle (center (xy %s)) (end (xy %s))", + aFormatter->Print( 0, "circle (center (xy %s)) (end (xy %s))", FormatBIU( m_Start ).c_str(), FormatBIU( m_End ).c_str() ); break; case S_ARC: // Arc - aFormatter->Print( aNestLevel, "arc (start (xy %s)) (end (xy %s)) (angle %0.1f)", + aFormatter->Print( 0, "arc (start (xy %s)) (end (xy %s)) (angle %0.1f)", FormatBIU( m_Start ).c_str(), FormatBIU( m_End ).c_str(), m_Angle ); break; case S_POLYGON: // Polygon - aFormatter->Print( aNestLevel, "line (pts" ); + aFormatter->Print( 0, "line (pts" ); for( i = 0; iPrint( aNestLevel, " (xy %s)", FormatBIU( m_PolyPoints[i] ).c_str() ); + aFormatter->Print( 0, " (xy %s)", FormatBIU( m_PolyPoints[i] ).c_str() ); - aFormatter->Print( aNestLevel, ")" ); + aFormatter->Print( 0, ")" ); break; case S_CURVE: // Bezier curve - aFormatter->Print( aNestLevel, "curve pts(xy(%s) xy(%s) xy(%s) xy(%s))", + aFormatter->Print( 0, "curve pts(xy(%s) xy(%s) xy(%s) xy(%s))", FormatBIU( m_Start ).c_str(), FormatBIU( m_BezierC1 ).c_str(), FormatBIU( m_BezierC2 ).c_str(), @@ -593,18 +593,18 @@ void DRAWSEGMENT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCont wxFAIL_MSG( wxT( "Cannot format invalid DRAWSEGMENT type." ) ); }; - aFormatter->Print( aNestLevel, " (layer %d)", GetLayer() ); + aFormatter->Print( 0, " (layer %d)", GetLayer() ); if( m_Width != 0 ) - aFormatter->Print( aNestLevel, " (width %s)", FormatBIU( m_Width ).c_str() ); + aFormatter->Print( 0, " (width %s)", FormatBIU( m_Width ).c_str() ); if( GetTimeStamp() ) - aFormatter->Print( aNestLevel, " (tstamp %lX)", GetTimeStamp() ); + aFormatter->Print( 0, " (tstamp %lX)", GetTimeStamp() ); if( GetStatus() ) - aFormatter->Print( aNestLevel, " (status %X)", GetStatus() ); + aFormatter->Print( 0, " (status %X)", GetStatus() ); - aFormatter->Print( aNestLevel, ")\n" ); + aFormatter->Print( 0, ")\n" ); } diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index 071777570b..50c517d72b 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -666,7 +666,7 @@ EDA_ITEM* MODULE::Clone() const void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const throw( IO_ERROR ) { - aFormatter->Print( aNestLevel, "(module %s" , EscapedUTF8( m_LibRef ).c_str() ); + aFormatter->Print( aNestLevel, "(module %s" , aFormatter->Quotew( m_LibRef ).c_str() ); if( IsLocked() ) aFormatter->Print( aNestLevel, " locked" ); @@ -674,41 +674,41 @@ void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBi if( IsPlaced() ) aFormatter->Print( aNestLevel, " placed" ); - aFormatter->Print( aNestLevel, " (tedit %lX) (tstamp %lX)\n", + aFormatter->Print( 0, " (tedit %lX) (tstamp %lX)\n", GetLastEditTime(), GetTimeStamp() ); aFormatter->Print( aNestLevel+1, "(at %s", FormatBIU( m_Pos ).c_str() ); if( m_Orient != 0.0 ) - aFormatter->Print( aNestLevel+1, " %0.1f", m_Orient ); + aFormatter->Print( 0, " %0.1f", m_Orient ); - aFormatter->Print( aNestLevel+1, ")\n" ); + aFormatter->Print( 0, ")\n" ); if( !m_Doc.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "(descr %s)\n", EscapedUTF8( m_Doc ).c_str() ); + aFormatter->Print( aNestLevel+1, "(descr %s)\n", aFormatter->Quotew( m_Doc ).c_str() ); if( !m_KeyWord.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "(tags %s)\n", EscapedUTF8( m_KeyWord ).c_str() ); + aFormatter->Print( aNestLevel+1, "(tags %s)\n", aFormatter->Quotew( m_KeyWord ).c_str() ); if( !m_Path.IsEmpty() ) - aFormatter->Print( aNestLevel+1, "(path %s)\n", EscapedUTF8( m_Path ).c_str() ); + aFormatter->Print( aNestLevel+1, "(path %s)\n", aFormatter->Quotew( m_Path ).c_str() ); if( m_CntRot90 != 0 ) - aFormatter->Print( aNestLevel+1, "(autoplace-cost90 %d)\n", m_CntRot90 ); + aFormatter->Print( aNestLevel+1, "(autoplace_cost90 %d)\n", m_CntRot90 ); if( m_CntRot180 != 0 ) - aFormatter->Print( aNestLevel+1, "(autoplace-cost180 %d)\n", m_CntRot180 ); + aFormatter->Print( aNestLevel+1, "(autoplace_cost180 %d)\n", m_CntRot180 ); if( m_LocalSolderMaskMargin != 0 ) - aFormatter->Print( aNestLevel+1, "(solder-mask-margin %s)\n", + aFormatter->Print( aNestLevel+1, "(solder_mask_margin %s)\n", FormatBIU( m_LocalSolderMaskMargin ).c_str() ); if( m_LocalSolderPasteMargin != 0 ) - aFormatter->Print( aNestLevel+1, "(solder-paste-margin %s)\n", + aFormatter->Print( aNestLevel+1, "(solder_paste_margin %s)\n", FormatBIU( m_LocalSolderPasteMargin ).c_str() ); if( m_LocalSolderPasteMarginRatio != 0 ) - aFormatter->Print( aNestLevel+1, "(solder-paste-ratio %g)\n", + aFormatter->Print( aNestLevel+1, "(solder_paste_ratio %g)\n", m_LocalSolderPasteMarginRatio ); if( m_LocalClearance != 0 ) @@ -716,14 +716,14 @@ void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBi FormatBIU( m_LocalClearance ).c_str() ); if( m_ZoneConnection != UNDEFINED_CONNECTION ) - aFormatter->Print( aNestLevel+1, "(zone-connect %d)\n", m_ZoneConnection ); + aFormatter->Print( aNestLevel+1, "(zone_connect %d)\n", m_ZoneConnection ); if( m_ThermalWidth != 0 ) - aFormatter->Print( aNestLevel+1, "(thermal-width %s)\n", + aFormatter->Print( aNestLevel+1, "(thermal_width %s)\n", FormatBIU( m_ThermalWidth ).c_str() ); if( m_ThermalGap != 0 ) - aFormatter->Print( aNestLevel+1, "(thermal-gap %s)\n", + aFormatter->Print( aNestLevel+1, "(thermal_gap %s)\n", FormatBIU( m_ThermalGap ).c_str() ); // Attributes @@ -732,12 +732,12 @@ void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBi aFormatter->Print( aNestLevel+1, "(attr " ); if( m_Attributs & MOD_CMS ) - aFormatter->Print( aNestLevel+1, " smd" ); + aFormatter->Print( 0, " smd" ); if( m_Attributs & MOD_VIRTUAL ) - aFormatter->Print( aNestLevel+1, " virtual" ); + aFormatter->Print( 0, " virtual" ); - aFormatter->Print( aNestLevel+1, ")\n" ); + aFormatter->Print( 0, ")\n" ); } m_Reference->Format( aFormatter, aNestLevel+1, aControlBits ); @@ -745,26 +745,26 @@ void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBi // Save drawing elements. for( BOARD_ITEM* gr = m_Drawings; gr; gr = gr->Next() ) - gr->Format( aFormatter+1, aNestLevel, aControlBits ); + gr->Format( aFormatter, aNestLevel+1, aControlBits ); // Save pads. for( D_PAD* pad = m_Pads; pad; pad = pad->Next() ) - pad->Format( aFormatter+1, aNestLevel, aControlBits ); + pad->Format( aFormatter, aNestLevel+1, aControlBits ); // Save 3D info. for( S3D_MASTER* t3D = m_3D_Drawings; t3D; t3D = t3D->Next() ) { if( !t3D->m_Shape3DName.IsEmpty() ) { - aFormatter->Print( aNestLevel+1, "(3d-shape %s\n", - EscapedUTF8( t3D->m_Shape3DName ).c_str() ); + aFormatter->Print( aNestLevel+1, "(3d_shape %s\n", + aFormatter->Quotew( t3D->m_Shape3DName ).c_str() ); aFormatter->Print( aNestLevel+2, "(at (xyz %.16g %.16g %.16g))\n", t3D->m_MatPosition.x, t3D->m_MatPosition.y, t3D->m_MatPosition.z ); - aFormatter->Print( aNestLevel+2, "(scale (xyz %lf %lf %lf))\n", + aFormatter->Print( aNestLevel+2, "(scale (xyz %.16g %.16g %.16g))\n", t3D->m_MatScale.x, t3D->m_MatScale.y, t3D->m_MatScale.z ); diff --git a/pcbnew/class_netclass.cpp b/pcbnew/class_netclass.cpp index 152d577ef1..1dae4bd0bc 100644 --- a/pcbnew/class_netclass.cpp +++ b/pcbnew/class_netclass.cpp @@ -324,21 +324,21 @@ int NETCLASS::GetuViaMinDrill() const void NETCLASS::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const throw( IO_ERROR ) { - aFormatter->Print( aNestLevel, "(net-class %s %s\n", - EscapedUTF8( GetName() ).c_str(), - EscapedUTF8( GetDescription() ).c_str() ); + aFormatter->Print( aNestLevel, "(net_class %s %s\n", + aFormatter->Quotew( GetName() ).c_str(), + aFormatter->Quotew( GetDescription() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(clearance %d)\n", GetClearance() ); - aFormatter->Print( aNestLevel+1, "(trace-width %d)\n", GetTrackWidth() ); + aFormatter->Print( aNestLevel+1, "(clearance %s)\n", FormatBIU( GetClearance() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(trace_width %s)\n", FormatBIU( GetTrackWidth() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(via-dia %d)\n", GetViaDiameter() ); - aFormatter->Print( aNestLevel+1, "(via-drill %d)\n", GetViaDrill() ); + aFormatter->Print( aNestLevel+1, "(via_dia %s)\n", FormatBIU( GetViaDiameter() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(via_drill %s)\n", FormatBIU( GetViaDrill() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(uvia-dia %d)\n", GetuViaDiameter() ); - aFormatter->Print( aNestLevel+1, "(uvia-drill %d)\n", GetuViaDrill() ); + aFormatter->Print( aNestLevel+1, "(uvia_dia %s)\n", FormatBIU( GetuViaDiameter() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(uvia_drill %s)\n", FormatBIU( GetuViaDrill() ).c_str() ); for( NETCLASS::const_iterator it = begin(); it!= end(); ++it ) - aFormatter->Print( aNestLevel+1, "(add-net %s)\n", EscapedUTF8( *it ).c_str() ); + aFormatter->Print( aNestLevel+1, "(add_net %s)\n", aFormatter->Quotew( *it ).c_str() ); - aFormatter->Print( aNestLevel, ")\n" ); + aFormatter->Print( aNestLevel, ")\n\n" ); } diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index 55b80320bf..b3921efd31 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -849,59 +849,60 @@ void D_PAD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit switch( m_Attribute ) { - case PAD_STANDARD: type = "thru-hole"; break; + case PAD_STANDARD: type = "thru_hole"; break; case PAD_SMD: type = "smd"; break; case PAD_CONN: type = "connect"; break; - case PAD_HOLE_NOT_PLATED: type = "np-thru-hole"; break; + case PAD_HOLE_NOT_PLATED: type = "np_thru_hole"; break; default: THROW_IO_ERROR( wxString::Format( _( "unknown pad attribute: %d" ), m_Attribute ) ); } aFormatter->Print( aNestLevel, "(pad %s %s %s (size %s)\n", - EscapedUTF8( GetPadName() ).c_str(), type.c_str(), shape.c_str(), + aFormatter->Quotew( GetPadName() ).c_str(), type.c_str(), shape.c_str(), FormatBIU( m_Size ).c_str() ); aFormatter->Print( aNestLevel+1, "(at %s", FormatBIU( m_Pos0 ).c_str() ); if( m_Orient != 0.0 ) - aFormatter->Print( aNestLevel+1, " %0.1f", m_Orient ); + aFormatter->Print( 0, " %0.1f", m_Orient ); - aFormatter->Print( aNestLevel+1, ")\n" ); + aFormatter->Print( 0, ")\n" ); if( (m_Drill.GetWidth() > 0) || (m_Drill.GetHeight() > 0) ) { std::string drill = (m_Drill.GetHeight() > 0) ? FormatBIU( m_Drill ).c_str() : FormatBIU( m_Drill.GetWidth() ).c_str(); - aFormatter->Print( aNestLevel+1, "(drill %s\n", drill.c_str() ); + aFormatter->Print( aNestLevel+1, "(drill %s", drill.c_str() ); if( (m_Offset.x > 0) || (m_Offset.y > 0) ) { std::string drillOffset = ( m_Offset.x > 0 ) ? FormatBIU( m_Offset ).c_str() : FormatBIU( m_Offset.x ).c_str(); - aFormatter->Print( aNestLevel+1, " (offset %s)", drillOffset.c_str() ); + aFormatter->Print( 0, " (offset %s)", drillOffset.c_str() ); } - aFormatter->Print( aNestLevel+1, ")\n" ); + aFormatter->Print( 0, ")\n" ); } aFormatter->Print( aNestLevel+1, "(layers %08X)\n", GetLayerMask() ); - aFormatter->Print( aNestLevel+1, "(net %d %s)\n", GetNet(), EscapedUTF8( m_Netname ).c_str() ); + aFormatter->Print( aNestLevel+1, "(net %d %s)\n", + GetNet(), aFormatter->Quotew( m_Netname ).c_str() ); if( m_LengthDie != 0 ) - aFormatter->Print( aNestLevel+1, "(die-length %s)\n", FormatBIU( m_LengthDie ).c_str() ); + aFormatter->Print( aNestLevel+1, "(die_length %s)\n", FormatBIU( m_LengthDie ).c_str() ); if( m_LocalSolderMaskMargin != 0 ) - aFormatter->Print( aNestLevel+1, "(solder-mask-margin %s)\n", + aFormatter->Print( aNestLevel+1, "(solder_mask_margin %s)\n", FormatBIU( m_LocalSolderMaskMargin ).c_str() ); if( m_LocalSolderPasteMargin != 0 ) - aFormatter->Print( aNestLevel+1, "(solder-paste-margin %s)\n", + aFormatter->Print( aNestLevel+1, "(solder_paste_margin %s)\n", FormatBIU( m_LocalSolderPasteMargin ).c_str() ); if( m_LocalSolderPasteMarginRatio != 0 ) - aFormatter->Print( aNestLevel+1, "(solder-paste-margin-ratio %g)\n", + aFormatter->Print( aNestLevel+1, "(solder_paste_margin_ratio %g)\n", m_LocalSolderPasteMarginRatio ); if( m_LocalClearance != 0 ) @@ -909,14 +910,14 @@ void D_PAD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit FormatBIU( m_LocalClearance ).c_str() ); if( GetZoneConnection() != UNDEFINED_CONNECTION ) - aFormatter->Print( aNestLevel+1, "(zone-connect %d)\n", GetZoneConnection() ); + aFormatter->Print( aNestLevel+1, "(zone_connect %d)\n", GetZoneConnection() ); if( GetThermalWidth() != 0 ) - aFormatter->Print( aNestLevel+1, "(thermal-width %s)\n", + aFormatter->Print( aNestLevel+1, "(thermal_width %s)\n", FormatBIU( GetThermalWidth() ).c_str() ); if( GetThermalGap() != 0 ) - aFormatter->Print( aNestLevel+1, "(thermal-gap %s)\n", + aFormatter->Print( aNestLevel+1, "(thermal_gap %s)\n", FormatBIU( GetThermalGap() ).c_str() ); aFormatter->Print( aNestLevel, ")\n" ); diff --git a/pcbnew/class_pcb_text.cpp b/pcbnew/class_pcb_text.cpp index ae20bd3ada..ccda388b71 100644 --- a/pcbnew/class_pcb_text.cpp +++ b/pcbnew/class_pcb_text.cpp @@ -194,12 +194,12 @@ EDA_ITEM* TEXTE_PCB::Clone() const void TEXTE_PCB::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const throw( IO_ERROR ) { - aFormatter->Print( aNestLevel, "(pcb-text (layer %d)", GetLayer() ); + aFormatter->Print( aNestLevel, "(pcb_text (layer %d)", GetLayer() ); if( GetTimeStamp() ) - aFormatter->Print( aNestLevel, " (tstamp %lX)", GetTimeStamp() ); + aFormatter->Print( 0, " (tstamp %lX)", GetTimeStamp() ); - aFormatter->Print( aNestLevel, "\n" ); + aFormatter->Print( 0, "\n" ); EDA_TEXT::Format( aFormatter, aNestLevel+1, aControlBits ); diff --git a/pcbnew/class_text_mod.cpp b/pcbnew/class_text_mod.cpp index 87758d13ff..7a5e466d7f 100644 --- a/pcbnew/class_text_mod.cpp +++ b/pcbnew/class_text_mod.cpp @@ -491,10 +491,10 @@ void TEXTE_MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCon if( parent ) orient += parent->GetOrientation(); - aFormatter->Print( aNestLevel, "(module-text %d (at %s %0.1f)%s)\n", m_Type, + aFormatter->Print( aNestLevel, "(module_text %d (at %s %0.1f)%s\n", m_Type, FormatBIU( m_Pos0 ).c_str(), orient, (m_NoShow) ? "hide" : "" ); - EDA_TEXT::Format( aFormatter+1, aNestLevel, aControlBits ); + EDA_TEXT::Format( aFormatter, aNestLevel+1, aControlBits ); aFormatter->Print( aNestLevel, ")\n" ); } diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 574bfaf0df..218f6ecd49 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -1579,7 +1579,7 @@ void TRACK::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit FormatBIU( m_Start ).c_str(), FormatBIU( m_Width ).c_str() ); if( m_Drill != UNDEFINED_DRILL_DIAMETER ) - aFormatter->Print( aNestLevel, " (drill %s)", FormatBIU( m_Drill ).c_str() ); + aFormatter->Print( 0, " (drill %s)", FormatBIU( m_Drill ).c_str() ); } else { @@ -1588,15 +1588,15 @@ void TRACK::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit FormatBIU( m_Width ).c_str() ); } - aFormatter->Print( aNestLevel, " (layer %d) (net %d)", GetLayer(), GetNet() ); + aFormatter->Print( 0, " (layer %d) (net %d)", GetLayer(), GetNet() ); if( GetTimeStamp() != 0 ) - aFormatter->Print( aNestLevel, " (tstamp %lX)", GetTimeStamp() ); + aFormatter->Print( 0, " (tstamp %lX)", GetTimeStamp() ); if( GetStatus() != 0 ) - aFormatter->Print( aNestLevel, " (status %X)", GetStatus() ); + aFormatter->Print( 0, " (status %X)", GetStatus() ); - aFormatter->Print( aNestLevel, ")\n" ); + aFormatter->Print( 0, ")\n" ); } diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 835decc853..f893b21bb5 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -960,7 +960,8 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC throw( IO_ERROR ) { aFormatter->Print( aNestLevel, "(zone (net %d %s) (layer %d) (tstamp %lX)\n", - GetNet(), EscapedUTF8( m_Netname ).c_str(), GetLayer(), GetTimeStamp() ); + GetNet(), aFormatter->Quotew( m_Netname ).c_str(), + GetLayer(), GetTimeStamp() ); // Save the outline aux info @@ -986,18 +987,18 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC { default: case PAD_IN_ZONE: padoption = "yes"; break; - case THERMAL_PAD: padoption = "use-thermal"; break; + case THERMAL_PAD: padoption = "use_thermal"; break; case PAD_NOT_IN_ZONE: padoption = "no"; break; } - aFormatter->Print( aNestLevel+1, "(connect-pads %s (clearance %s))\n", + aFormatter->Print( aNestLevel+1, "(connect_pads %s (clearance %s))\n", padoption.c_str(), FormatBIU( m_ZoneClearance ).c_str() ); - aFormatter->Print( aNestLevel+1, "(min-thickness %s)\n", + aFormatter->Print( aNestLevel+1, "(min_thickness %s)\n", FormatBIU( m_ZoneMinThickness ).c_str() ); aFormatter->Print( aNestLevel+1, - "(fill %s (mode %s) (arc-segments %d) (thermal-gap %s) (thermal-bridge-width %s)\n", + "(fill %s (mode %s) (arc_segments %d) (thermal_gap %s) (thermal_bridge_width %s)\n", (m_IsFilled) ? "yes" : "no", (m_FillMode) ? "segment" : "polygon", m_ArcToSegmentsCount, @@ -1023,15 +1024,25 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC if( cv.size() ) { - aFormatter->Print( aNestLevel+1, "(polygon (pts" ); + aFormatter->Print( aNestLevel+1, "(polygon\n"); + aFormatter->Print( aNestLevel+2, "(pts\n" ); for( std::vector< CPolyPt >::const_iterator it = cv.begin(); it != cv.end(); ++it ) { - aFormatter->Print( aNestLevel+1, " (xy %s %s)", + aFormatter->Print( aNestLevel+3, "(xy %s %s)\n", FormatBIU( it->x ).c_str(), FormatBIU( it->y ).c_str() ); if( it->end_contour ) - aFormatter->Print( aNestLevel+1, ")\n(polygon (pts" ); + { + aFormatter->Print( aNestLevel+2, ")\n" ); + + if( it+1 != cv.end() ) + { + aFormatter->Print( aNestLevel+1, ")\n" ); + aFormatter->Print( aNestLevel+1, "(polygon\n" ); + aFormatter->Print( aNestLevel+2, "(pts\n" ); + } + } } aFormatter->Print( aNestLevel+1, ")\n" ); @@ -1042,15 +1053,25 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC if( fv.size() ) { - aFormatter->Print( aNestLevel+1, "(filled-polygon (pts" ); + aFormatter->Print( aNestLevel+1, "(filled_polygon\n" ); + aFormatter->Print( aNestLevel+2, "(pts\n" ); for( std::vector< CPolyPt >::const_iterator it = fv.begin(); it != fv.end(); ++it ) { - aFormatter->Print( aNestLevel+1, " (xy %s %s)", + aFormatter->Print( aNestLevel+3, "(xy %s %s)\n", FormatBIU( it->x ).c_str(), FormatBIU( it->y ).c_str() ); if( it->end_contour ) - aFormatter->Print( aNestLevel+1, ")\n(filled-polygon (pts" ); + { + aFormatter->Print( aNestLevel+2, ")\n" ); + + if( it+1 != fv.end() ) + { + aFormatter->Print( aNestLevel+1, ")\n" ); + aFormatter->Print( aNestLevel+1, "(filled_polygon\n" ); + aFormatter->Print( aNestLevel+2, "(pts\n" ); + } + } } aFormatter->Print( aNestLevel+1, ")\n" ); @@ -1061,7 +1082,7 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC if( segs.size() ) { - aFormatter->Print( aNestLevel+1, "(fill-segments\n" ); + aFormatter->Print( aNestLevel+1, "(fill_segments\n" ); for( std::vector< SEGMENT >::const_iterator it = segs.begin(); it != segs.end(); ++it ) { diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index bec5346e58..be8f1c88e7 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -48,7 +48,7 @@ #include #include -#include // BOARD_FILE_VERSION +#include // LEGACY_BOARD_FILE_VERSION static const wxString pcbBackupFileExtension( wxT( "000" ) ); @@ -183,7 +183,7 @@ the changes?" ) ) ) name = fileName.GetFullName(); } - wxFileDialog dlg( this, _( "Open Board File" ), path, name, PcbFileWildcard, + wxFileDialog dlg( this, _( "Open Board File" ), path, name, LegacyPcbFileWildcard, wxFD_OPEN | wxFD_FILE_MUST_EXIST ); if( dlg.ShowModal() == wxID_CANCEL ) @@ -230,12 +230,12 @@ the changes?" ) ) ) int ver; sscanf( reader.Line() , "PCBNEW-BOARD Version %d date", &ver ); - if ( ver > BOARD_FILE_VERSION ) + if ( ver > LEGACY_BOARD_FILE_VERSION ) { DisplayInfoMessage( this, _( "This file was created by a more recent \ version of Pcbnew and may not load correctly. Please consider updating!" ) ); } - else if ( ver < BOARD_FILE_VERSION ) + else if ( ver < LEGACY_BOARD_FILE_VERSION ) { DisplayInfoMessage( this, _( "This file was created by an older \ version of Pcbnew. It will be stored in the new file format when you save \ @@ -288,13 +288,13 @@ this file again." ) ); try { // load or append either: - loadedBoard = IO_MGR::Load( IO_MGR::KICAD, GetScreen()->GetFileName(), - aAppend ? GetBoard() : NULL, - NULL ); + loadedBoard = IO_MGR::Load( IO_MGR::LEGACY, GetScreen()->GetFileName(), + aAppend ? GetBoard() : NULL, + NULL ); if( !aAppend ) { - if( loadedBoard->GetFileFormatVersionAtLoad() < BOARD_FILE_VERSION ) + if( loadedBoard->GetFileFormatVersionAtLoad() < LEGACY_BOARD_FILE_VERSION ) { DisplayInfoMessage( this, _( "This file was created by an older \ version of Pcbnew. It will be stored in the new file format when you save \ @@ -418,19 +418,27 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF wxString upperTxt; wxString lowerTxt; wxString msg; + wxString wildcard; + int wildcardIndex = 0; bool saveok = true; + wildcard = LegacyPcbFileWildcard; + +#if defined( USE_PCBNEW_SEXPR_FILE_FORMAT ) + wildcard += wxT( "|" ) + PcbFileWildcard; +#endif + if( aFileName == wxEmptyString ) { - wxFileDialog dlg( this, _( "Save Board File" ), wxEmptyString, - GetScreen()->GetFileName(), PcbFileWildcard, - wxFD_SAVE | wxFD_OVERWRITE_PROMPT ); + wxFileDialog dlg( this, _( "Save Board File" ), wxEmptyString, GetScreen()->GetFileName(), + wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT ); if( dlg.ShowModal() != wxID_OK ) return false; GetScreen()->SetFileName( dlg.GetPath() ); + wildcardIndex = dlg.GetFilterIndex(); // Legacy or s-expression file format. } else { @@ -448,6 +456,9 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF pcbFileName = GetScreen()->GetFileName(); + if( pcbFileName.GetExt().IsEmpty() ) + pcbFileName.SetExt( IO_MGR::GetFileExtension( (IO_MGR::PCB_FILE_T) wildcardIndex ) ); + if( !IsWritable( pcbFileName ) ) return false; @@ -493,21 +504,26 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF try { - wxString header = wxString::Format( - wxT( "PCBNEW-BOARD Version %d date %s\n\n# Created by Pcbnew%s\n\n" ), - BOARD_FILE_VERSION, DateAndTime().GetData(), - GetBuildVersion().GetData() ); + PROPERTIES props; + PLUGIN* plugin = IO_MGR::PluginFind( ( IO_MGR::PCB_FILE_T ) wildcardIndex ); - PROPERTIES props; + if( plugin == NULL ) + THROW_IO_ERROR( wxString::Format( _( "cannot find file plug in for file format '%s'" ), + GetChars( pcbFileName.GetExt() ) ) ); + + wxString header = wxString::Format( + wxT( "PCBNEW-BOARD Version %d date %s\n\n# Created by Pcbnew%s\n\n" ), + LEGACY_BOARD_FILE_VERSION, DateAndTime().GetData(), + GetBuildVersion().GetData() ); props["header"] = header; - IO_MGR::Save( IO_MGR::KICAD, pcbFileName.GetFullPath(), GetBoard(), &props ); + plugin->Save( pcbFileName.GetFullPath(), GetBoard(), &props ); } catch( IO_ERROR ioe ) { - wxString msg = wxString::Format( _( "Error saving board.\n%s" ), - ioe.errorText.GetData() ); + wxString msg = wxString::Format( _( "Error saving board.\n%s" ), + ioe.errorText.GetData() ); wxMessageBox( msg, _( "Save Board File" ), wxICON_ERROR | wxOK ); saveok = false; } diff --git a/pcbnew/io_mgr.cpp b/pcbnew/io_mgr.cpp index 2690807ba9..8a262181d8 100644 --- a/pcbnew/io_mgr.cpp +++ b/pcbnew/io_mgr.cpp @@ -24,6 +24,7 @@ #include +#include #include @@ -39,7 +40,7 @@ // plugins coexisting. -// static KICAD_PLUGIN kicad_plugin; // a secret +// static LEGACY_PLUGIN kicad_plugin; // a secret //static EAGLE_PLUGIN eagle_plugin; PLUGIN* IO_MGR::PluginFind( PCB_FILE_T aFileType ) @@ -49,10 +50,12 @@ PLUGIN* IO_MGR::PluginFind( PCB_FILE_T aFileType ) switch( aFileType ) { + case LEGACY: + return new LEGACY_PLUGIN(); + case KICAD: return new KICAD_PLUGIN(); - /* case EAGLE: return &eagle_plugin; @@ -80,14 +83,32 @@ const wxString IO_MGR::ShowType( PCB_FILE_T aFileType ) default: return wxString::Format( _( "Unknown PCB_FILE_T value: %d" ), aFileType ); + case LEGACY: + return wxString( wxT( "KiCad Legacy" ) ); + case KICAD: return wxString( wxT( "KiCad" ) ); } } +const wxString IO_MGR::GetFileExtension( PCB_FILE_T aFileType ) +{ + wxString ext = wxEmptyString; + PLUGIN* plugin = PluginFind( aFileType ); + + if( plugin != NULL ) + { + ext = plugin->GetFileExtension(); + PluginRelease( plugin ); + } + + return ext; +} + + BOARD* IO_MGR::Load( PCB_FILE_T aFileType, const wxString& aFileName, - BOARD* aAppendToMe, PROPERTIES* aProperties ) + BOARD* aAppendToMe, PROPERTIES* aProperties ) { // release the PLUGIN even if an exception is thrown. PLUGIN::RELEASER pi = PluginFind( aFileType ); diff --git a/pcbnew/io_mgr.h b/pcbnew/io_mgr.h index 1f3fa70393..4acaa27940 100644 --- a/pcbnew/io_mgr.h +++ b/pcbnew/io_mgr.h @@ -47,7 +47,8 @@ public: */ enum PCB_FILE_T { - KICAD, + LEGACY, //< Legacy Pcbnew file formats prior to s-expression. + KICAD, //< S-expression Pcbnew file format. // add your type here. // EAGLE, @@ -84,6 +85,16 @@ public: */ static const wxString ShowType( PCB_FILE_T aFileType ); + /** + * Function GetFileExtension + * returns the file extension for \a aFileType. + * + * @param aFileType The #PCB_FILE_T type. + * @return A wxString object containing the file extension for \a aFileType or an empty + * string if \a aFileType is invalid. + */ + static const wxString GetFileExtension( PCB_FILE_T aFileType ); + /** * Function Load * finds the requested PLUGIN and if found, calls the PLUGIN->Load(..) funtion @@ -106,7 +117,7 @@ public: * or file cannot be loaded. */ static BOARD* Load( PCB_FILE_T aFileType, const wxString& aFileName, - BOARD* aAppendToMe = NULL, PROPERTIES* aProperties = NULL ); + BOARD* aAppendToMe = NULL, PROPERTIES* aProperties = NULL ); /** * Function Save @@ -132,7 +143,7 @@ public: * @throw IO_ERROR if there is a problem saving or exporting. */ static void Save( PCB_FILE_T aFileType, const wxString& aFileName, - BOARD* aBoard, PROPERTIES* aProperties = NULL ); + BOARD* aBoard, PROPERTIES* aProperties = NULL ); }; @@ -166,7 +177,13 @@ public: * Function PluginName * returns a brief hard coded name for this PLUGIN. */ - virtual const wxString& PluginName() = 0; + virtual const wxString& PluginName() const = 0; + + /** + * Function GetFileExtension + * returns the file extension for the PLUGIN. + */ + virtual const wxString& GetFileExtension() const = 0; /** * Function Load @@ -195,7 +212,7 @@ public: * input file if possible. */ virtual BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, - PROPERTIES* aProperties = NULL ); + PROPERTIES* aProperties = NULL ); /** * Function Save @@ -218,7 +235,7 @@ public: * @throw IO_ERROR if there is a problem saving or exporting. */ virtual void Save( const wxString& aFileName, BOARD* aBoard, - PROPERTIES* aProperties = NULL ); + PROPERTIES* aProperties = NULL ); //----------------------------------------------------- diff --git a/pcbnew/ioascii.cpp b/pcbnew/ioascii.cpp index 91a9ebb11c..7e185f84ad 100644 --- a/pcbnew/ioascii.cpp +++ b/pcbnew/ioascii.cpp @@ -1231,7 +1231,7 @@ int PCB_EDIT_FRAME::SavePcbFormatAscii( FILE* aFile ) LOCALE_IO toggle; // Writing file header. - fprintf( aFile, "PCBNEW-BOARD Version %d date %s\n\n", BOARD_FILE_VERSION, + fprintf( aFile, "PCBNEW-BOARD Version %d date %s\n\n", LEGACY_BOARD_FILE_VERSION, TO_UTF8( DateAndTime() ) ); fprintf( aFile, "# Created by Pcbnew%s\n\n", TO_UTF8( GetBuildVersion() ) ); diff --git a/pcbnew/kicad_plugin.cpp b/pcbnew/kicad_plugin.cpp index 4d8b3f7a45..acb2c6ae14 100644 --- a/pcbnew/kicad_plugin.cpp +++ b/pcbnew/kicad_plugin.cpp @@ -1,3682 +1,57 @@ - -/* - * This program source code file is part of KiCad, a free EDA CAD application. - * - * Copyright (C) 2007-2011 SoftPLC Corporation, Dick Hollenbeck - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. - - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, you may find one here: - * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * or you may search the http://www.gnu.org website for the version 2 license, - * or you may write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -/* - This implements loading and saving a BOARD, behind the PLUGIN interface. - - The definitions: - - *) a Board Internal Unit (BIU) is a unit of length that is used only internally - to PCBNEW, and is nanometers when this work is done, but deci-mils until done. - - The philosophies: - - *) BIUs should be typed as such to distinguish them from ints. This is mostly - for human readability, and having the type nearby in the source supports this readability. - *) Do not assume that BIUs will always be int, doing a sscanf() into a BIU - does not make sense in case the size of the BIU changes. - *) variables are put onto the stack in an automatic, even when it might look - more efficient to do otherwise. This is so we can seem them with a debugger. - *) Global variables should not be touched from within a PLUGIN, since it will eventually - be in a DLL/DSO. This includes window information too. The PLUGIN API knows - nothing of wxFrame or globals and all error reporting must be done by throwing - an exception. - *) No wxWindowing calls are made in here, since the UI resides higher up than in here, - and is going to process a bucket of detailed information thrown from down here - in the form of an exception if an error happens. - *) Much of what we do in this source file is for human readability, not performance. - Simply avoiding strtok() more often than the old code washes out performance losses. - Remember strncmp() will bail as soon as a mismatch happens, not going all the way - to end of string unless a full match. - *) angles are in the process of migrating to doubles, and 'int' if used, is - only shortterm, and along with this a change, and transition from from - "tenths of degrees" to simply "degrees" in the double (which has no problem - representing any portion of a degree). -*/ - - -#include -#include -#include -#include - -#include // implement this here - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include <3d_struct.h> -#include -#include - -#include - -#include - - -#define VERSION_ERROR_FORMAT _( "File '%s' is format version: %d.\nI only support format version <= %d.\nPlease upgrade PCBNew to load this file." ) -#define UNKNOWN_GRAPHIC_FORMAT _( "unknown graphic type: %d") -#define UNKNOWN_PAD_FORMAT _( "unknown pad type: %d") -#define UNKNOWN_PAD_ATTRIBUTE _( "unknown pad attribute: %d" ) - - -/// Get the length of a string constant, at compile time -#define SZ( x ) (sizeof(x)-1) - - -/// C string compare test for a specific length of characters. -#define TESTLINE( x ) ( !strnicmp( line, x, SZ( x ) ) && isspace( line[SZ( x )] ) ) - -/// C sub-string compare test for a specific length of characters. -#define TESTSUBSTR( x ) ( !strnicmp( line, x, SZ( x ) ) ) - - -#if 1 -#define READLINE() m_reader->ReadLine() - -#else -/// The function and macro which follow comprise a shim which can be a -/// monitor on lines of text read in from the input file. -/// And it can be used as a trap. -static inline unsigned ReadLine( LINE_READER* rdr, const char* caller ) -{ - unsigned ret = rdr->ReadLine(); - - const char* line = rdr->Line(); - printf( "%-6u %s: %s", rdr->LineNumber(), caller, line ); - -#if 0 // trap - if( !strcmp( "loadSETUP", caller ) && !strcmp( "$EndSETUP\n", line ) ) - { - int breakhere = 1; - } -#endif - - return ret; -} -#define READLINE() ReadLine( m_reader, __FUNCTION__ ) -#endif - -static const char delims[] = " \t\r\n"; - -using namespace std; // auto_ptr - -/** - * Function intParse - * parses an ASCII integer string with possible leading whitespace into - * an integer and updates the pointer at \a out if it is not NULL, just - * like "man strtol()". I can use this without casting, and its name says - * what I am doing. - */ -static inline int intParse( const char* next, const char** out = NULL ) -{ - // please just compile this and be quiet, hide casting ugliness: - return (int) strtol( next, (char**) out, 10 ); -} - - -/** - * Function hexParse - * parses an ASCII hex integer string with possible leading whitespace into - * a long integer and updates the pointer at \a out if it is not NULL, just - * like "man strtol". I can use this without casting, and its name says - * what I am doing. - */ -static inline long hexParse( const char* next, const char** out = NULL ) -{ - // please just compile this and be quiet, hide casting ugliness: - return strtol( next, (char**) out, 16 ); -} - - -BOARD* KICAD_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties ) -{ - LOCALE_IO toggle; // toggles on, then off, the C locale. - - m_board = aAppendToMe ? aAppendToMe : new BOARD(); - - // delete on exception, iff I own m_board, according to aAppendToMe - auto_ptr deleter( aAppendToMe ? NULL : m_board ); - - FILE* fp = wxFopen( aFileName, wxT( "rt" ) ); - if( !fp ) - { - m_error.Printf( _( "Unable to open file '%s'" ), aFileName.GetData() ); - THROW_IO_ERROR( m_error ); - } - - // reader now owns fp, will close on exception or return - FILE_LINE_READER reader( fp, aFileName ); - - m_reader = &reader; // member function accessibility - - init( aProperties ); - - checkVersion(); - - loadAllSections( bool( aAppendToMe ) ); - - deleter.release(); - return m_board; -} - - -void KICAD_PLUGIN::loadAllSections( bool doAppend ) -{ - // $GENERAL section is first - - // $SHEETDESCR section is next - - // $SETUP section is next - - // Then follows $EQUIPOT and all the rest - - while( READLINE() ) - { - char* line = m_reader->Line(); - - // put the more frequent ones at the top, but realize TRACKs are loaded as a group - - if( TESTLINE( "$MODULE" ) ) - { - loadMODULE(); - } - - else if( TESTLINE( "$DRAWSEGMENT" ) ) - { - loadPCB_LINE(); - } - - else if( TESTLINE( "$EQUIPOT" ) ) - { - loadNETINFO_ITEM(); - } - - else if( TESTLINE( "$TEXTPCB" ) ) - { - loadPCB_TEXT(); - } - - else if( TESTLINE( "$TRACK" ) ) - { - TRACK* insertBeforeMe = doAppend ? NULL : m_board->m_Track.GetFirst(); - loadTrackList( insertBeforeMe, PCB_TRACE_T ); - } - - else if( TESTLINE( "$NCLASS" ) ) - { - loadNETCLASS(); - } - - else if( TESTLINE( "$CZONE_OUTLINE" ) ) - { - loadZONE_CONTAINER(); - } - - else if( TESTLINE( "$COTATION" ) ) - { - loadDIMENSION(); - } - - else if( TESTLINE( "$PCB_TARGET" ) || TESTLINE( "$MIREPCB" ) ) - { - loadPCB_TARGET(); - } - - else if( TESTLINE( "$ZONE" ) ) - { - SEGZONE* insertBeforeMe = doAppend ? NULL : m_board->m_Zone.GetFirst(); - loadTrackList( insertBeforeMe, PCB_ZONE_T ); - } - - else if( TESTLINE( "$GENERAL" ) ) - { - loadGENERAL(); - } - - else if( TESTLINE( "$SHEETDESCR" ) ) - { - loadSHEET(); - } - - else if( TESTLINE( "$SETUP" ) ) - { - if( !doAppend ) - { - loadSETUP(); - } - else - { - while( READLINE() ) - { - line = m_reader->Line(); // gobble until $EndSetup - - if( TESTLINE( "$EndSETUP" ) ) - break; - } - } - } - - else if( TESTLINE( "$EndBOARD" ) ) - return; // preferred exit - } - - THROW_IO_ERROR( "Missing '$EndBOARD'" ); -} - - -void KICAD_PLUGIN::checkVersion() -{ - // Read first line and TEST if it is a PCB file format header like this: - // "PCBNEW-BOARD Version 1 ...." - - m_reader->ReadLine(); - - char* line = m_reader->Line(); - - if( !TESTLINE( "PCBNEW-BOARD" ) ) - { - THROW_IO_ERROR( "Unknown file type" ); - } - - int ver = 1; // if sccanf fails - sscanf( line, "PCBNEW-BOARD Version %d", &ver ); - - if( ver > BOARD_FILE_VERSION ) - { - m_error.Printf( VERSION_ERROR_FORMAT, ver ); - THROW_IO_ERROR( m_error ); - } - - m_loading_format_version = ver; -} - - -void KICAD_PLUGIN::loadGENERAL() -{ - while( READLINE() ) - { - char* line = m_reader->Line(); - const char* data; - - if( TESTLINE( "Units" ) ) - { - // what are the engineering units of the lengths in the BOARD? - data = strtok( line + SZ("Units"), delims ); - - if( !strcmp( data, "mm" ) ) - { -#if defined(USE_PCBNEW_NANOMETERS) - diskToBiu = 1000000.0; -#else - THROW_IO_ERROR( _( "May not load new *.brd file into 'PCBNew compiled for deci-mils'" ) ); -#endif - } - } - - else if( TESTLINE( "EnabledLayers" ) ) - { - int enabledLayers = hexParse( line + SZ( "EnabledLayers" ) ); - - // layer usage - m_board->SetEnabledLayers( enabledLayers ); - - // layer visibility equals layer usage, unless overridden later via "VisibleLayers" - m_board->SetVisibleLayers( enabledLayers ); - } - - else if( TESTLINE( "VisibleLayers" ) ) - { - int visibleLayers = hexParse( line + SZ( "VisibleLayers" ) ); - m_board->SetVisibleLayers( visibleLayers ); - } - - else if( TESTLINE( "Ly" ) ) // Old format for Layer count - { - int layer_mask = hexParse( line + SZ( "Ly" ) ); - int layer_count = 0; - - for( int ii = 0; ii < NB_COPPER_LAYERS && layer_mask; ++ii, layer_mask >>= 1 ) - { - if( layer_mask & 1 ) - layer_count++; - } - - m_board->SetCopperLayerCount( layer_count ); - } - - else if( TESTLINE( "BoardThickness" ) ) - { - BIU thickn = biuParse( line + SZ( "BoardThickness" ) ); - m_board->GetDesignSettings().m_BoardThickness = thickn; - } - - /* - else if( TESTLINE( "Links" ) ) - { - // Info only, do nothing, but only for a short while. - } - */ - - else if( TESTLINE( "NoConn" ) ) - { - int tmp = intParse( line + SZ( "NoConn" ) ); - m_board->m_NbNoconnect = tmp; - } - - else if( TESTLINE( "Di" ) ) - { - BIU x1 = biuParse( line + SZ( "Di" ), &data ); - BIU y1 = biuParse( data, &data ); - BIU x2 = biuParse( data, &data ); - BIU y2 = biuParse( data ); - - EDA_RECT bbbox( wxPoint( x1, y1 ), wxSize( x2-x1, y2-y1 ) ); - - m_board->SetBoundingBox( bbbox ); - } - - /* Read the number of segments of type DRAW, TRACK, ZONE - else if( TESTLINE( "Ndraw" ) ) - { - NbDraw = intParse( line + SZ( "Ndraw" ) ); - } - - else if( TESTLINE( "Ntrack" ) ) - { - NbTrack = intParse( line + SZ( "Ntrack" ) ); - } - - else if( TESTLINE( "Nzone" ) ) - { - NbZone = intParse( line + SZ( "Nzone" ) ); - } - - else if( TESTLINE( "Nmodule" ) ) - { - NbMod = intParse( line + SZ( "Nmodule" ) ); - } - - else if( TESTLINE( "Nnets" ) ) - { - NbNets = intParse( line + SZ( "Nnets" ) ); - } - */ - - else if( TESTLINE( "$EndGENERAL" ) ) - return; // preferred exit - } - - THROW_IO_ERROR( "Missing '$EndGENERAL'" ); -} - - -void KICAD_PLUGIN::loadSHEET() -{ - char buf[260]; - TITLE_BLOCK tb; - - while( READLINE() ) - { - char* line = m_reader->Line(); - - if( TESTLINE( "Sheet" ) ) - { - // e.g. "Sheet A3 16535 11700" - // width and height are in 1/1000th of an inch, always - - PAGE_INFO page; - char* sname = strtok( line + SZ( "Sheet" ), delims ); - - if( sname ) - { - wxString wname = FROM_UTF8( sname ); - if( !page.SetType( wname ) ) - { - m_error.Printf( _( "Unknown sheet type '%s' on line:%d" ), - wname.GetData(), m_reader->LineNumber() ); - THROW_IO_ERROR( m_error ); - } - - char* width = strtok( NULL, delims ); - char* height = strtok( NULL, delims ); - char* orient = strtok( NULL, delims ); - - // only parse the width and height if page size is custom ("User") - if( wname == PAGE_INFO::Custom ) - { - if( width && height ) - { - // legacy disk file describes paper in mils - // (1/1000th of an inch) - int w = intParse( width ); - int h = intParse( height ); - - page.SetWidthMils( w ); - page.SetHeightMils( h ); - } - } - - if( orient && !strcmp( orient, "portrait" ) ) - { - page.SetPortrait( true ); - } - - m_board->SetPageSettings( page ); - } - } - - else if( TESTLINE( "Title" ) ) - { - ReadDelimitedText( buf, line, sizeof(buf) ); - tb.SetTitle( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Date" ) ) - { - ReadDelimitedText( buf, line, sizeof(buf) ); - tb.SetDate( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Rev" ) ) - { - ReadDelimitedText( buf, line, sizeof(buf) ); - tb.SetRevision( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Comp" ) ) - { - ReadDelimitedText( buf, line, sizeof(buf) ); - tb.SetCompany( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Comment1" ) ) - { - ReadDelimitedText( buf, line, sizeof(buf) ); - tb.SetComment1( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Comment2" ) ) - { - ReadDelimitedText( buf, line, sizeof(buf) ); - tb.SetComment2( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Comment3" ) ) - { - ReadDelimitedText( buf, line, sizeof(buf) ); - tb.SetComment3( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Comment4" ) ) - { - ReadDelimitedText( buf, line, sizeof(buf) ); - tb.SetComment4( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "$EndSHEETDESCR" ) ) - { - m_board->SetTitleBlock( tb ); - return; // preferred exit - } - } - - THROW_IO_ERROR( "Missing '$EndSHEETDESCR'" ); -} - - -void KICAD_PLUGIN::loadSETUP() -{ - NETCLASS* netclass_default = m_board->m_NetClasses.GetDefault(); - BOARD_DESIGN_SETTINGS bds = m_board->GetDesignSettings(); - ZONE_SETTINGS zs = m_board->GetZoneSettings(); - - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - if( TESTLINE( "PcbPlotParams" ) ) - { - PCB_PLOT_PARAMS plot_opts; - - PCB_PLOT_PARAMS_PARSER parser( line + SZ( "PcbPlotParams" ), m_reader->GetSource() ); - - plot_opts.Parse( &parser ); - - m_board->SetPlotOptions( plot_opts ); - } - - else if( TESTLINE( "AuxiliaryAxisOrg" ) ) - { - BIU gx = biuParse( line + SZ( "AuxiliaryAxisOrg" ), &data ); - BIU gy = biuParse( data ); - - m_board->SetOriginAxisPosition( wxPoint( gx, gy ) ); - } - - else if( TESTLINE( "Layers" ) ) - { - int tmp = intParse( line + SZ( "Layers" ) ); - m_board->SetCopperLayerCount( tmp ); - } - - else if( TESTSUBSTR( "Layer[" ) ) - { - // eg: "Layer[n] " - - int layer = intParse( line + SZ( "Layer[" ), &data ); - - data = strtok( (char*) data+1, delims ); // +1 for ']' - if( data ) - { - wxString layerName = FROM_UTF8( data ); - m_board->SetLayerName( layer, layerName ); - - data = strtok( NULL, delims ); - if( data ) // optional in old board files - { - LAYER_T type = LAYER::ParseType( data ); - m_board->SetLayerType( layer, type ); - } - } - } - - else if( TESTLINE( "TrackWidthList" ) ) - { - BIU tmp = biuParse( line + SZ( "TrackWidthList" ) ); - m_board->m_TrackWidthList.push_back( tmp ); - } - - else if( TESTLINE( "TrackClearence" ) ) - { - BIU tmp = biuParse( line + SZ( "TrackClearence" ) ); - netclass_default->SetClearance( tmp ); - } - - else if( TESTLINE( "TrackMinWidth" ) ) - { - BIU tmp = biuParse( line + SZ( "TrackMinWidth" ) ); - bds.m_TrackMinWidth = tmp; - } - - else if( TESTLINE( "ZoneClearence" ) ) - { - BIU tmp = biuParse( line + SZ( "ZoneClearence" ) ); - zs.m_ZoneClearance = tmp; - } - - else if( TESTLINE( "Zone_45_Only" ) ) - { - bool tmp = (bool) intParse( line + SZ( "Zone_45_Only" ) ); - zs.m_Zone_45_Only = tmp; - } - - else if( TESTLINE( "DrawSegmWidth" ) ) - { - BIU tmp = biuParse( line + SZ( "DrawSegmWidth" ) ); - bds.m_DrawSegmentWidth = tmp; - } - - else if( TESTLINE( "EdgeSegmWidth" ) ) - { - BIU tmp = biuParse( line + SZ( "EdgeSegmWidth" ) ); - bds.m_EdgeSegmentWidth = tmp; - } - - else if( TESTLINE( "ViaMinSize" ) ) - { - BIU tmp = biuParse( line + SZ( "ViaMinSize" ) ); - bds.m_ViasMinSize = tmp; - } - - else if( TESTLINE( "MicroViaMinSize" ) ) - { - BIU tmp = biuParse( line + SZ( "MicroViaMinSize" ) ); - bds.m_MicroViasMinSize = tmp; - } - - else if( TESTLINE( "ViaSizeList" ) ) - { - // e.g. "ViaSizeList DIAMETER [DRILL]" - - BIU drill = 0; - BIU diameter = biuParse( line + SZ( "ViaSizeList" ), &data ); - - data = strtok( (char*) data, delims ); - if( data ) // DRILL may not be present ? - drill = biuParse( data ); - - m_board->m_ViasDimensionsList.push_back( VIA_DIMENSION( diameter, drill ) ); - } - - else if( TESTLINE( "ViaDrill" ) ) - { - BIU tmp = biuParse( line + SZ( "ViaDrill" ) ); - netclass_default->SetViaDrill( tmp ); - } - - else if( TESTLINE( "ViaMinDrill" ) ) - { - BIU tmp = biuParse( line + SZ( "ViaMinDrill" ) ); - bds.m_ViasMinDrill = tmp; - } - - else if( TESTLINE( "MicroViaDrill" ) ) - { - BIU tmp = biuParse( line + SZ( "MicroViaDrill" ) ); - netclass_default->SetuViaDrill( tmp ); - } - - else if( TESTLINE( "MicroViaMinDrill" ) ) - { - BIU tmp = biuParse( line + SZ( "MicroViaMinDrill" ) ); - bds.m_MicroViasMinDrill = tmp; - } - - else if( TESTLINE( "MicroViasAllowed" ) ) - { - int tmp = intParse( line + SZ( "MicroViasAllowed" ) ); - bds.m_MicroViasAllowed = tmp; - } - - else if( TESTLINE( "TextPcbWidth" ) ) - { - BIU tmp = biuParse( line + SZ( "TextPcbWidth" ) ); - bds.m_PcbTextWidth = tmp; - } - - else if( TESTLINE( "TextPcbSize" ) ) - { - BIU x = biuParse( line + SZ( "TextPcbSize" ), &data ); - BIU y = biuParse( data ); - - bds.m_PcbTextSize = wxSize( x, y ); - } - - else if( TESTLINE( "EdgeModWidth" ) ) - { - BIU tmp = biuParse( line + SZ( "EdgeModWidth" ) ); - bds.m_ModuleSegmentWidth = tmp; - } - - else if( TESTLINE( "TextModWidth" ) ) - { - BIU tmp = biuParse( line + SZ( "TextModWidth" ) ); - bds.m_ModuleTextWidth = tmp; - } - - else if( TESTLINE( "TextModSize" ) ) - { - BIU x = biuParse( line + SZ( "TextModSize" ), &data ); - BIU y = biuParse( data ); - - bds.m_ModuleTextSize = wxSize( x, y ); - } - - else if( TESTLINE( "PadSize" ) ) - { - BIU x = biuParse( line + SZ( "PadSize" ), &data ); - BIU y = biuParse( data ); - - bds.m_Pad_Master.SetSize( wxSize( x, y ) ); - } - - else if( TESTLINE( "PadDrill" ) ) - { - BIU tmp = biuParse( line + SZ( "PadDrill" ) ); - bds.m_Pad_Master.SetDrillSize( wxSize( tmp, tmp ) ); - } - - else if( TESTLINE( "Pad2MaskClearance" ) ) - { - BIU tmp = biuParse( line + SZ( "Pad2MaskClearance" ) ); - bds.m_SolderMaskMargin = tmp; - } - - else if( TESTLINE( "Pad2PasteClearance" ) ) - { - BIU tmp = biuParse( line + SZ( "Pad2PasteClearance" ) ); - bds.m_SolderPasteMargin = tmp; - } - - else if( TESTLINE( "Pad2PasteClearanceRatio" ) ) - { - double ratio = atof( line + SZ( "Pad2PasteClearanceRatio" ) ); - bds.m_SolderPasteMarginRatio = ratio; - } - - else if( TESTLINE( "GridOrigin" ) ) - { - /* @todo - BIU gx = biuParse( line + SZ( "GridOrigin" ), &data ); - BIU gy = biuParse( data ); - - GetScreen()->m_GridOrigin.x = Ox; - GetScreen()->m_GridOrigin.y = Oy; - */ - } - - else if( TESTLINE( "VisibleElements" ) ) - { - int visibleElements = hexParse( line + SZ( "VisibleElements" ) ); - bds.SetVisibleElements( visibleElements ); - } - - else if( TESTLINE( "$EndSETUP" ) ) - { - m_board->SetDesignSettings( bds ); - m_board->SetZoneSettings( zs ); - - // Until such time as the *.brd file does not have the - // global parameters: - // "TrackWidth", "TrackMinWidth", "ViaSize", "ViaDrill", - // "ViaMinSize", and "TrackClearence", put those same global - // values into the default NETCLASS until later board load - // code should override them. *.brd files which have been - // saved with knowledge of NETCLASSes will override these - // defaults, old boards will not. - // - // @todo: I expect that at some point we can remove said global - // parameters from the *.brd file since the ones in the - // default netclass serve the same purpose. If needed - // at all, the global defaults should go into a preferences - // file instead so they are there to start new board - // projects. - m_board->m_NetClasses.GetDefault()->SetParams(); - - return; // preferred exit - } - } - - // @todo: this code is currently unreachable, would need a goto, to get here. - // that may be better handled with an #ifdef - - /* Ensure tracks and vias sizes lists are ok: - * Sort lists by by increasing value and remove duplicates - * (the first value is not tested, because it is the netclass value - */ - sort( m_board->m_ViasDimensionsList.begin() + 1, m_board->m_ViasDimensionsList.end() ); - sort( m_board->m_TrackWidthList.begin() + 1, m_board->m_TrackWidthList.end() ); - - for( unsigned ii = 1; ii < m_board->m_ViasDimensionsList.size() - 1; ii++ ) - { - if( m_board->m_ViasDimensionsList[ii] == m_board->m_ViasDimensionsList[ii + 1] ) - { - m_board->m_ViasDimensionsList.erase( m_board->m_ViasDimensionsList.begin() + ii ); - ii--; - } - } - - for( unsigned ii = 1; ii < m_board->m_TrackWidthList.size() - 1; ii++ ) - { - if( m_board->m_TrackWidthList[ii] == m_board->m_TrackWidthList[ii + 1] ) - { - m_board->m_TrackWidthList.erase( m_board->m_TrackWidthList.begin() + ii ); - ii--; - } - } -} - - -void KICAD_PLUGIN::loadMODULE() -{ - auto_ptr module( new MODULE( m_board ) ); - - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - // most frequently encountered ones at the top - - if( TESTSUBSTR( "D" ) ) // read a drawing item, e.g. "DS" - { - loadMODULE_EDGE( module.get() ); - } - - else if( TESTLINE( "$PAD" ) ) - { - loadPAD( module.get() ); - } - - // Read a footprint text description (ref, value, or drawing) - else if( TESTSUBSTR( "T" ) ) - { - // e.g. "T1 6940 -16220 350 300 900 60 M I 20 N "CFCARD"\r\n" - - int tnum = intParse( line + SZ( "T" ) ); - - TEXTE_MODULE* textm; - - if( tnum == TEXT_is_REFERENCE ) - textm = module->m_Reference; - else if( tnum == TEXT_is_VALUE ) - textm = module->m_Value; - else - { - // text is a drawing - textm = new TEXTE_MODULE( module.get() ); - module->m_Drawings.PushBack( textm ); - } - loadMODULE_TEXT( textm ); - } - - else if( TESTLINE( "Po" ) ) - { - // e.g. "Po 19120 39260 900 0 4E823D06 46EAAFA5 ~~\r\n" - - // sscanf( PtLine, "%d %d %d %d %lX %lX %s", &m_Pos.x, &m_Pos.y, &m_Orient, &m_Layer, &m_LastEdit_Time, &m_TimeStamp, BufCar1 ); - - BIU pos_x = biuParse( line + SZ( "Po" ), &data ); - BIU pos_y = biuParse( data, &data ); - int orient = intParse( data, &data ); - int layer = intParse( data, &data ); - - long edittime = hexParse( data, &data ); - long timestamp = hexParse( data, &data ); - - data = strtok( (char*) data+1, delims ); - - // data is now a two character long string - if( data[0] == 'F' ) - module->SetLocked( true ); - - if( data[1] == 'P' ) - module->SetIsPlaced( true ); - - module->SetPosition( wxPoint( pos_x, pos_y ) ); - module->SetLayer( layer ); - module->SetOrientation( orient ); - module->SetTimeStamp( timestamp ); - module->SetLastEditTime( edittime ); - } - - else if( TESTLINE( "Li" ) ) // Library name of footprint - { - module->m_LibRef = FROM_UTF8( StrPurge( line + SZ( "Li" ) ) ); - } - - else if( TESTLINE( "Sc" ) ) // timestamp - { - long timestamp = hexParse( line + SZ( "Sc" ) ); - module->SetTimeStamp( timestamp ); - } - - else if( TESTLINE( "Op" ) ) // (Op)tions for auto placement - { - int itmp1 = hexParse( line + SZ( "Op" ), &data ); - int itmp2 = hexParse( data ); - - int cntRot180 = itmp2 & 0x0F; - if( cntRot180 > 10 ) - cntRot180 = 10; - - module->m_CntRot180 = cntRot180; - - int cntRot90 = itmp1 & 0x0F; - if( cntRot90 > 10 ) - cntRot90 = 0; - - itmp1 = (itmp1 >> 4) & 0x0F; - if( itmp1 > 10 ) - itmp1 = 0; - - module->m_CntRot90 = (itmp1 << 4) | cntRot90; - } - - else if( TESTLINE( "At" ) ) // (At)tributes of module - { - int attrs = MOD_DEFAULT; - - data = line + SZ( "At" ); - - if( strstr( data, "SMD" ) ) - attrs |= MOD_CMS; - - if( strstr( data, "VIRTUAL" ) ) - attrs |= MOD_VIRTUAL; - - module->SetAttributes( attrs ); - } - - else if( TESTLINE( "AR" ) ) // Alternate Reference - { - // e.g. "AR /47BA2624/45525076" - data = strtok( line + SZ( "AR" ), delims ); - module->SetPath( FROM_UTF8( data ) ); - } - - else if( TESTLINE( "$SHAPE3D" ) ) - { - load3D( module.get() ); - } - - else if( TESTLINE( "Cd" ) ) - { - // e.g. "Cd Double rangee de contacts 2 x 4 pins\r\n" - module->m_Doc = FROM_UTF8( StrPurge( line + SZ( "Cd" ) ) ); - } - - else if( TESTLINE( "Kw" ) ) // Key words - { - module->m_KeyWord = FROM_UTF8( StrPurge( line + SZ( "Kw" ) ) ); - } - - else if( TESTLINE( ".SolderPasteRatio" ) ) - { - double tmp = atof( line + SZ( ".SolderPasteRatio" ) ); - module->SetLocalSolderPasteMarginRatio( tmp ); - } - - else if( TESTLINE( ".SolderPaste" ) ) - { - BIU tmp = biuParse( line + SZ( ".SolderPaste" ) ); - module->SetLocalSolderPasteMargin( tmp ); - } - - else if( TESTLINE( ".SolderMask" ) ) - { - BIU tmp = biuParse( line + SZ( ".SolderMask" ) ); - module->SetLocalSolderMaskMargin( tmp ); - } - - else if( TESTLINE( ".LocalClearance" ) ) - { - BIU tmp = biuParse( line + SZ( ".LocalClearance" ) ); - module->SetLocalClearance( tmp ); - } - - else if( TESTLINE( ".ZoneConnection" ) ) - { - int tmp = intParse( line + SZ( ".ZoneConnection" ) ); - module->SetZoneConnection( (ZoneConnection)tmp ); - } - - else if( TESTLINE( ".ThermalWidth" ) ) - { - BIU tmp = biuParse( line + SZ( ".ThermalWidth" ) ); - module->SetThermalWidth( tmp ); - } - - else if( TESTLINE( ".ThermalGap" ) ) - { - BIU tmp = biuParse( line + SZ( ".ThermalGap" ) ); - module->SetThermalGap( tmp ); - } - - else if( TESTLINE( "$EndMODULE" ) ) - { - module->CalculateBoundingBox(); - - m_board->Add( module.release(), ADD_APPEND ); - - return; // preferred exit - } - } - - THROW_IO_ERROR( "Missing '$EndMODULE'" ); -} - - -void KICAD_PLUGIN::loadPAD( MODULE* aModule ) -{ - auto_ptr pad( new D_PAD( aModule ) ); - - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - if( TESTLINE( "Sh" ) ) // (Sh)ape and padname - { - // e.g. "Sh "A2" C 520 520 0 0 900" - // or "Sh "1" R 157 1378 0 0 900" - - // mypadname is LATIN1/CRYLIC for BOARD_FORMAT_VERSION 1, - // but for BOARD_FORMAT_VERSION 2, it is UTF8 from disk. - // So we have to go through two code paths. Moving forward - // padnames will be in UTF8 on disk, as are all KiCad strings on disk. - char mypadname[50]; - - data = line + SZ( "Sh" ) + 1; // +1 skips trailing whitespace - - data = data + ReadDelimitedText( mypadname, data, sizeof(mypadname) ) + 1; // +1 trailing whitespace - - // sscanf( PtLine, " %s %d %d %d %d %d", BufCar, &m_Size.x, &m_Size.y, &m_DeltaSize.x, &m_DeltaSize.y, &m_Orient ); - - int padshape = *data++; - BIU size_x = biuParse( data, &data ); - BIU size_y = biuParse( data, &data ); - BIU delta_x = biuParse( data, &data ); - BIU delta_y = biuParse( data, &data ); - double orient = degParse( data ); - - switch( padshape ) - { - case 'C': padshape = PAD_CIRCLE; break; - case 'R': padshape = PAD_RECT; break; - case 'O': padshape = PAD_OVAL; break; - case 'T': padshape = PAD_TRAPEZOID; break; - default: - m_error.Printf( _( "Unknown padshape '%s' on line:%d" ), - FROM_UTF8( line ).GetData(), m_reader->LineNumber() ); - THROW_IO_ERROR( m_error ); - } - - // go through a wxString to establish a universal character set properly - wxString padname; - - if( m_loading_format_version == 1 ) - { - // add 8 bit bytes, file format 1 was KiCad font type byte, - // simply promote those 8 bit bytes up into UNICODE. (subset of LATIN1) - const unsigned char* cp = (unsigned char*) mypadname; - while( *cp ) - { - padname += *cp++; // unsigned, ls 8 bits only - } - } - else - { - // version 2, which is UTF8. - padname = FROM_UTF8( mypadname ); - } - // chances are both were ASCII, but why take chances? - - pad->SetPadName( padname ); - pad->SetShape( PAD_SHAPE_T( padshape ) ); - pad->SetSize( wxSize( size_x, size_y ) ); - pad->SetDelta( wxSize( delta_x, delta_y ) ); - pad->SetOrientation( orient ); - } - - else if( TESTLINE( "Dr" ) ) // (Dr)ill - { - // e.g. "Dr 350 0 0" or "Dr 0 0 0 O 0 0" - // sscanf( PtLine, "%d %d %d %s %d %d", &m_Drill.x, &m_Offset.x, &m_Offset.y, BufCar, &dx, &dy ); - - BIU drill_x = biuParse( line + SZ( "Dr" ), &data ); - BIU drill_y = drill_x; - BIU offs_x = biuParse( data, &data ); - BIU offs_y = biuParse( data, &data ); - - PAD_SHAPE_T drShape = PAD_CIRCLE; - - data = strtok( (char*) data, delims ); - if( data ) // optional shape - { - if( data[0] == 'O' ) - { - drShape = PAD_OVAL; - - data = strtok( NULL, delims ); - drill_x = biuParse( data ); - - data = strtok( NULL, delims ); - drill_y = biuParse( data ); - } - } - - pad->SetDrillShape( drShape ); - pad->SetOffset( wxPoint( offs_x, offs_y ) ); - pad->SetDrillSize( wxSize( drill_x, drill_y ) ); - } - - else if( TESTLINE( "At" ) ) // (At)tribute - { - // e.g. "At SMD N 00888000" - // sscanf( PtLine, "%s %s %X", BufLine, BufCar, &m_layerMask ); - - PAD_ATTR_T attribute; - int layer_mask; - - data = strtok( line + SZ( "At" ), delims ); - - if( !strcmp( data, "SMD" ) ) - attribute = PAD_SMD; - else if( !strcmp( data, "CONN" ) ) - attribute = PAD_CONN; - else if( !strcmp( data, "HOLE" ) ) - attribute = PAD_HOLE_NOT_PLATED; - else - attribute = PAD_STANDARD; - - data = strtok( NULL, delims ); // skip BufCar - data = strtok( NULL, delims ); - - layer_mask = hexParse( data ); - - pad->SetLayerMask( layer_mask ); - pad->SetAttribute( attribute ); - } - - else if( TESTLINE( "Ne" ) ) // (Ne)tname - { - // e.g. "Ne 461 "V5.0" - - char buf[1024]; // can be fairly long - int netcode = intParse( line + SZ( "Ne" ), &data ); - - pad->SetNet( netcode ); - - // read Netname - ReadDelimitedText( buf, data, sizeof(buf) ); - pad->SetNetname( FROM_UTF8( StrPurge( buf ) ) ); - } - - else if( TESTLINE( "Po" ) ) // (Po)sition - { - // e.g. "Po 500 -500" - wxPoint pos; - - pos.x = biuParse( line + SZ( "Po" ), &data ); - pos.y = biuParse( data ); - - pad->SetPos0( pos ); - pad->SetPosition( pos ); - } - - else if( TESTLINE( "Le" ) ) - { - BIU tmp = biuParse( line + SZ( "Le" ) ); - pad->SetDieLength( tmp ); - } - - else if( TESTLINE( ".SolderMask" ) ) - { - BIU tmp = biuParse( line + SZ( ".SolderMask" ) ); - pad->SetLocalSolderMaskMargin( tmp ); - } - - else if( TESTLINE( ".SolderPasteRatio" ) ) - { - double tmp = atof( line + SZ( ".SolderPasteRatio" ) ); - pad->SetLocalSolderPasteMarginRatio( tmp ); - } - - else if( TESTLINE( ".SolderPaste" ) ) - { - BIU tmp = biuParse( line + SZ( ".SolderPaste" ) ); - pad->SetLocalSolderPasteMargin( tmp ); - } - - else if( TESTLINE( ".LocalClearance" ) ) - { - BIU tmp = biuParse( line + SZ( ".LocalClearance" ) ); - pad->SetLocalClearance( tmp ); - } - - else if( TESTLINE( ".ZoneConnection" ) ) - { - int tmp = intParse( line + SZ( ".ZoneConnection" ) ); - pad->SetZoneConnection( (ZoneConnection)tmp ); - } - - else if( TESTLINE( ".ThermalWidth" ) ) - { - BIU tmp = biuParse( line + SZ( ".ThermalWidth" ) ); - pad->SetThermalWidth( tmp ); - } - - else if( TESTLINE( ".ThermalGap" ) ) - { - BIU tmp = biuParse( line + SZ( ".ThermalGap" ) ); - pad->SetThermalGap( tmp ); - } - - else if( TESTLINE( "$EndPAD" ) ) - { - wxPoint padpos = pad->GetPosition(); - - RotatePoint( &padpos, aModule->GetOrientation() ); - - pad->SetPosition( padpos + aModule->GetPosition() ); - - aModule->m_Pads.PushBack( pad.release() ); - return; // preferred exit - } - } - - THROW_IO_ERROR( "Missing '$EndPAD'" ); -} - - -void KICAD_PLUGIN::loadMODULE_EDGE( MODULE* aModule ) -{ - STROKE_T shape; - char* line = m_reader->Line(); // obtain current (old) line - - switch( line[1] ) - { - case 'S': shape = S_SEGMENT; break; - case 'C': shape = S_CIRCLE; break; - case 'A': shape = S_ARC; break; - case 'P': shape = S_POLYGON; break; - default: - m_error.Printf( wxT( "Unknown EDGE_MODULE type '%s'" ), FROM_UTF8( line ).GetData() ); - THROW_IO_ERROR( m_error ); - } - - auto_ptr dwg( new EDGE_MODULE( aModule, shape ) ); // a drawing - - const char* data; - - // common to all cases, and we have to check their values uniformly at end - BIU width = 1; - int layer = FIRST_NON_COPPER_LAYER; - - switch( shape ) - { - case S_ARC: - { - // sscanf( Line + 3, "%d %d %d %d %d %d %d", &m_Start0.x, &m_Start0.y, &m_End0.x, &m_End0.y, &m_Angle, &m_Width, &m_Layer ); - BIU start0_x = biuParse( line + SZ( "DA" ), &data ); - BIU start0_y = biuParse( data, &data ); - BIU end0_x = biuParse( data, &data ); - BIU end0_y = biuParse( data, &data ); - double angle = degParse( data, &data ); - - width = biuParse( data, &data ); - layer = intParse( data ); - - dwg->SetAngle( angle ); - dwg->m_Start0 = wxPoint( start0_x, start0_y ); - dwg->m_End0 = wxPoint( end0_x, end0_y ); - } - break; - - case S_SEGMENT: - case S_CIRCLE: - { - // e.g. "DS -7874 -10630 7874 -10630 50 20\r\n" - // sscanf( Line + 3, "%d %d %d %d %d %d", &m_Start0.x, &m_Start0.y, &m_End0.x, &m_End0.y, &m_Width, &m_Layer ); - - BIU start0_x = biuParse( line + SZ( "DS" ), &data ); - BIU start0_y = biuParse( data, &data ); - BIU end0_x = biuParse( data, &data ); - BIU end0_y = biuParse( data, &data ); - - width = biuParse( data, &data ); - layer = intParse( data ); - - dwg->m_Start0 = wxPoint( start0_x, start0_y ); - dwg->m_End0 = wxPoint( end0_x, end0_y ); - } - break; - - case S_POLYGON: - { - // e.g. "DP %d %d %d %d %d %d %d\n" - // sscanf( Line + 3, "%d %d %d %d %d %d %d", &m_Start0.x, &m_Start0.y, &m_End0.x, &m_End0.y, &pointCount, &m_Width, &m_Layer ); - - BIU start0_x = biuParse( line + SZ( "DP" ), &data ); - BIU start0_y = biuParse( data, &data ); - BIU end0_x = biuParse( data, &data ); - BIU end0_y = biuParse( data, &data ); - int ptCount = intParse( data, &data ); - - width = biuParse( data, &data ); - layer = intParse( data ); - - dwg->m_Start0 = wxPoint( start0_x, start0_y ); - dwg->m_End0 = wxPoint( end0_x, end0_y ); - - std::vector pts; - pts.reserve( ptCount ); - - for( int ii = 0; iiLine(); - - // e.g. "Dl 23 44\n" - - if( !TESTLINE( "Dl" ) ) - { - THROW_IO_ERROR( "Missing Dl point def" ); - } - - BIU x = biuParse( line + SZ( "Dl" ), &data ); - BIU y = biuParse( data ); - - pts.push_back( wxPoint( x, y ) ); - } - - dwg->SetPolyPoints( pts ); - } - break; - - default: - // first switch code above prevents us from getting here. - break; - } - - // Check for a reasonable width: - - /* @todo no MAX_WIDTH in out of reach header. - if( width <= 1 ) - width = 1; - else if( width > MAX_WIDTH ) - width = MAX_WIDTH; - */ - - // Check for a reasonable layer: - // m_Layer must be >= FIRST_NON_COPPER_LAYER, but because microwave footprints - // can use the copper layers m_Layer < FIRST_NON_COPPER_LAYER is allowed. - // @todo: changes use of EDGE_MODULE these footprints and allows only - // m_Layer >= FIRST_NON_COPPER_LAYER - if( layer < 0 || layer > LAST_NON_COPPER_LAYER ) - layer = SILKSCREEN_N_FRONT; - - dwg->SetWidth( width ); - dwg->SetLayer( layer ); - - EDGE_MODULE* em = dwg.release(); - - aModule->m_Drawings.PushBack( em ); - - // this had been done at the MODULE level before, presumably because the - // EDGE_MODULE needs to be already added to a module before this function will work. - em->SetDrawCoord(); -} - - -void KICAD_PLUGIN::loadMODULE_TEXT( TEXTE_MODULE* aText ) -{ - const char* data; - char* line = m_reader->Line(); // current (old) line - - // sscanf( line + 1, "%d %d %d %d %d %d %d %s %s %d %s", &type, &m_Pos0.x, &m_Pos0.y, &m_Size.y, &m_Size.x, - // &m_Orient, &m_Thickness, BufCar1, BufCar2, &layer, BufCar3 ) >= 10 ) - - // e.g. "T1 6940 -16220 350 300 900 60 M I 20 N "CFCARD"\r\n" - // or T1 0 500 600 400 900 80 M V 20 N"74LS245" - // ouch, the last example has no space between N and "74LS245" ! - // that is an older version. - - int type = intParse( line+1, &data ); - BIU pos0_x = biuParse( data, &data ); - BIU pos0_y = biuParse( data, &data ); - BIU size0_y = biuParse( data, &data ); - BIU size0_x = biuParse( data, &data ); - double orient = degParse( data, &data ); - BIU thickn = biuParse( data, &data ); - - // read the quoted text before the first call to strtok() which introduces - // NULs into the string and chops it into mutliple C strings, something - // ReadDelimitedText() cannot traverse. - - // convert the "quoted, escaped, UTF8, text" to a wxString, find it by skipping - // as far forward as needed until the first double quote. - ReadDelimitedText( &m_field, data ); - - aText->SetText( m_field ); - - // after switching to strtok, there's no easy coming back because of the - // embedded nul(s?) placed to the right of the current field. - char* mirror = strtok( (char*) data, delims ); - char* hide = strtok( NULL, delims ); - char* tmp = strtok( NULL, delims ); - int layer = tmp ? intParse( tmp ) : SILKSCREEN_N_FRONT; - char* italic = strtok( NULL, delims ); - - if( type != TEXT_is_REFERENCE && type != TEXT_is_VALUE ) - type = TEXT_is_DIVERS; - - aText->SetType( type ); - - aText->SetPos0( wxPoint( pos0_x, pos0_y ) ); - - /* @todo move to accessor? cannot reach these defines from here - pcbnew.h off limit because of globals in there - // Test for a reasonable size: - if( size0_x < TEXTS_MIN_SIZE ) - size0_x = TEXTS_MIN_SIZE; - if( size0_y < TEXTS_MIN_SIZE ) - size0_y = TEXTS_MIN_SIZE; - */ - - aText->SetSize( wxSize( size0_x, size0_y ) ); - - // Due to the Pcbnew history, .m_Orient is saved in screen value - // but it is handled as relative to its parent footprint - - // @todo is there now an opportunity for a better way as we move to degrees and - // a new file format? - orient -= ( (MODULE*) aText->GetParent() )->GetOrientation(); - - aText->SetOrientation( orient ); - - // @todo put in accessors? - // Set a reasonable width: - if( thickn < 1 ) - thickn = 1; - - /* this is better left to the save function, or to the accessor, since we will - be supporting more than one board format. - aText->SetThickness( Clamp_Text_PenSize( thickn, aText->GetSize() ) ); - */ - aText->SetThickness( thickn ); - - aText->SetMirrored( mirror && *mirror == 'M' ); - - aText->SetVisible( !(hide && *hide == 'I') ); - - aText->SetItalic( italic && *italic == 'I' ); - - // @todo put in accessor? - // Test for a reasonable layer: - if( layer < 0 ) - layer = 0; - if( layer > LAST_NO_COPPER_LAYER ) - layer = LAST_NO_COPPER_LAYER; - if( layer == LAYER_N_BACK ) - layer = SILKSCREEN_N_BACK; - else if( layer == LAYER_N_FRONT ) - layer = SILKSCREEN_N_FRONT; - - aText->SetLayer( layer ); - - // Calculate the actual position. - aText->SetDrawCoord(); -} - - -void KICAD_PLUGIN::load3D( MODULE* aModule ) -{ - S3D_MASTER* t3D = aModule->m_3D_Drawings; - - if( !t3D->m_Shape3DName.IsEmpty() ) - { - S3D_MASTER* n3D = new S3D_MASTER( aModule ); - - aModule->m_3D_Drawings.PushBack( n3D ); - - t3D = n3D; - } - - while( READLINE() ) - { - char* line = m_reader->Line(); - - if( TESTLINE( "Na" ) ) // Shape File Name - { - char buf[512]; - ReadDelimitedText( buf, line + SZ( "Na" ), sizeof(buf) ); - t3D->m_Shape3DName = FROM_UTF8( buf ); - } - - else if( TESTLINE( "Sc" ) ) // Scale - { - sscanf( line + SZ( "Sc" ), "%lf %lf %lf\n", - &t3D->m_MatScale.x, - &t3D->m_MatScale.y, - &t3D->m_MatScale.z ); - } - - else if( TESTLINE( "Of" ) ) // Offset - { - sscanf( line + SZ( "Of" ), "%lf %lf %lf\n", - &t3D->m_MatPosition.x, - &t3D->m_MatPosition.y, - &t3D->m_MatPosition.z ); - } - - else if( TESTLINE( "Ro" ) ) // Rotation - { - sscanf( line + SZ( "Ro" ), "%lf %lf %lf\n", - &t3D->m_MatRotation.x, - &t3D->m_MatRotation.y, - &t3D->m_MatRotation.z ); - } - - else if( TESTLINE( "$EndSHAPE3D" ) ) - return; // preferred exit - } - - THROW_IO_ERROR( "Missing '$EndSHAPE3D'" ); -} - - -void KICAD_PLUGIN::loadPCB_LINE() -{ - /* example: - $DRAWSEGMENT - Po 0 57500 -1000 57500 0 150 - De 24 0 900 0 0 - $EndDRAWSEGMENT - */ - - auto_ptr dseg( new DRAWSEGMENT( m_board ) ); - - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - if( TESTLINE( "Po" ) ) - { - // sscanf( line + 2, " %d %d %d %d %d %d", &m_Shape, &m_Start.x, &m_Start.y, &m_End.x, &m_End.y, &m_Width ); - int shape = intParse( line + SZ( "Po" ), &data ); - BIU start_x = biuParse( data, &data ); - BIU start_y = biuParse( data, &data ); - BIU end_x = biuParse( data, &data ); - BIU end_y = biuParse( data, &data ); - BIU width = biuParse( data ); - - // @todo put in accessor? why 0? - if( width < 0 ) - width = 0; - - dseg->SetShape( shape ); - dseg->SetWidth( width ); - dseg->SetStart( wxPoint( start_x, start_y ) ); - dseg->SetEnd( wxPoint( end_x, end_y ) ); - } - - else if( TESTLINE( "De" ) ) - { - BIU x = 0; - BIU y; - - data = strtok( line + SZ( "De" ), delims ); - for( int i = 0; data; ++i, data = strtok( NULL, delims ) ) - { - switch( i ) - { - case 0: - int layer; - layer = intParse( data ); - - // @todo: put in accessor? - if( layer < FIRST_NO_COPPER_LAYER ) - layer = FIRST_NO_COPPER_LAYER; - - else if( layer > LAST_NO_COPPER_LAYER ) - layer = LAST_NO_COPPER_LAYER; - - dseg->SetLayer( layer ); - break; - case 1: - int mtype; - mtype = intParse( data ); - dseg->SetType( mtype ); // m_Type - break; - case 2: - double angle; - angle = degParse( data ); - dseg->SetAngle( angle ); // m_Angle - break; - case 3: - long timestamp; - timestamp = hexParse( data ); - dseg->SetTimeStamp( timestamp ); - break; - case 4: - int state; - state = hexParse( data ); - dseg->SetState( state, ON ); - break; - - // Bezier Control Points - case 5: - x = biuParse( data ); - break; - case 6: - y = biuParse( data ); - dseg->SetBezControl1( wxPoint( x, y ) ); - break; - - case 7: - x = biuParse( data ); - break; - case 8: - y = biuParse( data ); - dseg->SetBezControl2( wxPoint( x, y ) ); - break; - - default: - break; - } - } - } - - else if( TESTLINE( "$EndDRAWSEGMENT" ) ) - { - m_board->Add( dseg.release(), ADD_APPEND ); - return; // preferred exit - } - } - - THROW_IO_ERROR( "Missing '$EndDRAWSEGMENT'" ); -} - - -void KICAD_PLUGIN::loadNETINFO_ITEM() -{ - char buf[1024]; - - NETINFO_ITEM* net = new NETINFO_ITEM( m_board ); - m_board->AppendNet( net ); - - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - if( TESTLINE( "Na" ) ) - { - // e.g. "Na 58 "/cpu.sch/PAD7"\r\n" - - int tmp = intParse( line + SZ( "Na" ), &data ); - net->SetNet( tmp ); - - ReadDelimitedText( buf, data, sizeof(buf) ); - net->SetNetname( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "$EndEQUIPOT" ) ) - return; // preferred exit - } - - THROW_IO_ERROR( "Missing '$EndEQUIPOT'" ); -} - - -void KICAD_PLUGIN::loadPCB_TEXT() -{ - /* examples: - For a single line text: - ---------------------- - $TEXTPCB - Te "Text example" - Po 66750 53450 600 800 150 0 - From 24 1 0 Italic - $EndTEXTPCB - - For a multi line text: - --------------------- - $TEXTPCB - Te "Text example" - Nl "Line 2" - Po 66750 53450 600 800 150 0 - From 24 1 0 Italic - $EndTEXTPCB - Nl "line nn" is a line added to the current text - */ - - char text[1024]; - - // maybe someday a constructor that takes all this data in one call? - TEXTE_PCB* pcbtxt = new TEXTE_PCB( m_board ); - m_board->Add( pcbtxt, ADD_APPEND ); - - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - if( TESTLINE( "Te" ) ) // Text line (or first line for multi line texts) - { - ReadDelimitedText( text, line + 2, sizeof(text) ); - pcbtxt->SetText( FROM_UTF8( text ) ); - } - - else if( TESTLINE( "nl" ) ) // next line of the current text - { - ReadDelimitedText( text, line + SZ( "nl" ), sizeof(text) ); - pcbtxt->SetText( pcbtxt->GetText() + '\n' + FROM_UTF8( text ) ); - } - - else if( TESTLINE( "Po" ) ) - { - // sscanf( line + 2, " %d %d %d %d %d %d", &m_Pos.x, &m_Pos.y, &m_Size.x, &m_Size.y, &m_Thickness, &m_Orient ); - wxSize size; - - BIU pos_x = biuParse( line + SZ( "Po" ), &data ); - BIU pos_y = biuParse( data, &data ); - size.x = biuParse( data, &data ); - size.y = biuParse( data, &data ); - BIU thickn = biuParse( data, &data ); - double angle = degParse( data ); - - // Ensure the text has minimal size to see this text on screen: - - /* @todo wait until we are firmly in the nanometer world - if( sz.x < 5 ) - sz.x = 5; - - if( sz.y < 5 ) - sz.y = 5; - */ - - pcbtxt->SetSize( size ); - - /* @todo move into an accessor - // Set a reasonable width: - if( thickn < 1 ) - thickn = 1; - - thickn = Clamp_Text_PenSize( thickn, size ); - */ - - pcbtxt->SetThickness( thickn ); - pcbtxt->SetOrientation( angle ); - - pcbtxt->SetPosition( wxPoint( pos_x, pos_y ) ); - } - - else if( TESTLINE( "De" ) ) - { - // e.g. "De 21 1 0 Normal C\r\n" - // sscanf( line + 2, " %d %d %lX %s %c\n", &m_Layer, &normal_display, &m_TimeStamp, style, &hJustify ); - - int layer = intParse( line + SZ( "De" ), &data ); - int notMirrored = intParse( data, &data ); - long timestamp = hexParse( data, &data ); - char* style = strtok( (char*) data, delims ); - char* hJustify = strtok( NULL, delims ); - - pcbtxt->SetMirrored( !notMirrored ); - pcbtxt->SetTimeStamp( timestamp ); - pcbtxt->SetItalic( !strcmp( style, "Italic" ) ); - - EDA_TEXT_HJUSTIFY_T hj; - - if( hJustify ) - { - switch( *hJustify ) - { - default: - case 'C': hj = GR_TEXT_HJUSTIFY_CENTER; break; - case 'L': hj = GR_TEXT_HJUSTIFY_LEFT; break; - case 'R': hj = GR_TEXT_HJUSTIFY_RIGHT; break; - } - } - else - { - hj = GR_TEXT_HJUSTIFY_CENTER; - } - - pcbtxt->SetHorizJustify( hj ); - - if( layer < FIRST_COPPER_LAYER ) - layer = FIRST_COPPER_LAYER; - else if( layer > LAST_NO_COPPER_LAYER ) - layer = LAST_NO_COPPER_LAYER; - - pcbtxt->SetLayer( layer ); - - } - - else if( TESTLINE( "$EndTEXTPCB" ) ) - { - return; // preferred exit - } - } - - THROW_IO_ERROR( "Missing '$EndTEXTPCB'" ); -} - - -void KICAD_PLUGIN::loadTrackList( TRACK* aInsertBeforeMe, int aStructType ) -{ - while( READLINE() ) - { - // read two lines per loop iteration, each loop is one TRACK or VIA - // example first line: - // "Po 0 23994 28800 24400 28800 150 -1\r\n" - - const char* data; - char* line = m_reader->Line(); - - if( line[0] == '$' ) // $EndTRACK - return; // preferred exit - - // int arg_count = sscanf( line + 2, " %d %d %d %d %d %d %d", &shape, &tempStartX, &tempStartY, &tempEndX, &tempEndY, &width, &drill ); - - assert( TESTLINE( "Po" ) ); - - int shape = intParse( line + SZ( "Po" ), &data ); - BIU start_x = biuParse( data, &data ); - BIU start_y = biuParse( data, &data ); - BIU end_x = biuParse( data, &data ); - BIU end_y = biuParse( data, &data ); - BIU width = biuParse( data, &data ); - - // optional 7th drill parameter (must be optional in an old format?) - data = strtok( (char*) data, delims ); - - BIU drill = data ? biuParse( data ) : -1; // SetDefault() if -1 - - // Read the 2nd line to determine the exact type, one of: - // PCB_TRACE_T, PCB_VIA_T, or PCB_ZONE_T. The type field in 2nd line - // differentiates between PCB_TRACE_T and PCB_VIA_T. With virtual - // functions in use, it is critical to instantiate the PCB_VIA_T - // exactly. - READLINE(); - - line = m_reader->Line(); - - // example second line: - // "De 0 0 463 0 800000\r\n" - -#if 1 - assert( TESTLINE( "De" ) ); -#else - if( !TESTLINE( "De" ) ) - { - // mandatory 2nd line is missing - THROW_IO_ERROR( "Missing 2nd line of a TRACK def" ); - } -#endif - - int makeType; - long timeStamp; - int layer, type, flags, net_code; - - // parse the 2nd line to determine the type of object - sscanf( line + SZ( "De" ), " %d %d %d %lX %X", &layer, &type, &net_code, &timeStamp, &flags ); - - if( aStructType==PCB_TRACE_T && type==1 ) - makeType = PCB_VIA_T; - else - makeType = aStructType; - - TRACK* newTrack; // BOARD insert this new one immediately after instantiation - - switch( makeType ) - { - default: - case PCB_TRACE_T: - newTrack = new TRACK( m_board ); - m_board->m_Track.Insert( newTrack, aInsertBeforeMe ); - break; - - case PCB_VIA_T: - newTrack = new SEGVIA( m_board ); - m_board->m_Track.Insert( newTrack, aInsertBeforeMe ); - break; - - case PCB_ZONE_T: // this is now deprecated, but exist in old boards - newTrack = new SEGZONE( m_board ); - m_board->m_Zone.Insert( (SEGZONE*) newTrack, (SEGZONE*) aInsertBeforeMe ); - break; - } - - newTrack->SetTimeStamp( timeStamp ); - - newTrack->SetPosition( wxPoint( start_x, start_y ) ); - newTrack->SetEnd( wxPoint( end_x, end_y ) ); - - newTrack->SetWidth( width ); - newTrack->SetShape( shape ); - - if( drill <= 0 ) - newTrack->SetDrillDefault(); - else - newTrack->SetDrill( drill ); - - newTrack->SetLayer( layer ); - - if( makeType == PCB_VIA_T ) // Ensure layers are OK when possible: - { - if( newTrack->GetShape() == VIA_THROUGH ) - ( (SEGVIA*) newTrack )->SetLayerPair( LAYER_N_FRONT, LAYER_N_BACK ); - } - - newTrack->SetNet( net_code ); - newTrack->SetState( flags, ON ); - } - - THROW_IO_ERROR( "Missing '$EndTRACK'" ); -} - - -void KICAD_PLUGIN::loadNETCLASS() -{ - char buf[1024]; - wxString netname; - - // create an empty NETCLASS without a name, but do not add it to the BOARD - // yet since that would bypass duplicate netclass name checking within the BOARD. - // store it temporarily in an auto_ptr until successfully inserted into the BOARD - // just before returning. - auto_ptr nc( new NETCLASS( m_board, wxEmptyString ) ); - - while( READLINE() ) - { - char* line = m_reader->Line(); - - if( TESTLINE( "AddNet" ) ) // most frequent type of line - { - // e.g. "AddNet "V3.3D"\n" - ReadDelimitedText( buf, line + SZ( "AddNet" ), sizeof(buf) ); - netname = FROM_UTF8( buf ); - nc->Add( netname ); - } - - else if( TESTLINE( "Clearance" ) ) - { - BIU tmp = biuParse( line + SZ( "Clearance" ) ); - nc->SetClearance( tmp ); - } - - else if( TESTLINE( "TrackWidth" ) ) - { - BIU tmp = biuParse( line + SZ( "TrackWidth" ) ); - nc->SetTrackWidth( tmp ); - } - - else if( TESTLINE( "ViaDia" ) ) - { - BIU tmp = biuParse( line + SZ( "ViaDia" ) ); - nc->SetViaDiameter( tmp ); - } - - else if( TESTLINE( "ViaDrill" ) ) - { - BIU tmp = biuParse( line + SZ( "ViaDrill" ) ); - nc->SetViaDrill( tmp ); - } - - else if( TESTLINE( "uViaDia" ) ) - { - BIU tmp = biuParse( line + SZ( "uViaDia" ) ); - nc->SetuViaDiameter( tmp ); - } - - else if( TESTLINE( "uViaDrill" ) ) - { - BIU tmp = biuParse( line + SZ( "uViaDrill" ) ); - nc->SetuViaDrill( tmp ); - } - - else if( TESTLINE( "Name" ) ) - { - ReadDelimitedText( buf, line + SZ( "Name" ), sizeof(buf) ); - nc->SetName( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Desc" ) ) - { - ReadDelimitedText( buf, line + SZ( "Desc" ), sizeof(buf) ); - nc->SetDescription( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "$EndNCLASS" ) ) - { - if( m_board->m_NetClasses.Add( nc.get() ) ) - { - nc.release(); - } - else - { - // Must have been a name conflict, this is a bad board file. - // User may have done a hand edit to the file. - - // auto_ptr will delete nc on this code path - - m_error.Printf( _( "duplicate NETCLASS name '%s'" ), nc->GetName().GetData() ); - THROW_IO_ERROR( m_error ); - } - - return; // preferred exit - } - } - - THROW_IO_ERROR( "Missing '$EndNCLASS'" ); -} - - -void KICAD_PLUGIN::loadZONE_CONTAINER() -{ - auto_ptr zc( new ZONE_CONTAINER( m_board ) ); - - int outline_hatch = CPolyLine::NO_HATCH; - bool sawCorner = false; - char buf[1024]; - - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - if( TESTLINE( "ZCorner" ) ) // new corner found - { - // e.g. "ZCorner 25650 49500 0" - BIU x = biuParse( line + SZ( "ZCorner" ), &data ); - BIU y = biuParse( data, &data ); - int flag = intParse( data ); - - if( !sawCorner ) - zc->m_Poly->Start( zc->GetLayer(), x, y, outline_hatch ); - else - zc->AppendCorner( wxPoint( x, y ) ); - - sawCorner = true; - - if( flag ) - zc->m_Poly->Close(); - } - - else if( TESTLINE( "ZInfo" ) ) // general info found - { - // e.g. 'ZInfo 479194B1 310 "COMMON"' - long timestamp = hexParse( line + SZ( "ZInfo" ), &data ); - int netcode = intParse( data, &data ); - - if( ReadDelimitedText( buf, data, sizeof(buf) ) > (int) sizeof(buf) ) - { - THROW_IO_ERROR( "ZInfo netname too long" ); - } - - zc->SetTimeStamp( timestamp ); - zc->SetNet( netcode ); - zc->SetNetName( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "ZLayer" ) ) // layer found - { - int layer = intParse( line + SZ( "ZLayer" ) ); - zc->SetLayer( layer ); - } - - else if( TESTLINE( "ZAux" ) ) // aux info found - { - // e.g. "ZAux 7 E" - int ignore = intParse( line + SZ( "ZAux" ), &data ); - char* hopt = strtok( (char*) data, delims ); - - if( !hopt ) - { - m_error.Printf( wxT( "Bad ZAux for CZONE_CONTAINER '%s'" ), zc->GetNetName().GetData() ); - THROW_IO_ERROR( m_error ); - } - - switch( *hopt ) // upper case required - { - case 'N': outline_hatch = CPolyLine::NO_HATCH; break; - case 'E': outline_hatch = CPolyLine::DIAGONAL_EDGE; break; - case 'F': outline_hatch = CPolyLine::DIAGONAL_FULL; break; - - default: - m_error.Printf( wxT( "Bad ZAux for CZONE_CONTAINER '%s'" ), zc->GetNetName().GetData() ); - THROW_IO_ERROR( m_error ); - } - - (void) ignore; - - // Set hatch mode later, after reading corner outline data - } - - else if( TESTLINE( "ZSmoothing" ) ) - { - // e.g. "ZSmoothing 0 0" - int smoothing = intParse( line + SZ( "ZSmoothing" ), &data ); - BIU cornerRadius = biuParse( data ); - - if( smoothing >= ZONE_SETTINGS::SMOOTHING_LAST || smoothing < 0 ) - { - m_error.Printf( wxT( "Bad ZSmoothing for CZONE_CONTAINER '%s'" ), zc->GetNetName().GetData() ); - THROW_IO_ERROR( m_error ); - } - - zc->SetCornerSmoothingType( smoothing ); - zc->SetCornerRadius( cornerRadius ); - } - - else if( TESTLINE( "ZOptions" ) ) - { - // e.g. "ZOptions 0 32 F 200 200" - int fillmode = intParse( line + SZ( "ZOptions" ), &data ); - int arcsegcount = intParse( data, &data ); - char fillstate = data[1]; // here e.g. " F" - BIU thermalReliefGap = biuParse( data += 2 , &data ); // +=2 for " F" - BIU thermalReliefCopperBridge = biuParse( data ); - - zc->SetFillMode( fillmode ? 1 : 0 ); - - // @todo ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF: don't really want pcbnew.h - // in here, after all, its a PLUGIN and global data is evil. - // put in accessor - if( arcsegcount >= 32 ) - arcsegcount = 32; - - zc->SetArcSegCount( arcsegcount ); - zc->SetIsFilled( fillstate == 'S' ? true : false ); - zc->SetThermalReliefGap( thermalReliefGap ); - zc->SetThermalReliefCopperBridge( thermalReliefCopperBridge ); - } - - else if( TESTLINE( "ZClearance" ) ) // Clearance and pad options info found - { - // e.g. "ZClearance 40 I" - BIU clearance = biuParse( line + SZ( "ZClearance" ), &data ); - char* padoption = strtok( (char*) data, delims ); // data: " I" - - ZoneConnection popt; - switch( *padoption ) - { - case 'I': popt = PAD_IN_ZONE; break; - case 'T': popt = THERMAL_PAD; break; - case 'X': popt = PAD_NOT_IN_ZONE; break; - - default: - m_error.Printf( wxT( "Bad ZClearance padoption for CZONE_CONTAINER '%s'" ), - zc->GetNetName().GetData() ); - THROW_IO_ERROR( m_error ); - } - - zc->SetZoneClearance( clearance ); - zc->SetPadConnection( popt ); - } - - else if( TESTLINE( "ZMinThickness" ) ) - { - BIU thickness = biuParse( line + SZ( "ZMinThickness" ) ); - zc->SetMinThickness( thickness ); - } - - else if( TESTLINE( "ZPriority" ) ) - { - int priority = intParse( line + SZ( "ZPriority" ) ); - zc->SetPriority( priority ); - } - - else if( TESTLINE( "$POLYSCORNERS" ) ) - { - // Read the PolysList (polygons used for fill areas in the zone) - - while( READLINE() ) - { - line = m_reader->Line(); - - if( TESTLINE( "$endPOLYSCORNERS" ) ) - break; - - // e.g. "39610 43440 0 0" - BIU x = biuParse( line, &data ); - BIU y = biuParse( data, &data ); - - bool end_contour = intParse( data, &data ); // end_countour was a bool when file saved, so '0' or '1' here - int utility = intParse( data ); - - zc->m_FilledPolysList.push_back( CPolyPt( x, y, end_contour, utility ) ); - } - } - - else if( TESTLINE( "$FILLSEGMENTS" ) ) - { - while( READLINE() ) - { - line = m_reader->Line(); - - if( TESTLINE( "$endFILLSEGMENTS" ) ) - break; - - // e.g. ""%d %d %d %d\n" - BIU sx = biuParse( line, &data ); - BIU sy = biuParse( data, &data ); - BIU ex = biuParse( data, &data ); - BIU ey = biuParse( data ); - - zc->m_FillSegmList.push_back( SEGMENT( - wxPoint( sx, sy ), - wxPoint( ex, ey ) ) ); - } - } - - else if( TESTLINE( "$endCZONE_OUTLINE" ) ) - { - // should always occur, but who knows, a zone without two corners - // is no zone at all, it's a spot? - - if( zc->GetNumCorners() > 2 ) - { - if( !zc->IsOnCopperLayer() ) - { - zc->SetFillMode( 0 ); - zc->SetNet( 0 ); - } - - // Set hatch here, after outlines corners are read - zc->m_Poly->SetHatch( outline_hatch ); - - m_board->Add( zc.release() ); - } - - return; // preferred exit - } - } - - THROW_IO_ERROR( "Missing '$endCZONE_OUTLINE'" ); -} - - -void KICAD_PLUGIN::loadDIMENSION() -{ - auto_ptr dim( new DIMENSION( m_board ) ); - - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - if( TESTLINE( "$endCOTATION" ) ) - { - m_board->Add( dim.release(), ADD_APPEND ); - return; // preferred exit - } - - else if( TESTLINE( "Va" ) ) - { - BIU value = biuParse( line + SZ( "Va" ) ); - dim->m_Value = value; - } - - else if( TESTLINE( "Ge" ) ) - { - int layer; - long timestamp; - int shape; - - sscanf( line + SZ( "Ge" ), " %d %d %lX", &shape, &layer, ×tamp ); - - if( layer < FIRST_NO_COPPER_LAYER ) - layer = FIRST_NO_COPPER_LAYER; - - else if( layer > LAST_NO_COPPER_LAYER ) - layer = LAST_NO_COPPER_LAYER; - - dim->SetLayer( layer ); - dim->SetTimeStamp( timestamp ); - dim->SetShape( shape ); - } - - else if( TESTLINE( "Te" ) ) - { - char buf[2048]; - - ReadDelimitedText( buf, line + SZ( "Te" ), sizeof(buf) ); - dim->m_Text.SetText( FROM_UTF8( buf ) ); - } - - else if( TESTLINE( "Po" ) ) - { - // sscanf( Line + 2, " %d %d %d %d %d %d %d", &m_Text->m_Pos.x, &m_Text->m_Pos.y, - // &m_Text->m_Size.x, &m_Text->m_Size.y, &thickness, &orientation, &normal_display ); - - BIU pos_x = biuParse( line + SZ( "Po" ), &data ); - BIU pos_y = biuParse( data, &data ); - BIU width = biuParse( data, &data ); - BIU height = biuParse( data, &data ); - BIU thickn = biuParse( data, &data ); - double orient = degParse( data, &data ); - char* mirror = strtok( (char*) data, delims ); - - // This sets both DIMENSION's position and internal m_Text's. - // @todo: But why do we even know about internal m_Text? - dim->SetPosition( wxPoint( pos_x, pos_y ) ); - dim->SetTextSize( wxSize( width, height ) ); - - dim->m_Text.SetMirrored( mirror && *mirror == '0' ); - - dim->m_Text.SetThickness( thickn ); - dim->m_Text.SetOrientation( orient ); - } - - else if( TESTLINE( "Sb" ) ) - { - // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_crossBarOx, &m_crossBarOy, &m_crossBarFx, &m_crossBarFy, &m_Width ); - - int ignore = biuParse( line + SZ( "Sb" ), &data ); - BIU crossBarOx = biuParse( data, &data ); - BIU crossBarOy = biuParse( data, &data ); - BIU crossBarFx = biuParse( data, &data ); - BIU crossBarFy = biuParse( data, &data ); - BIU width = biuParse( data ); - - dim->m_crossBarOx = crossBarOx; - dim->m_crossBarOy = crossBarOy; - dim->m_crossBarFx = crossBarFx; - dim->m_crossBarFy = crossBarFy; - dim->m_Width = width; - (void) ignore; - } - - else if( TESTLINE( "Sd" ) ) - { - // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_featureLineDOx, &m_featureLineDOy, &m_featureLineDFx, &m_featureLineDFy, &Dummy ); - - int ignore = intParse( line + SZ( "Sd" ), &data ); - BIU featureLineDOx = biuParse( data, &data ); - BIU featureLineDOy = biuParse( data, &data ); - BIU featureLineDFx = biuParse( data, &data ); - BIU featureLineDFy = biuParse( data ); - - dim->m_featureLineDOx = featureLineDOx; - dim->m_featureLineDOy = featureLineDOy; - dim->m_featureLineDFx = featureLineDFx; - dim->m_featureLineDFy = featureLineDFy; - (void) ignore; - } - - else if( TESTLINE( "Sg" ) ) - { - // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_featureLineGOx, &m_featureLineGOy, &m_featureLineGFx, &m_featureLineGFy, &Dummy ); - - int ignore = intParse( line + SZ( "Sg" ), &data ); - BIU featureLineGOx = biuParse( data, &data ); - BIU featureLineGOy = biuParse( data, &data ); - BIU featureLineGFx = biuParse( data, &data ); - BIU featureLineGFy = biuParse( data ); - - dim->m_featureLineGOx = featureLineGOx; - dim->m_featureLineGOy = featureLineGOy; - dim->m_featureLineGFx = featureLineGFx; - dim->m_featureLineGFy = featureLineGFy; - (void) ignore; - } - - else if( TESTLINE( "S1" ) ) - { - // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_arrowD1Ox, &m_arrowD1Oy, &m_arrowD1Fx, &m_arrowD1Fy, &Dummy ); - - int ignore = intParse( line + SZ( "S1" ), &data ); - BIU arrowD10x = biuParse( data, &data ); - BIU arrowD10y = biuParse( data, &data ); - BIU arrowD1Fx = biuParse( data, &data ); - BIU arrowD1Fy = biuParse( data ); - - dim->m_arrowD1Ox = arrowD10x; - dim->m_arrowD1Oy = arrowD10y; - dim->m_arrowD1Fx = arrowD1Fx; - dim->m_arrowD1Fy = arrowD1Fy; - (void) ignore; - } - - else if( TESTLINE( "S2" ) ) - { - // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_arrowD2Ox, &m_arrowD2Oy, &m_arrowD2Fx, &m_arrowD2Fy, &Dummy ); - - int ignore = intParse( line + SZ( "S2" ), &data ); - BIU arrowD2Ox = biuParse( data, &data ); - BIU arrowD2Oy = biuParse( data, &data ); - BIU arrowD2Fx = biuParse( data, &data ); - BIU arrowD2Fy = biuParse( data, &data ); - - dim->m_arrowD2Ox = arrowD2Ox; - dim->m_arrowD2Oy = arrowD2Oy; - dim->m_arrowD2Fx = arrowD2Fx; - dim->m_arrowD2Fy = arrowD2Fy; - (void) ignore; - } - - else if( TESTLINE( "S3" ) ) - { - // sscanf( Line + 2, " %d %d %d %d %d %d\n", &Dummy, &m_arrowG1Ox, &m_arrowG1Oy, &m_arrowG1Fx, &m_arrowG1Fy, &Dummy ); - int ignore = intParse( line + SZ( "S3" ), &data ); - BIU arrowG1Ox = biuParse( data, &data ); - BIU arrowG1Oy = biuParse( data, &data ); - BIU arrowG1Fx = biuParse( data, &data ); - BIU arrowG1Fy = biuParse( data, &data ); - - dim->m_arrowG1Ox = arrowG1Ox; - dim->m_arrowG1Oy = arrowG1Oy; - dim->m_arrowG1Fx = arrowG1Fx; - dim->m_arrowG1Fy = arrowG1Fy; - (void) ignore; - } - - else if( TESTLINE( "S4" ) ) - { - // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_arrowG2Ox, &m_arrowG2Oy, &m_arrowG2Fx, &m_arrowG2Fy, &Dummy ); - int ignore = intParse( line + SZ( "S4" ), &data ); - BIU arrowG2Ox = biuParse( data, &data ); - BIU arrowG2Oy = biuParse( data, &data ); - BIU arrowG2Fx = biuParse( data, &data ); - BIU arrowG2Fy = biuParse( data, &data ); - - dim->m_arrowG2Ox = arrowG2Ox; - dim->m_arrowG2Oy = arrowG2Oy; - dim->m_arrowG2Fx = arrowG2Fx; - dim->m_arrowG2Fy = arrowG2Fy; - (void) ignore; - } - } - - THROW_IO_ERROR( "Missing '$endCOTATION'" ); -} - - -void KICAD_PLUGIN::loadPCB_TARGET() -{ - while( READLINE() ) - { - const char* data; - char* line = m_reader->Line(); - - if( TESTLINE( "$EndPCB_TARGET" ) || TESTLINE( "$EndMIREPCB" ) ) - { - return; // preferred exit - } - - else if( TESTLINE( "Po" ) ) - { - // sscanf( Line + 2, " %X %d %d %d %d %d %lX", &m_Shape, &m_Layer, &m_Pos.x, &m_Pos.y, &m_Size, &m_Width, &m_TimeStamp ); - - int shape = intParse( line + SZ( "Po" ), &data ); - int layer = intParse( data, &data ); - BIU pos_x = biuParse( data, &data ); - BIU pos_y = biuParse( data, &data ); - BIU size = biuParse( data, &data ); - BIU width = biuParse( data, &data ); - long timestamp = hexParse( data ); - - if( layer < FIRST_NO_COPPER_LAYER ) - layer = FIRST_NO_COPPER_LAYER; - - else if( layer > LAST_NO_COPPER_LAYER ) - layer = LAST_NO_COPPER_LAYER; - - PCB_TARGET* t = new PCB_TARGET( m_board, shape, layer, wxPoint( pos_x, pos_y ), size, width ); - m_board->Add( t, ADD_APPEND ); - - t->SetTimeStamp( timestamp ); - } - } - - THROW_IO_ERROR( "Missing '$EndDIMENSION'" ); -} - - -int KICAD_PLUGIN::biuSprintf( char* buf, BIU aValue ) const -{ - double engUnits = biuToDisk * aValue; - int len; - - if( engUnits != 0.0 && fabs( engUnits ) <= 0.0001 ) - { - // printf( "f: " ); - len = sprintf( buf, "%.10f", engUnits ); - - while( --len > 0 && buf[len] == '0' ) - buf[len] = '\0'; - - ++len; - } - else - { - // printf( "g: " ); - len = sprintf( buf, "%.10g", engUnits ); - } - return len; -} - - -std::string KICAD_PLUGIN::fmtBIU( BIU aValue ) const -{ - char temp[50]; - - int len = biuSprintf( temp, aValue ); - - return std::string( temp, len ); -} - - -std::string KICAD_PLUGIN::fmtDEG( double aAngle ) const -{ - char temp[50]; - - // @todo a hook site to convert from tenths degrees to degrees for BOARD_FORMAT_VERSION 2. - - int len = sprintf( temp, "%.10g", aAngle ); - - return std::string( temp, len ); -} - - -std::string KICAD_PLUGIN::fmtBIUPair( BIU first, BIU second ) const -{ - char temp[100]; - char* cp = temp; - - cp += biuSprintf( cp, first ); - - *cp++ = ' '; - - cp += biuSprintf( cp, second ); - - return std::string( temp, cp - temp ); -} - - -BIU KICAD_PLUGIN::biuParse( const char* aValue, const char** nptrptr ) -{ - char* nptr; - - errno = 0; - - double fval = strtod( aValue, &nptr ); - - if( errno ) - { - m_error.Printf( _( "invalid float number in\nfile: '%s'\nline: %d\noffset: %d" ), - m_reader->GetSource().GetData(), m_reader->LineNumber(), aValue - m_reader->Line() + 1 ); - - THROW_IO_ERROR( m_error ); - } - - if( aValue == nptr ) - { - m_error.Printf( _( "missing float number in\nfile: '%s'\nline: %d\noffset: %d" ), - m_reader->GetSource().GetData(), m_reader->LineNumber(), aValue - m_reader->Line() + 1 ); - - THROW_IO_ERROR( m_error ); - } - - if( nptrptr ) - *nptrptr = nptr; - - // There should be no rounding issues here, since the values in the file initially - // came from integers via biuFmt(). In fact this product should be an integer, exactly. - return BIU( fval * diskToBiu ); -} - - -double KICAD_PLUGIN::degParse( const char* aValue, const char** nptrptr ) -{ - char* nptr; - - errno = 0; - - double fval = strtod( aValue, &nptr ); - - if( errno ) - { - m_error.Printf( _( "invalid float number in\nfile: '%s'\nline: %d\noffset: %d" ), - m_reader->GetSource().GetData(), m_reader->LineNumber(), aValue - m_reader->Line() + 1 ); - - THROW_IO_ERROR( m_error ); - } - - if( aValue == nptr ) - { - m_error.Printf( _( "missing float number in\nfile: '%s'\nline: %d\noffset: %d" ), - m_reader->GetSource().GetData(), m_reader->LineNumber(), aValue - m_reader->Line() + 1 ); - - THROW_IO_ERROR( m_error ); - } - - if( nptrptr ) - *nptrptr = nptr; - - return fval; -} - - -void KICAD_PLUGIN::init( PROPERTIES* aProperties ) -{ - m_props = aProperties; - - // conversion factor for saving RAM BIUs to KICAD legacy file format. -#if defined(USE_PCBNEW_NANOMETERS) - biuToDisk = 1/1000000.0; // BIUs are nanometers & file is mm -#else - biuToDisk = 1.0; // BIUs are deci-mils -#endif - - - // conversion factor for loading KICAD legacy file format into BIUs in RAM - - // Start by assuming the *.brd file is in deci-mils. - // if we see "Units mm" in the $GENERAL section, set diskToBiu to 1000000.0 - // then, during the file loading process, to start a conversion from - // mm to nanometers. - -#if defined(USE_PCBNEW_NANOMETERS) - diskToBiu = 2540.0; // BIUs are nanometers -#else - diskToBiu = 1.0; // BIUs are deci-mils -#endif -} - - -//------------------------------------------------------------ - -void KICAD_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties ) -{ - LOCALE_IO toggle; // toggles on, then off, the C locale. - - m_board = aBoard; - - FILE* fp = wxFopen( aFileName, wxT( "wt" ) ); - if( !fp ) - { - m_error.Printf( _( "Unable to open file '%s'" ), aFileName.GetData() ); - THROW_IO_ERROR( m_error ); - } - - m_filename = aFileName; - - // wxf now owns fp, will close on exception or return - wxFFile wxf( fp ); - - m_fp = fp; // member function accessibility - - init( aProperties ); - - if( m_props ) - { - wxString header = (*m_props)["header"]; - // save a file header, if caller provided one (with trailing \n hopefully). - fprintf( m_fp, "%s", TO_UTF8( header ) ); - } - - saveAllSections(); -} - - -wxString KICAD_PLUGIN::writeError() const -{ - return wxString::Format( _( "error writing to file '%s'" ), m_filename.GetData() ); -} - -#define CHECK_WRITE_ERROR() \ -do { \ - if( ferror( m_fp ) ) \ - { \ - THROW_IO_ERROR( writeError() ); \ - } \ -} while(0) - - -void KICAD_PLUGIN::saveAllSections() const -{ - - - saveGENERAL(); - - saveSHEET(); - - saveSETUP(); - - saveBOARD(); -} - - -void KICAD_PLUGIN::saveGENERAL() const -{ - fprintf( m_fp, "$GENERAL\n" ); - fprintf( m_fp, "encoding utf-8\n" ); - - // tell folks the units used within the file, as early as possible here. -#if defined(USE_PCBNEW_NANOMETERS) - fprintf( m_fp, "Units mm\n" ); -#else - fprintf( m_fp, "Units deci-mils\n" ); -#endif - - // Write copper layer count - fprintf( m_fp, "LayerCount %d\n", m_board->GetCopperLayerCount() ); - - /* No, EnabledLayers has this information, plus g_TabAllCopperLayerMask is - global and globals are not allowed in a plugin. - fprintf( m_fp, - "Ly %8X\n", - g_TabAllCopperLayerMask[NbLayers - 1] | ALL_NO_CU_LAYERS ); - */ - - fprintf( m_fp, "EnabledLayers %08X\n", m_board->GetEnabledLayers() ); - - if( m_board->GetEnabledLayers() != m_board->GetVisibleLayers() ) - fprintf( m_fp, "VisibleLayers %08X\n", m_board->GetVisibleLayers() ); - - fprintf( m_fp, "Links %d\n", m_board->GetRatsnestsCount() ); - fprintf( m_fp, "NoConn %d\n", m_board->m_NbNoconnect ); - - // Write Bounding box info - EDA_RECT bbbox = m_board->ComputeBoundingBox(); - fprintf( m_fp, "Di %s %s\n", - fmtBIUPair( bbbox.GetX(), bbbox.GetY() ).c_str(), - fmtBIUPair( bbbox.GetRight(), bbbox.GetBottom() ).c_str() ); - - fprintf( m_fp, "Ndraw %d\n", m_board->m_Drawings.GetCount() ); - fprintf( m_fp, "Ntrack %d\n", m_board->GetNumSegmTrack() ); - fprintf( m_fp, "Nzone %d\n", m_board->GetNumSegmZone() ); - fprintf( m_fp, "BoardThickness %s\n", fmtBIU( m_board->GetDesignSettings().m_BoardThickness ).c_str() ); - fprintf( m_fp, "Nmodule %d\n", m_board->m_Modules.GetCount() ); - fprintf( m_fp, "Nnets %d\n", m_board->GetNetCount() ); - fprintf( m_fp, "$EndGENERAL\n\n" ); -} - - -void KICAD_PLUGIN::saveSHEET() const -{ - const PAGE_INFO& pageInfo = m_board->GetPageSettings(); - const TITLE_BLOCK& tb = m_board->GetTitleBlock(); - - fprintf( m_fp, "$SHEETDESCR\n" ); - - // paper is described in mils - fprintf( m_fp, "Sheet %s %d %d%s\n", - TO_UTF8( pageInfo.GetType() ), - pageInfo.GetWidthMils(), - pageInfo.GetHeightMils(), - !pageInfo.IsCustom() && pageInfo.IsPortrait() ? - " portrait" : "" - ); - - fprintf( m_fp, "Title %s\n", EscapedUTF8( tb.GetTitle() ).c_str() ); - fprintf( m_fp, "Date %s\n", EscapedUTF8( tb.GetDate() ).c_str() ); - fprintf( m_fp, "Rev %s\n", EscapedUTF8( tb.GetRevision() ).c_str() ); - fprintf( m_fp, "Comp %s\n", EscapedUTF8( tb.GetCompany() ).c_str() ); - fprintf( m_fp, "Comment1 %s\n", EscapedUTF8( tb.GetComment1() ).c_str() ); - fprintf( m_fp, "Comment2 %s\n", EscapedUTF8( tb.GetComment2() ).c_str() ); - fprintf( m_fp, "Comment3 %s\n", EscapedUTF8( tb.GetComment3() ).c_str() ); - fprintf( m_fp, "Comment4 %s\n", EscapedUTF8( tb.GetComment4() ).c_str() ); - fprintf( m_fp, "$EndSHEETDESCR\n\n" ); -} - - -void KICAD_PLUGIN::saveSETUP() const -{ - NETCLASS* netclass_default = m_board->m_NetClasses.GetDefault(); - const BOARD_DESIGN_SETTINGS& bds = m_board->GetDesignSettings(); - - fprintf( m_fp, "$SETUP\n" ); - - /* Internal units are nobody's business, they are internal. - Units used in the file are now in the "Units" attribute of $GENERAL. - fprintf( m_fp,, "InternalUnit %f INCH\n", 1.0 / PCB_INTERNAL_UNIT ); - */ - - fprintf( m_fp, "Layers %d\n", m_board->GetCopperLayerCount() ); - - unsigned layerMask = ALL_CU_LAYERS & m_board->GetEnabledLayers(); - - for( int layer = 0; layerMask; ++layer, layerMask >>= 1 ) - { - if( layerMask & 1 ) - { - fprintf( m_fp, "Layer[%d] %s %s\n", layer, - TO_UTF8( m_board->GetLayerName( layer ) ), - LAYER::ShowType( m_board->GetLayerType( layer ) ) ); - } - } - - // Save current default track width, for compatibility with older Pcbnew version; - fprintf( m_fp, "TrackWidth %s\n", fmtBIU( m_board->GetCurrentTrackWidth() ).c_str() ); - - // Save custom tracks width list (the first is not saved here: this is the netclass value - for( unsigned ii = 1; ii < m_board->m_TrackWidthList.size(); ii++ ) - fprintf( m_fp, "TrackWidthList %s\n", fmtBIU( m_board->m_TrackWidthList[ii] ).c_str() ); - - fprintf( m_fp, "TrackClearence %s\n", fmtBIU( netclass_default->GetClearance() ).c_str() ); - - // ZONE_SETTINGS - fprintf( m_fp, "ZoneClearence %s\n", fmtBIU( m_board->GetZoneSettings().m_ZoneClearance ).c_str() ); - fprintf( m_fp, "Zone_45_Only %d\n", m_board->GetZoneSettings().m_Zone_45_Only ); - - fprintf( m_fp, "TrackMinWidth %s\n", fmtBIU( bds.m_TrackMinWidth ).c_str() ); - - fprintf( m_fp, "DrawSegmWidth %s\n", fmtBIU( bds.m_DrawSegmentWidth ).c_str() ); - fprintf( m_fp, "EdgeSegmWidth %s\n", fmtBIU( bds.m_EdgeSegmentWidth ).c_str() ); - - // Save current default via size, for compatibility with older Pcbnew version; - fprintf( m_fp, "ViaSize %s\n", fmtBIU( netclass_default->GetViaDiameter() ).c_str() ); - fprintf( m_fp, "ViaDrill %s\n", fmtBIU( netclass_default->GetViaDrill() ).c_str() ); - fprintf( m_fp, "ViaMinSize %s\n", fmtBIU( bds.m_ViasMinSize ).c_str() ); - fprintf( m_fp, "ViaMinDrill %s\n", fmtBIU( bds.m_ViasMinDrill ).c_str() ); - - // Save custom vias diameters list (the first is not saved here: this is - // the netclass value - for( unsigned ii = 1; ii < m_board->m_ViasDimensionsList.size(); ii++ ) - fprintf( m_fp, "ViaSizeList %s %s\n", - fmtBIU( m_board->m_ViasDimensionsList[ii].m_Diameter ).c_str(), - fmtBIU( m_board->m_ViasDimensionsList[ii].m_Drill ).c_str() ); - - // for old versions compatibility: - fprintf( m_fp, "MicroViaSize %s\n", fmtBIU( netclass_default->GetuViaDiameter() ).c_str() ); - fprintf( m_fp, "MicroViaDrill %s\n", fmtBIU( netclass_default->GetuViaDrill() ).c_str() ); - fprintf( m_fp, "MicroViasAllowed %s\n", fmtBIU( bds.m_MicroViasAllowed ).c_str() ); - fprintf( m_fp, "MicroViaMinSize %s\n", fmtBIU( bds.m_MicroViasMinSize ).c_str() ); - fprintf( m_fp, "MicroViaMinDrill %s\n", fmtBIU( bds.m_MicroViasMinDrill ).c_str() ); - - fprintf( m_fp, "TextPcbWidth %s\n", fmtBIU( bds.m_PcbTextWidth ).c_str() ); - fprintf( m_fp, "TextPcbSize %s\n", fmtBIUSize( bds.m_PcbTextSize ).c_str() ); - - fprintf( m_fp, "EdgeModWidth %s\n", fmtBIU( bds.m_ModuleSegmentWidth ).c_str() ); - fprintf( m_fp, "TextModSize %s\n", fmtBIUSize( bds.m_ModuleTextSize ).c_str() ); - fprintf( m_fp, "TextModWidth %s\n", fmtBIU( bds.m_ModuleTextWidth ).c_str() ); - - fprintf( m_fp, "PadSize %s\n", fmtBIUSize( bds.m_Pad_Master.GetSize() ).c_str() ); - fprintf( m_fp, "PadDrill %s\n", fmtBIU( bds.m_Pad_Master.GetDrillSize().x ).c_str() ); - - fprintf( m_fp, "Pad2MaskClearance %s\n", fmtBIU( bds.m_SolderMaskMargin ).c_str() ); - - if( bds.m_SolderPasteMargin != 0 ) - fprintf( m_fp, "Pad2PasteClearance %s\n", fmtBIU( bds.m_SolderPasteMargin ).c_str() ); - - if( bds.m_SolderPasteMarginRatio != 0 ) - fprintf( m_fp, "Pad2PasteClearanceRatio %g\n", bds.m_SolderPasteMarginRatio ); - - /* @todo no aFrame - if ( aFrame->GetScreen()->m_GridOrigin != wxPoint( 0, 0 ) ) - { - fprintf( m_fp, "GridOrigin %s\n", fmtBIUPoint( aFrame->GetScreen()->m_GridOrigin ).c_str() ); - } - */ - - fprintf( m_fp, "AuxiliaryAxisOrg %s\n", fmtBIUPoint( m_board->GetOriginAxisPosition() ).c_str() ); - - { - STRING_FORMATTER sf; - - m_board->GetPlotOptions().Format( &sf, 0 ); - - wxString record = FROM_UTF8( sf.GetString().c_str() ); - - record.Replace( wxT("\n"), wxT(""), true ); - record.Replace( wxT(" "), wxT(" "), true); - - fprintf( m_fp, "PcbPlotParams %s\n", TO_UTF8( record ) ); - } - - fprintf( m_fp, "VisibleElements %X\n", bds.GetVisibleElements() ); - - fprintf( m_fp, "$EndSETUP\n\n" ); -} - - -void KICAD_PLUGIN::saveBOARD() const -{ - // save the nets - int netcount = m_board->GetNetCount(); - for( int i = 0; i < netcount; ++i ) - saveNETINFO_ITEM( m_board->FindNet( i ) ); - - // Saved nets do not include netclass names, so save netclasses after nets. - saveNETCLASSES(); - - // save the modules - for( MODULE* m = m_board->m_Modules; m; m = (MODULE*) m->Next() ) - saveMODULE( m ); - - // save the graphics owned by the board (not owned by a module) - for( BOARD_ITEM* gr = m_board->m_Drawings; gr; gr = gr->Next() ) - { - switch( gr->Type() ) - { - case PCB_TEXT_T: - savePCB_TEXT( (TEXTE_PCB*) gr ); - break; - case PCB_LINE_T: - savePCB_LINE( (DRAWSEGMENT*) gr ); - break; - case PCB_TARGET_T: - savePCB_TARGET( (PCB_TARGET*) gr ); - break; - case PCB_DIMENSION_T: - saveDIMENTION( (DIMENSION*) gr ); - break; - default: - THROW_IO_ERROR( wxString::Format( UNKNOWN_GRAPHIC_FORMAT, gr->Type() ) ); - } - } - - // do not save MARKER_PCBs, they can be regenerated easily - - // save the tracks & vias - fprintf( m_fp, "$TRACK\n" ); - for( TRACK* track = m_board->m_Track; track; track = track->Next() ) - saveTRACK( track ); - fprintf( m_fp, "$EndTRACK\n" ); - - // save the old obsolete zones which were done by segments (tracks) - fprintf( m_fp, "$ZONE\n" ); - for( SEGZONE* zone = m_board->m_Zone; zone; zone = zone->Next() ) - saveTRACK( zone ); - fprintf( m_fp, "$EndZONE\n" ); - - // save the polygon (which are the newer technology) zones - for( int i=0; i < m_board->GetAreaCount(); ++i ) - saveZONE_CONTAINER( m_board->GetArea( i ) ); - - fprintf( m_fp, "$EndBOARD\n" ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::saveNETINFO_ITEM( const NETINFO_ITEM* aNet ) const -{ - fprintf( m_fp, "$EQUIPOT\n" ); - fprintf( m_fp, "Na %d %s\n", aNet->GetNet(), EscapedUTF8( aNet->GetNetname() ).c_str() ); - fprintf( m_fp, "St %s\n", "~" ); - fprintf( m_fp, "$EndEQUIPOT\n" ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::saveNETCLASSES() const -{ - const NETCLASSES& nc = m_board->m_NetClasses; - - // save the default first. - saveNETCLASS( nc.GetDefault() ); - - // the rest will be alphabetical in the *.brd file. - for( NETCLASSES::const_iterator it = nc.begin(); it != nc.end(); ++it ) - { - NETCLASS* netclass = it->second; - saveNETCLASS( netclass ); - } - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::saveNETCLASS( const NETCLASS* nc ) const -{ - fprintf( m_fp, "$NCLASS\n" ); - fprintf( m_fp, "Name %s\n", EscapedUTF8( nc->GetName() ).c_str() ); - fprintf( m_fp, "Desc %s\n", EscapedUTF8( nc->GetDescription() ).c_str() ); - - fprintf( m_fp, "Clearance %d\n", nc->GetClearance() ); - fprintf( m_fp, "TrackWidth %d\n", nc->GetTrackWidth() ); - - fprintf( m_fp, "ViaDia %d\n", nc->GetViaDiameter() ); - fprintf( m_fp, "ViaDrill %d\n", nc->GetViaDrill() ); - - fprintf( m_fp, "uViaDia %d\n", nc->GetuViaDiameter() ); - fprintf( m_fp, "uViaDrill %d\n", nc->GetuViaDrill() ); - - for( NETCLASS::const_iterator it = nc->begin(); it!=nc->end(); ++it ) - fprintf( m_fp, "AddNet %s\n", EscapedUTF8( *it ).c_str() ); - - fprintf( m_fp, "$EndNCLASS\n" ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::saveMODULE_TEXT( const TEXTE_MODULE* me ) const -{ - MODULE* parent = (MODULE*) me->GetParent(); - double orient = me->GetOrientation(); - - // Due to the Pcbnew history, m_Orient is saved in screen value - // but it is handled as relative to its parent footprint - if( parent ) - orient += parent->GetOrientation(); - - wxString txt = me->GetText(); - - fprintf( m_fp, "T%d %s %s %s %s %c %c %d %c %s\n", - me->GetType(), - fmtBIUPoint( me->GetPos0() ).c_str(), // m_Pos0.x, m_Pos0.y, -#if 0 - fmtBIUSize( me->GetSize() ).c_str(), // m_Size.y, m_Size.x, -#else - fmtBIUPair( me->GetSize().y, me->GetSize().x ).c_str(), // m_Size.y, m_Size.x, -#endif - fmtDEG( orient ).c_str(), - fmtBIU( me->GetThickness() ).c_str(), // m_Thickness, - me->IsMirrored() ? 'M' : 'N', - me->IsVisible() ? 'V' : 'I', - me->GetLayer(), - me->IsItalic() ? 'I' : 'N', - EscapedUTF8( txt ).c_str() - ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::saveMODULE_EDGE( const EDGE_MODULE* me ) const -{ - switch( me->GetShape() ) - { - case S_SEGMENT: - fprintf( m_fp, "DS %s %s %s %d\n", - fmtBIUPoint( me->m_Start0 ).c_str(), - fmtBIUPoint( me->m_End0 ).c_str(), - fmtBIU( me->GetWidth() ).c_str(), - me->GetLayer() ); - break; - - case S_CIRCLE: - fprintf( m_fp, "DC %s %s %s %d\n", - fmtBIUPoint( me->m_Start0 ).c_str(), - fmtBIUPoint( me->m_End0 ).c_str(), - fmtBIU( me->GetWidth() ).c_str(), - me->GetLayer() ); - break; - - case S_ARC: - fprintf( m_fp, "DA %s %s %s %s %d\n", - fmtBIUPoint( me->m_Start0 ).c_str(), - fmtBIUPoint( me->m_End0 ).c_str(), - fmtDEG( me->GetAngle() ).c_str(), - fmtBIU( me->GetWidth() ).c_str(), - me->GetLayer() ); - break; - - case S_POLYGON: - { - const std::vector& polyPoints = me->GetPolyPoints(); - - fprintf( m_fp, "DP %s %s %d %s %d\n", - fmtBIUPoint( me->m_Start0 ).c_str(), - fmtBIUPoint( me->m_End0 ).c_str(), - (int) polyPoints.size(), - fmtBIU( me->GetWidth() ).c_str(), - me->GetLayer() ); - - for( unsigned i = 0; iGetShape() ) ); - } - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::savePAD( const D_PAD* me ) const -{ - fprintf( m_fp, "$PAD\n" ); - - int cshape; - - switch( me->GetShape() ) - { - case PAD_CIRCLE: cshape = 'C'; break; - case PAD_RECT: cshape = 'R'; break; - case PAD_OVAL: cshape = 'O'; break; - case PAD_TRAPEZOID: cshape = 'T'; break; - - default: - THROW_IO_ERROR( wxString::Format( UNKNOWN_PAD_FORMAT, me->GetShape() ) ); - } - -#if BOARD_FORMAT_VERSION == 1 // saving mode is a compile time option - - wxString wpadname = me->GetPadName(); // universal character set padname - std::string spadname; - - for( unsigned i = 0; wpadname.size(); ++i ) - { - // truncate from universal character down to 8 bit foreign jibber - // jabber byte. This basically duplicates what was done in the old - // BOARD_FORMAT_VERSION 1 code. Any characters that were in the 8 bit - // character space were OK. - spadname += (char) wpadname[i]; - } - - fprintf( m_fp, "Sh \"%s\" %c %s %s %s\n", - spadname.c_str(), // probably ASCII, but possibly jibber jabber -#else - - fprintf( m_fp, "Sh %s %c %s %s %s\n", - // legacy VERSION 2 simply uses UTF8, wrapped in quotes, - // and 99.99 % of the time there is no difference between 1 & 2, - // since ASCII is a subset of UTF8. But if they were not using - // ASCII pad names, then there is a difference in the file. - EscapedUTF8( me->GetPadName() ).c_str(), -#endif - cshape, - fmtBIUSize( me->GetSize() ).c_str(), - fmtBIUSize( me->GetDelta() ).c_str(), - fmtDEG( me->GetOrientation() ).c_str() ); - - fprintf( m_fp, "Dr %s %s", - fmtBIU( me->GetDrillSize().x ).c_str(), - fmtBIUPoint( me->GetOffset() ).c_str() ); - - if( me->GetDrillShape() == PAD_OVAL ) - { - fprintf( m_fp, " %c %s", 'O', fmtBIUSize( me->GetDrillSize() ).c_str() ); - } - - fprintf( m_fp, "\n" ); - - const char* texttype; - - switch( me->GetAttribute() ) - { - case PAD_STANDARD: texttype = "STD"; break; - case PAD_SMD: texttype = "SMD"; break; - case PAD_CONN: texttype = "CONN"; break; - case PAD_HOLE_NOT_PLATED: texttype = "HOLE"; break; - - default: - THROW_IO_ERROR( wxString::Format( UNKNOWN_PAD_ATTRIBUTE, me->GetAttribute() ) ); - } - - fprintf( m_fp, "At %s N %08X\n", texttype, me->GetLayerMask() ); - - fprintf( m_fp, "Ne %d %s\n", me->GetNet(), EscapedUTF8( me->GetNetname() ).c_str() ); - - fprintf( m_fp, "Po %s\n", fmtBIUPoint( me->GetPos0() ).c_str() ); - - if( me->GetDieLength() != 0 ) - fprintf( m_fp, "Le %s\n", fmtBIU( me->GetDieLength() ).c_str() ); - - if( me->GetLocalSolderMaskMargin() != 0 ) - fprintf( m_fp, ".SolderMask %s\n", fmtBIU( me->GetLocalSolderMaskMargin() ).c_str() ); - - if( me->GetLocalSolderPasteMargin() != 0 ) - fprintf( m_fp, ".SolderPaste %s\n", fmtBIU( me->GetLocalSolderPasteMargin() ).c_str() ); - - if( me->GetLocalSolderPasteMarginRatio() != 0 ) - fprintf( m_fp, ".SolderPasteRatio %g\n", me->GetLocalSolderPasteMarginRatio() ); - - if( me->GetLocalClearance() != 0 ) - fprintf( m_fp, ".LocalClearance %s\n", fmtBIU( me->GetLocalClearance( ) ).c_str() ); - - if( me->GetZoneConnection() != UNDEFINED_CONNECTION ) - fprintf( m_fp, ".ZoneConnection %d\n", me->GetZoneConnection() ); - - if( me->GetThermalWidth() != 0 ) - fprintf( m_fp, ".ThermalWidth %d\n", me->GetThermalWidth() ); - - if( me->GetThermalGap() != 0 ) - fprintf( m_fp, ".ThermalGap %d\n", me->GetThermalGap() ); - - fprintf( m_fp, "$EndPAD\n" ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::saveMODULE( const MODULE* me ) const -{ - char statusTxt[3]; - double orient = me->GetOrientation(); - - fprintf( m_fp, "$MODULE %s\n", TO_UTF8( me->GetLibRef() ) ); - - statusTxt[0] = me->IsLocked() ? 'F' : '~'; - statusTxt[1] = me->IsPlaced() ? 'P' : '~'; - statusTxt[2] = '\0'; - - fprintf( m_fp, "Po %s %s %d %08lX %08lX %s\n", - fmtBIUPoint( me->GetPosition() ).c_str(), // m_Pos.x, m_Pos.y, - fmtDEG( orient ).c_str(), - me->GetLayer(), - me->GetLastEditTime(), - me->GetTimeStamp(), - statusTxt ); - - fprintf( m_fp, "Li %s\n", TO_UTF8( me->GetLibRef() ) ); - - if( !me->GetDescription().IsEmpty() ) - { - fprintf( m_fp, "Cd %s\n", TO_UTF8( me->GetDescription() ) ); - } - - if( !me->GetKeywords().IsEmpty() ) - { - fprintf( m_fp, "Kw %s\n", TO_UTF8( me->GetKeywords() ) ); - } - - fprintf( m_fp, "Sc %lX\n", me->GetTimeStamp() ); - fprintf( m_fp, "AR %s\n", TO_UTF8( me->GetPath() ) ); - fprintf( m_fp, "Op %X %X 0\n", me->m_CntRot90, me->m_CntRot180 ); - - if( me->GetLocalSolderMaskMargin() != 0 ) - fprintf( m_fp, ".SolderMask %s\n", fmtBIU( me->GetLocalSolderMaskMargin() ).c_str() ); - - if( me->GetLocalSolderPasteMargin() != 0 ) - fprintf( m_fp, ".SolderPaste %s\n", fmtBIU( me->GetLocalSolderPasteMargin() ).c_str() ); - - if( me->GetLocalSolderPasteMarginRatio() != 0 ) - fprintf( m_fp, ".SolderPasteRatio %g\n", me->GetLocalSolderPasteMarginRatio() ); - - if( me->GetLocalClearance() != 0 ) - fprintf( m_fp, ".LocalClearance %s\n", fmtBIU( me->GetLocalClearance( ) ).c_str() ); - - if( me->GetZoneConnection() != UNDEFINED_CONNECTION ) - fprintf( m_fp, ".ZoneConnection %d\n", me->GetZoneConnection() ); - - if( me->GetThermalWidth() != 0 ) - fprintf( m_fp, ".ThermalWidth %d\n", me->GetThermalWidth() ); - - if( me->GetThermalGap() != 0 ) - fprintf( m_fp, ".ThermalGap %d\n", me->GetThermalGap() ); - - // attributes - if( me->GetAttributes() != MOD_DEFAULT ) - { - fprintf( m_fp, "At" ); - - if( me->GetAttributes() & MOD_CMS ) - fprintf( m_fp, " SMD" ); - - if( me->GetAttributes() & MOD_VIRTUAL ) - fprintf( m_fp, " VIRTUAL" ); - - fprintf( m_fp, "\n" ); - } - - saveMODULE_TEXT( me->m_Reference ); - - saveMODULE_TEXT( me->m_Value ); - - // save drawing elements - for( BOARD_ITEM* gr = me->m_Drawings; gr; gr = gr->Next() ) - { - switch( gr->Type() ) - { - case PCB_MODULE_TEXT_T: - saveMODULE_TEXT( (TEXTE_MODULE*) gr ); - break; - case PCB_MODULE_EDGE_T: - saveMODULE_EDGE( (EDGE_MODULE*) gr ); - break; - default: - THROW_IO_ERROR( wxString::Format( UNKNOWN_GRAPHIC_FORMAT, gr->Type() ) ); - } - } - - for( D_PAD* pad = me->m_Pads; pad; pad = pad->Next() ) - savePAD( pad ); - - save3D( me ); - - fprintf( m_fp, "$EndMODULE %s\n", TO_UTF8( me->GetLibRef() ) ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::save3D( const MODULE* me ) const -{ - for( S3D_MASTER* t3D = me->m_3D_Drawings; t3D; t3D = t3D->Next() ) - { - if( !t3D->m_Shape3DName.IsEmpty() ) - { - fprintf( m_fp, "$SHAPE3D\n" ); - - fprintf( m_fp, "Na %s\n", EscapedUTF8( t3D->m_Shape3DName ).c_str() ); - - fprintf(m_fp, -#if defined(DEBUG) - // use old formats for testing, just to verify compatibility - // using "diff", then switch to more concise form for release builds. - "Sc %lf %lf %lf\n", -#else - "Sc %.16g %.16g %.16g\n", -#endif - t3D->m_MatScale.x, - t3D->m_MatScale.y, - t3D->m_MatScale.z ); - - fprintf(m_fp, -#if defined(DEBUG) - "Of %lf %lf %lf\n", -#else - "Of %.16g %.16g %.16g\n", -#endif - t3D->m_MatPosition.x, - t3D->m_MatPosition.y, - t3D->m_MatPosition.z ); - - fprintf(m_fp, -#if defined(DEBUG) - "Ro %lf %lf %lf\n", -#else - "Ro %.16g %.16g %.16g\n", -#endif - t3D->m_MatRotation.x, - t3D->m_MatRotation.y, - t3D->m_MatRotation.z ); - - fprintf( m_fp, "$EndSHAPE3D\n" ); - } - } -} - - -void KICAD_PLUGIN::savePCB_TARGET( const PCB_TARGET* me ) const -{ - fprintf( m_fp, "$PCB_TARGET\n" ); - - fprintf( m_fp, "Po %X %d %s %s %s %lX\n", - me->GetShape(), - me->GetLayer(), - fmtBIUPoint( me->GetPosition() ).c_str(), - fmtBIU( me->GetSize() ).c_str(), - fmtBIU( me->GetWidth() ).c_str(), - me->GetTimeStamp() - ); - - fprintf( m_fp, "$EndPCB_TARGET\n" ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::savePCB_LINE( const DRAWSEGMENT* me ) const -{ - fprintf( m_fp, "$DRAWSEGMENT\n" ); - - fprintf( m_fp, "Po %d %s %s %s\n", - me->GetShape(), - fmtBIUPoint( me->GetStart() ).c_str(), - fmtBIUPoint( me->GetEnd() ).c_str(), - fmtBIU( me->GetWidth() ).c_str() - ); - - if( me->GetType() != S_CURVE ) - { - fprintf( m_fp, "De %d %d %s %lX %X\n", - me->GetLayer(), - me->GetType(), - fmtDEG( me->GetAngle() ).c_str(), - me->GetTimeStamp(), - me->GetStatus() - ); - } - else - { - fprintf( m_fp, "De %d %d %s %lX %X %s %s\n", - me->GetLayer(), - me->GetType(), - fmtDEG( me->GetAngle() ).c_str(), - me->GetTimeStamp(), - me->GetStatus(), - fmtBIUPoint( me->GetBezControl1() ).c_str(), - fmtBIUPoint( me->GetBezControl2() ).c_str() - ); - } - - fprintf( m_fp, "$EndDRAWSEGMENT\n" ); -} - - -void KICAD_PLUGIN::saveTRACK( const TRACK* me ) const -{ - int type = 0; - - if( me->Type() == PCB_VIA_T ) - type = 1; - - fprintf(m_fp, "Po %d %s %s %s %s\n", - me->GetShape(), - fmtBIUPoint( me->GetStart() ).c_str(), - fmtBIUPoint( me->GetEnd() ).c_str(), - fmtBIU( me->GetWidth() ).c_str(), - fmtBIU( me->GetDrill() ).c_str() ); - - fprintf(m_fp, "De %d %d %d %lX %X\n", - me->GetLayer(), type, me->GetNet(), - me->GetTimeStamp(), me->GetStatus() ); -} - - -void KICAD_PLUGIN::saveZONE_CONTAINER( const ZONE_CONTAINER* me ) const -{ - fprintf( m_fp, "$CZONE_OUTLINE\n" ); - - // Save the outline main info - fprintf( m_fp, "ZInfo %lX %d %s\n", - me->GetTimeStamp(), me->GetNet(), - EscapedUTF8( me->GetNetName() ).c_str() ); - - // Save the outline layer info - fprintf( m_fp, "ZLayer %d\n", me->GetLayer() ); - - // Save the outline aux info - int outline_hatch; - - switch( me->GetHatchStyle() ) - { - default: - case CPolyLine::NO_HATCH: outline_hatch = 'N'; break; - case CPolyLine::DIAGONAL_EDGE: outline_hatch = 'E'; break; - case CPolyLine::DIAGONAL_FULL: outline_hatch = 'F'; break; - } - - fprintf( m_fp, "ZAux %d %c\n", me->GetNumCorners(), outline_hatch ); - - if( me->GetPriority() > 0 ) - fprintf( m_fp, "ZPriority %d\n", me->GetPriority() ); - - // Save pad option and clearance - char padoption; - - switch( me->GetPadConnection() ) - { - default: - case PAD_IN_ZONE: padoption = 'I'; break; - case THERMAL_PAD: padoption = 'T'; break; - case PAD_NOT_IN_ZONE: padoption = 'X'; break; - } - - fprintf( m_fp, "ZClearance %s %c\n", - fmtBIU( me->GetZoneClearance() ).c_str(), - padoption ); - - fprintf( m_fp, "ZMinThickness %s\n", fmtBIU( me->GetMinThickness() ).c_str() ); - - fprintf( m_fp, "ZOptions %d %d %c %s %s\n", - me->GetFillMode(), - me->GetArcSegCount(), - me->IsFilled() ? 'S' : 'F', - fmtBIU( me->GetThermalReliefGap() ).c_str(), - fmtBIU( me->GetThermalReliefCopperBridge() ).c_str() ); - - fprintf( m_fp, "ZSmoothing %d %s\n", - me->GetCornerSmoothingType(), - fmtBIU( me->GetCornerRadius() ).c_str() ); - - typedef std::vector< CPolyPt > CPOLY_PTS; - - // Save the corner list - const CPOLY_PTS& cv = me->m_Poly->corner; - for( CPOLY_PTS::const_iterator it = cv.begin(); it != cv.end(); ++it ) - { - fprintf( m_fp, "ZCorner %s %d\n", - fmtBIUPair( it->x, it->y ).c_str(), - it->end_contour ); - } - - // Save the PolysList - const CPOLY_PTS& fv = me->m_FilledPolysList; - if( fv.size() ) - { - fprintf( m_fp, "$POLYSCORNERS\n" ); - - for( CPOLY_PTS::const_iterator it = fv.begin(); it != fv.end(); ++it ) - { - fprintf( m_fp, "%s %d %d\n", - fmtBIUPair( it->x, it->y ).c_str(), - it->end_contour, - it->utility ); - } - - fprintf( m_fp, "$endPOLYSCORNERS\n" ); - } - - typedef std::vector< SEGMENT > SEGMENTS; - - // Save the filling segments list - const SEGMENTS& segs = me->m_FillSegmList; - if( segs.size() ) - { - fprintf( m_fp, "$FILLSEGMENTS\n" ); - - for( SEGMENTS::const_iterator it = segs.begin(); it != segs.end(); ++it ) - { - fprintf( m_fp, "%s %s\n", - fmtBIUPoint( it->m_Start ).c_str(), - fmtBIUPoint( it->m_End ).c_str() ); - } - - fprintf( m_fp, "$endFILLSEGMENTS\n" ); - } - - fprintf( m_fp, "$endCZONE_OUTLINE\n" ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::saveDIMENTION( const DIMENSION* me ) const -{ - // note: COTATION was the previous name of DIMENSION - // this old keyword is used here for compatibility - fprintf( m_fp, "$COTATION\n" ); - - fprintf( m_fp, "Ge %d %d %lX\n", me->GetShape(), me->GetLayer(), me->GetTimeStamp() ); - - fprintf( m_fp, "Va %d\n", me->m_Value ); - - if( !me->m_Text.GetText().IsEmpty() ) - fprintf( m_fp, "Te %s\n", EscapedUTF8( me->m_Text.GetText() ).c_str() ); - else - fprintf( m_fp, "Te \"?\"\n" ); - - fprintf( m_fp, "Po %s %s %s %s %d\n", - fmtBIUPoint( me->m_Text.GetPosition() ).c_str(), - fmtBIUSize( me->m_Text.GetSize() ).c_str(), - fmtBIU( me->m_Text.GetThickness() ).c_str(), - fmtDEG( me->m_Text.GetOrientation() ).c_str(), - me->m_Text.IsMirrored() ? 0 : 1 // strange but true - ); - - fprintf( m_fp, "Sb %d %s %s %s\n", S_SEGMENT, - fmtBIUPair( me->m_crossBarOx, me->m_crossBarOy ).c_str(), - fmtBIUPair( me->m_crossBarFx, me->m_crossBarFy ).c_str(), - fmtBIU( me->GetWidth() ).c_str() ); - - fprintf( m_fp, "Sd %d %s %s %s\n", S_SEGMENT, - fmtBIUPair( me->m_featureLineDOx, me->m_featureLineDOy ).c_str(), - fmtBIUPair( me->m_featureLineDFx, me->m_featureLineDFy ).c_str(), - fmtBIU( me->GetWidth() ).c_str() ); - - fprintf( m_fp, "Sg %d %s %s %s\n", S_SEGMENT, - fmtBIUPair( me->m_featureLineGOx, me->m_featureLineGOy ).c_str(), - fmtBIUPair( me->m_featureLineGFx, me->m_featureLineGFy ).c_str(), - fmtBIU( me->GetWidth() ).c_str() ); - - fprintf( m_fp, "S1 %d %s %s %s\n", S_SEGMENT, - fmtBIUPair( me->m_arrowD1Ox, me->m_arrowD1Oy ).c_str(), - fmtBIUPair( me->m_arrowD1Fx, me->m_arrowD1Fy ).c_str(), - fmtBIU( me->GetWidth() ).c_str() ); - - fprintf( m_fp, "S2 %d %s %s %s\n", S_SEGMENT, - fmtBIUPair( me->m_arrowD2Ox, me->m_arrowD2Oy ).c_str(), - fmtBIUPair( me->m_arrowD2Fx, me->m_arrowD2Fy ).c_str(), - fmtBIU( me->GetWidth() ).c_str() ); - - fprintf( m_fp, "S3 %d %s %s %s\n", S_SEGMENT, - fmtBIUPair( me->m_arrowG1Ox, me->m_arrowG1Oy ).c_str(), - fmtBIUPair( me->m_arrowG1Fx, me->m_arrowG1Fy ).c_str(), - fmtBIU( me->GetWidth() ).c_str() ); - - fprintf( m_fp, "S4 %d %s %s %s\n", S_SEGMENT, - fmtBIUPair( me->m_arrowG2Ox, me->m_arrowG2Oy ).c_str(), - fmtBIUPair( me->m_arrowG2Fx, me->m_arrowG2Fy ).c_str(), - fmtBIU( me->GetWidth() ).c_str() ); - - fprintf( m_fp, "$endCOTATION\n" ); - - CHECK_WRITE_ERROR(); -} - - -void KICAD_PLUGIN::savePCB_TEXT( const TEXTE_PCB* me ) const -{ - if( me->GetText().IsEmpty() ) - return; - - fprintf( m_fp, "$TEXTPCB\n" ); - - wxArrayString* list = wxStringSplit( me->GetText(), '\n' ); - - for( unsigned ii = 0; ii < list->Count(); ii++ ) - { - wxString txt = list->Item( ii ); - - if ( ii == 0 ) - fprintf( m_fp, "Te %s\n", EscapedUTF8( txt ).c_str() ); - else - fprintf( m_fp, "nl %s\n", EscapedUTF8( txt ).c_str() ); - } - - delete list; - - fprintf( m_fp, "Po %s %s %s %s\n", - fmtBIUPoint( me->GetPosition() ).c_str(), - fmtBIUSize( me->GetSize() ).c_str(), - fmtBIU( me->GetThickness() ).c_str(), - fmtDEG( me->GetOrientation() ).c_str() ); - - char hJustify; - - switch( me->GetHorizJustify() ) - { - default: - case GR_TEXT_HJUSTIFY_CENTER: hJustify = 'C'; break; - case GR_TEXT_HJUSTIFY_LEFT: hJustify = 'L'; break; - case GR_TEXT_HJUSTIFY_RIGHT: hJustify = 'R'; break; - } - - fprintf( m_fp, "De %d %d %lX %s %c\n", - me->GetLayer(), - !me->IsMirrored(), - me->GetTimeStamp(), - me->IsItalic() ? "Italic" : "Normal", - hJustify ); - - fprintf( m_fp, "$EndTEXTPCB\n" ); -} +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2012 CERN + * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include +#include +#include +#include // LEGACY_BOARD_FILE_VERSION + +#include +#include + +#include + + +void KICAD_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties ) +{ + LOCALE_IO toggle; // toggles on, then off, the C locale. + + m_board = aBoard; + + wxFileOutputStream fs( aFileName ); + + if( !fs.IsOk() ) + { + m_error.Printf( _( "cannot open file '%s'" ), aFileName.GetData() ); + THROW_IO_ERROR( m_error ); + } + + STREAM_OUTPUTFORMATTER formatter( fs ); + + formatter.Print( 0, "(kicad-board (version %d) (host pcbnew %s)\n", SEXPR_BOARD_FILE_VERSION, + formatter.Quotew( GetBuildVersion() ).c_str() ); + aBoard->Format( (OUTPUTFORMATTER*) &formatter, 1, 0 ); + formatter.Print( 0, ")\n" ); +} diff --git a/pcbnew/kicad_plugin.h b/pcbnew/kicad_plugin.h index 5155dbd810..89dd49c56a 100644 --- a/pcbnew/kicad_plugin.h +++ b/pcbnew/kicad_plugin.h @@ -1,234 +1,71 @@ -#ifndef KICAD_PLUGIN_H_ -#define KICAD_PLUGIN_H_ - -/* - * This program source code file is part of KiCad, a free EDA CAD application. - * - * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, you may find one here: - * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * or you may search the http://www.gnu.org website for the version 2 license, - * or you may write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include -#include - -typedef int BIU; - -class PCB_TARGET; -class MODULE; -class DRAWSEGMENT; -class NETINFO; -class TEXTE_PCB; -class TRACK; -class NETCLASS; -class ZONE_CONTAINER; -class DIMENSION; -class NETINFO_ITEM; -class TEXTE_MODULE; -class EDGE_MODULE; -class TRACK; -class SEGZONE; -class D_PAD; - -/** - * Class KICAD_PLUGIN - * is a PLUGIN derivation which could possibly be put into a DLL/DSO. - * It is not thread safe, but it is re-entrant multiple times in sequence. - */ -class KICAD_PLUGIN : public PLUGIN -{ - -public: - - //------------------------------------------------------------------ - - const wxString& PluginName() - { - static const wxString name = wxT( "KiCad" ); - return name; - } - - BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties = NULL ); // overload - - void Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties = NULL ); // overload - - //----------------------------------------------------------------- - -protected: - - wxString m_error; ///< for throwing exceptions - BOARD* m_board; ///< which BOARD, no ownership here - PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL. - - LINE_READER* m_reader; ///< no ownership here. - FILE* m_fp; ///< no ownership here. - wxString m_filename; ///< for saves only, name is in m_reader for loads - - wxString m_field; ///< reused to stuff MODULE fields. - int m_loading_format_version; ///< which BOARD_FORMAT_VERSION am I Load()ing? - - /// initialize PLUGIN like a constructor would, and futz with fresh BOARD if needed. - void init( PROPERTIES* aProperties ); - - double biuToDisk; ///< convert from BIUs to disk engineering units with this scale factor - double diskToBiu; ///< convert from disk engineering units to BIUs with this scale factor - - /** - * Function biuParse - * parses an ASCII decimal floating point value and scales it into a BIU - * according to the current value of diskToBui. This fuction is the complement of - * fmtBIU(). One has to know what the other is doing. - * - * @param aValue is the ASCII value in C locale form with possible leading whitespace - * - * @param nptrptr may be NULL, but if not, then it tells where to put a - * pointer to the next unconsumed input text. See "man strtod" for more information. - * - * @return BIU - the converted Board Internal Unit. - */ - BIU biuParse( const char* aValue, const char** nptrptr = NULL ); - - /** - * Function degParse - * parses an ASCII decimal floating point value which is certainly an angle. This - * is a dedicated function for encapsulating support for the migration from - * tenths of degrees to degrees in floating point. This function is the complement of - * fmtDEG(). One has to know what the other is doing. - * - * @param aValue is the ASCII value in C locale form with possible leading whitespace - * - * @param nptrptr may be NULL, but if not, then it tells where to put a - * pointer to the next unconsumed input text. See "man strtod" for more information. - * - * @return double - the string converted to a primitive double type - */ - double degParse( const char* aValue, const char** nptrptr = NULL ); - - //---------------------------------------------------- - - void checkVersion(); - - void loadAllSections( bool doAppend ); - - void loadGENERAL(); - void loadSETUP(); - void loadSHEET(); - - void loadMODULE(); - void load3D( MODULE* aModule ); - void loadPAD( MODULE* aModule ); - void loadMODULE_TEXT( TEXTE_MODULE* aText ); - void loadMODULE_EDGE( MODULE* aModule ); - - void loadPCB_LINE(); - void loadNETINFO_ITEM(); - void loadPCB_TEXT(); - void loadNETCLASS(); - - /** - * Function loadTrackList - * reads a list of segments (Tracks and Vias, or Segzones) - * - * @param aInsertBeforeMe may be either NULL indicating append, or it may - * be an insertion point before which all the segments are inserted. - * - * @param aStructType is either PCB_TRACE_T to indicate tracks and vias, or - * PCB_ZONE_T to indicate oldschool zone segments (before polygons came to be). - */ - void loadTrackList( TRACK* aInsertBeforeMe, int aStructType ); - - void loadZONE_CONTAINER(); // "$CZONE_OUTLINE" - void loadDIMENSION(); // "$COTATION" - void loadPCB_TARGET(); // "$PCB_TARGET" - - //-------------------------------------------------- - - - //---------------------------------------------------------- - - /** - * Function writeError - * returns an error message wxString containing the filename being - * currently written. - */ - wxString writeError() const; - - /// encapsulate the BIU formatting tricks in one place. - int biuSprintf( char* buf, BIU aValue ) const; - - /** - * Function fmtBIU - * converts a BIU to engineering units by scaling and formatting to ASCII. - * This function is the complement of biuParse(). One has to know what the - * other is doing. - */ - std::string fmtBIU( BIU aValue ) const; - - std::string fmtBIUPair( BIU first, BIU second ) const; - - std::string fmtBIUPoint( const wxPoint& aPoint ) const - { - return fmtBIUPair( aPoint.x, aPoint.y ); - } - - std::string fmtBIUSize( const wxSize& aSize ) const - { - return fmtBIUPair( aSize.x, aSize.y ); - } - - /** - * Function fmtDEG - * formats an angle in a way particular to a board file format. This function - * is the opposite or complement of degParse(). One has to know what the - * other is doing. - */ - std::string fmtDEG( double aAngle ) const; - - void saveAllSections() const; - void saveGENERAL() const; - void saveSHEET() const; - void saveSETUP() const; - void saveBOARD() const; - - void saveMODULE( const MODULE* aModule ) const; - void saveMODULE_TEXT( const TEXTE_MODULE* aText ) const; - void saveMODULE_EDGE( const EDGE_MODULE* aGraphic ) const; - void savePAD( const D_PAD* aPad ) const; - void save3D( const MODULE* aModule ) const; - - void saveNETINFO_ITEM( const NETINFO_ITEM* aNet ) const; - void saveNETCLASSES() const; - void saveNETCLASS( const NETCLASS* aNetclass ) const; - - void savePCB_TEXT( const TEXTE_PCB* aText ) const; - void savePCB_TARGET( const PCB_TARGET* aTarget ) const; - void savePCB_LINE( const DRAWSEGMENT* aStroke ) const; - void saveDIMENTION( const DIMENSION* aDimension ) const; - void saveTRACK( const TRACK* aTrack ) const; - - /** - * Function saveZONE_CONTAINER - * saves the new polygon zones. - */ - void saveZONE_CONTAINER( const ZONE_CONTAINER* aZone ) const; - - //--------------------------------------------------------- - -}; - -#endif // KICAD_PLUGIN_H_ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) CERN. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef KICAD_PLUGIN_H_ +#define KICAD_PLUGIN_H_ + +#include +#include + +/** Current s-expression file format version. 2 was the last legacy format version. */ +#define SEXPR_BOARD_FILE_VERSION 3 + + +/** + * Class KICAD_PLUGIN + * is a PLUGIN derivation for saving and loading Pcbnew s-expression formatted files. + * + * @note This class is not thread safe, but it is re-entrant multiple times in sequence. + */ +class KICAD_PLUGIN : public PLUGIN +{ + +public: + const wxString& PluginName() const + { + static const wxString name = wxT( "KiCad" ); + return name; + } + + const wxString& GetFileExtension() const + { + static const wxString extension = wxT( "kicad_brd" ); + return extension; + } + + void Save( const wxString& aFileName, BOARD* aBoard, + PROPERTIES* aProperties = NULL ); // overload + +protected: + + wxString m_error; ///< for throwing exceptions + BOARD* m_board; ///< which BOARD, no ownership here + PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL. + + LINE_READER* m_reader; ///< no ownership here. + wxString m_filename; ///< for saves only, name is in m_reader for loads + + int m_loading_format_version; ///< which BOARD_FORMAT_VERSION am I Load()ing? +}; + +#endif // KICAD_PLUGIN_H_ diff --git a/pcbnew/legacy_plugin.cpp b/pcbnew/legacy_plugin.cpp new file mode 100644 index 0000000000..54936f6d31 --- /dev/null +++ b/pcbnew/legacy_plugin.cpp @@ -0,0 +1,3682 @@ + +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2007-2011 SoftPLC Corporation, Dick Hollenbeck + * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. + + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* + This implements loading and saving a BOARD, behind the PLUGIN interface. + + The definitions: + + *) a Board Internal Unit (BIU) is a unit of length that is used only internally + to PCBNEW, and is nanometers when this work is done, but deci-mils until done. + + The philosophies: + + *) BIUs should be typed as such to distinguish them from ints. This is mostly + for human readability, and having the type nearby in the source supports this readability. + *) Do not assume that BIUs will always be int, doing a sscanf() into a BIU + does not make sense in case the size of the BIU changes. + *) variables are put onto the stack in an automatic, even when it might look + more efficient to do otherwise. This is so we can seem them with a debugger. + *) Global variables should not be touched from within a PLUGIN, since it will eventually + be in a DLL/DSO. This includes window information too. The PLUGIN API knows + nothing of wxFrame or globals and all error reporting must be done by throwing + an exception. + *) No wxWindowing calls are made in here, since the UI resides higher up than in here, + and is going to process a bucket of detailed information thrown from down here + in the form of an exception if an error happens. + *) Much of what we do in this source file is for human readability, not performance. + Simply avoiding strtok() more often than the old code washes out performance losses. + Remember strncmp() will bail as soon as a mismatch happens, not going all the way + to end of string unless a full match. + *) angles are in the process of migrating to doubles, and 'int' if used, is + only shortterm, and along with this a change, and transition from from + "tenths of degrees" to simply "degrees" in the double (which has no problem + representing any portion of a degree). +*/ + + +#include +#include +#include +#include + +#include // implement this here + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include <3d_struct.h> +#include +#include + +#include + +#include + + +#define VERSION_ERROR_FORMAT _( "File '%s' is format version: %d.\nI only support format version <= %d.\nPlease upgrade PCBNew to load this file." ) +#define UNKNOWN_GRAPHIC_FORMAT _( "unknown graphic type: %d") +#define UNKNOWN_PAD_FORMAT _( "unknown pad type: %d") +#define UNKNOWN_PAD_ATTRIBUTE _( "unknown pad attribute: %d" ) + + +/// Get the length of a string constant, at compile time +#define SZ( x ) (sizeof(x)-1) + + +/// C string compare test for a specific length of characters. +#define TESTLINE( x ) ( !strnicmp( line, x, SZ( x ) ) && isspace( line[SZ( x )] ) ) + +/// C sub-string compare test for a specific length of characters. +#define TESTSUBSTR( x ) ( !strnicmp( line, x, SZ( x ) ) ) + + +#if 1 +#define READLINE() m_reader->ReadLine() + +#else +/// The function and macro which follow comprise a shim which can be a +/// monitor on lines of text read in from the input file. +/// And it can be used as a trap. +static inline unsigned ReadLine( LINE_READER* rdr, const char* caller ) +{ + unsigned ret = rdr->ReadLine(); + + const char* line = rdr->Line(); + printf( "%-6u %s: %s", rdr->LineNumber(), caller, line ); + +#if 0 // trap + if( !strcmp( "loadSETUP", caller ) && !strcmp( "$EndSETUP\n", line ) ) + { + int breakhere = 1; + } +#endif + + return ret; +} +#define READLINE() ReadLine( m_reader, __FUNCTION__ ) +#endif + +static const char delims[] = " \t\r\n"; + +using namespace std; // auto_ptr + +/** + * Function intParse + * parses an ASCII integer string with possible leading whitespace into + * an integer and updates the pointer at \a out if it is not NULL, just + * like "man strtol()". I can use this without casting, and its name says + * what I am doing. + */ +static inline int intParse( const char* next, const char** out = NULL ) +{ + // please just compile this and be quiet, hide casting ugliness: + return (int) strtol( next, (char**) out, 10 ); +} + + +/** + * Function hexParse + * parses an ASCII hex integer string with possible leading whitespace into + * a long integer and updates the pointer at \a out if it is not NULL, just + * like "man strtol". I can use this without casting, and its name says + * what I am doing. + */ +static inline long hexParse( const char* next, const char** out = NULL ) +{ + // please just compile this and be quiet, hide casting ugliness: + return strtol( next, (char**) out, 16 ); +} + + +BOARD* LEGACY_PLUGIN::Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties ) +{ + LOCALE_IO toggle; // toggles on, then off, the C locale. + + m_board = aAppendToMe ? aAppendToMe : new BOARD(); + + // delete on exception, iff I own m_board, according to aAppendToMe + auto_ptr deleter( aAppendToMe ? NULL : m_board ); + + FILE* fp = wxFopen( aFileName, wxT( "rt" ) ); + if( !fp ) + { + m_error.Printf( _( "Unable to open file '%s'" ), aFileName.GetData() ); + THROW_IO_ERROR( m_error ); + } + + // reader now owns fp, will close on exception or return + FILE_LINE_READER reader( fp, aFileName ); + + m_reader = &reader; // member function accessibility + + init( aProperties ); + + checkVersion(); + + loadAllSections( bool( aAppendToMe ) ); + + deleter.release(); + return m_board; +} + + +void LEGACY_PLUGIN::loadAllSections( bool doAppend ) +{ + // $GENERAL section is first + + // $SHEETDESCR section is next + + // $SETUP section is next + + // Then follows $EQUIPOT and all the rest + + while( READLINE() ) + { + char* line = m_reader->Line(); + + // put the more frequent ones at the top, but realize TRACKs are loaded as a group + + if( TESTLINE( "$MODULE" ) ) + { + loadMODULE(); + } + + else if( TESTLINE( "$DRAWSEGMENT" ) ) + { + loadPCB_LINE(); + } + + else if( TESTLINE( "$EQUIPOT" ) ) + { + loadNETINFO_ITEM(); + } + + else if( TESTLINE( "$TEXTPCB" ) ) + { + loadPCB_TEXT(); + } + + else if( TESTLINE( "$TRACK" ) ) + { + TRACK* insertBeforeMe = doAppend ? NULL : m_board->m_Track.GetFirst(); + loadTrackList( insertBeforeMe, PCB_TRACE_T ); + } + + else if( TESTLINE( "$NCLASS" ) ) + { + loadNETCLASS(); + } + + else if( TESTLINE( "$CZONE_OUTLINE" ) ) + { + loadZONE_CONTAINER(); + } + + else if( TESTLINE( "$COTATION" ) ) + { + loadDIMENSION(); + } + + else if( TESTLINE( "$PCB_TARGET" ) || TESTLINE( "$MIREPCB" ) ) + { + loadPCB_TARGET(); + } + + else if( TESTLINE( "$ZONE" ) ) + { + SEGZONE* insertBeforeMe = doAppend ? NULL : m_board->m_Zone.GetFirst(); + loadTrackList( insertBeforeMe, PCB_ZONE_T ); + } + + else if( TESTLINE( "$GENERAL" ) ) + { + loadGENERAL(); + } + + else if( TESTLINE( "$SHEETDESCR" ) ) + { + loadSHEET(); + } + + else if( TESTLINE( "$SETUP" ) ) + { + if( !doAppend ) + { + loadSETUP(); + } + else + { + while( READLINE() ) + { + line = m_reader->Line(); // gobble until $EndSetup + + if( TESTLINE( "$EndSETUP" ) ) + break; + } + } + } + + else if( TESTLINE( "$EndBOARD" ) ) + return; // preferred exit + } + + THROW_IO_ERROR( "Missing '$EndBOARD'" ); +} + + +void LEGACY_PLUGIN::checkVersion() +{ + // Read first line and TEST if it is a PCB file format header like this: + // "PCBNEW-BOARD Version 1 ...." + + m_reader->ReadLine(); + + char* line = m_reader->Line(); + + if( !TESTLINE( "PCBNEW-BOARD" ) ) + { + THROW_IO_ERROR( "Unknown file type" ); + } + + int ver = 1; // if sccanf fails + sscanf( line, "PCBNEW-BOARD Version %d", &ver ); + + if( ver > LEGACY_BOARD_FILE_VERSION ) + { + m_error.Printf( VERSION_ERROR_FORMAT, ver ); + THROW_IO_ERROR( m_error ); + } + + m_loading_format_version = ver; +} + + +void LEGACY_PLUGIN::loadGENERAL() +{ + while( READLINE() ) + { + char* line = m_reader->Line(); + const char* data; + + if( TESTLINE( "Units" ) ) + { + // what are the engineering units of the lengths in the BOARD? + data = strtok( line + SZ("Units"), delims ); + + if( !strcmp( data, "mm" ) ) + { +#if defined(USE_PCBNEW_NANOMETRES) + diskToBiu = 1000000.0; +#else + THROW_IO_ERROR( _( "May not load new *.brd file into 'PCBNew compiled for deci-mils'" ) ); +#endif + } + } + + else if( TESTLINE( "EnabledLayers" ) ) + { + int enabledLayers = hexParse( line + SZ( "EnabledLayers" ) ); + + // layer usage + m_board->SetEnabledLayers( enabledLayers ); + + // layer visibility equals layer usage, unless overridden later via "VisibleLayers" + m_board->SetVisibleLayers( enabledLayers ); + } + + else if( TESTLINE( "VisibleLayers" ) ) + { + int visibleLayers = hexParse( line + SZ( "VisibleLayers" ) ); + m_board->SetVisibleLayers( visibleLayers ); + } + + else if( TESTLINE( "Ly" ) ) // Old format for Layer count + { + int layer_mask = hexParse( line + SZ( "Ly" ) ); + int layer_count = 0; + + for( int ii = 0; ii < NB_COPPER_LAYERS && layer_mask; ++ii, layer_mask >>= 1 ) + { + if( layer_mask & 1 ) + layer_count++; + } + + m_board->SetCopperLayerCount( layer_count ); + } + + else if( TESTLINE( "BoardThickness" ) ) + { + BIU thickn = biuParse( line + SZ( "BoardThickness" ) ); + m_board->GetDesignSettings().m_BoardThickness = thickn; + } + + /* + else if( TESTLINE( "Links" ) ) + { + // Info only, do nothing, but only for a short while. + } + */ + + else if( TESTLINE( "NoConn" ) ) + { + int tmp = intParse( line + SZ( "NoConn" ) ); + m_board->m_NbNoconnect = tmp; + } + + else if( TESTLINE( "Di" ) ) + { + BIU x1 = biuParse( line + SZ( "Di" ), &data ); + BIU y1 = biuParse( data, &data ); + BIU x2 = biuParse( data, &data ); + BIU y2 = biuParse( data ); + + EDA_RECT bbbox( wxPoint( x1, y1 ), wxSize( x2-x1, y2-y1 ) ); + + m_board->SetBoundingBox( bbbox ); + } + + /* Read the number of segments of type DRAW, TRACK, ZONE + else if( TESTLINE( "Ndraw" ) ) + { + NbDraw = intParse( line + SZ( "Ndraw" ) ); + } + + else if( TESTLINE( "Ntrack" ) ) + { + NbTrack = intParse( line + SZ( "Ntrack" ) ); + } + + else if( TESTLINE( "Nzone" ) ) + { + NbZone = intParse( line + SZ( "Nzone" ) ); + } + + else if( TESTLINE( "Nmodule" ) ) + { + NbMod = intParse( line + SZ( "Nmodule" ) ); + } + + else if( TESTLINE( "Nnets" ) ) + { + NbNets = intParse( line + SZ( "Nnets" ) ); + } + */ + + else if( TESTLINE( "$EndGENERAL" ) ) + return; // preferred exit + } + + THROW_IO_ERROR( "Missing '$EndGENERAL'" ); +} + + +void LEGACY_PLUGIN::loadSHEET() +{ + char buf[260]; + TITLE_BLOCK tb; + + while( READLINE() ) + { + char* line = m_reader->Line(); + + if( TESTLINE( "Sheet" ) ) + { + // e.g. "Sheet A3 16535 11700" + // width and height are in 1/1000th of an inch, always + + PAGE_INFO page; + char* sname = strtok( line + SZ( "Sheet" ), delims ); + + if( sname ) + { + wxString wname = FROM_UTF8( sname ); + if( !page.SetType( wname ) ) + { + m_error.Printf( _( "Unknown sheet type '%s' on line:%d" ), + wname.GetData(), m_reader->LineNumber() ); + THROW_IO_ERROR( m_error ); + } + + char* width = strtok( NULL, delims ); + char* height = strtok( NULL, delims ); + char* orient = strtok( NULL, delims ); + + // only parse the width and height if page size is custom ("User") + if( wname == PAGE_INFO::Custom ) + { + if( width && height ) + { + // legacy disk file describes paper in mils + // (1/1000th of an inch) + int w = intParse( width ); + int h = intParse( height ); + + page.SetWidthMils( w ); + page.SetHeightMils( h ); + } + } + + if( orient && !strcmp( orient, "portrait" ) ) + { + page.SetPortrait( true ); + } + + m_board->SetPageSettings( page ); + } + } + + else if( TESTLINE( "Title" ) ) + { + ReadDelimitedText( buf, line, sizeof(buf) ); + tb.SetTitle( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Date" ) ) + { + ReadDelimitedText( buf, line, sizeof(buf) ); + tb.SetDate( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Rev" ) ) + { + ReadDelimitedText( buf, line, sizeof(buf) ); + tb.SetRevision( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Comp" ) ) + { + ReadDelimitedText( buf, line, sizeof(buf) ); + tb.SetCompany( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Comment1" ) ) + { + ReadDelimitedText( buf, line, sizeof(buf) ); + tb.SetComment1( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Comment2" ) ) + { + ReadDelimitedText( buf, line, sizeof(buf) ); + tb.SetComment2( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Comment3" ) ) + { + ReadDelimitedText( buf, line, sizeof(buf) ); + tb.SetComment3( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Comment4" ) ) + { + ReadDelimitedText( buf, line, sizeof(buf) ); + tb.SetComment4( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "$EndSHEETDESCR" ) ) + { + m_board->SetTitleBlock( tb ); + return; // preferred exit + } + } + + THROW_IO_ERROR( "Missing '$EndSHEETDESCR'" ); +} + + +void LEGACY_PLUGIN::loadSETUP() +{ + NETCLASS* netclass_default = m_board->m_NetClasses.GetDefault(); + BOARD_DESIGN_SETTINGS bds = m_board->GetDesignSettings(); + ZONE_SETTINGS zs = m_board->GetZoneSettings(); + + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + if( TESTLINE( "PcbPlotParams" ) ) + { + PCB_PLOT_PARAMS plot_opts; + + PCB_PLOT_PARAMS_PARSER parser( line + SZ( "PcbPlotParams" ), m_reader->GetSource() ); + + plot_opts.Parse( &parser ); + + m_board->SetPlotOptions( plot_opts ); + } + + else if( TESTLINE( "AuxiliaryAxisOrg" ) ) + { + BIU gx = biuParse( line + SZ( "AuxiliaryAxisOrg" ), &data ); + BIU gy = biuParse( data ); + + m_board->SetOriginAxisPosition( wxPoint( gx, gy ) ); + } + + else if( TESTLINE( "Layers" ) ) + { + int tmp = intParse( line + SZ( "Layers" ) ); + m_board->SetCopperLayerCount( tmp ); + } + + else if( TESTSUBSTR( "Layer[" ) ) + { + // eg: "Layer[n] " + + int layer = intParse( line + SZ( "Layer[" ), &data ); + + data = strtok( (char*) data+1, delims ); // +1 for ']' + if( data ) + { + wxString layerName = FROM_UTF8( data ); + m_board->SetLayerName( layer, layerName ); + + data = strtok( NULL, delims ); + if( data ) // optional in old board files + { + LAYER_T type = LAYER::ParseType( data ); + m_board->SetLayerType( layer, type ); + } + } + } + + else if( TESTLINE( "TrackWidthList" ) ) + { + BIU tmp = biuParse( line + SZ( "TrackWidthList" ) ); + m_board->m_TrackWidthList.push_back( tmp ); + } + + else if( TESTLINE( "TrackClearence" ) ) + { + BIU tmp = biuParse( line + SZ( "TrackClearence" ) ); + netclass_default->SetClearance( tmp ); + } + + else if( TESTLINE( "TrackMinWidth" ) ) + { + BIU tmp = biuParse( line + SZ( "TrackMinWidth" ) ); + bds.m_TrackMinWidth = tmp; + } + + else if( TESTLINE( "ZoneClearence" ) ) + { + BIU tmp = biuParse( line + SZ( "ZoneClearence" ) ); + zs.m_ZoneClearance = tmp; + } + + else if( TESTLINE( "Zone_45_Only" ) ) + { + bool tmp = (bool) intParse( line + SZ( "Zone_45_Only" ) ); + zs.m_Zone_45_Only = tmp; + } + + else if( TESTLINE( "DrawSegmWidth" ) ) + { + BIU tmp = biuParse( line + SZ( "DrawSegmWidth" ) ); + bds.m_DrawSegmentWidth = tmp; + } + + else if( TESTLINE( "EdgeSegmWidth" ) ) + { + BIU tmp = biuParse( line + SZ( "EdgeSegmWidth" ) ); + bds.m_EdgeSegmentWidth = tmp; + } + + else if( TESTLINE( "ViaMinSize" ) ) + { + BIU tmp = biuParse( line + SZ( "ViaMinSize" ) ); + bds.m_ViasMinSize = tmp; + } + + else if( TESTLINE( "MicroViaMinSize" ) ) + { + BIU tmp = biuParse( line + SZ( "MicroViaMinSize" ) ); + bds.m_MicroViasMinSize = tmp; + } + + else if( TESTLINE( "ViaSizeList" ) ) + { + // e.g. "ViaSizeList DIAMETER [DRILL]" + + BIU drill = 0; + BIU diameter = biuParse( line + SZ( "ViaSizeList" ), &data ); + + data = strtok( (char*) data, delims ); + if( data ) // DRILL may not be present ? + drill = biuParse( data ); + + m_board->m_ViasDimensionsList.push_back( VIA_DIMENSION( diameter, drill ) ); + } + + else if( TESTLINE( "ViaDrill" ) ) + { + BIU tmp = biuParse( line + SZ( "ViaDrill" ) ); + netclass_default->SetViaDrill( tmp ); + } + + else if( TESTLINE( "ViaMinDrill" ) ) + { + BIU tmp = biuParse( line + SZ( "ViaMinDrill" ) ); + bds.m_ViasMinDrill = tmp; + } + + else if( TESTLINE( "MicroViaDrill" ) ) + { + BIU tmp = biuParse( line + SZ( "MicroViaDrill" ) ); + netclass_default->SetuViaDrill( tmp ); + } + + else if( TESTLINE( "MicroViaMinDrill" ) ) + { + BIU tmp = biuParse( line + SZ( "MicroViaMinDrill" ) ); + bds.m_MicroViasMinDrill = tmp; + } + + else if( TESTLINE( "MicroViasAllowed" ) ) + { + int tmp = intParse( line + SZ( "MicroViasAllowed" ) ); + bds.m_MicroViasAllowed = tmp; + } + + else if( TESTLINE( "TextPcbWidth" ) ) + { + BIU tmp = biuParse( line + SZ( "TextPcbWidth" ) ); + bds.m_PcbTextWidth = tmp; + } + + else if( TESTLINE( "TextPcbSize" ) ) + { + BIU x = biuParse( line + SZ( "TextPcbSize" ), &data ); + BIU y = biuParse( data ); + + bds.m_PcbTextSize = wxSize( x, y ); + } + + else if( TESTLINE( "EdgeModWidth" ) ) + { + BIU tmp = biuParse( line + SZ( "EdgeModWidth" ) ); + bds.m_ModuleSegmentWidth = tmp; + } + + else if( TESTLINE( "TextModWidth" ) ) + { + BIU tmp = biuParse( line + SZ( "TextModWidth" ) ); + bds.m_ModuleTextWidth = tmp; + } + + else if( TESTLINE( "TextModSize" ) ) + { + BIU x = biuParse( line + SZ( "TextModSize" ), &data ); + BIU y = biuParse( data ); + + bds.m_ModuleTextSize = wxSize( x, y ); + } + + else if( TESTLINE( "PadSize" ) ) + { + BIU x = biuParse( line + SZ( "PadSize" ), &data ); + BIU y = biuParse( data ); + + bds.m_Pad_Master.SetSize( wxSize( x, y ) ); + } + + else if( TESTLINE( "PadDrill" ) ) + { + BIU tmp = biuParse( line + SZ( "PadDrill" ) ); + bds.m_Pad_Master.SetDrillSize( wxSize( tmp, tmp ) ); + } + + else if( TESTLINE( "Pad2MaskClearance" ) ) + { + BIU tmp = biuParse( line + SZ( "Pad2MaskClearance" ) ); + bds.m_SolderMaskMargin = tmp; + } + + else if( TESTLINE( "Pad2PasteClearance" ) ) + { + BIU tmp = biuParse( line + SZ( "Pad2PasteClearance" ) ); + bds.m_SolderPasteMargin = tmp; + } + + else if( TESTLINE( "Pad2PasteClearanceRatio" ) ) + { + double ratio = atof( line + SZ( "Pad2PasteClearanceRatio" ) ); + bds.m_SolderPasteMarginRatio = ratio; + } + + else if( TESTLINE( "GridOrigin" ) ) + { + /* @todo + BIU gx = biuParse( line + SZ( "GridOrigin" ), &data ); + BIU gy = biuParse( data ); + + GetScreen()->m_GridOrigin.x = Ox; + GetScreen()->m_GridOrigin.y = Oy; + */ + } + + else if( TESTLINE( "VisibleElements" ) ) + { + int visibleElements = hexParse( line + SZ( "VisibleElements" ) ); + bds.SetVisibleElements( visibleElements ); + } + + else if( TESTLINE( "$EndSETUP" ) ) + { + m_board->SetDesignSettings( bds ); + m_board->SetZoneSettings( zs ); + + // Until such time as the *.brd file does not have the + // global parameters: + // "TrackWidth", "TrackMinWidth", "ViaSize", "ViaDrill", + // "ViaMinSize", and "TrackClearence", put those same global + // values into the default NETCLASS until later board load + // code should override them. *.brd files which have been + // saved with knowledge of NETCLASSes will override these + // defaults, old boards will not. + // + // @todo: I expect that at some point we can remove said global + // parameters from the *.brd file since the ones in the + // default netclass serve the same purpose. If needed + // at all, the global defaults should go into a preferences + // file instead so they are there to start new board + // projects. + m_board->m_NetClasses.GetDefault()->SetParams(); + + return; // preferred exit + } + } + + // @todo: this code is currently unreachable, would need a goto, to get here. + // that may be better handled with an #ifdef + + /* Ensure tracks and vias sizes lists are ok: + * Sort lists by by increasing value and remove duplicates + * (the first value is not tested, because it is the netclass value + */ + sort( m_board->m_ViasDimensionsList.begin() + 1, m_board->m_ViasDimensionsList.end() ); + sort( m_board->m_TrackWidthList.begin() + 1, m_board->m_TrackWidthList.end() ); + + for( unsigned ii = 1; ii < m_board->m_ViasDimensionsList.size() - 1; ii++ ) + { + if( m_board->m_ViasDimensionsList[ii] == m_board->m_ViasDimensionsList[ii + 1] ) + { + m_board->m_ViasDimensionsList.erase( m_board->m_ViasDimensionsList.begin() + ii ); + ii--; + } + } + + for( unsigned ii = 1; ii < m_board->m_TrackWidthList.size() - 1; ii++ ) + { + if( m_board->m_TrackWidthList[ii] == m_board->m_TrackWidthList[ii + 1] ) + { + m_board->m_TrackWidthList.erase( m_board->m_TrackWidthList.begin() + ii ); + ii--; + } + } +} + + +void LEGACY_PLUGIN::loadMODULE() +{ + auto_ptr module( new MODULE( m_board ) ); + + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + // most frequently encountered ones at the top + + if( TESTSUBSTR( "D" ) ) // read a drawing item, e.g. "DS" + { + loadMODULE_EDGE( module.get() ); + } + + else if( TESTLINE( "$PAD" ) ) + { + loadPAD( module.get() ); + } + + // Read a footprint text description (ref, value, or drawing) + else if( TESTSUBSTR( "T" ) ) + { + // e.g. "T1 6940 -16220 350 300 900 60 M I 20 N "CFCARD"\r\n" + + int tnum = intParse( line + SZ( "T" ) ); + + TEXTE_MODULE* textm; + + if( tnum == TEXT_is_REFERENCE ) + textm = module->m_Reference; + else if( tnum == TEXT_is_VALUE ) + textm = module->m_Value; + else + { + // text is a drawing + textm = new TEXTE_MODULE( module.get() ); + module->m_Drawings.PushBack( textm ); + } + loadMODULE_TEXT( textm ); + } + + else if( TESTLINE( "Po" ) ) + { + // e.g. "Po 19120 39260 900 0 4E823D06 46EAAFA5 ~~\r\n" + + // sscanf( PtLine, "%d %d %d %d %lX %lX %s", &m_Pos.x, &m_Pos.y, &m_Orient, &m_Layer, &m_LastEdit_Time, &m_TimeStamp, BufCar1 ); + + BIU pos_x = biuParse( line + SZ( "Po" ), &data ); + BIU pos_y = biuParse( data, &data ); + int orient = intParse( data, &data ); + int layer = intParse( data, &data ); + + long edittime = hexParse( data, &data ); + long timestamp = hexParse( data, &data ); + + data = strtok( (char*) data+1, delims ); + + // data is now a two character long string + if( data[0] == 'F' ) + module->SetLocked( true ); + + if( data[1] == 'P' ) + module->SetIsPlaced( true ); + + module->SetPosition( wxPoint( pos_x, pos_y ) ); + module->SetLayer( layer ); + module->SetOrientation( orient ); + module->SetTimeStamp( timestamp ); + module->SetLastEditTime( edittime ); + } + + else if( TESTLINE( "Li" ) ) // Library name of footprint + { + module->m_LibRef = FROM_UTF8( StrPurge( line + SZ( "Li" ) ) ); + } + + else if( TESTLINE( "Sc" ) ) // timestamp + { + long timestamp = hexParse( line + SZ( "Sc" ) ); + module->SetTimeStamp( timestamp ); + } + + else if( TESTLINE( "Op" ) ) // (Op)tions for auto placement + { + int itmp1 = hexParse( line + SZ( "Op" ), &data ); + int itmp2 = hexParse( data ); + + int cntRot180 = itmp2 & 0x0F; + if( cntRot180 > 10 ) + cntRot180 = 10; + + module->m_CntRot180 = cntRot180; + + int cntRot90 = itmp1 & 0x0F; + if( cntRot90 > 10 ) + cntRot90 = 0; + + itmp1 = (itmp1 >> 4) & 0x0F; + if( itmp1 > 10 ) + itmp1 = 0; + + module->m_CntRot90 = (itmp1 << 4) | cntRot90; + } + + else if( TESTLINE( "At" ) ) // (At)tributes of module + { + int attrs = MOD_DEFAULT; + + data = line + SZ( "At" ); + + if( strstr( data, "SMD" ) ) + attrs |= MOD_CMS; + + if( strstr( data, "VIRTUAL" ) ) + attrs |= MOD_VIRTUAL; + + module->SetAttributes( attrs ); + } + + else if( TESTLINE( "AR" ) ) // Alternate Reference + { + // e.g. "AR /47BA2624/45525076" + data = strtok( line + SZ( "AR" ), delims ); + module->SetPath( FROM_UTF8( data ) ); + } + + else if( TESTLINE( "$SHAPE3D" ) ) + { + load3D( module.get() ); + } + + else if( TESTLINE( "Cd" ) ) + { + // e.g. "Cd Double rangee de contacts 2 x 4 pins\r\n" + module->m_Doc = FROM_UTF8( StrPurge( line + SZ( "Cd" ) ) ); + } + + else if( TESTLINE( "Kw" ) ) // Key words + { + module->m_KeyWord = FROM_UTF8( StrPurge( line + SZ( "Kw" ) ) ); + } + + else if( TESTLINE( ".SolderPasteRatio" ) ) + { + double tmp = atof( line + SZ( ".SolderPasteRatio" ) ); + module->SetLocalSolderPasteMarginRatio( tmp ); + } + + else if( TESTLINE( ".SolderPaste" ) ) + { + BIU tmp = biuParse( line + SZ( ".SolderPaste" ) ); + module->SetLocalSolderPasteMargin( tmp ); + } + + else if( TESTLINE( ".SolderMask" ) ) + { + BIU tmp = biuParse( line + SZ( ".SolderMask" ) ); + module->SetLocalSolderMaskMargin( tmp ); + } + + else if( TESTLINE( ".LocalClearance" ) ) + { + BIU tmp = biuParse( line + SZ( ".LocalClearance" ) ); + module->SetLocalClearance( tmp ); + } + + else if( TESTLINE( ".ZoneConnection" ) ) + { + int tmp = intParse( line + SZ( ".ZoneConnection" ) ); + module->SetZoneConnection( (ZoneConnection)tmp ); + } + + else if( TESTLINE( ".ThermalWidth" ) ) + { + BIU tmp = biuParse( line + SZ( ".ThermalWidth" ) ); + module->SetThermalWidth( tmp ); + } + + else if( TESTLINE( ".ThermalGap" ) ) + { + BIU tmp = biuParse( line + SZ( ".ThermalGap" ) ); + module->SetThermalGap( tmp ); + } + + else if( TESTLINE( "$EndMODULE" ) ) + { + module->CalculateBoundingBox(); + + m_board->Add( module.release(), ADD_APPEND ); + + return; // preferred exit + } + } + + THROW_IO_ERROR( "Missing '$EndMODULE'" ); +} + + +void LEGACY_PLUGIN::loadPAD( MODULE* aModule ) +{ + auto_ptr pad( new D_PAD( aModule ) ); + + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + if( TESTLINE( "Sh" ) ) // (Sh)ape and padname + { + // e.g. "Sh "A2" C 520 520 0 0 900" + // or "Sh "1" R 157 1378 0 0 900" + + // mypadname is LATIN1/CRYLIC for BOARD_FORMAT_VERSION 1, + // but for BOARD_FORMAT_VERSION 2, it is UTF8 from disk. + // So we have to go through two code paths. Moving forward + // padnames will be in UTF8 on disk, as are all KiCad strings on disk. + char mypadname[50]; + + data = line + SZ( "Sh" ) + 1; // +1 skips trailing whitespace + + data = data + ReadDelimitedText( mypadname, data, sizeof(mypadname) ) + 1; // +1 trailing whitespace + + // sscanf( PtLine, " %s %d %d %d %d %d", BufCar, &m_Size.x, &m_Size.y, &m_DeltaSize.x, &m_DeltaSize.y, &m_Orient ); + + int padshape = *data++; + BIU size_x = biuParse( data, &data ); + BIU size_y = biuParse( data, &data ); + BIU delta_x = biuParse( data, &data ); + BIU delta_y = biuParse( data, &data ); + double orient = degParse( data ); + + switch( padshape ) + { + case 'C': padshape = PAD_CIRCLE; break; + case 'R': padshape = PAD_RECT; break; + case 'O': padshape = PAD_OVAL; break; + case 'T': padshape = PAD_TRAPEZOID; break; + default: + m_error.Printf( _( "Unknown padshape '%s' on line:%d" ), + FROM_UTF8( line ).GetData(), m_reader->LineNumber() ); + THROW_IO_ERROR( m_error ); + } + + // go through a wxString to establish a universal character set properly + wxString padname; + + if( m_loading_format_version == 1 ) + { + // add 8 bit bytes, file format 1 was KiCad font type byte, + // simply promote those 8 bit bytes up into UNICODE. (subset of LATIN1) + const unsigned char* cp = (unsigned char*) mypadname; + while( *cp ) + { + padname += *cp++; // unsigned, ls 8 bits only + } + } + else + { + // version 2, which is UTF8. + padname = FROM_UTF8( mypadname ); + } + // chances are both were ASCII, but why take chances? + + pad->SetPadName( padname ); + pad->SetShape( PAD_SHAPE_T( padshape ) ); + pad->SetSize( wxSize( size_x, size_y ) ); + pad->SetDelta( wxSize( delta_x, delta_y ) ); + pad->SetOrientation( orient ); + } + + else if( TESTLINE( "Dr" ) ) // (Dr)ill + { + // e.g. "Dr 350 0 0" or "Dr 0 0 0 O 0 0" + // sscanf( PtLine, "%d %d %d %s %d %d", &m_Drill.x, &m_Offset.x, &m_Offset.y, BufCar, &dx, &dy ); + + BIU drill_x = biuParse( line + SZ( "Dr" ), &data ); + BIU drill_y = drill_x; + BIU offs_x = biuParse( data, &data ); + BIU offs_y = biuParse( data, &data ); + + PAD_SHAPE_T drShape = PAD_CIRCLE; + + data = strtok( (char*) data, delims ); + if( data ) // optional shape + { + if( data[0] == 'O' ) + { + drShape = PAD_OVAL; + + data = strtok( NULL, delims ); + drill_x = biuParse( data ); + + data = strtok( NULL, delims ); + drill_y = biuParse( data ); + } + } + + pad->SetDrillShape( drShape ); + pad->SetOffset( wxPoint( offs_x, offs_y ) ); + pad->SetDrillSize( wxSize( drill_x, drill_y ) ); + } + + else if( TESTLINE( "At" ) ) // (At)tribute + { + // e.g. "At SMD N 00888000" + // sscanf( PtLine, "%s %s %X", BufLine, BufCar, &m_layerMask ); + + PAD_ATTR_T attribute; + int layer_mask; + + data = strtok( line + SZ( "At" ), delims ); + + if( !strcmp( data, "SMD" ) ) + attribute = PAD_SMD; + else if( !strcmp( data, "CONN" ) ) + attribute = PAD_CONN; + else if( !strcmp( data, "HOLE" ) ) + attribute = PAD_HOLE_NOT_PLATED; + else + attribute = PAD_STANDARD; + + data = strtok( NULL, delims ); // skip BufCar + data = strtok( NULL, delims ); + + layer_mask = hexParse( data ); + + pad->SetLayerMask( layer_mask ); + pad->SetAttribute( attribute ); + } + + else if( TESTLINE( "Ne" ) ) // (Ne)tname + { + // e.g. "Ne 461 "V5.0" + + char buf[1024]; // can be fairly long + int netcode = intParse( line + SZ( "Ne" ), &data ); + + pad->SetNet( netcode ); + + // read Netname + ReadDelimitedText( buf, data, sizeof(buf) ); + pad->SetNetname( FROM_UTF8( StrPurge( buf ) ) ); + } + + else if( TESTLINE( "Po" ) ) // (Po)sition + { + // e.g. "Po 500 -500" + wxPoint pos; + + pos.x = biuParse( line + SZ( "Po" ), &data ); + pos.y = biuParse( data ); + + pad->SetPos0( pos ); + pad->SetPosition( pos ); + } + + else if( TESTLINE( "Le" ) ) + { + BIU tmp = biuParse( line + SZ( "Le" ) ); + pad->SetDieLength( tmp ); + } + + else if( TESTLINE( ".SolderMask" ) ) + { + BIU tmp = biuParse( line + SZ( ".SolderMask" ) ); + pad->SetLocalSolderMaskMargin( tmp ); + } + + else if( TESTLINE( ".SolderPasteRatio" ) ) + { + double tmp = atof( line + SZ( ".SolderPasteRatio" ) ); + pad->SetLocalSolderPasteMarginRatio( tmp ); + } + + else if( TESTLINE( ".SolderPaste" ) ) + { + BIU tmp = biuParse( line + SZ( ".SolderPaste" ) ); + pad->SetLocalSolderPasteMargin( tmp ); + } + + else if( TESTLINE( ".LocalClearance" ) ) + { + BIU tmp = biuParse( line + SZ( ".LocalClearance" ) ); + pad->SetLocalClearance( tmp ); + } + + else if( TESTLINE( ".ZoneConnection" ) ) + { + int tmp = intParse( line + SZ( ".ZoneConnection" ) ); + pad->SetZoneConnection( (ZoneConnection)tmp ); + } + + else if( TESTLINE( ".ThermalWidth" ) ) + { + BIU tmp = biuParse( line + SZ( ".ThermalWidth" ) ); + pad->SetThermalWidth( tmp ); + } + + else if( TESTLINE( ".ThermalGap" ) ) + { + BIU tmp = biuParse( line + SZ( ".ThermalGap" ) ); + pad->SetThermalGap( tmp ); + } + + else if( TESTLINE( "$EndPAD" ) ) + { + wxPoint padpos = pad->GetPosition(); + + RotatePoint( &padpos, aModule->GetOrientation() ); + + pad->SetPosition( padpos + aModule->GetPosition() ); + + aModule->m_Pads.PushBack( pad.release() ); + return; // preferred exit + } + } + + THROW_IO_ERROR( "Missing '$EndPAD'" ); +} + + +void LEGACY_PLUGIN::loadMODULE_EDGE( MODULE* aModule ) +{ + STROKE_T shape; + char* line = m_reader->Line(); // obtain current (old) line + + switch( line[1] ) + { + case 'S': shape = S_SEGMENT; break; + case 'C': shape = S_CIRCLE; break; + case 'A': shape = S_ARC; break; + case 'P': shape = S_POLYGON; break; + default: + m_error.Printf( wxT( "Unknown EDGE_MODULE type '%s'" ), FROM_UTF8( line ).GetData() ); + THROW_IO_ERROR( m_error ); + } + + auto_ptr dwg( new EDGE_MODULE( aModule, shape ) ); // a drawing + + const char* data; + + // common to all cases, and we have to check their values uniformly at end + BIU width = 1; + int layer = FIRST_NON_COPPER_LAYER; + + switch( shape ) + { + case S_ARC: + { + // sscanf( Line + 3, "%d %d %d %d %d %d %d", &m_Start0.x, &m_Start0.y, &m_End0.x, &m_End0.y, &m_Angle, &m_Width, &m_Layer ); + BIU start0_x = biuParse( line + SZ( "DA" ), &data ); + BIU start0_y = biuParse( data, &data ); + BIU end0_x = biuParse( data, &data ); + BIU end0_y = biuParse( data, &data ); + double angle = degParse( data, &data ); + + width = biuParse( data, &data ); + layer = intParse( data ); + + dwg->SetAngle( angle ); + dwg->m_Start0 = wxPoint( start0_x, start0_y ); + dwg->m_End0 = wxPoint( end0_x, end0_y ); + } + break; + + case S_SEGMENT: + case S_CIRCLE: + { + // e.g. "DS -7874 -10630 7874 -10630 50 20\r\n" + // sscanf( Line + 3, "%d %d %d %d %d %d", &m_Start0.x, &m_Start0.y, &m_End0.x, &m_End0.y, &m_Width, &m_Layer ); + + BIU start0_x = biuParse( line + SZ( "DS" ), &data ); + BIU start0_y = biuParse( data, &data ); + BIU end0_x = biuParse( data, &data ); + BIU end0_y = biuParse( data, &data ); + + width = biuParse( data, &data ); + layer = intParse( data ); + + dwg->m_Start0 = wxPoint( start0_x, start0_y ); + dwg->m_End0 = wxPoint( end0_x, end0_y ); + } + break; + + case S_POLYGON: + { + // e.g. "DP %d %d %d %d %d %d %d\n" + // sscanf( Line + 3, "%d %d %d %d %d %d %d", &m_Start0.x, &m_Start0.y, &m_End0.x, &m_End0.y, &pointCount, &m_Width, &m_Layer ); + + BIU start0_x = biuParse( line + SZ( "DP" ), &data ); + BIU start0_y = biuParse( data, &data ); + BIU end0_x = biuParse( data, &data ); + BIU end0_y = biuParse( data, &data ); + int ptCount = intParse( data, &data ); + + width = biuParse( data, &data ); + layer = intParse( data ); + + dwg->m_Start0 = wxPoint( start0_x, start0_y ); + dwg->m_End0 = wxPoint( end0_x, end0_y ); + + std::vector pts; + pts.reserve( ptCount ); + + for( int ii = 0; iiLine(); + + // e.g. "Dl 23 44\n" + + if( !TESTLINE( "Dl" ) ) + { + THROW_IO_ERROR( "Missing Dl point def" ); + } + + BIU x = biuParse( line + SZ( "Dl" ), &data ); + BIU y = biuParse( data ); + + pts.push_back( wxPoint( x, y ) ); + } + + dwg->SetPolyPoints( pts ); + } + break; + + default: + // first switch code above prevents us from getting here. + break; + } + + // Check for a reasonable width: + + /* @todo no MAX_WIDTH in out of reach header. + if( width <= 1 ) + width = 1; + else if( width > MAX_WIDTH ) + width = MAX_WIDTH; + */ + + // Check for a reasonable layer: + // m_Layer must be >= FIRST_NON_COPPER_LAYER, but because microwave footprints + // can use the copper layers m_Layer < FIRST_NON_COPPER_LAYER is allowed. + // @todo: changes use of EDGE_MODULE these footprints and allows only + // m_Layer >= FIRST_NON_COPPER_LAYER + if( layer < 0 || layer > LAST_NON_COPPER_LAYER ) + layer = SILKSCREEN_N_FRONT; + + dwg->SetWidth( width ); + dwg->SetLayer( layer ); + + EDGE_MODULE* em = dwg.release(); + + aModule->m_Drawings.PushBack( em ); + + // this had been done at the MODULE level before, presumably because the + // EDGE_MODULE needs to be already added to a module before this function will work. + em->SetDrawCoord(); +} + + +void LEGACY_PLUGIN::loadMODULE_TEXT( TEXTE_MODULE* aText ) +{ + const char* data; + char* line = m_reader->Line(); // current (old) line + + // sscanf( line + 1, "%d %d %d %d %d %d %d %s %s %d %s", &type, &m_Pos0.x, &m_Pos0.y, &m_Size.y, &m_Size.x, + // &m_Orient, &m_Thickness, BufCar1, BufCar2, &layer, BufCar3 ) >= 10 ) + + // e.g. "T1 6940 -16220 350 300 900 60 M I 20 N "CFCARD"\r\n" + // or T1 0 500 600 400 900 80 M V 20 N"74LS245" + // ouch, the last example has no space between N and "74LS245" ! + // that is an older version. + + int type = intParse( line+1, &data ); + BIU pos0_x = biuParse( data, &data ); + BIU pos0_y = biuParse( data, &data ); + BIU size0_y = biuParse( data, &data ); + BIU size0_x = biuParse( data, &data ); + double orient = degParse( data, &data ); + BIU thickn = biuParse( data, &data ); + + // read the quoted text before the first call to strtok() which introduces + // NULs into the string and chops it into mutliple C strings, something + // ReadDelimitedText() cannot traverse. + + // convert the "quoted, escaped, UTF8, text" to a wxString, find it by skipping + // as far forward as needed until the first double quote. + ReadDelimitedText( &m_field, data ); + + aText->SetText( m_field ); + + // after switching to strtok, there's no easy coming back because of the + // embedded nul(s?) placed to the right of the current field. + char* mirror = strtok( (char*) data, delims ); + char* hide = strtok( NULL, delims ); + char* tmp = strtok( NULL, delims ); + int layer = tmp ? intParse( tmp ) : SILKSCREEN_N_FRONT; + char* italic = strtok( NULL, delims ); + + if( type != TEXT_is_REFERENCE && type != TEXT_is_VALUE ) + type = TEXT_is_DIVERS; + + aText->SetType( type ); + + aText->SetPos0( wxPoint( pos0_x, pos0_y ) ); + + /* @todo move to accessor? cannot reach these defines from here + pcbnew.h off limit because of globals in there + // Test for a reasonable size: + if( size0_x < TEXTS_MIN_SIZE ) + size0_x = TEXTS_MIN_SIZE; + if( size0_y < TEXTS_MIN_SIZE ) + size0_y = TEXTS_MIN_SIZE; + */ + + aText->SetSize( wxSize( size0_x, size0_y ) ); + + // Due to the Pcbnew history, .m_Orient is saved in screen value + // but it is handled as relative to its parent footprint + + // @todo is there now an opportunity for a better way as we move to degrees and + // a new file format? + orient -= ( (MODULE*) aText->GetParent() )->GetOrientation(); + + aText->SetOrientation( orient ); + + // @todo put in accessors? + // Set a reasonable width: + if( thickn < 1 ) + thickn = 1; + + /* this is better left to the save function, or to the accessor, since we will + be supporting more than one board format. + aText->SetThickness( Clamp_Text_PenSize( thickn, aText->GetSize() ) ); + */ + aText->SetThickness( thickn ); + + aText->SetMirrored( mirror && *mirror == 'M' ); + + aText->SetVisible( !(hide && *hide == 'I') ); + + aText->SetItalic( italic && *italic == 'I' ); + + // @todo put in accessor? + // Test for a reasonable layer: + if( layer < 0 ) + layer = 0; + if( layer > LAST_NO_COPPER_LAYER ) + layer = LAST_NO_COPPER_LAYER; + if( layer == LAYER_N_BACK ) + layer = SILKSCREEN_N_BACK; + else if( layer == LAYER_N_FRONT ) + layer = SILKSCREEN_N_FRONT; + + aText->SetLayer( layer ); + + // Calculate the actual position. + aText->SetDrawCoord(); +} + + +void LEGACY_PLUGIN::load3D( MODULE* aModule ) +{ + S3D_MASTER* t3D = aModule->m_3D_Drawings; + + if( !t3D->m_Shape3DName.IsEmpty() ) + { + S3D_MASTER* n3D = new S3D_MASTER( aModule ); + + aModule->m_3D_Drawings.PushBack( n3D ); + + t3D = n3D; + } + + while( READLINE() ) + { + char* line = m_reader->Line(); + + if( TESTLINE( "Na" ) ) // Shape File Name + { + char buf[512]; + ReadDelimitedText( buf, line + SZ( "Na" ), sizeof(buf) ); + t3D->m_Shape3DName = FROM_UTF8( buf ); + } + + else if( TESTLINE( "Sc" ) ) // Scale + { + sscanf( line + SZ( "Sc" ), "%lf %lf %lf\n", + &t3D->m_MatScale.x, + &t3D->m_MatScale.y, + &t3D->m_MatScale.z ); + } + + else if( TESTLINE( "Of" ) ) // Offset + { + sscanf( line + SZ( "Of" ), "%lf %lf %lf\n", + &t3D->m_MatPosition.x, + &t3D->m_MatPosition.y, + &t3D->m_MatPosition.z ); + } + + else if( TESTLINE( "Ro" ) ) // Rotation + { + sscanf( line + SZ( "Ro" ), "%lf %lf %lf\n", + &t3D->m_MatRotation.x, + &t3D->m_MatRotation.y, + &t3D->m_MatRotation.z ); + } + + else if( TESTLINE( "$EndSHAPE3D" ) ) + return; // preferred exit + } + + THROW_IO_ERROR( "Missing '$EndSHAPE3D'" ); +} + + +void LEGACY_PLUGIN::loadPCB_LINE() +{ + /* example: + $DRAWSEGMENT + Po 0 57500 -1000 57500 0 150 + De 24 0 900 0 0 + $EndDRAWSEGMENT + */ + + auto_ptr dseg( new DRAWSEGMENT( m_board ) ); + + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + if( TESTLINE( "Po" ) ) + { + // sscanf( line + 2, " %d %d %d %d %d %d", &m_Shape, &m_Start.x, &m_Start.y, &m_End.x, &m_End.y, &m_Width ); + int shape = intParse( line + SZ( "Po" ), &data ); + BIU start_x = biuParse( data, &data ); + BIU start_y = biuParse( data, &data ); + BIU end_x = biuParse( data, &data ); + BIU end_y = biuParse( data, &data ); + BIU width = biuParse( data ); + + // @todo put in accessor? why 0? + if( width < 0 ) + width = 0; + + dseg->SetShape( shape ); + dseg->SetWidth( width ); + dseg->SetStart( wxPoint( start_x, start_y ) ); + dseg->SetEnd( wxPoint( end_x, end_y ) ); + } + + else if( TESTLINE( "De" ) ) + { + BIU x = 0; + BIU y; + + data = strtok( line + SZ( "De" ), delims ); + for( int i = 0; data; ++i, data = strtok( NULL, delims ) ) + { + switch( i ) + { + case 0: + int layer; + layer = intParse( data ); + + // @todo: put in accessor? + if( layer < FIRST_NO_COPPER_LAYER ) + layer = FIRST_NO_COPPER_LAYER; + + else if( layer > LAST_NO_COPPER_LAYER ) + layer = LAST_NO_COPPER_LAYER; + + dseg->SetLayer( layer ); + break; + case 1: + int mtype; + mtype = intParse( data ); + dseg->SetType( mtype ); // m_Type + break; + case 2: + double angle; + angle = degParse( data ); + dseg->SetAngle( angle ); // m_Angle + break; + case 3: + long timestamp; + timestamp = hexParse( data ); + dseg->SetTimeStamp( timestamp ); + break; + case 4: + int state; + state = hexParse( data ); + dseg->SetState( state, ON ); + break; + + // Bezier Control Points + case 5: + x = biuParse( data ); + break; + case 6: + y = biuParse( data ); + dseg->SetBezControl1( wxPoint( x, y ) ); + break; + + case 7: + x = biuParse( data ); + break; + case 8: + y = biuParse( data ); + dseg->SetBezControl2( wxPoint( x, y ) ); + break; + + default: + break; + } + } + } + + else if( TESTLINE( "$EndDRAWSEGMENT" ) ) + { + m_board->Add( dseg.release(), ADD_APPEND ); + return; // preferred exit + } + } + + THROW_IO_ERROR( "Missing '$EndDRAWSEGMENT'" ); +} + + +void LEGACY_PLUGIN::loadNETINFO_ITEM() +{ + char buf[1024]; + + NETINFO_ITEM* net = new NETINFO_ITEM( m_board ); + m_board->AppendNet( net ); + + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + if( TESTLINE( "Na" ) ) + { + // e.g. "Na 58 "/cpu.sch/PAD7"\r\n" + + int tmp = intParse( line + SZ( "Na" ), &data ); + net->SetNet( tmp ); + + ReadDelimitedText( buf, data, sizeof(buf) ); + net->SetNetname( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "$EndEQUIPOT" ) ) + return; // preferred exit + } + + THROW_IO_ERROR( "Missing '$EndEQUIPOT'" ); +} + + +void LEGACY_PLUGIN::loadPCB_TEXT() +{ + /* examples: + For a single line text: + ---------------------- + $TEXTPCB + Te "Text example" + Po 66750 53450 600 800 150 0 + From 24 1 0 Italic + $EndTEXTPCB + + For a multi line text: + --------------------- + $TEXTPCB + Te "Text example" + Nl "Line 2" + Po 66750 53450 600 800 150 0 + From 24 1 0 Italic + $EndTEXTPCB + Nl "line nn" is a line added to the current text + */ + + char text[1024]; + + // maybe someday a constructor that takes all this data in one call? + TEXTE_PCB* pcbtxt = new TEXTE_PCB( m_board ); + m_board->Add( pcbtxt, ADD_APPEND ); + + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + if( TESTLINE( "Te" ) ) // Text line (or first line for multi line texts) + { + ReadDelimitedText( text, line + 2, sizeof(text) ); + pcbtxt->SetText( FROM_UTF8( text ) ); + } + + else if( TESTLINE( "nl" ) ) // next line of the current text + { + ReadDelimitedText( text, line + SZ( "nl" ), sizeof(text) ); + pcbtxt->SetText( pcbtxt->GetText() + '\n' + FROM_UTF8( text ) ); + } + + else if( TESTLINE( "Po" ) ) + { + // sscanf( line + 2, " %d %d %d %d %d %d", &m_Pos.x, &m_Pos.y, &m_Size.x, &m_Size.y, &m_Thickness, &m_Orient ); + wxSize size; + + BIU pos_x = biuParse( line + SZ( "Po" ), &data ); + BIU pos_y = biuParse( data, &data ); + size.x = biuParse( data, &data ); + size.y = biuParse( data, &data ); + BIU thickn = biuParse( data, &data ); + double angle = degParse( data ); + + // Ensure the text has minimal size to see this text on screen: + + /* @todo wait until we are firmly in the nanometer world + if( sz.x < 5 ) + sz.x = 5; + + if( sz.y < 5 ) + sz.y = 5; + */ + + pcbtxt->SetSize( size ); + + /* @todo move into an accessor + // Set a reasonable width: + if( thickn < 1 ) + thickn = 1; + + thickn = Clamp_Text_PenSize( thickn, size ); + */ + + pcbtxt->SetThickness( thickn ); + pcbtxt->SetOrientation( angle ); + + pcbtxt->SetPosition( wxPoint( pos_x, pos_y ) ); + } + + else if( TESTLINE( "De" ) ) + { + // e.g. "De 21 1 0 Normal C\r\n" + // sscanf( line + 2, " %d %d %lX %s %c\n", &m_Layer, &normal_display, &m_TimeStamp, style, &hJustify ); + + int layer = intParse( line + SZ( "De" ), &data ); + int notMirrored = intParse( data, &data ); + long timestamp = hexParse( data, &data ); + char* style = strtok( (char*) data, delims ); + char* hJustify = strtok( NULL, delims ); + + pcbtxt->SetMirrored( !notMirrored ); + pcbtxt->SetTimeStamp( timestamp ); + pcbtxt->SetItalic( !strcmp( style, "Italic" ) ); + + EDA_TEXT_HJUSTIFY_T hj; + + if( hJustify ) + { + switch( *hJustify ) + { + default: + case 'C': hj = GR_TEXT_HJUSTIFY_CENTER; break; + case 'L': hj = GR_TEXT_HJUSTIFY_LEFT; break; + case 'R': hj = GR_TEXT_HJUSTIFY_RIGHT; break; + } + } + else + { + hj = GR_TEXT_HJUSTIFY_CENTER; + } + + pcbtxt->SetHorizJustify( hj ); + + if( layer < FIRST_COPPER_LAYER ) + layer = FIRST_COPPER_LAYER; + else if( layer > LAST_NO_COPPER_LAYER ) + layer = LAST_NO_COPPER_LAYER; + + pcbtxt->SetLayer( layer ); + + } + + else if( TESTLINE( "$EndTEXTPCB" ) ) + { + return; // preferred exit + } + } + + THROW_IO_ERROR( "Missing '$EndTEXTPCB'" ); +} + + +void LEGACY_PLUGIN::loadTrackList( TRACK* aInsertBeforeMe, int aStructType ) +{ + while( READLINE() ) + { + // read two lines per loop iteration, each loop is one TRACK or VIA + // example first line: + // "Po 0 23994 28800 24400 28800 150 -1\r\n" + + const char* data; + char* line = m_reader->Line(); + + if( line[0] == '$' ) // $EndTRACK + return; // preferred exit + + // int arg_count = sscanf( line + 2, " %d %d %d %d %d %d %d", &shape, &tempStartX, &tempStartY, &tempEndX, &tempEndY, &width, &drill ); + + assert( TESTLINE( "Po" ) ); + + int shape = intParse( line + SZ( "Po" ), &data ); + BIU start_x = biuParse( data, &data ); + BIU start_y = biuParse( data, &data ); + BIU end_x = biuParse( data, &data ); + BIU end_y = biuParse( data, &data ); + BIU width = biuParse( data, &data ); + + // optional 7th drill parameter (must be optional in an old format?) + data = strtok( (char*) data, delims ); + + BIU drill = data ? biuParse( data ) : -1; // SetDefault() if -1 + + // Read the 2nd line to determine the exact type, one of: + // PCB_TRACE_T, PCB_VIA_T, or PCB_ZONE_T. The type field in 2nd line + // differentiates between PCB_TRACE_T and PCB_VIA_T. With virtual + // functions in use, it is critical to instantiate the PCB_VIA_T + // exactly. + READLINE(); + + line = m_reader->Line(); + + // example second line: + // "De 0 0 463 0 800000\r\n" + +#if 1 + assert( TESTLINE( "De" ) ); +#else + if( !TESTLINE( "De" ) ) + { + // mandatory 2nd line is missing + THROW_IO_ERROR( "Missing 2nd line of a TRACK def" ); + } +#endif + + int makeType; + long timeStamp; + int layer, type, flags, net_code; + + // parse the 2nd line to determine the type of object + sscanf( line + SZ( "De" ), " %d %d %d %lX %X", &layer, &type, &net_code, &timeStamp, &flags ); + + if( aStructType==PCB_TRACE_T && type==1 ) + makeType = PCB_VIA_T; + else + makeType = aStructType; + + TRACK* newTrack; // BOARD insert this new one immediately after instantiation + + switch( makeType ) + { + default: + case PCB_TRACE_T: + newTrack = new TRACK( m_board ); + m_board->m_Track.Insert( newTrack, aInsertBeforeMe ); + break; + + case PCB_VIA_T: + newTrack = new SEGVIA( m_board ); + m_board->m_Track.Insert( newTrack, aInsertBeforeMe ); + break; + + case PCB_ZONE_T: // this is now deprecated, but exist in old boards + newTrack = new SEGZONE( m_board ); + m_board->m_Zone.Insert( (SEGZONE*) newTrack, (SEGZONE*) aInsertBeforeMe ); + break; + } + + newTrack->SetTimeStamp( timeStamp ); + + newTrack->SetPosition( wxPoint( start_x, start_y ) ); + newTrack->SetEnd( wxPoint( end_x, end_y ) ); + + newTrack->SetWidth( width ); + newTrack->SetShape( shape ); + + if( drill <= 0 ) + newTrack->SetDrillDefault(); + else + newTrack->SetDrill( drill ); + + newTrack->SetLayer( layer ); + + if( makeType == PCB_VIA_T ) // Ensure layers are OK when possible: + { + if( newTrack->GetShape() == VIA_THROUGH ) + ( (SEGVIA*) newTrack )->SetLayerPair( LAYER_N_FRONT, LAYER_N_BACK ); + } + + newTrack->SetNet( net_code ); + newTrack->SetState( flags, ON ); + } + + THROW_IO_ERROR( "Missing '$EndTRACK'" ); +} + + +void LEGACY_PLUGIN::loadNETCLASS() +{ + char buf[1024]; + wxString netname; + + // create an empty NETCLASS without a name, but do not add it to the BOARD + // yet since that would bypass duplicate netclass name checking within the BOARD. + // store it temporarily in an auto_ptr until successfully inserted into the BOARD + // just before returning. + auto_ptr nc( new NETCLASS( m_board, wxEmptyString ) ); + + while( READLINE() ) + { + char* line = m_reader->Line(); + + if( TESTLINE( "AddNet" ) ) // most frequent type of line + { + // e.g. "AddNet "V3.3D"\n" + ReadDelimitedText( buf, line + SZ( "AddNet" ), sizeof(buf) ); + netname = FROM_UTF8( buf ); + nc->Add( netname ); + } + + else if( TESTLINE( "Clearance" ) ) + { + BIU tmp = biuParse( line + SZ( "Clearance" ) ); + nc->SetClearance( tmp ); + } + + else if( TESTLINE( "TrackWidth" ) ) + { + BIU tmp = biuParse( line + SZ( "TrackWidth" ) ); + nc->SetTrackWidth( tmp ); + } + + else if( TESTLINE( "ViaDia" ) ) + { + BIU tmp = biuParse( line + SZ( "ViaDia" ) ); + nc->SetViaDiameter( tmp ); + } + + else if( TESTLINE( "ViaDrill" ) ) + { + BIU tmp = biuParse( line + SZ( "ViaDrill" ) ); + nc->SetViaDrill( tmp ); + } + + else if( TESTLINE( "uViaDia" ) ) + { + BIU tmp = biuParse( line + SZ( "uViaDia" ) ); + nc->SetuViaDiameter( tmp ); + } + + else if( TESTLINE( "uViaDrill" ) ) + { + BIU tmp = biuParse( line + SZ( "uViaDrill" ) ); + nc->SetuViaDrill( tmp ); + } + + else if( TESTLINE( "Name" ) ) + { + ReadDelimitedText( buf, line + SZ( "Name" ), sizeof(buf) ); + nc->SetName( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Desc" ) ) + { + ReadDelimitedText( buf, line + SZ( "Desc" ), sizeof(buf) ); + nc->SetDescription( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "$EndNCLASS" ) ) + { + if( m_board->m_NetClasses.Add( nc.get() ) ) + { + nc.release(); + } + else + { + // Must have been a name conflict, this is a bad board file. + // User may have done a hand edit to the file. + + // auto_ptr will delete nc on this code path + + m_error.Printf( _( "duplicate NETCLASS name '%s'" ), nc->GetName().GetData() ); + THROW_IO_ERROR( m_error ); + } + + return; // preferred exit + } + } + + THROW_IO_ERROR( "Missing '$EndNCLASS'" ); +} + + +void LEGACY_PLUGIN::loadZONE_CONTAINER() +{ + auto_ptr zc( new ZONE_CONTAINER( m_board ) ); + + int outline_hatch = CPolyLine::NO_HATCH; + bool sawCorner = false; + char buf[1024]; + + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + if( TESTLINE( "ZCorner" ) ) // new corner found + { + // e.g. "ZCorner 25650 49500 0" + BIU x = biuParse( line + SZ( "ZCorner" ), &data ); + BIU y = biuParse( data, &data ); + int flag = intParse( data ); + + if( !sawCorner ) + zc->m_Poly->Start( zc->GetLayer(), x, y, outline_hatch ); + else + zc->AppendCorner( wxPoint( x, y ) ); + + sawCorner = true; + + if( flag ) + zc->m_Poly->Close(); + } + + else if( TESTLINE( "ZInfo" ) ) // general info found + { + // e.g. 'ZInfo 479194B1 310 "COMMON"' + long timestamp = hexParse( line + SZ( "ZInfo" ), &data ); + int netcode = intParse( data, &data ); + + if( ReadDelimitedText( buf, data, sizeof(buf) ) > (int) sizeof(buf) ) + { + THROW_IO_ERROR( "ZInfo netname too long" ); + } + + zc->SetTimeStamp( timestamp ); + zc->SetNet( netcode ); + zc->SetNetName( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "ZLayer" ) ) // layer found + { + int layer = intParse( line + SZ( "ZLayer" ) ); + zc->SetLayer( layer ); + } + + else if( TESTLINE( "ZAux" ) ) // aux info found + { + // e.g. "ZAux 7 E" + int ignore = intParse( line + SZ( "ZAux" ), &data ); + char* hopt = strtok( (char*) data, delims ); + + if( !hopt ) + { + m_error.Printf( wxT( "Bad ZAux for CZONE_CONTAINER '%s'" ), zc->GetNetName().GetData() ); + THROW_IO_ERROR( m_error ); + } + + switch( *hopt ) // upper case required + { + case 'N': outline_hatch = CPolyLine::NO_HATCH; break; + case 'E': outline_hatch = CPolyLine::DIAGONAL_EDGE; break; + case 'F': outline_hatch = CPolyLine::DIAGONAL_FULL; break; + + default: + m_error.Printf( wxT( "Bad ZAux for CZONE_CONTAINER '%s'" ), zc->GetNetName().GetData() ); + THROW_IO_ERROR( m_error ); + } + + (void) ignore; + + // Set hatch mode later, after reading corner outline data + } + + else if( TESTLINE( "ZSmoothing" ) ) + { + // e.g. "ZSmoothing 0 0" + int smoothing = intParse( line + SZ( "ZSmoothing" ), &data ); + BIU cornerRadius = biuParse( data ); + + if( smoothing >= ZONE_SETTINGS::SMOOTHING_LAST || smoothing < 0 ) + { + m_error.Printf( wxT( "Bad ZSmoothing for CZONE_CONTAINER '%s'" ), zc->GetNetName().GetData() ); + THROW_IO_ERROR( m_error ); + } + + zc->SetCornerSmoothingType( smoothing ); + zc->SetCornerRadius( cornerRadius ); + } + + else if( TESTLINE( "ZOptions" ) ) + { + // e.g. "ZOptions 0 32 F 200 200" + int fillmode = intParse( line + SZ( "ZOptions" ), &data ); + int arcsegcount = intParse( data, &data ); + char fillstate = data[1]; // here e.g. " F" + BIU thermalReliefGap = biuParse( data += 2 , &data ); // +=2 for " F" + BIU thermalReliefCopperBridge = biuParse( data ); + + zc->SetFillMode( fillmode ? 1 : 0 ); + + // @todo ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF: don't really want pcbnew.h + // in here, after all, its a PLUGIN and global data is evil. + // put in accessor + if( arcsegcount >= 32 ) + arcsegcount = 32; + + zc->SetArcSegCount( arcsegcount ); + zc->SetIsFilled( fillstate == 'S' ? true : false ); + zc->SetThermalReliefGap( thermalReliefGap ); + zc->SetThermalReliefCopperBridge( thermalReliefCopperBridge ); + } + + else if( TESTLINE( "ZClearance" ) ) // Clearance and pad options info found + { + // e.g. "ZClearance 40 I" + BIU clearance = biuParse( line + SZ( "ZClearance" ), &data ); + char* padoption = strtok( (char*) data, delims ); // data: " I" + + ZoneConnection popt; + switch( *padoption ) + { + case 'I': popt = PAD_IN_ZONE; break; + case 'T': popt = THERMAL_PAD; break; + case 'X': popt = PAD_NOT_IN_ZONE; break; + + default: + m_error.Printf( wxT( "Bad ZClearance padoption for CZONE_CONTAINER '%s'" ), + zc->GetNetName().GetData() ); + THROW_IO_ERROR( m_error ); + } + + zc->SetZoneClearance( clearance ); + zc->SetPadConnection( popt ); + } + + else if( TESTLINE( "ZMinThickness" ) ) + { + BIU thickness = biuParse( line + SZ( "ZMinThickness" ) ); + zc->SetMinThickness( thickness ); + } + + else if( TESTLINE( "ZPriority" ) ) + { + int priority = intParse( line + SZ( "ZPriority" ) ); + zc->SetPriority( priority ); + } + + else if( TESTLINE( "$POLYSCORNERS" ) ) + { + // Read the PolysList (polygons used for fill areas in the zone) + + while( READLINE() ) + { + line = m_reader->Line(); + + if( TESTLINE( "$endPOLYSCORNERS" ) ) + break; + + // e.g. "39610 43440 0 0" + BIU x = biuParse( line, &data ); + BIU y = biuParse( data, &data ); + + bool end_contour = intParse( data, &data ); // end_countour was a bool when file saved, so '0' or '1' here + int utility = intParse( data ); + + zc->m_FilledPolysList.push_back( CPolyPt( x, y, end_contour, utility ) ); + } + } + + else if( TESTLINE( "$FILLSEGMENTS" ) ) + { + while( READLINE() ) + { + line = m_reader->Line(); + + if( TESTLINE( "$endFILLSEGMENTS" ) ) + break; + + // e.g. ""%d %d %d %d\n" + BIU sx = biuParse( line, &data ); + BIU sy = biuParse( data, &data ); + BIU ex = biuParse( data, &data ); + BIU ey = biuParse( data ); + + zc->m_FillSegmList.push_back( SEGMENT( + wxPoint( sx, sy ), + wxPoint( ex, ey ) ) ); + } + } + + else if( TESTLINE( "$endCZONE_OUTLINE" ) ) + { + // should always occur, but who knows, a zone without two corners + // is no zone at all, it's a spot? + + if( zc->GetNumCorners() > 2 ) + { + if( !zc->IsOnCopperLayer() ) + { + zc->SetFillMode( 0 ); + zc->SetNet( 0 ); + } + + // Set hatch here, after outlines corners are read + zc->m_Poly->SetHatch( outline_hatch ); + + m_board->Add( zc.release() ); + } + + return; // preferred exit + } + } + + THROW_IO_ERROR( "Missing '$endCZONE_OUTLINE'" ); +} + + +void LEGACY_PLUGIN::loadDIMENSION() +{ + auto_ptr dim( new DIMENSION( m_board ) ); + + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + if( TESTLINE( "$endCOTATION" ) ) + { + m_board->Add( dim.release(), ADD_APPEND ); + return; // preferred exit + } + + else if( TESTLINE( "Va" ) ) + { + BIU value = biuParse( line + SZ( "Va" ) ); + dim->m_Value = value; + } + + else if( TESTLINE( "Ge" ) ) + { + int layer; + long timestamp; + int shape; + + sscanf( line + SZ( "Ge" ), " %d %d %lX", &shape, &layer, ×tamp ); + + if( layer < FIRST_NO_COPPER_LAYER ) + layer = FIRST_NO_COPPER_LAYER; + + else if( layer > LAST_NO_COPPER_LAYER ) + layer = LAST_NO_COPPER_LAYER; + + dim->SetLayer( layer ); + dim->SetTimeStamp( timestamp ); + dim->SetShape( shape ); + } + + else if( TESTLINE( "Te" ) ) + { + char buf[2048]; + + ReadDelimitedText( buf, line + SZ( "Te" ), sizeof(buf) ); + dim->m_Text.SetText( FROM_UTF8( buf ) ); + } + + else if( TESTLINE( "Po" ) ) + { + // sscanf( Line + 2, " %d %d %d %d %d %d %d", &m_Text->m_Pos.x, &m_Text->m_Pos.y, + // &m_Text->m_Size.x, &m_Text->m_Size.y, &thickness, &orientation, &normal_display ); + + BIU pos_x = biuParse( line + SZ( "Po" ), &data ); + BIU pos_y = biuParse( data, &data ); + BIU width = biuParse( data, &data ); + BIU height = biuParse( data, &data ); + BIU thickn = biuParse( data, &data ); + double orient = degParse( data, &data ); + char* mirror = strtok( (char*) data, delims ); + + // This sets both DIMENSION's position and internal m_Text's. + // @todo: But why do we even know about internal m_Text? + dim->SetPosition( wxPoint( pos_x, pos_y ) ); + dim->SetTextSize( wxSize( width, height ) ); + + dim->m_Text.SetMirrored( mirror && *mirror == '0' ); + + dim->m_Text.SetThickness( thickn ); + dim->m_Text.SetOrientation( orient ); + } + + else if( TESTLINE( "Sb" ) ) + { + // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_crossBarOx, &m_crossBarOy, &m_crossBarFx, &m_crossBarFy, &m_Width ); + + int ignore = biuParse( line + SZ( "Sb" ), &data ); + BIU crossBarOx = biuParse( data, &data ); + BIU crossBarOy = biuParse( data, &data ); + BIU crossBarFx = biuParse( data, &data ); + BIU crossBarFy = biuParse( data, &data ); + BIU width = biuParse( data ); + + dim->m_crossBarOx = crossBarOx; + dim->m_crossBarOy = crossBarOy; + dim->m_crossBarFx = crossBarFx; + dim->m_crossBarFy = crossBarFy; + dim->m_Width = width; + (void) ignore; + } + + else if( TESTLINE( "Sd" ) ) + { + // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_featureLineDOx, &m_featureLineDOy, &m_featureLineDFx, &m_featureLineDFy, &Dummy ); + + int ignore = intParse( line + SZ( "Sd" ), &data ); + BIU featureLineDOx = biuParse( data, &data ); + BIU featureLineDOy = biuParse( data, &data ); + BIU featureLineDFx = biuParse( data, &data ); + BIU featureLineDFy = biuParse( data ); + + dim->m_featureLineDOx = featureLineDOx; + dim->m_featureLineDOy = featureLineDOy; + dim->m_featureLineDFx = featureLineDFx; + dim->m_featureLineDFy = featureLineDFy; + (void) ignore; + } + + else if( TESTLINE( "Sg" ) ) + { + // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_featureLineGOx, &m_featureLineGOy, &m_featureLineGFx, &m_featureLineGFy, &Dummy ); + + int ignore = intParse( line + SZ( "Sg" ), &data ); + BIU featureLineGOx = biuParse( data, &data ); + BIU featureLineGOy = biuParse( data, &data ); + BIU featureLineGFx = biuParse( data, &data ); + BIU featureLineGFy = biuParse( data ); + + dim->m_featureLineGOx = featureLineGOx; + dim->m_featureLineGOy = featureLineGOy; + dim->m_featureLineGFx = featureLineGFx; + dim->m_featureLineGFy = featureLineGFy; + (void) ignore; + } + + else if( TESTLINE( "S1" ) ) + { + // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_arrowD1Ox, &m_arrowD1Oy, &m_arrowD1Fx, &m_arrowD1Fy, &Dummy ); + + int ignore = intParse( line + SZ( "S1" ), &data ); + BIU arrowD10x = biuParse( data, &data ); + BIU arrowD10y = biuParse( data, &data ); + BIU arrowD1Fx = biuParse( data, &data ); + BIU arrowD1Fy = biuParse( data ); + + dim->m_arrowD1Ox = arrowD10x; + dim->m_arrowD1Oy = arrowD10y; + dim->m_arrowD1Fx = arrowD1Fx; + dim->m_arrowD1Fy = arrowD1Fy; + (void) ignore; + } + + else if( TESTLINE( "S2" ) ) + { + // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_arrowD2Ox, &m_arrowD2Oy, &m_arrowD2Fx, &m_arrowD2Fy, &Dummy ); + + int ignore = intParse( line + SZ( "S2" ), &data ); + BIU arrowD2Ox = biuParse( data, &data ); + BIU arrowD2Oy = biuParse( data, &data ); + BIU arrowD2Fx = biuParse( data, &data ); + BIU arrowD2Fy = biuParse( data, &data ); + + dim->m_arrowD2Ox = arrowD2Ox; + dim->m_arrowD2Oy = arrowD2Oy; + dim->m_arrowD2Fx = arrowD2Fx; + dim->m_arrowD2Fy = arrowD2Fy; + (void) ignore; + } + + else if( TESTLINE( "S3" ) ) + { + // sscanf( Line + 2, " %d %d %d %d %d %d\n", &Dummy, &m_arrowG1Ox, &m_arrowG1Oy, &m_arrowG1Fx, &m_arrowG1Fy, &Dummy ); + int ignore = intParse( line + SZ( "S3" ), &data ); + BIU arrowG1Ox = biuParse( data, &data ); + BIU arrowG1Oy = biuParse( data, &data ); + BIU arrowG1Fx = biuParse( data, &data ); + BIU arrowG1Fy = biuParse( data, &data ); + + dim->m_arrowG1Ox = arrowG1Ox; + dim->m_arrowG1Oy = arrowG1Oy; + dim->m_arrowG1Fx = arrowG1Fx; + dim->m_arrowG1Fy = arrowG1Fy; + (void) ignore; + } + + else if( TESTLINE( "S4" ) ) + { + // sscanf( Line + 2, " %d %d %d %d %d %d", &Dummy, &m_arrowG2Ox, &m_arrowG2Oy, &m_arrowG2Fx, &m_arrowG2Fy, &Dummy ); + int ignore = intParse( line + SZ( "S4" ), &data ); + BIU arrowG2Ox = biuParse( data, &data ); + BIU arrowG2Oy = biuParse( data, &data ); + BIU arrowG2Fx = biuParse( data, &data ); + BIU arrowG2Fy = biuParse( data, &data ); + + dim->m_arrowG2Ox = arrowG2Ox; + dim->m_arrowG2Oy = arrowG2Oy; + dim->m_arrowG2Fx = arrowG2Fx; + dim->m_arrowG2Fy = arrowG2Fy; + (void) ignore; + } + } + + THROW_IO_ERROR( "Missing '$endCOTATION'" ); +} + + +void LEGACY_PLUGIN::loadPCB_TARGET() +{ + while( READLINE() ) + { + const char* data; + char* line = m_reader->Line(); + + if( TESTLINE( "$EndPCB_TARGET" ) || TESTLINE( "$EndMIREPCB" ) ) + { + return; // preferred exit + } + + else if( TESTLINE( "Po" ) ) + { + // sscanf( Line + 2, " %X %d %d %d %d %d %lX", &m_Shape, &m_Layer, &m_Pos.x, &m_Pos.y, &m_Size, &m_Width, &m_TimeStamp ); + + int shape = intParse( line + SZ( "Po" ), &data ); + int layer = intParse( data, &data ); + BIU pos_x = biuParse( data, &data ); + BIU pos_y = biuParse( data, &data ); + BIU size = biuParse( data, &data ); + BIU width = biuParse( data, &data ); + long timestamp = hexParse( data ); + + if( layer < FIRST_NO_COPPER_LAYER ) + layer = FIRST_NO_COPPER_LAYER; + + else if( layer > LAST_NO_COPPER_LAYER ) + layer = LAST_NO_COPPER_LAYER; + + PCB_TARGET* t = new PCB_TARGET( m_board, shape, layer, wxPoint( pos_x, pos_y ), size, width ); + m_board->Add( t, ADD_APPEND ); + + t->SetTimeStamp( timestamp ); + } + } + + THROW_IO_ERROR( "Missing '$EndDIMENSION'" ); +} + + +int LEGACY_PLUGIN::biuSprintf( char* buf, BIU aValue ) const +{ + double engUnits = biuToDisk * aValue; + int len; + + if( engUnits != 0.0 && fabs( engUnits ) <= 0.0001 ) + { + // printf( "f: " ); + len = sprintf( buf, "%.10f", engUnits ); + + while( --len > 0 && buf[len] == '0' ) + buf[len] = '\0'; + + ++len; + } + else + { + // printf( "g: " ); + len = sprintf( buf, "%.10g", engUnits ); + } + return len; +} + + +std::string LEGACY_PLUGIN::fmtBIU( BIU aValue ) const +{ + char temp[50]; + + int len = biuSprintf( temp, aValue ); + + return std::string( temp, len ); +} + + +std::string LEGACY_PLUGIN::fmtDEG( double aAngle ) const +{ + char temp[50]; + + // @todo a hook site to convert from tenths degrees to degrees for BOARD_FORMAT_VERSION 2. + + int len = sprintf( temp, "%.10g", aAngle ); + + return std::string( temp, len ); +} + + +std::string LEGACY_PLUGIN::fmtBIUPair( BIU first, BIU second ) const +{ + char temp[100]; + char* cp = temp; + + cp += biuSprintf( cp, first ); + + *cp++ = ' '; + + cp += biuSprintf( cp, second ); + + return std::string( temp, cp - temp ); +} + + +BIU LEGACY_PLUGIN::biuParse( const char* aValue, const char** nptrptr ) +{ + char* nptr; + + errno = 0; + + double fval = strtod( aValue, &nptr ); + + if( errno ) + { + m_error.Printf( _( "invalid float number in\nfile: '%s'\nline: %d\noffset: %d" ), + m_reader->GetSource().GetData(), m_reader->LineNumber(), aValue - m_reader->Line() + 1 ); + + THROW_IO_ERROR( m_error ); + } + + if( aValue == nptr ) + { + m_error.Printf( _( "missing float number in\nfile: '%s'\nline: %d\noffset: %d" ), + m_reader->GetSource().GetData(), m_reader->LineNumber(), aValue - m_reader->Line() + 1 ); + + THROW_IO_ERROR( m_error ); + } + + if( nptrptr ) + *nptrptr = nptr; + + // There should be no rounding issues here, since the values in the file initially + // came from integers via biuFmt(). In fact this product should be an integer, exactly. + return BIU( fval * diskToBiu ); +} + + +double LEGACY_PLUGIN::degParse( const char* aValue, const char** nptrptr ) +{ + char* nptr; + + errno = 0; + + double fval = strtod( aValue, &nptr ); + + if( errno ) + { + m_error.Printf( _( "invalid float number in\nfile: '%s'\nline: %d\noffset: %d" ), + m_reader->GetSource().GetData(), m_reader->LineNumber(), aValue - m_reader->Line() + 1 ); + + THROW_IO_ERROR( m_error ); + } + + if( aValue == nptr ) + { + m_error.Printf( _( "missing float number in\nfile: '%s'\nline: %d\noffset: %d" ), + m_reader->GetSource().GetData(), m_reader->LineNumber(), aValue - m_reader->Line() + 1 ); + + THROW_IO_ERROR( m_error ); + } + + if( nptrptr ) + *nptrptr = nptr; + + return fval; +} + + +void LEGACY_PLUGIN::init( PROPERTIES* aProperties ) +{ + m_props = aProperties; + + // conversion factor for saving RAM BIUs to KICAD legacy file format. +#if defined(USE_PCBNEW_NANOMETRES) + biuToDisk = 1/1000000.0; // BIUs are nanometers & file is mm +#else + biuToDisk = 1.0; // BIUs are deci-mils +#endif + + + // conversion factor for loading KICAD legacy file format into BIUs in RAM + + // Start by assuming the *.brd file is in deci-mils. + // if we see "Units mm" in the $GENERAL section, set diskToBiu to 1000000.0 + // then, during the file loading process, to start a conversion from + // mm to nanometers. + +#if defined(USE_PCBNEW_NANOMETRES) + diskToBiu = 2540.0; // BIUs are nanometers +#else + diskToBiu = 1.0; // BIUs are deci-mils +#endif +} + + +//------------------------------------------------------------ + +void LEGACY_PLUGIN::Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties ) +{ + LOCALE_IO toggle; // toggles on, then off, the C locale. + + m_board = aBoard; + + FILE* fp = wxFopen( aFileName, wxT( "wt" ) ); + if( !fp ) + { + m_error.Printf( _( "Unable to open file '%s'" ), aFileName.GetData() ); + THROW_IO_ERROR( m_error ); + } + + m_filename = aFileName; + + // wxf now owns fp, will close on exception or return + wxFFile wxf( fp ); + + m_fp = fp; // member function accessibility + + init( aProperties ); + + if( m_props ) + { + wxString header = (*m_props)["header"]; + // save a file header, if caller provided one (with trailing \n hopefully). + fprintf( m_fp, "%s", TO_UTF8( header ) ); + } + + saveAllSections(); +} + + +wxString LEGACY_PLUGIN::writeError() const +{ + return wxString::Format( _( "error writing to file '%s'" ), m_filename.GetData() ); +} + +#define CHECK_WRITE_ERROR() \ +do { \ + if( ferror( m_fp ) ) \ + { \ + THROW_IO_ERROR( writeError() ); \ + } \ +} while(0) + + +void LEGACY_PLUGIN::saveAllSections() const +{ + + + saveGENERAL(); + + saveSHEET(); + + saveSETUP(); + + saveBOARD(); +} + + +void LEGACY_PLUGIN::saveGENERAL() const +{ + fprintf( m_fp, "$GENERAL\n" ); + fprintf( m_fp, "encoding utf-8\n" ); + + // tell folks the units used within the file, as early as possible here. +#if defined(USE_PCBNEW_NANOMETRES) + fprintf( m_fp, "Units mm\n" ); +#else + fprintf( m_fp, "Units deci-mils\n" ); +#endif + + // Write copper layer count + fprintf( m_fp, "LayerCount %d\n", m_board->GetCopperLayerCount() ); + + /* No, EnabledLayers has this information, plus g_TabAllCopperLayerMask is + global and globals are not allowed in a plugin. + fprintf( m_fp, + "Ly %8X\n", + g_TabAllCopperLayerMask[NbLayers - 1] | ALL_NO_CU_LAYERS ); + */ + + fprintf( m_fp, "EnabledLayers %08X\n", m_board->GetEnabledLayers() ); + + if( m_board->GetEnabledLayers() != m_board->GetVisibleLayers() ) + fprintf( m_fp, "VisibleLayers %08X\n", m_board->GetVisibleLayers() ); + + fprintf( m_fp, "Links %d\n", m_board->GetRatsnestsCount() ); + fprintf( m_fp, "NoConn %d\n", m_board->m_NbNoconnect ); + + // Write Bounding box info + EDA_RECT bbbox = m_board->ComputeBoundingBox(); + fprintf( m_fp, "Di %s %s\n", + fmtBIUPair( bbbox.GetX(), bbbox.GetY() ).c_str(), + fmtBIUPair( bbbox.GetRight(), bbbox.GetBottom() ).c_str() ); + + fprintf( m_fp, "Ndraw %d\n", m_board->m_Drawings.GetCount() ); + fprintf( m_fp, "Ntrack %d\n", m_board->GetNumSegmTrack() ); + fprintf( m_fp, "Nzone %d\n", m_board->GetNumSegmZone() ); + fprintf( m_fp, "BoardThickness %s\n", fmtBIU( m_board->GetDesignSettings().m_BoardThickness ).c_str() ); + fprintf( m_fp, "Nmodule %d\n", m_board->m_Modules.GetCount() ); + fprintf( m_fp, "Nnets %d\n", m_board->GetNetCount() ); + fprintf( m_fp, "$EndGENERAL\n\n" ); +} + + +void LEGACY_PLUGIN::saveSHEET() const +{ + const PAGE_INFO& pageInfo = m_board->GetPageSettings(); + const TITLE_BLOCK& tb = m_board->GetTitleBlock(); + + fprintf( m_fp, "$SHEETDESCR\n" ); + + // paper is described in mils + fprintf( m_fp, "Sheet %s %d %d%s\n", + TO_UTF8( pageInfo.GetType() ), + pageInfo.GetWidthMils(), + pageInfo.GetHeightMils(), + !pageInfo.IsCustom() && pageInfo.IsPortrait() ? + " portrait" : "" + ); + + fprintf( m_fp, "Title %s\n", EscapedUTF8( tb.GetTitle() ).c_str() ); + fprintf( m_fp, "Date %s\n", EscapedUTF8( tb.GetDate() ).c_str() ); + fprintf( m_fp, "Rev %s\n", EscapedUTF8( tb.GetRevision() ).c_str() ); + fprintf( m_fp, "Comp %s\n", EscapedUTF8( tb.GetCompany() ).c_str() ); + fprintf( m_fp, "Comment1 %s\n", EscapedUTF8( tb.GetComment1() ).c_str() ); + fprintf( m_fp, "Comment2 %s\n", EscapedUTF8( tb.GetComment2() ).c_str() ); + fprintf( m_fp, "Comment3 %s\n", EscapedUTF8( tb.GetComment3() ).c_str() ); + fprintf( m_fp, "Comment4 %s\n", EscapedUTF8( tb.GetComment4() ).c_str() ); + fprintf( m_fp, "$EndSHEETDESCR\n\n" ); +} + + +void LEGACY_PLUGIN::saveSETUP() const +{ + NETCLASS* netclass_default = m_board->m_NetClasses.GetDefault(); + const BOARD_DESIGN_SETTINGS& bds = m_board->GetDesignSettings(); + + fprintf( m_fp, "$SETUP\n" ); + + /* Internal units are nobody's business, they are internal. + Units used in the file are now in the "Units" attribute of $GENERAL. + fprintf( m_fp,, "InternalUnit %f INCH\n", 1.0 / PCB_INTERNAL_UNIT ); + */ + + fprintf( m_fp, "Layers %d\n", m_board->GetCopperLayerCount() ); + + unsigned layerMask = ALL_CU_LAYERS & m_board->GetEnabledLayers(); + + for( int layer = 0; layerMask; ++layer, layerMask >>= 1 ) + { + if( layerMask & 1 ) + { + fprintf( m_fp, "Layer[%d] %s %s\n", layer, + TO_UTF8( m_board->GetLayerName( layer ) ), + LAYER::ShowType( m_board->GetLayerType( layer ) ) ); + } + } + + // Save current default track width, for compatibility with older Pcbnew version; + fprintf( m_fp, "TrackWidth %s\n", fmtBIU( m_board->GetCurrentTrackWidth() ).c_str() ); + + // Save custom tracks width list (the first is not saved here: this is the netclass value + for( unsigned ii = 1; ii < m_board->m_TrackWidthList.size(); ii++ ) + fprintf( m_fp, "TrackWidthList %s\n", fmtBIU( m_board->m_TrackWidthList[ii] ).c_str() ); + + fprintf( m_fp, "TrackClearence %s\n", fmtBIU( netclass_default->GetClearance() ).c_str() ); + + // ZONE_SETTINGS + fprintf( m_fp, "ZoneClearence %s\n", fmtBIU( m_board->GetZoneSettings().m_ZoneClearance ).c_str() ); + fprintf( m_fp, "Zone_45_Only %d\n", m_board->GetZoneSettings().m_Zone_45_Only ); + + fprintf( m_fp, "TrackMinWidth %s\n", fmtBIU( bds.m_TrackMinWidth ).c_str() ); + + fprintf( m_fp, "DrawSegmWidth %s\n", fmtBIU( bds.m_DrawSegmentWidth ).c_str() ); + fprintf( m_fp, "EdgeSegmWidth %s\n", fmtBIU( bds.m_EdgeSegmentWidth ).c_str() ); + + // Save current default via size, for compatibility with older Pcbnew version; + fprintf( m_fp, "ViaSize %s\n", fmtBIU( netclass_default->GetViaDiameter() ).c_str() ); + fprintf( m_fp, "ViaDrill %s\n", fmtBIU( netclass_default->GetViaDrill() ).c_str() ); + fprintf( m_fp, "ViaMinSize %s\n", fmtBIU( bds.m_ViasMinSize ).c_str() ); + fprintf( m_fp, "ViaMinDrill %s\n", fmtBIU( bds.m_ViasMinDrill ).c_str() ); + + // Save custom vias diameters list (the first is not saved here: this is + // the netclass value + for( unsigned ii = 1; ii < m_board->m_ViasDimensionsList.size(); ii++ ) + fprintf( m_fp, "ViaSizeList %s %s\n", + fmtBIU( m_board->m_ViasDimensionsList[ii].m_Diameter ).c_str(), + fmtBIU( m_board->m_ViasDimensionsList[ii].m_Drill ).c_str() ); + + // for old versions compatibility: + fprintf( m_fp, "MicroViaSize %s\n", fmtBIU( netclass_default->GetuViaDiameter() ).c_str() ); + fprintf( m_fp, "MicroViaDrill %s\n", fmtBIU( netclass_default->GetuViaDrill() ).c_str() ); + fprintf( m_fp, "MicroViasAllowed %s\n", fmtBIU( bds.m_MicroViasAllowed ).c_str() ); + fprintf( m_fp, "MicroViaMinSize %s\n", fmtBIU( bds.m_MicroViasMinSize ).c_str() ); + fprintf( m_fp, "MicroViaMinDrill %s\n", fmtBIU( bds.m_MicroViasMinDrill ).c_str() ); + + fprintf( m_fp, "TextPcbWidth %s\n", fmtBIU( bds.m_PcbTextWidth ).c_str() ); + fprintf( m_fp, "TextPcbSize %s\n", fmtBIUSize( bds.m_PcbTextSize ).c_str() ); + + fprintf( m_fp, "EdgeModWidth %s\n", fmtBIU( bds.m_ModuleSegmentWidth ).c_str() ); + fprintf( m_fp, "TextModSize %s\n", fmtBIUSize( bds.m_ModuleTextSize ).c_str() ); + fprintf( m_fp, "TextModWidth %s\n", fmtBIU( bds.m_ModuleTextWidth ).c_str() ); + + fprintf( m_fp, "PadSize %s\n", fmtBIUSize( bds.m_Pad_Master.GetSize() ).c_str() ); + fprintf( m_fp, "PadDrill %s\n", fmtBIU( bds.m_Pad_Master.GetDrillSize().x ).c_str() ); + + fprintf( m_fp, "Pad2MaskClearance %s\n", fmtBIU( bds.m_SolderMaskMargin ).c_str() ); + + if( bds.m_SolderPasteMargin != 0 ) + fprintf( m_fp, "Pad2PasteClearance %s\n", fmtBIU( bds.m_SolderPasteMargin ).c_str() ); + + if( bds.m_SolderPasteMarginRatio != 0 ) + fprintf( m_fp, "Pad2PasteClearanceRatio %g\n", bds.m_SolderPasteMarginRatio ); + + /* @todo no aFrame + if ( aFrame->GetScreen()->m_GridOrigin != wxPoint( 0, 0 ) ) + { + fprintf( m_fp, "GridOrigin %s\n", fmtBIUPoint( aFrame->GetScreen()->m_GridOrigin ).c_str() ); + } + */ + + fprintf( m_fp, "AuxiliaryAxisOrg %s\n", fmtBIUPoint( m_board->GetOriginAxisPosition() ).c_str() ); + + { + STRING_FORMATTER sf; + + m_board->GetPlotOptions().Format( &sf, 0 ); + + wxString record = FROM_UTF8( sf.GetString().c_str() ); + + record.Replace( wxT("\n"), wxT(""), true ); + record.Replace( wxT(" "), wxT(" "), true); + + fprintf( m_fp, "PcbPlotParams %s\n", TO_UTF8( record ) ); + } + + fprintf( m_fp, "VisibleElements %X\n", bds.GetVisibleElements() ); + + fprintf( m_fp, "$EndSETUP\n\n" ); +} + + +void LEGACY_PLUGIN::saveBOARD() const +{ + // save the nets + int netcount = m_board->GetNetCount(); + for( int i = 0; i < netcount; ++i ) + saveNETINFO_ITEM( m_board->FindNet( i ) ); + + // Saved nets do not include netclass names, so save netclasses after nets. + saveNETCLASSES(); + + // save the modules + for( MODULE* m = m_board->m_Modules; m; m = (MODULE*) m->Next() ) + saveMODULE( m ); + + // save the graphics owned by the board (not owned by a module) + for( BOARD_ITEM* gr = m_board->m_Drawings; gr; gr = gr->Next() ) + { + switch( gr->Type() ) + { + case PCB_TEXT_T: + savePCB_TEXT( (TEXTE_PCB*) gr ); + break; + case PCB_LINE_T: + savePCB_LINE( (DRAWSEGMENT*) gr ); + break; + case PCB_TARGET_T: + savePCB_TARGET( (PCB_TARGET*) gr ); + break; + case PCB_DIMENSION_T: + saveDIMENTION( (DIMENSION*) gr ); + break; + default: + THROW_IO_ERROR( wxString::Format( UNKNOWN_GRAPHIC_FORMAT, gr->Type() ) ); + } + } + + // do not save MARKER_PCBs, they can be regenerated easily + + // save the tracks & vias + fprintf( m_fp, "$TRACK\n" ); + for( TRACK* track = m_board->m_Track; track; track = track->Next() ) + saveTRACK( track ); + fprintf( m_fp, "$EndTRACK\n" ); + + // save the old obsolete zones which were done by segments (tracks) + fprintf( m_fp, "$ZONE\n" ); + for( SEGZONE* zone = m_board->m_Zone; zone; zone = zone->Next() ) + saveTRACK( zone ); + fprintf( m_fp, "$EndZONE\n" ); + + // save the polygon (which are the newer technology) zones + for( int i=0; i < m_board->GetAreaCount(); ++i ) + saveZONE_CONTAINER( m_board->GetArea( i ) ); + + fprintf( m_fp, "$EndBOARD\n" ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::saveNETINFO_ITEM( const NETINFO_ITEM* aNet ) const +{ + fprintf( m_fp, "$EQUIPOT\n" ); + fprintf( m_fp, "Na %d %s\n", aNet->GetNet(), EscapedUTF8( aNet->GetNetname() ).c_str() ); + fprintf( m_fp, "St %s\n", "~" ); + fprintf( m_fp, "$EndEQUIPOT\n" ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::saveNETCLASSES() const +{ + const NETCLASSES& nc = m_board->m_NetClasses; + + // save the default first. + saveNETCLASS( nc.GetDefault() ); + + // the rest will be alphabetical in the *.brd file. + for( NETCLASSES::const_iterator it = nc.begin(); it != nc.end(); ++it ) + { + NETCLASS* netclass = it->second; + saveNETCLASS( netclass ); + } + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::saveNETCLASS( const NETCLASS* nc ) const +{ + fprintf( m_fp, "$NCLASS\n" ); + fprintf( m_fp, "Name %s\n", EscapedUTF8( nc->GetName() ).c_str() ); + fprintf( m_fp, "Desc %s\n", EscapedUTF8( nc->GetDescription() ).c_str() ); + + fprintf( m_fp, "Clearance %d\n", nc->GetClearance() ); + fprintf( m_fp, "TrackWidth %d\n", nc->GetTrackWidth() ); + + fprintf( m_fp, "ViaDia %d\n", nc->GetViaDiameter() ); + fprintf( m_fp, "ViaDrill %d\n", nc->GetViaDrill() ); + + fprintf( m_fp, "uViaDia %d\n", nc->GetuViaDiameter() ); + fprintf( m_fp, "uViaDrill %d\n", nc->GetuViaDrill() ); + + for( NETCLASS::const_iterator it = nc->begin(); it!=nc->end(); ++it ) + fprintf( m_fp, "AddNet %s\n", EscapedUTF8( *it ).c_str() ); + + fprintf( m_fp, "$EndNCLASS\n" ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::saveMODULE_TEXT( const TEXTE_MODULE* me ) const +{ + MODULE* parent = (MODULE*) me->GetParent(); + double orient = me->GetOrientation(); + + // Due to the Pcbnew history, m_Orient is saved in screen value + // but it is handled as relative to its parent footprint + if( parent ) + orient += parent->GetOrientation(); + + wxString txt = me->GetText(); + + fprintf( m_fp, "T%d %s %s %s %s %c %c %d %c %s\n", + me->GetType(), + fmtBIUPoint( me->GetPos0() ).c_str(), // m_Pos0.x, m_Pos0.y, +#if 0 + fmtBIUSize( me->GetSize() ).c_str(), // m_Size.y, m_Size.x, +#else + fmtBIUPair( me->GetSize().y, me->GetSize().x ).c_str(), // m_Size.y, m_Size.x, +#endif + fmtDEG( orient ).c_str(), + fmtBIU( me->GetThickness() ).c_str(), // m_Thickness, + me->IsMirrored() ? 'M' : 'N', + me->IsVisible() ? 'V' : 'I', + me->GetLayer(), + me->IsItalic() ? 'I' : 'N', + EscapedUTF8( txt ).c_str() + ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::saveMODULE_EDGE( const EDGE_MODULE* me ) const +{ + switch( me->GetShape() ) + { + case S_SEGMENT: + fprintf( m_fp, "DS %s %s %s %d\n", + fmtBIUPoint( me->m_Start0 ).c_str(), + fmtBIUPoint( me->m_End0 ).c_str(), + fmtBIU( me->GetWidth() ).c_str(), + me->GetLayer() ); + break; + + case S_CIRCLE: + fprintf( m_fp, "DC %s %s %s %d\n", + fmtBIUPoint( me->m_Start0 ).c_str(), + fmtBIUPoint( me->m_End0 ).c_str(), + fmtBIU( me->GetWidth() ).c_str(), + me->GetLayer() ); + break; + + case S_ARC: + fprintf( m_fp, "DA %s %s %s %s %d\n", + fmtBIUPoint( me->m_Start0 ).c_str(), + fmtBIUPoint( me->m_End0 ).c_str(), + fmtDEG( me->GetAngle() ).c_str(), + fmtBIU( me->GetWidth() ).c_str(), + me->GetLayer() ); + break; + + case S_POLYGON: + { + const std::vector& polyPoints = me->GetPolyPoints(); + + fprintf( m_fp, "DP %s %s %d %s %d\n", + fmtBIUPoint( me->m_Start0 ).c_str(), + fmtBIUPoint( me->m_End0 ).c_str(), + (int) polyPoints.size(), + fmtBIU( me->GetWidth() ).c_str(), + me->GetLayer() ); + + for( unsigned i = 0; iGetShape() ) ); + } + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::savePAD( const D_PAD* me ) const +{ + fprintf( m_fp, "$PAD\n" ); + + int cshape; + + switch( me->GetShape() ) + { + case PAD_CIRCLE: cshape = 'C'; break; + case PAD_RECT: cshape = 'R'; break; + case PAD_OVAL: cshape = 'O'; break; + case PAD_TRAPEZOID: cshape = 'T'; break; + + default: + THROW_IO_ERROR( wxString::Format( UNKNOWN_PAD_FORMAT, me->GetShape() ) ); + } + +#if BOARD_FORMAT_VERSION == 1 // saving mode is a compile time option + + wxString wpadname = me->GetPadName(); // universal character set padname + std::string spadname; + + for( unsigned i = 0; wpadname.size(); ++i ) + { + // truncate from universal character down to 8 bit foreign jibber + // jabber byte. This basically duplicates what was done in the old + // BOARD_FORMAT_VERSION 1 code. Any characters that were in the 8 bit + // character space were OK. + spadname += (char) wpadname[i]; + } + + fprintf( m_fp, "Sh \"%s\" %c %s %s %s\n", + spadname.c_str(), // probably ASCII, but possibly jibber jabber +#else + + fprintf( m_fp, "Sh %s %c %s %s %s\n", + // legacy VERSION 2 simply uses UTF8, wrapped in quotes, + // and 99.99 % of the time there is no difference between 1 & 2, + // since ASCII is a subset of UTF8. But if they were not using + // ASCII pad names, then there is a difference in the file. + EscapedUTF8( me->GetPadName() ).c_str(), +#endif + cshape, + fmtBIUSize( me->GetSize() ).c_str(), + fmtBIUSize( me->GetDelta() ).c_str(), + fmtDEG( me->GetOrientation() ).c_str() ); + + fprintf( m_fp, "Dr %s %s", + fmtBIU( me->GetDrillSize().x ).c_str(), + fmtBIUPoint( me->GetOffset() ).c_str() ); + + if( me->GetDrillShape() == PAD_OVAL ) + { + fprintf( m_fp, " %c %s", 'O', fmtBIUSize( me->GetDrillSize() ).c_str() ); + } + + fprintf( m_fp, "\n" ); + + const char* texttype; + + switch( me->GetAttribute() ) + { + case PAD_STANDARD: texttype = "STD"; break; + case PAD_SMD: texttype = "SMD"; break; + case PAD_CONN: texttype = "CONN"; break; + case PAD_HOLE_NOT_PLATED: texttype = "HOLE"; break; + + default: + THROW_IO_ERROR( wxString::Format( UNKNOWN_PAD_ATTRIBUTE, me->GetAttribute() ) ); + } + + fprintf( m_fp, "At %s N %08X\n", texttype, me->GetLayerMask() ); + + fprintf( m_fp, "Ne %d %s\n", me->GetNet(), EscapedUTF8( me->GetNetname() ).c_str() ); + + fprintf( m_fp, "Po %s\n", fmtBIUPoint( me->GetPos0() ).c_str() ); + + if( me->GetDieLength() != 0 ) + fprintf( m_fp, "Le %s\n", fmtBIU( me->GetDieLength() ).c_str() ); + + if( me->GetLocalSolderMaskMargin() != 0 ) + fprintf( m_fp, ".SolderMask %s\n", fmtBIU( me->GetLocalSolderMaskMargin() ).c_str() ); + + if( me->GetLocalSolderPasteMargin() != 0 ) + fprintf( m_fp, ".SolderPaste %s\n", fmtBIU( me->GetLocalSolderPasteMargin() ).c_str() ); + + if( me->GetLocalSolderPasteMarginRatio() != 0 ) + fprintf( m_fp, ".SolderPasteRatio %g\n", me->GetLocalSolderPasteMarginRatio() ); + + if( me->GetLocalClearance() != 0 ) + fprintf( m_fp, ".LocalClearance %s\n", fmtBIU( me->GetLocalClearance( ) ).c_str() ); + + if( me->GetZoneConnection() != UNDEFINED_CONNECTION ) + fprintf( m_fp, ".ZoneConnection %d\n", me->GetZoneConnection() ); + + if( me->GetThermalWidth() != 0 ) + fprintf( m_fp, ".ThermalWidth %d\n", me->GetThermalWidth() ); + + if( me->GetThermalGap() != 0 ) + fprintf( m_fp, ".ThermalGap %d\n", me->GetThermalGap() ); + + fprintf( m_fp, "$EndPAD\n" ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::saveMODULE( const MODULE* me ) const +{ + char statusTxt[3]; + double orient = me->GetOrientation(); + + fprintf( m_fp, "$MODULE %s\n", TO_UTF8( me->GetLibRef() ) ); + + statusTxt[0] = me->IsLocked() ? 'F' : '~'; + statusTxt[1] = me->IsPlaced() ? 'P' : '~'; + statusTxt[2] = '\0'; + + fprintf( m_fp, "Po %s %s %d %08lX %08lX %s\n", + fmtBIUPoint( me->GetPosition() ).c_str(), // m_Pos.x, m_Pos.y, + fmtDEG( orient ).c_str(), + me->GetLayer(), + me->GetLastEditTime(), + me->GetTimeStamp(), + statusTxt ); + + fprintf( m_fp, "Li %s\n", TO_UTF8( me->GetLibRef() ) ); + + if( !me->GetDescription().IsEmpty() ) + { + fprintf( m_fp, "Cd %s\n", TO_UTF8( me->GetDescription() ) ); + } + + if( !me->GetKeywords().IsEmpty() ) + { + fprintf( m_fp, "Kw %s\n", TO_UTF8( me->GetKeywords() ) ); + } + + fprintf( m_fp, "Sc %lX\n", me->GetTimeStamp() ); + fprintf( m_fp, "AR %s\n", TO_UTF8( me->GetPath() ) ); + fprintf( m_fp, "Op %X %X 0\n", me->m_CntRot90, me->m_CntRot180 ); + + if( me->GetLocalSolderMaskMargin() != 0 ) + fprintf( m_fp, ".SolderMask %s\n", fmtBIU( me->GetLocalSolderMaskMargin() ).c_str() ); + + if( me->GetLocalSolderPasteMargin() != 0 ) + fprintf( m_fp, ".SolderPaste %s\n", fmtBIU( me->GetLocalSolderPasteMargin() ).c_str() ); + + if( me->GetLocalSolderPasteMarginRatio() != 0 ) + fprintf( m_fp, ".SolderPasteRatio %g\n", me->GetLocalSolderPasteMarginRatio() ); + + if( me->GetLocalClearance() != 0 ) + fprintf( m_fp, ".LocalClearance %s\n", fmtBIU( me->GetLocalClearance( ) ).c_str() ); + + if( me->GetZoneConnection() != UNDEFINED_CONNECTION ) + fprintf( m_fp, ".ZoneConnection %d\n", me->GetZoneConnection() ); + + if( me->GetThermalWidth() != 0 ) + fprintf( m_fp, ".ThermalWidth %d\n", me->GetThermalWidth() ); + + if( me->GetThermalGap() != 0 ) + fprintf( m_fp, ".ThermalGap %d\n", me->GetThermalGap() ); + + // attributes + if( me->GetAttributes() != MOD_DEFAULT ) + { + fprintf( m_fp, "At" ); + + if( me->GetAttributes() & MOD_CMS ) + fprintf( m_fp, " SMD" ); + + if( me->GetAttributes() & MOD_VIRTUAL ) + fprintf( m_fp, " VIRTUAL" ); + + fprintf( m_fp, "\n" ); + } + + saveMODULE_TEXT( me->m_Reference ); + + saveMODULE_TEXT( me->m_Value ); + + // save drawing elements + for( BOARD_ITEM* gr = me->m_Drawings; gr; gr = gr->Next() ) + { + switch( gr->Type() ) + { + case PCB_MODULE_TEXT_T: + saveMODULE_TEXT( (TEXTE_MODULE*) gr ); + break; + case PCB_MODULE_EDGE_T: + saveMODULE_EDGE( (EDGE_MODULE*) gr ); + break; + default: + THROW_IO_ERROR( wxString::Format( UNKNOWN_GRAPHIC_FORMAT, gr->Type() ) ); + } + } + + for( D_PAD* pad = me->m_Pads; pad; pad = pad->Next() ) + savePAD( pad ); + + save3D( me ); + + fprintf( m_fp, "$EndMODULE %s\n", TO_UTF8( me->GetLibRef() ) ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::save3D( const MODULE* me ) const +{ + for( S3D_MASTER* t3D = me->m_3D_Drawings; t3D; t3D = t3D->Next() ) + { + if( !t3D->m_Shape3DName.IsEmpty() ) + { + fprintf( m_fp, "$SHAPE3D\n" ); + + fprintf( m_fp, "Na %s\n", EscapedUTF8( t3D->m_Shape3DName ).c_str() ); + + fprintf(m_fp, +#if defined(DEBUG) + // use old formats for testing, just to verify compatibility + // using "diff", then switch to more concise form for release builds. + "Sc %lf %lf %lf\n", +#else + "Sc %.16g %.16g %.16g\n", +#endif + t3D->m_MatScale.x, + t3D->m_MatScale.y, + t3D->m_MatScale.z ); + + fprintf(m_fp, +#if defined(DEBUG) + "Of %lf %lf %lf\n", +#else + "Of %.16g %.16g %.16g\n", +#endif + t3D->m_MatPosition.x, + t3D->m_MatPosition.y, + t3D->m_MatPosition.z ); + + fprintf(m_fp, +#if defined(DEBUG) + "Ro %lf %lf %lf\n", +#else + "Ro %.16g %.16g %.16g\n", +#endif + t3D->m_MatRotation.x, + t3D->m_MatRotation.y, + t3D->m_MatRotation.z ); + + fprintf( m_fp, "$EndSHAPE3D\n" ); + } + } +} + + +void LEGACY_PLUGIN::savePCB_TARGET( const PCB_TARGET* me ) const +{ + fprintf( m_fp, "$PCB_TARGET\n" ); + + fprintf( m_fp, "Po %X %d %s %s %s %lX\n", + me->GetShape(), + me->GetLayer(), + fmtBIUPoint( me->GetPosition() ).c_str(), + fmtBIU( me->GetSize() ).c_str(), + fmtBIU( me->GetWidth() ).c_str(), + me->GetTimeStamp() + ); + + fprintf( m_fp, "$EndPCB_TARGET\n" ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::savePCB_LINE( const DRAWSEGMENT* me ) const +{ + fprintf( m_fp, "$DRAWSEGMENT\n" ); + + fprintf( m_fp, "Po %d %s %s %s\n", + me->GetShape(), + fmtBIUPoint( me->GetStart() ).c_str(), + fmtBIUPoint( me->GetEnd() ).c_str(), + fmtBIU( me->GetWidth() ).c_str() + ); + + if( me->GetType() != S_CURVE ) + { + fprintf( m_fp, "De %d %d %s %lX %X\n", + me->GetLayer(), + me->GetType(), + fmtDEG( me->GetAngle() ).c_str(), + me->GetTimeStamp(), + me->GetStatus() + ); + } + else + { + fprintf( m_fp, "De %d %d %s %lX %X %s %s\n", + me->GetLayer(), + me->GetType(), + fmtDEG( me->GetAngle() ).c_str(), + me->GetTimeStamp(), + me->GetStatus(), + fmtBIUPoint( me->GetBezControl1() ).c_str(), + fmtBIUPoint( me->GetBezControl2() ).c_str() + ); + } + + fprintf( m_fp, "$EndDRAWSEGMENT\n" ); +} + + +void LEGACY_PLUGIN::saveTRACK( const TRACK* me ) const +{ + int type = 0; + + if( me->Type() == PCB_VIA_T ) + type = 1; + + fprintf(m_fp, "Po %d %s %s %s %s\n", + me->GetShape(), + fmtBIUPoint( me->GetStart() ).c_str(), + fmtBIUPoint( me->GetEnd() ).c_str(), + fmtBIU( me->GetWidth() ).c_str(), + fmtBIU( me->GetDrill() ).c_str() ); + + fprintf(m_fp, "De %d %d %d %lX %X\n", + me->GetLayer(), type, me->GetNet(), + me->GetTimeStamp(), me->GetStatus() ); +} + + +void LEGACY_PLUGIN::saveZONE_CONTAINER( const ZONE_CONTAINER* me ) const +{ + fprintf( m_fp, "$CZONE_OUTLINE\n" ); + + // Save the outline main info + fprintf( m_fp, "ZInfo %lX %d %s\n", + me->GetTimeStamp(), me->GetNet(), + EscapedUTF8( me->GetNetName() ).c_str() ); + + // Save the outline layer info + fprintf( m_fp, "ZLayer %d\n", me->GetLayer() ); + + // Save the outline aux info + int outline_hatch; + + switch( me->GetHatchStyle() ) + { + default: + case CPolyLine::NO_HATCH: outline_hatch = 'N'; break; + case CPolyLine::DIAGONAL_EDGE: outline_hatch = 'E'; break; + case CPolyLine::DIAGONAL_FULL: outline_hatch = 'F'; break; + } + + fprintf( m_fp, "ZAux %d %c\n", me->GetNumCorners(), outline_hatch ); + + if( me->GetPriority() > 0 ) + fprintf( m_fp, "ZPriority %d\n", me->GetPriority() ); + + // Save pad option and clearance + char padoption; + + switch( me->GetPadConnection() ) + { + default: + case PAD_IN_ZONE: padoption = 'I'; break; + case THERMAL_PAD: padoption = 'T'; break; + case PAD_NOT_IN_ZONE: padoption = 'X'; break; + } + + fprintf( m_fp, "ZClearance %s %c\n", + fmtBIU( me->GetZoneClearance() ).c_str(), + padoption ); + + fprintf( m_fp, "ZMinThickness %s\n", fmtBIU( me->GetMinThickness() ).c_str() ); + + fprintf( m_fp, "ZOptions %d %d %c %s %s\n", + me->GetFillMode(), + me->GetArcSegCount(), + me->IsFilled() ? 'S' : 'F', + fmtBIU( me->GetThermalReliefGap() ).c_str(), + fmtBIU( me->GetThermalReliefCopperBridge() ).c_str() ); + + fprintf( m_fp, "ZSmoothing %d %s\n", + me->GetCornerSmoothingType(), + fmtBIU( me->GetCornerRadius() ).c_str() ); + + typedef std::vector< CPolyPt > CPOLY_PTS; + + // Save the corner list + const CPOLY_PTS& cv = me->m_Poly->corner; + for( CPOLY_PTS::const_iterator it = cv.begin(); it != cv.end(); ++it ) + { + fprintf( m_fp, "ZCorner %s %d\n", + fmtBIUPair( it->x, it->y ).c_str(), + it->end_contour ); + } + + // Save the PolysList + const CPOLY_PTS& fv = me->m_FilledPolysList; + if( fv.size() ) + { + fprintf( m_fp, "$POLYSCORNERS\n" ); + + for( CPOLY_PTS::const_iterator it = fv.begin(); it != fv.end(); ++it ) + { + fprintf( m_fp, "%s %d %d\n", + fmtBIUPair( it->x, it->y ).c_str(), + it->end_contour, + it->utility ); + } + + fprintf( m_fp, "$endPOLYSCORNERS\n" ); + } + + typedef std::vector< SEGMENT > SEGMENTS; + + // Save the filling segments list + const SEGMENTS& segs = me->m_FillSegmList; + if( segs.size() ) + { + fprintf( m_fp, "$FILLSEGMENTS\n" ); + + for( SEGMENTS::const_iterator it = segs.begin(); it != segs.end(); ++it ) + { + fprintf( m_fp, "%s %s\n", + fmtBIUPoint( it->m_Start ).c_str(), + fmtBIUPoint( it->m_End ).c_str() ); + } + + fprintf( m_fp, "$endFILLSEGMENTS\n" ); + } + + fprintf( m_fp, "$endCZONE_OUTLINE\n" ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::saveDIMENTION( const DIMENSION* me ) const +{ + // note: COTATION was the previous name of DIMENSION + // this old keyword is used here for compatibility + fprintf( m_fp, "$COTATION\n" ); + + fprintf( m_fp, "Ge %d %d %lX\n", me->GetShape(), me->GetLayer(), me->GetTimeStamp() ); + + fprintf( m_fp, "Va %d\n", me->m_Value ); + + if( !me->m_Text.GetText().IsEmpty() ) + fprintf( m_fp, "Te %s\n", EscapedUTF8( me->m_Text.GetText() ).c_str() ); + else + fprintf( m_fp, "Te \"?\"\n" ); + + fprintf( m_fp, "Po %s %s %s %s %d\n", + fmtBIUPoint( me->m_Text.GetPosition() ).c_str(), + fmtBIUSize( me->m_Text.GetSize() ).c_str(), + fmtBIU( me->m_Text.GetThickness() ).c_str(), + fmtDEG( me->m_Text.GetOrientation() ).c_str(), + me->m_Text.IsMirrored() ? 0 : 1 // strange but true + ); + + fprintf( m_fp, "Sb %d %s %s %s\n", S_SEGMENT, + fmtBIUPair( me->m_crossBarOx, me->m_crossBarOy ).c_str(), + fmtBIUPair( me->m_crossBarFx, me->m_crossBarFy ).c_str(), + fmtBIU( me->GetWidth() ).c_str() ); + + fprintf( m_fp, "Sd %d %s %s %s\n", S_SEGMENT, + fmtBIUPair( me->m_featureLineDOx, me->m_featureLineDOy ).c_str(), + fmtBIUPair( me->m_featureLineDFx, me->m_featureLineDFy ).c_str(), + fmtBIU( me->GetWidth() ).c_str() ); + + fprintf( m_fp, "Sg %d %s %s %s\n", S_SEGMENT, + fmtBIUPair( me->m_featureLineGOx, me->m_featureLineGOy ).c_str(), + fmtBIUPair( me->m_featureLineGFx, me->m_featureLineGFy ).c_str(), + fmtBIU( me->GetWidth() ).c_str() ); + + fprintf( m_fp, "S1 %d %s %s %s\n", S_SEGMENT, + fmtBIUPair( me->m_arrowD1Ox, me->m_arrowD1Oy ).c_str(), + fmtBIUPair( me->m_arrowD1Fx, me->m_arrowD1Fy ).c_str(), + fmtBIU( me->GetWidth() ).c_str() ); + + fprintf( m_fp, "S2 %d %s %s %s\n", S_SEGMENT, + fmtBIUPair( me->m_arrowD2Ox, me->m_arrowD2Oy ).c_str(), + fmtBIUPair( me->m_arrowD2Fx, me->m_arrowD2Fy ).c_str(), + fmtBIU( me->GetWidth() ).c_str() ); + + fprintf( m_fp, "S3 %d %s %s %s\n", S_SEGMENT, + fmtBIUPair( me->m_arrowG1Ox, me->m_arrowG1Oy ).c_str(), + fmtBIUPair( me->m_arrowG1Fx, me->m_arrowG1Fy ).c_str(), + fmtBIU( me->GetWidth() ).c_str() ); + + fprintf( m_fp, "S4 %d %s %s %s\n", S_SEGMENT, + fmtBIUPair( me->m_arrowG2Ox, me->m_arrowG2Oy ).c_str(), + fmtBIUPair( me->m_arrowG2Fx, me->m_arrowG2Fy ).c_str(), + fmtBIU( me->GetWidth() ).c_str() ); + + fprintf( m_fp, "$endCOTATION\n" ); + + CHECK_WRITE_ERROR(); +} + + +void LEGACY_PLUGIN::savePCB_TEXT( const TEXTE_PCB* me ) const +{ + if( me->GetText().IsEmpty() ) + return; + + fprintf( m_fp, "$TEXTPCB\n" ); + + wxArrayString* list = wxStringSplit( me->GetText(), '\n' ); + + for( unsigned ii = 0; ii < list->Count(); ii++ ) + { + wxString txt = list->Item( ii ); + + if ( ii == 0 ) + fprintf( m_fp, "Te %s\n", EscapedUTF8( txt ).c_str() ); + else + fprintf( m_fp, "nl %s\n", EscapedUTF8( txt ).c_str() ); + } + + delete list; + + fprintf( m_fp, "Po %s %s %s %s\n", + fmtBIUPoint( me->GetPosition() ).c_str(), + fmtBIUSize( me->GetSize() ).c_str(), + fmtBIU( me->GetThickness() ).c_str(), + fmtDEG( me->GetOrientation() ).c_str() ); + + char hJustify; + + switch( me->GetHorizJustify() ) + { + default: + case GR_TEXT_HJUSTIFY_CENTER: hJustify = 'C'; break; + case GR_TEXT_HJUSTIFY_LEFT: hJustify = 'L'; break; + case GR_TEXT_HJUSTIFY_RIGHT: hJustify = 'R'; break; + } + + fprintf( m_fp, "De %d %d %lX %s %c\n", + me->GetLayer(), + !me->IsMirrored(), + me->GetTimeStamp(), + me->IsItalic() ? "Italic" : "Normal", + hJustify ); + + fprintf( m_fp, "$EndTEXTPCB\n" ); +} diff --git a/pcbnew/legacy_plugin.h b/pcbnew/legacy_plugin.h new file mode 100644 index 0000000000..fab6450741 --- /dev/null +++ b/pcbnew/legacy_plugin.h @@ -0,0 +1,240 @@ +#ifndef LEGACY_PLUGIN_H_ +#define LEGACY_PLUGIN_H_ + +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include +#include + +typedef int BIU; + +class PCB_TARGET; +class MODULE; +class DRAWSEGMENT; +class NETINFO; +class TEXTE_PCB; +class TRACK; +class NETCLASS; +class ZONE_CONTAINER; +class DIMENSION; +class NETINFO_ITEM; +class TEXTE_MODULE; +class EDGE_MODULE; +class TRACK; +class SEGZONE; +class D_PAD; + +/** + * Class LEGACY_PLUGIN + * is a PLUGIN derivation which could possibly be put into a DLL/DSO. + * It is not thread safe, but it is re-entrant multiple times in sequence. + */ +class LEGACY_PLUGIN : public PLUGIN +{ + +public: + + //------------------------------------------------------------------ + + const wxString& PluginName() const + { + static const wxString name = wxT( "KiCad-Legacy" ); + return name; + } + + const wxString& GetFileExtension() const + { + static const wxString extension = wxT( "brd" ); + return extension; + } + + BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe, PROPERTIES* aProperties = NULL ); // overload + + void Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties = NULL ); // overload + + //----------------------------------------------------------------- + +protected: + + wxString m_error; ///< for throwing exceptions + BOARD* m_board; ///< which BOARD, no ownership here + PROPERTIES* m_props; ///< passed via Save() or Load(), no ownership, may be NULL. + + LINE_READER* m_reader; ///< no ownership here. + FILE* m_fp; ///< no ownership here. + wxString m_filename; ///< for saves only, name is in m_reader for loads + + wxString m_field; ///< reused to stuff MODULE fields. + int m_loading_format_version; ///< which BOARD_FORMAT_VERSION am I Load()ing? + + /// initialize PLUGIN like a constructor would, and futz with fresh BOARD if needed. + void init( PROPERTIES* aProperties ); + + double biuToDisk; ///< convert from BIUs to disk engineering units with this scale factor + double diskToBiu; ///< convert from disk engineering units to BIUs with this scale factor + + /** + * Function biuParse + * parses an ASCII decimal floating point value and scales it into a BIU + * according to the current value of diskToBui. This fuction is the complement of + * fmtBIU(). One has to know what the other is doing. + * + * @param aValue is the ASCII value in C locale form with possible leading whitespace + * + * @param nptrptr may be NULL, but if not, then it tells where to put a + * pointer to the next unconsumed input text. See "man strtod" for more information. + * + * @return BIU - the converted Board Internal Unit. + */ + BIU biuParse( const char* aValue, const char** nptrptr = NULL ); + + /** + * Function degParse + * parses an ASCII decimal floating point value which is certainly an angle. This + * is a dedicated function for encapsulating support for the migration from + * tenths of degrees to degrees in floating point. This function is the complement of + * fmtDEG(). One has to know what the other is doing. + * + * @param aValue is the ASCII value in C locale form with possible leading whitespace + * + * @param nptrptr may be NULL, but if not, then it tells where to put a + * pointer to the next unconsumed input text. See "man strtod" for more information. + * + * @return double - the string converted to a primitive double type + */ + double degParse( const char* aValue, const char** nptrptr = NULL ); + + //---------------------------------------------------- + + void checkVersion(); + + void loadAllSections( bool doAppend ); + + void loadGENERAL(); + void loadSETUP(); + void loadSHEET(); + + void loadMODULE(); + void load3D( MODULE* aModule ); + void loadPAD( MODULE* aModule ); + void loadMODULE_TEXT( TEXTE_MODULE* aText ); + void loadMODULE_EDGE( MODULE* aModule ); + + void loadPCB_LINE(); + void loadNETINFO_ITEM(); + void loadPCB_TEXT(); + void loadNETCLASS(); + + /** + * Function loadTrackList + * reads a list of segments (Tracks and Vias, or Segzones) + * + * @param aInsertBeforeMe may be either NULL indicating append, or it may + * be an insertion point before which all the segments are inserted. + * + * @param aStructType is either PCB_TRACE_T to indicate tracks and vias, or + * PCB_ZONE_T to indicate oldschool zone segments (before polygons came to be). + */ + void loadTrackList( TRACK* aInsertBeforeMe, int aStructType ); + + void loadZONE_CONTAINER(); // "$CZONE_OUTLINE" + void loadDIMENSION(); // "$COTATION" + void loadPCB_TARGET(); // "$PCB_TARGET" + + //-------------------------------------------------- + + + //---------------------------------------------------------- + + /** + * Function writeError + * returns an error message wxString containing the filename being + * currently written. + */ + wxString writeError() const; + + /// encapsulate the BIU formatting tricks in one place. + int biuSprintf( char* buf, BIU aValue ) const; + + /** + * Function fmtBIU + * converts a BIU to engineering units by scaling and formatting to ASCII. + * This function is the complement of biuParse(). One has to know what the + * other is doing. + */ + std::string fmtBIU( BIU aValue ) const; + + std::string fmtBIUPair( BIU first, BIU second ) const; + + std::string fmtBIUPoint( const wxPoint& aPoint ) const + { + return fmtBIUPair( aPoint.x, aPoint.y ); + } + + std::string fmtBIUSize( const wxSize& aSize ) const + { + return fmtBIUPair( aSize.x, aSize.y ); + } + + /** + * Function fmtDEG + * formats an angle in a way particular to a board file format. This function + * is the opposite or complement of degParse(). One has to know what the + * other is doing. + */ + std::string fmtDEG( double aAngle ) const; + + void saveAllSections() const; + void saveGENERAL() const; + void saveSHEET() const; + void saveSETUP() const; + void saveBOARD() const; + + void saveMODULE( const MODULE* aModule ) const; + void saveMODULE_TEXT( const TEXTE_MODULE* aText ) const; + void saveMODULE_EDGE( const EDGE_MODULE* aGraphic ) const; + void savePAD( const D_PAD* aPad ) const; + void save3D( const MODULE* aModule ) const; + + void saveNETINFO_ITEM( const NETINFO_ITEM* aNet ) const; + void saveNETCLASSES() const; + void saveNETCLASS( const NETCLASS* aNetclass ) const; + + void savePCB_TEXT( const TEXTE_PCB* aText ) const; + void savePCB_TARGET( const PCB_TARGET* aTarget ) const; + void savePCB_LINE( const DRAWSEGMENT* aStroke ) const; + void saveDIMENTION( const DIMENSION* aDimension ) const; + void saveTRACK( const TRACK* aTrack ) const; + + /** + * Function saveZONE_CONTAINER + * saves the new polygon zones. + */ + void saveZONE_CONTAINER( const ZONE_CONTAINER* aZone ) const; + + //--------------------------------------------------------- + +}; + +#endif // LEGACY_PLUGIN_H_ From ae813967103c58f57ed6a42b0d559da01013ea3d Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Sun, 8 Apr 2012 14:01:54 -0500 Subject: [PATCH 51/68] *) Change LEGACY_PLUGIN to respect saving and loading of UNDEFINED_DRILL_DIAMETER. *) Allow building without defining USE_NEW_PCBNEW_LOAD & USE_NEW_PCBNEW_SAVE. pcbnew/files.cpp would not link. --- pcbnew/files.cpp | 7 ++++--- pcbnew/legacy_plugin.cpp | 36 +++++++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index be8f1c88e7..488ff3556f 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -456,8 +456,10 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF pcbFileName = GetScreen()->GetFileName(); +#if defined( USE_NEW_PCBNEW_LOAD ) || defined( USE_NEW_PCBNEW_SAVE ) if( pcbFileName.GetExt().IsEmpty() ) pcbFileName.SetExt( IO_MGR::GetFileExtension( (IO_MGR::PCB_FILE_T) wildcardIndex ) ); +#endif if( !IsWritable( pcbFileName ) ) return false; @@ -468,9 +470,8 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF backupFileName = pcbFileName; backupFileName.SetExt( pcbBackupFileExtension ); - /* If an old backup file exists, delete it. If an old board file exists, rename - * it to the backup file name - */ + // If an old backup file exists, delete it. If an old board file exists, rename + // it to the backup file name. if( pcbFileName.FileExists() ) { // Remove the old file xxx.000 if it exists. diff --git a/pcbnew/legacy_plugin.cpp b/pcbnew/legacy_plugin.cpp index 54936f6d31..444afd27ff 100644 --- a/pcbnew/legacy_plugin.cpp +++ b/pcbnew/legacy_plugin.cpp @@ -317,11 +317,15 @@ void LEGACY_PLUGIN::checkVersion() int ver = 1; // if sccanf fails sscanf( line, "PCBNEW-BOARD Version %d", &ver ); +#if !defined(DEBUG) if( ver > LEGACY_BOARD_FILE_VERSION ) { - m_error.Printf( VERSION_ERROR_FORMAT, ver ); + // "File '%s' is format version: %d.\nI only support format version <= %d.\nPlease upgrade PCBNew to load this file." + m_error.Printf( VERSION_ERROR_FORMAT, + m_reader->GetSource().GetData(), ver, LEGACY_BOARD_FILE_VERSION ); THROW_IO_ERROR( m_error ); } +#endif m_loading_format_version = ver; } @@ -343,8 +347,14 @@ void LEGACY_PLUGIN::loadGENERAL() { #if defined(USE_PCBNEW_NANOMETRES) diskToBiu = 1000000.0; + +#elif defined(DEBUG) + // mm to deci-mils: + // advanced testing of round tripping only, not supported in non DEBUG build + diskToBiu = 10000/25.4; + #else - THROW_IO_ERROR( _( "May not load new *.brd file into 'PCBNew compiled for deci-mils'" ) ); + THROW_IO_ERROR( _( "May not load millimeter *.brd file into 'PCBNew compiled for deci-mils'" ) ); #endif } } @@ -1887,7 +1897,7 @@ void LEGACY_PLUGIN::loadTrackList( TRACK* aInsertBeforeMe, int aStructType ) // optional 7th drill parameter (must be optional in an old format?) data = strtok( (char*) data, delims ); - BIU drill = data ? biuParse( data ) : -1; // SetDefault() if -1 + BIU drill = data ? biuParse( data ) : -1; // SetDefault() if < 0 // Read the 2nd line to determine the exact type, one of: // PCB_TRACE_T, PCB_VIA_T, or PCB_ZONE_T. The type field in 2nd line @@ -1952,7 +1962,7 @@ void LEGACY_PLUGIN::loadTrackList( TRACK* aInsertBeforeMe, int aStructType ) newTrack->SetWidth( width ); newTrack->SetShape( shape ); - if( drill <= 0 ) + if( drill < 0 ) newTrack->SetDrillDefault(); else newTrack->SetDrill( drill ); @@ -2619,6 +2629,17 @@ BIU LEGACY_PLUGIN::biuParse( const char* aValue, const char** nptrptr ) if( nptrptr ) *nptrptr = nptr; +#if defined(DEBUG) + + if( diskToBiu == 10000/25.4 ) + { + // this is the special reverse trip mm -> deci-mils testing run, + // only available in DEBUG mode. + return BIU( wxRound( fval * diskToBiu ) ); + } + +#endif + // There should be no rounding issues here, since the values in the file initially // came from integers via biuFmt(). In fact this product should be an integer, exactly. return BIU( fval * diskToBiu ); @@ -2911,6 +2932,8 @@ void LEGACY_PLUGIN::saveSETUP() const fprintf( m_fp, "AuxiliaryAxisOrg %s\n", fmtBIUPoint( m_board->GetOriginAxisPosition() ).c_str() ); + fprintf( m_fp, "VisibleElements %X\n", bds.GetVisibleElements() ); + { STRING_FORMATTER sf; @@ -2924,8 +2947,6 @@ void LEGACY_PLUGIN::saveSETUP() const fprintf( m_fp, "PcbPlotParams %s\n", TO_UTF8( record ) ); } - fprintf( m_fp, "VisibleElements %X\n", bds.GetVisibleElements() ); - fprintf( m_fp, "$EndSETUP\n\n" ); } @@ -3454,7 +3475,8 @@ void LEGACY_PLUGIN::saveTRACK( const TRACK* me ) const fmtBIUPoint( me->GetStart() ).c_str(), fmtBIUPoint( me->GetEnd() ).c_str(), fmtBIU( me->GetWidth() ).c_str(), - fmtBIU( me->GetDrill() ).c_str() ); + me->GetDrill() == UNDEFINED_DRILL_DIAMETER ? + "-1" : fmtBIU( me->GetDrill() ).c_str() ); fprintf(m_fp, "De %d %d %d %lX %X\n", me->GetLayer(), type, me->GetNet(), From 93437e3539651eda4b36ab0b2b966dec74ac7080 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Sun, 8 Apr 2012 18:32:32 -0500 Subject: [PATCH 52/68] Add DMils2iu() for scaling deci-mils to internal units. Instrument saveNETCLASS() with fmtBIU(). Can now round trip to mm board file using LEGACY_PLUGIN in DEBUG build. --- include/common.h | 1 + pcbnew/class_board_design_settings.cpp | 83 +++++++++++++------------- pcbnew/class_netclass.cpp | 8 +-- pcbnew/legacy_plugin.cpp | 20 +++---- pcbnew/pcbnew.h | 21 ++++++- 5 files changed, 74 insertions(+), 59 deletions(-) diff --git a/include/common.h b/include/common.h index 2c0b9cb04e..2a767a4cc1 100644 --- a/include/common.h +++ b/include/common.h @@ -124,6 +124,7 @@ inline int Mm2mils( double x ) { return wxRound( x * 1000./25.4 ); } /// Convert mils to mm. inline int Mils2mm( double x ) { return wxRound( x * 25.4 / 1000. ); } + /// Return whether GOST is in play bool IsGOST(); diff --git a/pcbnew/class_board_design_settings.cpp b/pcbnew/class_board_design_settings.cpp index 7b9a2b4a9e..5a8eeec5bb 100644 --- a/pcbnew/class_board_design_settings.cpp +++ b/pcbnew/class_board_design_settings.cpp @@ -12,6 +12,8 @@ #include +#define DEFAULT_BOARD_THICKNESS_DMILS 620 + BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS() : m_Pad_Master( 0 ) @@ -33,30 +35,34 @@ BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS() : m_UseConnectedTrackWidth = false; m_MicroViasAllowed = false; // true to allow micro vias - m_DrawSegmentWidth = 100; // current graphic line width (not EDGE layer) - m_EdgeSegmentWidth = 100; // current graphic line width (EDGE layer only) - m_PcbTextWidth = 100; // current Pcb (not module) Text width - m_PcbTextSize = wxSize( 500, 500 ); // current Pcb (not module) Text size - m_TrackMinWidth = 100; // track min value for width ((min copper size value - m_ViasMinSize = 350; // vias (not micro vias) min diameter - m_ViasMinDrill = 200; // vias (not micro vias) min drill diameter - m_MicroViasMinSize = 200; // micro vias (not vias) min diameter - m_MicroViasMinDrill = 50; // micro vias (not vias) min drill diameter + + m_DrawSegmentWidth = DMils2iu( 100 ); // current graphic line width (not EDGE layer) + + m_EdgeSegmentWidth = DMils2iu( 100 ); // current graphic line width (EDGE layer only) + m_PcbTextWidth = DMils2iu( 100 ); // current Pcb (not module) Text width + + m_PcbTextSize = wxSize( DMils2iu( 500 ), DMils2iu( 500 ) ); + // current Pcb (not module) Text size + + m_TrackMinWidth = DMils2iu( 100 ); // track min value for width ((min copper size value + m_ViasMinSize = DMils2iu( 350 ); // vias (not micro vias) min diameter + m_ViasMinDrill = DMils2iu( 200 ); // vias (not micro vias) min drill diameter + m_MicroViasMinSize = DMils2iu( 200 ); // micro vias (not vias) min diameter + m_MicroViasMinDrill = DMils2iu( 50 ); // micro vias (not vias) min drill diameter // Global mask margins: - m_SolderMaskMargin = 150; // Solder mask margin + m_SolderMaskMargin = DMils2iu( 150 ); // Solder mask margin m_SolderPasteMargin = 0; // Solder paste margin absolute value m_SolderPasteMarginRatio = 0.0; // Solder pask margin ratio value of pad size // The final margin is the sum of these 2 values // Usually < 0 because the mask is smaller than pad - m_ModuleTextSize = wxSize( 500, 500 ); - m_ModuleTextWidth = 100; - m_ModuleSegmentWidth = 100; - + m_ModuleTextSize = wxSize( DMils2iu( 500 ), DMils2iu( 500 ) ); + m_ModuleTextWidth = DMils2iu( 100 ); + m_ModuleSegmentWidth = DMils2iu( 100 ); // Layer thickness for 3D viewer - m_BoardThickness = (int)(1.6 * PCB_INTERNAL_UNIT / 25.4); + m_BoardThickness = DMils2iu( DEFAULT_BOARD_THICKNESS_DMILS ); } @@ -64,41 +70,38 @@ void BOARD_DESIGN_SETTINGS::AppendConfigs( PARAM_CFG_ARRAY* aResult ) { m_Pad_Master.AppendConfigs( aResult ); - aResult->push_back( new PARAM_CFG_INT( wxT( "BoardThickness" ), - &m_BoardThickness, - 630, 0, 0xFFFF ) ); + aResult->push_back( new PARAM_CFG_INT( wxT( "BoardThickness" ), &m_BoardThickness, + DMils2iu( DEFAULT_BOARD_THICKNESS_DMILS ), 0, 0xFFFF ) ); - aResult->push_back( new PARAM_CFG_INT( wxT( "TxtPcbV" ), - &m_PcbTextSize.y, - 600, TEXTS_MIN_SIZE, TEXTS_MAX_SIZE ) ); + aResult->push_back( new PARAM_CFG_INT( wxT( "TxtPcbV" ), &m_PcbTextSize.y, + DMils2iu( 600 ), TEXTS_MIN_SIZE, TEXTS_MAX_SIZE ) ); - aResult->push_back( new PARAM_CFG_INT( wxT( "TxtPcbH" ), - &m_PcbTextSize.x, - 600, TEXTS_MIN_SIZE, TEXTS_MAX_SIZE ) ); + aResult->push_back( new PARAM_CFG_INT( wxT( "TxtPcbH" ), &m_PcbTextSize.x, + DMils2iu( 600 ), TEXTS_MIN_SIZE, TEXTS_MAX_SIZE ) ); aResult->push_back( new PARAM_CFG_INT( wxT( "TxtModV" ), &m_ModuleTextSize.y, - 500, TEXTS_MIN_SIZE, TEXTS_MAX_SIZE ) ); + DMils2iu( 500 ), TEXTS_MIN_SIZE, TEXTS_MAX_SIZE ) ); + aResult->push_back( new PARAM_CFG_INT( wxT( "TxtModH" ), &m_ModuleTextSize.x, - 500, TEXTS_MIN_SIZE, TEXTS_MAX_SIZE ) ); + DMils2iu( 500 ), TEXTS_MIN_SIZE, TEXTS_MAX_SIZE ) ); + aResult->push_back( new PARAM_CFG_INT( wxT( "TxtModW" ), &m_ModuleTextWidth, - 100, 1, TEXTS_MAX_WIDTH ) ); + DMils2iu( 100 ), 1, TEXTS_MAX_WIDTH ) ); - aResult->push_back( new PARAM_CFG_INT( wxT( "VEgarde" ), - &m_SolderMaskMargin, - 100, 0, 10000 ) ); + aResult->push_back( new PARAM_CFG_INT( wxT( "VEgarde" ), &m_SolderMaskMargin, + DMils2iu( 100 ), 0, DMils2iu( 10000 ) ) ); - aResult->push_back( new PARAM_CFG_INT( wxT( "DrawLar" ), - &m_DrawSegmentWidth, - 120, 0, 0xFFFF ) ); + aResult->push_back( new PARAM_CFG_INT( wxT( "DrawLar" ), &m_DrawSegmentWidth, + DMils2iu( 120 ), 0, 0xFFFF ) ); + + aResult->push_back( new PARAM_CFG_INT( wxT( "EdgeLar" ), &m_EdgeSegmentWidth, + DMils2iu( 120 ), 0, 0xFFFF ) ); + + aResult->push_back( new PARAM_CFG_INT( wxT( "TxtLar" ), &m_PcbTextWidth, + DMils2iu( 120 ), 0, 0xFFFF ) ); - aResult->push_back( new PARAM_CFG_INT( wxT( "EdgeLar" ), - &m_EdgeSegmentWidth, - 120, 0, 0xFFFF ) ); - aResult->push_back( new PARAM_CFG_INT( wxT( "TxtLar" ), - &m_PcbTextWidth, - 120, 0, 0xFFFF ) ); aResult->push_back( new PARAM_CFG_INT( wxT( "MSegLar" ), &m_ModuleSegmentWidth, - 120, 0, 0xFFFF ) ); + DMils2iu( 120 ), 0, 0xFFFF ) ); } diff --git a/pcbnew/class_netclass.cpp b/pcbnew/class_netclass.cpp index 1dae4bd0bc..38c221bffb 100644 --- a/pcbnew/class_netclass.cpp +++ b/pcbnew/class_netclass.cpp @@ -39,9 +39,9 @@ const wxString NETCLASS::Default = wxT("Default"); // Initial values for netclass initialization -int NETCLASS::DEFAULT_CLEARANCE = 100; // track to track and track to pads clearance -int NETCLASS::DEFAULT_VIA_DRILL = 250; // default via drill -int NETCLASS::DEFAULT_UVIA_DRILL = 50; // micro via drill +int NETCLASS::DEFAULT_CLEARANCE = DMils2iu( 100 ); // track to track and track to pads clearance +int NETCLASS::DEFAULT_VIA_DRILL = DMils2iu( 250 ); // default via drill +int NETCLASS::DEFAULT_UVIA_DRILL = DMils2iu( 50 ); // micro via drill NETCLASS::NETCLASS( BOARD* aParent, const wxString& aName, const NETCLASS* initialParameters ) : @@ -85,7 +85,7 @@ void NETCLASS::SetParams( const NETCLASS* defaults ) SetTrackWidth( g.m_TrackMinWidth ); SetViaDiameter( g.m_ViasMinSize ); - SetuViaDiameter(g.m_MicroViasMinSize ); + SetuViaDiameter( g.m_MicroViasMinSize ); // Use default values for next parameters: SetClearance( DEFAULT_CLEARANCE ); diff --git a/pcbnew/legacy_plugin.cpp b/pcbnew/legacy_plugin.cpp index 444afd27ff..b76be49a8d 100644 --- a/pcbnew/legacy_plugin.cpp +++ b/pcbnew/legacy_plugin.cpp @@ -1502,10 +1502,10 @@ void LEGACY_PLUGIN::loadMODULE_TEXT( TEXTE_MODULE* aText ) if( thickn < 1 ) thickn = 1; - /* this is better left to the save function, or to the accessor, since we will - be supporting more than one board format. + /* this is better left to the dialogs UIs aText->SetThickness( Clamp_Text_PenSize( thickn, aText->GetSize() ) ); */ + aText->SetThickness( thickn ); aText->SetMirrored( mirror && *mirror == 'M' ); @@ -1514,8 +1514,6 @@ void LEGACY_PLUGIN::loadMODULE_TEXT( TEXTE_MODULE* aText ) aText->SetItalic( italic && *italic == 'I' ); - // @todo put in accessor? - // Test for a reasonable layer: if( layer < 0 ) layer = 0; if( layer > LAST_NO_COPPER_LAYER ) @@ -1614,7 +1612,6 @@ void LEGACY_PLUGIN::loadPCB_LINE() BIU end_y = biuParse( data, &data ); BIU width = biuParse( data ); - // @todo put in accessor? why 0? if( width < 0 ) width = 0; @@ -1638,7 +1635,6 @@ void LEGACY_PLUGIN::loadPCB_LINE() int layer; layer = intParse( data ); - // @todo: put in accessor? if( layer < FIRST_NO_COPPER_LAYER ) layer = FIRST_NO_COPPER_LAYER; @@ -3046,14 +3042,14 @@ void LEGACY_PLUGIN::saveNETCLASS( const NETCLASS* nc ) const fprintf( m_fp, "Name %s\n", EscapedUTF8( nc->GetName() ).c_str() ); fprintf( m_fp, "Desc %s\n", EscapedUTF8( nc->GetDescription() ).c_str() ); - fprintf( m_fp, "Clearance %d\n", nc->GetClearance() ); - fprintf( m_fp, "TrackWidth %d\n", nc->GetTrackWidth() ); + fprintf( m_fp, "Clearance %s\n", fmtBIU( nc->GetClearance() ).c_str() ); + fprintf( m_fp, "TrackWidth %s\n", fmtBIU( nc->GetTrackWidth() ).c_str() ); - fprintf( m_fp, "ViaDia %d\n", nc->GetViaDiameter() ); - fprintf( m_fp, "ViaDrill %d\n", nc->GetViaDrill() ); + fprintf( m_fp, "ViaDia %s\n", fmtBIU( nc->GetViaDiameter() ).c_str() ); + fprintf( m_fp, "ViaDrill %s\n", fmtBIU( nc->GetViaDrill() ).c_str() ); - fprintf( m_fp, "uViaDia %d\n", nc->GetuViaDiameter() ); - fprintf( m_fp, "uViaDrill %d\n", nc->GetuViaDrill() ); + fprintf( m_fp, "uViaDia %s\n", fmtBIU( nc->GetuViaDiameter() ).c_str() ); + fprintf( m_fp, "uViaDrill %s\n", fmtBIU( nc->GetuViaDrill() ).c_str() ); for( NETCLASS::const_iterator it = nc->begin(); it!=nc->end(); ++it ) fprintf( m_fp, "AddNet %s\n", EscapedUTF8( *it ).c_str() ); diff --git a/pcbnew/pcbnew.h b/pcbnew/pcbnew.h index 6ef054e972..e013189886 100644 --- a/pcbnew/pcbnew.h +++ b/pcbnew/pcbnew.h @@ -33,9 +33,24 @@ #define DIM_ANCRE_MODULE 3 /* Anchor size (footprint center) */ #define DIM_ANCRE_TEXTE 2 /* Anchor size (Text center) */ -#define TEXTS_MIN_SIZE 50 // Minimum text size in Pcbnew units value (50 * 0.0001 mils) -#define TEXTS_MAX_SIZE 10000 // Maximum text size in Pcbnew units value (1 inch) ) -#define TEXTS_MAX_WIDTH 5000 // Maximum text width in Pcbnew units value (0.5 inches) + +#if defined(PCBNEW) +/// Convert deci-mils to PCBNEW internal units (iu). +inline int DMils2iu( int dmils ) +{ +#if defined( USE_PCBNEW_NANOMETRES ) + return int( dmils * 25.4e2 + 0.5 ); +#else + return dmils; +#endif +} +#endif + + +#define TEXTS_MIN_SIZE DMils2iu( 50 ) ///< Minimum text size in Pcbnew units value (50 * 0.0001 mils) +#define TEXTS_MAX_SIZE DMils2iu( 10000 ) ///< Maximum text size in Pcbnew units value (1 inch) ) +#define TEXTS_MAX_WIDTH DMils2iu( 5000 ) ///< Maximum text width in Pcbnew units value (0.5 inches) + /* Flag to force the SKETCH mode to display items (.m_Flags member) */ #define FORCE_SKETCH ( IS_DRAGGED | IN_EDIT ) From 7eeb8a2c0c929616c658209d8af3ce4ad2f8c5ff Mon Sep 17 00:00:00 2001 From: Alexander Zakamaldin Date: Sun, 8 Apr 2012 18:37:26 -0500 Subject: [PATCH 53/68] This bug is not evident for the first glance because most PS viewers fix this issue and print well. But when using raw printing (for linux - 'lpr some_file.ps') the bug gets out. Alexander. --- common/common_plotPS_functions.cpp | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/common/common_plotPS_functions.cpp b/common/common_plotPS_functions.cpp index 8a6ab009b4..702199d260 100644 --- a/common/common_plotPS_functions.cpp +++ b/common/common_plotPS_functions.cpp @@ -375,9 +375,14 @@ bool PS_PLOTTER::start_plot( FILE* fout ) // The coordinates of the lower left corner of the boundary // box need to be "rounded down", but the coordinates of its // upper right corner need to be "rounded up" instead. + wxSize psPaperSize = paper_size; + + if( !pageInfo.IsPortrait() ) + psPaperSize.Set( paper_size.y, paper_size.x ); + fprintf( output_file, "%%%%BoundingBox: 0 0 %d %d\n", - (int) ceil( paper_size.y * CONV_SCALE ), - (int) ceil( paper_size.x * CONV_SCALE ) ); + (int) ceil( psPaperSize.x * CONV_SCALE ), + (int) ceil( psPaperSize.y * CONV_SCALE ) ); // Specify the size of the sheet and the name associated with that size. // (If the "User size" option has been selected for the sheet size, @@ -393,20 +398,26 @@ bool PS_PLOTTER::start_plot( FILE* fout ) // the order in which they are specified is not wrong!) // Also note pageSize is given in mils, not in internal units and must be // converted to internal units. - wxSize pageSize = pageInfo.GetSizeMils(); + wxSize psPageSize = pageInfo.GetSizeMils(); + + if( !pageInfo.IsPortrait() ) + psPageSize.Set( pageInfo.GetHeightMils(), pageInfo.GetWidthMils() ); if( pageInfo.IsCustom() ) fprintf( output_file, "%%%%DocumentMedia: Custom %d %d 0 () ()\n", - wxRound( pageSize.y * 10 * CONV_SCALE ), - wxRound( pageSize.x * 10 * CONV_SCALE ) ); + wxRound( psPageSize.x * 10 * CONV_SCALE ), + wxRound( psPageSize.y * 10 * CONV_SCALE ) ); else // a standard paper size fprintf( output_file, "%%%%DocumentMedia: %s %d %d 0 () ()\n", TO_UTF8( pageInfo.GetType() ), - wxRound( pageSize.y * 10 * CONV_SCALE ), - wxRound( pageSize.x * 10 * CONV_SCALE ) ); + wxRound( psPageSize.x * 10 * CONV_SCALE ), + wxRound( psPageSize.y * 10 * CONV_SCALE ) ); - fprintf( output_file, "%%%%Orientation: Landscape\n" ); + if( pageInfo.IsPortrait() ) + fprintf( output_file, "%%%%Orientation: Portrait\n" ); + else + fprintf( output_file, "%%%%Orientation: Landscape\n" ); fprintf( output_file, "%%%%EndComments\n" ); @@ -426,7 +437,8 @@ bool PS_PLOTTER::start_plot( FILE* fout ) // (If support for creating postscript files with a portrait orientation // is ever provided, determine whether it would be necessary to provide // an "else" command and then an appropriate "sprintf" command here.) - fprintf( output_file, "%d 0 translate 90 rotate\n", paper_size.y ); + if( !pageInfo.IsPortrait() ) + fprintf( output_file, "%d 0 translate 90 rotate\n", paper_size.y ); // Apply the scale adjustments if( plot_scale_adjX != 1.0 || plot_scale_adjY != 1.0 ) From c3d320aa8ca55831fd1b1aa4d3b0a40b2e3a7b8c Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Mon, 9 Apr 2012 11:16:47 +0200 Subject: [PATCH 54/68] Move AddMenuItem inline functions outside wxstruct.h in a new file (menu_helpers.h) Enhancements in AddMenuItem (that accepts now a menu type) Partial use of the Edwin van den Oetelaar's patch (patch not fully working or correct) --- 3d-viewer/3d_aux.cpp | 10 +- 3d-viewer/3d_draw.cpp | 74 +++++------- 3d-viewer/3d_frame.cpp | 101 +++------------- 3d-viewer/3d_toolbar.cpp | 54 +++++---- 3d-viewer/3d_viewer.h | 23 ++-- bitmap2component/bitmap2cmp_gui.cpp | 1 + common/basicframe.cpp | 1 + common/edaappl.cpp | 10 +- common/hotkeys_basic.cpp | 1 + common/zoom.cpp | 1 + cvpcb/menubar.cpp | 1 + eeschema/controle.cpp | 1 + eeschema/libedit_onrightclick.cpp | 2 +- eeschema/libeditframe.cpp | 1 + eeschema/menubar.cpp | 3 +- eeschema/menubar_libedit.cpp | 1 + eeschema/onleftclick.cpp | 2 +- eeschema/onrightclick.cpp | 1 + gerbview/menubar.cpp | 1 + gerbview/onrightclick.cpp | 1 + include/menus_helpers.h | 174 ++++++++++++++++++++++++++++ include/wxstruct.h | 143 ----------------------- kicad/class_treeprojectfiles.cpp | 1 + kicad/commandframe.cpp | 1 + kicad/mainframe.cpp | 1 + kicad/menubar.cpp | 1 + kicad/tree_project_frame.cpp | 1 + pcbnew/controle.cpp | 1 + pcbnew/menubar_modedit.cpp | 1 + pcbnew/menubar_pcbframe.cpp | 1 + pcbnew/modedit.cpp | 1 + pcbnew/modedit_onclick.cpp | 3 +- pcbnew/onleftclick.cpp | 3 +- pcbnew/onrightclick.cpp | 3 +- 34 files changed, 295 insertions(+), 330 deletions(-) create mode 100644 include/menus_helpers.h diff --git a/3d-viewer/3d_aux.cpp b/3d-viewer/3d_aux.cpp index 6947c2d126..ceb7ba9711 100644 --- a/3d-viewer/3d_aux.cpp +++ b/3d-viewer/3d_aux.cpp @@ -189,13 +189,9 @@ Info_3D_Visu::Info_3D_Visu() m_Layers = 1; m_BoardSettings = NULL; - m_Draw3DAxis = true; - m_Draw3DModule = true; - m_Draw3DZone = true; - m_Draw3DComments = true; - m_Draw3DDrawings = true; - m_Draw3DEco1 = true; - m_Draw3DEco2 = true; + // default all special item layers Visible + for (ii=0; ii< FL_LAST; ii++) + m_DrawFlags[ii]=true; } diff --git a/3d-viewer/3d_draw.cpp b/3d-viewer/3d_draw.cpp index 02f77d724d..0cda29ba35 100644 --- a/3d-viewer/3d_draw.cpp +++ b/3d-viewer/3d_draw.cpp @@ -206,7 +206,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE ); // draw axis - if( g_Parm_3D_Visu.m_Draw3DAxis ) + if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS]) { glEnable( GL_COLOR_MATERIAL ); SetGLColor( WHITE ); @@ -223,37 +223,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() } // Draw epoxy limits (do not use, works and test in progress) -#if 0 - glEnable( GL_FOG ); - GLfloat param; - -// param = GL_LINEAR; -// glFogfv(GL_FOG_MODE, & param); - param = 0.2; - glFogfv( GL_FOG_DENSITY, ¶m ); - param = g_Parm_3D_Visu.m_LayerZcoord[15]; - glFogfv( GL_FOG_END, ¶m ); - glBegin( GL_QUADS ); - SetGLColor( g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[LAYER_N_FRONT] ); - double sx = DataScale3D * g_Parm_3D_Visu.m_BoardSize.x / 2; - double sy = DataScale3D * g_Parm_3D_Visu.m_BoardSize.y / 2; - double zpos = g_Parm_3D_Visu.m_LayerZcoord[15]; - glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis - sx = sy = 0.5; - glVertex3f( -sx, -sy, zpos ); - glVertex3f( -sx, sy, zpos ); - glVertex3f( sx, sy, zpos ); - glVertex3f( sx, -sy, zpos ); - glEnd(); - glBegin( GL_QUADS ); - SetGLColor( g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[LAYER_N_BACK] ); - glNormal3f( 0.0, 0.0, -1.0 ); // Normal is -Z axis - glVertex3f( -sx, -sy, 0 ); - glVertex3f( -sx, sy, 0 ); - glVertex3f( sx, sy, 0 ); - glVertex3f( sx, -sy, 0 ); - glEnd(); -#endif + // TODO // move the board in order to draw it with its center at 0,0 3D coordinates glTranslatef( -g_Parm_3D_Visu.m_BoardPos.x * g_Parm_3D_Visu.m_BoardScale, @@ -271,7 +241,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() Draw3D_Track( track ); } - if( g_Parm_3D_Visu.m_Draw3DZone ) + if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE]) { // Draw segments used to fill copper areas. outdated! for( segzone = pcb->m_Zone; segzone != NULL; segzone = segzone->Next() ) @@ -707,7 +677,7 @@ void MODULE::Draw3D( EDA_3D_CANVAS* glcanvas ) S3D_MASTER* Struct3D = m_3D_Drawings; bool As3dShape = false; - if( g_Parm_3D_Visu.m_Draw3DModule ) + if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE]) { glPushMatrix(); @@ -1430,23 +1400,33 @@ void EDA_3D_CANVAS::Draw3D_Polygon( std::vector& aCornersList, double a static int Get3DLayerEnable( int act_layer ) { - bool enablelayer; + int i = -1; + // see if layer needs to be shown + // check the flags + switch (act_layer) + { + case DRAW_N: + i=g_Parm_3D_Visu.FL_DRAWINGS; + break; - enablelayer = true; + case COMMENT_N: + i=g_Parm_3D_Visu.FL_COMMENTS; + break; - if( act_layer == DRAW_N && !g_Parm_3D_Visu.m_Draw3DDrawings ) - enablelayer = false; + case ECO1_N: + i=g_Parm_3D_Visu.FL_ECO1; + break; - if( act_layer == COMMENT_N && !g_Parm_3D_Visu.m_Draw3DComments ) - enablelayer = false; + case ECO2_N: + i=g_Parm_3D_Visu.FL_ECO2; + break; + } + // the layer was not a layer with a flag, so show it + if (i < 0) + return true; - if( act_layer == ECO1_N && !g_Parm_3D_Visu.m_Draw3DEco1 ) - enablelayer = false; - - if( act_layer == ECO2_N && !g_Parm_3D_Visu.m_Draw3DEco2 ) - enablelayer = false; - - return enablelayer; + // if the layer has a flag, return the flag + return g_Parm_3D_Visu.m_DrawFlags[i]; } diff --git a/3d-viewer/3d_frame.cpp b/3d-viewer/3d_frame.cpp index 44fc345b8d..205ddb0d9b 100644 --- a/3d-viewer/3d_frame.cpp +++ b/3d-viewer/3d_frame.cpp @@ -222,8 +222,10 @@ void EDA_3D_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event ) { #define ROT_ANGLE 10.0 + int id = event.GetId(); + bool isChecked = event.IsChecked(); - switch( event.GetId() ) + switch( id ) { case ID_RELOAD3D_BOARD: NewDisplay(); @@ -285,31 +287,38 @@ void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event ) return; case ID_MENU3D_AXIS_ONOFF: - Set3DAxisOnOff(); + g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS] = isChecked; + NewDisplay(); return; case ID_MENU3D_MODULE_ONOFF: - Set3DModuleOnOff(); + g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE] = isChecked; + NewDisplay(); return; case ID_MENU3D_ZONE_ONOFF: - Set3DZoneOnOff(); + g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE] = isChecked; + NewDisplay(); return; case ID_MENU3D_COMMENTS_ONOFF: - Set3DCommentsOnOff(); + g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS] = isChecked; + NewDisplay(); return; case ID_MENU3D_DRAWINGS_ONOFF: - Set3DDrawingsOnOff(); + g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_DRAWINGS] = isChecked; + NewDisplay(); return; case ID_MENU3D_ECO1_ONOFF: - Set3DEco1OnOff(); + g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO1] = isChecked; + NewDisplay(); return; case ID_MENU3D_ECO2_ONOFF: - Set3DEco2OnOff(); + g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO2] = isChecked; + NewDisplay(); return; default: @@ -367,79 +376,3 @@ void EDA_3D_FRAME::Set3DBgColor() NewDisplay(); } } - - -void EDA_3D_FRAME::Set3DAxisOnOff() -{ - if( g_Parm_3D_Visu.m_Draw3DAxis ) - g_Parm_3D_Visu.m_Draw3DAxis = false; - else - g_Parm_3D_Visu.m_Draw3DAxis = true; - - NewDisplay(); -} - - -void EDA_3D_FRAME::Set3DModuleOnOff() -{ - if( g_Parm_3D_Visu.m_Draw3DModule ) - g_Parm_3D_Visu.m_Draw3DModule = false; - else - g_Parm_3D_Visu.m_Draw3DModule = true; - - NewDisplay(); -} - - -void EDA_3D_FRAME::Set3DZoneOnOff() -{ - if( g_Parm_3D_Visu.m_Draw3DZone ) - g_Parm_3D_Visu.m_Draw3DZone = false; - else - g_Parm_3D_Visu.m_Draw3DZone = true; - NewDisplay(); -} - - -void EDA_3D_FRAME::Set3DCommentsOnOff() -{ - if( g_Parm_3D_Visu.m_Draw3DComments ) - g_Parm_3D_Visu.m_Draw3DComments = false; - else - g_Parm_3D_Visu.m_Draw3DComments = true; - - NewDisplay(); -} - - -void EDA_3D_FRAME::Set3DDrawingsOnOff() -{ - if( g_Parm_3D_Visu.m_Draw3DDrawings ) - g_Parm_3D_Visu.m_Draw3DDrawings = false; - else - g_Parm_3D_Visu.m_Draw3DDrawings = true; - - NewDisplay(); -} - - -void EDA_3D_FRAME::Set3DEco1OnOff() -{ - if( g_Parm_3D_Visu.m_Draw3DEco1 ) - g_Parm_3D_Visu.m_Draw3DEco1 = false; - else - g_Parm_3D_Visu.m_Draw3DEco1 = true; - - NewDisplay(); -} - - -void EDA_3D_FRAME::Set3DEco2OnOff() -{ - if( g_Parm_3D_Visu.m_Draw3DEco2 ) - g_Parm_3D_Visu.m_Draw3DEco2 = false; - else - g_Parm_3D_Visu.m_Draw3DEco2 = true; - - NewDisplay(); -} diff --git a/3d-viewer/3d_toolbar.cpp b/3d-viewer/3d_toolbar.cpp index c5806e3e6f..cd1a3c2a91 100644 --- a/3d-viewer/3d_toolbar.cpp +++ b/3d-viewer/3d_toolbar.cpp @@ -30,6 +30,7 @@ #include #include <3d_viewer.h> +#include void EDA_3D_FRAME::ReCreateHToolbar() @@ -132,13 +133,13 @@ void EDA_3D_FRAME::ReCreateMenuBar() bool full_options = true; // If called from the display frame of CvPcb, only some options are relevant - if( Parent()->GetName() == wxT( "CmpFrame" ) ) - // Called from CvPcb: do not display all options + if( Parent()->GetName() == wxT( "CmpFrame" ) ) { full_options = false; + } - wxMenuBar* menuBar = new wxMenuBar; - - wxMenu* fileMenu = new wxMenu; + wxMenuBar* menuBar = new wxMenuBar; + wxMenu* fileMenu = new wxMenu; + wxMenu* prefsMenu = new wxMenu; menuBar->Append( fileMenu, _( "&File" ) ); @@ -153,34 +154,43 @@ void EDA_3D_FRAME::ReCreateMenuBar() fileMenu->AppendSeparator(); fileMenu->Append( wxID_EXIT, _( "&Exit" ) ); - wxMenu* referencesMenu = new wxMenu; - menuBar->Append( referencesMenu, _( "&Preferences" ) ); + menuBar->Append( prefsMenu, _( "&Preferences" ) ); - AddMenuItem( referencesMenu, ID_MENU3D_BGCOLOR_SELECTION, + AddMenuItem( prefsMenu, ID_MENU3D_BGCOLOR_SELECTION, _( "Choose background color" ), KiBitmap( palette_xpm ) ); - AddMenuItem( referencesMenu, ID_MENU3D_AXIS_ONOFF, - _( "3D Axis On/Off" ), KiBitmap( axis3d_front_xpm ) ); + wxMenuItem* item; + item = AddMenuItem( prefsMenu, ID_MENU3D_AXIS_ONOFF, + _( "Show 3D &Axis" ), KiBitmap( axis3d_front_xpm ), wxITEM_CHECK ); + item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS]); + if( full_options ) { - AddMenuItem( referencesMenu, ID_MENU3D_MODULE_ONOFF, - _( "3D Footprints Shapes On/Off" ), KiBitmap( shape_3d_xpm ) ); + item = AddMenuItem( prefsMenu, ID_MENU3D_MODULE_ONOFF, + _( "Show 3D F&ootprints" ), KiBitmap( shape_3d_xpm ), wxITEM_CHECK ); + item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE]); - AddMenuItem( referencesMenu, ID_MENU3D_ZONE_ONOFF, - _( "Zone Filling On/Off" ), KiBitmap( add_zone_xpm ) ); + item = AddMenuItem( prefsMenu, ID_MENU3D_ZONE_ONOFF, + _( "Show Zone &Filling" ), KiBitmap( add_zone_xpm ), wxITEM_CHECK ); + item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE]); - AddMenuItem( referencesMenu, ID_MENU3D_COMMENTS_ONOFF, - _( "Comments Layer On/Off" ), KiBitmap( edit_sheet_xpm ) ); + item = AddMenuItem( prefsMenu, ID_MENU3D_COMMENTS_ONOFF, + _( "Show &Comments Layer" ), KiBitmap( edit_sheet_xpm ), wxITEM_CHECK ); + item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS]); - AddMenuItem( referencesMenu, ID_MENU3D_DRAWINGS_ONOFF, - _( "Drawings Layer On/Off" ), KiBitmap( add_polygon_xpm ) ); + item = AddMenuItem( prefsMenu, ID_MENU3D_DRAWINGS_ONOFF, + _( "Show &Drawings Layer" ), KiBitmap( add_polygon_xpm ), wxITEM_CHECK ); + item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_DRAWINGS]); - AddMenuItem( referencesMenu, ID_MENU3D_ECO1_ONOFF, - _( "Eco1 Layer On/Off" ), KiBitmap( tools_xpm ) ); + item = AddMenuItem( prefsMenu, ID_MENU3D_ECO1_ONOFF, + _( "Show Eco&1 Layer" ), KiBitmap( tools_xpm ), wxITEM_CHECK ); + item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO1]); + + item = AddMenuItem( prefsMenu, ID_MENU3D_ECO2_ONOFF, + _( "Show Eco&2 Layer" ), KiBitmap( tools_xpm ), wxITEM_CHECK ); + item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO2]); - AddMenuItem( referencesMenu, ID_MENU3D_ECO2_ONOFF, - _( "Eco2 Layer On/Off" ), KiBitmap( tools_xpm ) ); } SetMenuBar( menuBar ); diff --git a/3d-viewer/3d_viewer.h b/3d-viewer/3d_viewer.h index 703fc70382..f98151aac7 100644 --- a/3d-viewer/3d_viewer.h +++ b/3d-viewer/3d_viewer.h @@ -134,19 +134,20 @@ class SEGVIA; /* information needed to display 3D board */ class Info_3D_Visu { + public: + enum { + FL_AXIS=0, FL_MODULE, FL_ZONE, + FL_COMMENTS, FL_DRAWINGS, FL_ECO1, FL_ECO2, + FL_LAST + }; + double m_Beginx, m_Beginy; /* position of mouse */ double m_Quat[4]; /* orientation of object */ double m_Rot[4]; /* man rotation of object */ double m_Zoom; /* field of view in degrees */ S3D_Color m_BgColor; - bool m_Draw3DAxis; - bool m_Draw3DModule; - bool m_Draw3DZone; - bool m_Draw3DComments; - bool m_Draw3DDrawings; - bool m_Draw3DEco1; - bool m_Draw3DEco2; + bool m_DrawFlags[FL_LAST]; /* show these special items */ wxPoint m_BoardPos; wxSize m_BoardSize; int m_Layers; @@ -320,14 +321,6 @@ public: void NewDisplay(); void Set3DBgColor(); - void Set3DAxisOnOff(); - void Set3DModuleOnOff(); - void Set3DPlaceOnOff(); - void Set3DZoneOnOff(); - void Set3DCommentsOnOff(); - void Set3DDrawingsOnOff(); - void Set3DEco1OnOff(); - void Set3DEco2OnOff(); DECLARE_EVENT_TABLE() }; diff --git a/bitmap2component/bitmap2cmp_gui.cpp b/bitmap2component/bitmap2cmp_gui.cpp index 4ec5ee3a3d..e9efb955d7 100644 --- a/bitmap2component/bitmap2cmp_gui.cpp +++ b/bitmap2component/bitmap2cmp_gui.cpp @@ -38,6 +38,7 @@ #include #include +#include #define KEYWORD_FRAME_POSX wxT( "Bmconverter_Pos_x" ) #define KEYWORD_FRAME_POSY wxT( "Bmconverter_Pos_y" ) diff --git a/common/basicframe.cpp b/common/basicframe.cpp index d5d96c10e0..e9330c1959 100644 --- a/common/basicframe.cpp +++ b/common/basicframe.cpp @@ -42,6 +42,7 @@ #include #include #include +#include /// The default auto save interval is 10 minutes. diff --git a/common/edaappl.cpp b/common/edaappl.cpp index 005aff1e83..d870a08ac7 100644 --- a/common/edaappl.cpp +++ b/common/edaappl.cpp @@ -51,6 +51,7 @@ #include #include #include +#include static const wxChar* CommonConfigPath = wxT( "kicad_common" ); @@ -839,12 +840,9 @@ void EDA_APP::AddMenuLanguageList( wxMenu* MasterMenu ) else label = wxGetTranslation( s_Language_List[ii].m_Lang_Label ); - item = new wxMenuItem( menu, - s_Language_List[ii].m_KI_Lang_Identifier, - label, wxEmptyString, wxITEM_CHECK ); - - SETBITMAPS( s_Language_List[ii].m_Lang_Icon ); - menu->Append( item ); + AddMenuItem( menu, s_Language_List[ii].m_KI_Lang_Identifier, + label, KiBitmap(s_Language_List[ii].m_Lang_Icon ), + wxITEM_CHECK ); } AddMenuItem( MasterMenu, menu, diff --git a/common/hotkeys_basic.cpp b/common/hotkeys_basic.cpp index 91a3de87b9..46cea5969e 100644 --- a/common/hotkeys_basic.cpp +++ b/common/hotkeys_basic.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include diff --git a/common/zoom.cpp b/common/zoom.cpp index 390507fc96..cae1173461 100644 --- a/common/zoom.cpp +++ b/common/zoom.cpp @@ -14,6 +14,7 @@ #include #include #include +#include void EDA_DRAW_FRAME::RedrawScreen( const wxPoint& aCenterPoint, bool aWarpPointer ) diff --git a/cvpcb/menubar.cpp b/cvpcb/menubar.cpp index caf9c90150..19fab61ade 100644 --- a/cvpcb/menubar.cpp +++ b/cvpcb/menubar.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include diff --git a/eeschema/controle.cpp b/eeschema/controle.cpp index 5b6f133310..fb077f70a4 100644 --- a/eeschema/controle.cpp +++ b/eeschema/controle.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include diff --git a/eeschema/libedit_onrightclick.cpp b/eeschema/libedit_onrightclick.cpp index 93f011c85e..1b8ffb9ab9 100644 --- a/eeschema/libedit_onrightclick.cpp +++ b/eeschema/libedit_onrightclick.cpp @@ -13,11 +13,11 @@ #include #include -#include #include #include #include #include +#include /* functions to add commands and submenus depending on the item */ diff --git a/eeschema/libeditframe.cpp b/eeschema/libeditframe.cpp index 2c0a32ff29..fe4d61ef63 100644 --- a/eeschema/libeditframe.cpp +++ b/eeschema/libeditframe.cpp @@ -51,6 +51,7 @@ #include #include +#include #include diff --git a/eeschema/menubar.cpp b/eeschema/menubar.cpp index a214ba26df..d60032fb5c 100644 --- a/eeschema/menubar.cpp +++ b/eeschema/menubar.cpp @@ -36,9 +36,10 @@ #include #include -#include +//#include #include #include +#include #include diff --git a/eeschema/menubar_libedit.cpp b/eeschema/menubar_libedit.cpp index e8b9045762..64367b1a0f 100644 --- a/eeschema/menubar_libedit.cpp +++ b/eeschema/menubar_libedit.cpp @@ -36,6 +36,7 @@ #include #include +#include /** * @brief (Re)Create the menubar for the component editor frame diff --git a/eeschema/onleftclick.cpp b/eeschema/onleftclick.cpp index 9413ea8bcb..bd4c30e38f 100644 --- a/eeschema/onleftclick.cpp +++ b/eeschema/onleftclick.cpp @@ -32,9 +32,9 @@ #include #include #include +#include #include -#include #include #include #include diff --git a/eeschema/onrightclick.cpp b/eeschema/onrightclick.cpp index 5b65ee4c40..49bf5b374a 100644 --- a/eeschema/onrightclick.cpp +++ b/eeschema/onrightclick.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include diff --git a/gerbview/menubar.cpp b/gerbview/menubar.cpp index b1d8c78a57..9aeca9ba95 100644 --- a/gerbview/menubar.cpp +++ b/gerbview/menubar.cpp @@ -34,6 +34,7 @@ #include #include #include +#include void GERBVIEW_FRAME::ReCreateMenuBar( void ) diff --git a/gerbview/onrightclick.cpp b/gerbview/onrightclick.cpp index b4f7f7ae21..bf9e24ca66 100644 --- a/gerbview/onrightclick.cpp +++ b/gerbview/onrightclick.cpp @@ -8,6 +8,7 @@ #include #include +#include /* Prepare the right-click pullup menu. diff --git a/include/menus_helpers.h b/include/menus_helpers.h new file mode 100644 index 0000000000..482d39bbda --- /dev/null +++ b/include/menus_helpers.h @@ -0,0 +1,174 @@ +/** + * @file menus_helpers.h + * @brief Usefull macros and inline functions to create menus items + * in menubars or popup menus + */ + +#include + +/** + * Definition SETBITMAPS + * is a macro use to add a bitmaps to check menu item. + * @note Do not use with normal menu items or any platform other than Windows. + * @param aImage is the image to add the menu item. + */ +#if defined( USE_IMAGES_IN_MENUS ) && defined( __WINDOWS__ ) +# define SETBITMAPS( aImage ) item->SetBitmaps( KiBitmap( apply_xpm ), KiBitmap( aImage ) ) +#else +# define SETBITMAPS( aImage ) +#endif + +/** + * Definition SETBITMAP + * is a macro use to add a bitmap to a menu items. + * @note Do not use with checked menu items. + * @param aImage is the image to add the menu item. + */ +#if !defined( USE_IMAGES_IN_MENUS ) +# define SET_BITMAP( aImage ) +#else +# define SET_BITMAP( aImage ) item->SetBitmap( aImage ) +#endif + +/** + * Function AddMenuItem + * is an inline helper function to create and insert a menu item with an icon + * into \a aMenu + * + * @param aMenu is the menu to add the new item. + * @param aId is the command ID for the new menu item. + * @param aText is the string for the new menu item. + * @param aImage is the icon to add to the new menu item. + * @param aType is the type of menu :wxITEM_NORMAL (default), wxITEM_CHECK ... + * @return a pointer to the new created wxMenuItem + */ +static inline wxMenuItem* AddMenuItem( wxMenu* aMenu, + int aId, + const wxString& aText, + const wxBitmap& aImage, + wxItemKind aType = wxITEM_NORMAL ) +{ + wxMenuItem* item; + + item = new wxMenuItem( aMenu, aId, aText, wxEmptyString, aType ); + + if( aType == wxITEM_CHECK ) + { +#if defined( USE_IMAGES_IN_MENUS ) && defined( __WINDOWS__ ) + item->SetBitmaps( KiBitmap( apply_xpm ), aImage ); +#endif + } + else + { + SET_BITMAP( aImage ); + } + + aMenu->Append( item ); + + return item; +} + + +/** + * Function AddMenuItem + * is an inline helper function to create and insert a menu item with an icon + * and a help message string into \a aMenu + * + * @param aMenu is the menu to add the new item. + * @param aId is the command ID for the new menu item. + * @param aText is the string for the new menu item. + * @param aHelpText is the help message string for the new menu item. + * @param aImage is the icon to add to the new menu item. + * @param aType is the type of menu :wxITEM_NORMAL (default), wxITEM_CHECK ... + * @return a pointer to the new created wxMenuItem + */ +static inline wxMenuItem* AddMenuItem( wxMenu* aMenu, + int aId, + const wxString& aText, + const wxString& aHelpText, + const wxBitmap& aImage, + wxItemKind aType = wxITEM_NORMAL ) +{ + wxMenuItem* item; + + item = new wxMenuItem( aMenu, aId, aText, aHelpText, aType ); + + if( aType == wxITEM_CHECK ) + { +#if defined( USE_IMAGES_IN_MENUS ) && defined( __WINDOWS__ ) + item->SetBitmaps( KiBitmap( apply_xpm ), aImage ); +#endif + } + else + { + SET_BITMAP( aImage ); + } + + aMenu->Append( item ); + + return item; +} + + +/** + * Function AddMenuItem + * is an inline helper function to create and insert a menu item with an icon + * into \a aSubMenu in \a aMenu + * + * @param aMenu is the menu to add the new submenu item. + * @param aSubMenu is the submenu to add the new menu. + * @param aId is the command ID for the new menu item. + * @param aText is the string for the new menu item. + * @param aImage is the icon to add to the new menu item. + * @return a pointer to the new created wxMenuItem + */ +static inline wxMenuItem* AddMenuItem( wxMenu* aMenu, + wxMenu* aSubMenu, + int aId, + const wxString& aText, + const wxBitmap& aImage ) +{ + wxMenuItem* item; + + item = new wxMenuItem( aMenu, aId, aText ); + item->SetSubMenu( aSubMenu ); + + SET_BITMAP( aImage ); + + aMenu->Append( item ); + + return item; +}; + + +/** + * Function AddMenuItem + * is an inline helper function to create and insert a menu item with an icon + * and a help message string into \a aSubMenu in \a aMenu + * + * @param aMenu is the menu to add the new submenu item. + * @param aSubMenu is the submenu to add the new menu. + * @param aId is the command ID for the new menu item. + * @param aText is the string for the new menu item. + * @param aHelpText is the help message string for the new menu item. + * @param aImage is the icon to add to the new menu item. + * @return a pointer to the new created wxMenuItem + */ +static inline wxMenuItem* AddMenuItem( wxMenu* aMenu, + wxMenu* aSubMenu, + int aId, + const wxString& aText, + const wxString& aHelpText, + const wxBitmap& aImage ) +{ + wxMenuItem* item; + + item = new wxMenuItem( aMenu, aId, aText, aHelpText ); + item->SetSubMenu( aSubMenu ); + + SET_BITMAP( aImage ); + + aMenu->Append( item ); + + return item; +}; diff --git a/include/wxstruct.h b/include/wxstruct.h index f74e5baa7d..a59fdd9876 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -42,7 +42,6 @@ #include #include -#include #include #include @@ -961,148 +960,6 @@ public: }; -/** - * Function AddMenuItem - * is an inline helper function to create and insert a menu item with an image - * into \a aMenu - * - * @param aMenu is the menu to add the new item. - * @param aId is the command ID for the new menu item. - * @param aText is the string for the new menu item. - * @param aImage is the image to add to the new menu item. - */ -static inline void AddMenuItem( wxMenu* aMenu, - int aId, - const wxString& aText, - const wxBitmap& aImage ) -{ - wxMenuItem* item; - - item = new wxMenuItem( aMenu, aId, aText ); - -#if defined( USE_IMAGES_IN_MENUS ) - item->SetBitmap( aImage ); -#endif - - aMenu->Append( item ); -} - - -/** - * Function AddMenuItem - * is an inline helper function to create and insert a menu item with an image - * and a help message string into \a aMenu - * - * @param aMenu is the menu to add the new item. - * @param aId is the command ID for the new menu item. - * @param aText is the string for the new menu item. - * @param aHelpText is the help message string for the new menu item. - * @param aImage is the image to add to the new menu item. - */ -static inline void AddMenuItem( wxMenu* aMenu, - int aId, - const wxString& aText, - const wxString& aHelpText, - const wxBitmap& aImage ) -{ - wxMenuItem* item; - - item = new wxMenuItem( aMenu, aId, aText, aHelpText ); - -#if defined( USE_IMAGES_IN_MENUS ) - item->SetBitmap( aImage ); -#endif - - aMenu->Append( item ); -} - - -/** - * Function AddMenuItem - * is an inline helper function to create and insert a menu item with an image - * into \a aSubMenu in \a aMenu - * - * @param aMenu is the menu to add the new submenu item. - * @param aSubMenu is the submenu to add the new menu. - * @param aId is the command ID for the new menu item. - * @param aText is the string for the new menu item. - * @param aImage is the image to add to the new menu item. - */ -static inline void AddMenuItem( wxMenu* aMenu, - wxMenu* aSubMenu, - int aId, - const wxString& aText, - const wxBitmap& aImage ) -{ - wxMenuItem* item; - - item = new wxMenuItem( aMenu, aId, aText ); - item->SetSubMenu( aSubMenu ); - -#if defined( USE_IMAGES_IN_MENUS ) - item->SetBitmap( aImage ); -#endif - - aMenu->Append( item ); -}; - - -/** - * Function AddMenuItem - * is an inline helper function to create and insert a menu item with an image - * and a help message string into \a aSubMenu in \a aMenu - * - * @param aMenu is the menu to add the new submenu item. - * @param aSubMenu is the submenu to add the new menu. - * @param aId is the command ID for the new menu item. - * @param aText is the string for the new menu item. - * @param aHelpText is the help message string for the new menu item. - * @param aImage is the image to add to the new menu item. - */ -static inline void AddMenuItem( wxMenu* aMenu, - wxMenu* aSubMenu, - int aId, - const wxString& aText, - const wxString& aHelpText, - const wxBitmap& aImage ) -{ - wxMenuItem* item; - - item = new wxMenuItem( aMenu, aId, aText, aHelpText ); - item->SetSubMenu( aSubMenu ); - -#if defined( USE_IMAGES_IN_MENUS ) - item->SetBitmap( aImage ); -#endif - - aMenu->Append( item ); -}; - - -/** - * Definition SETBITMAPS - * is a macro use to add a bitmaps to check menu item. - * @note Do not use with normal menu items or any platform other than Windows. - * @param aImage is the image to add the menu item. - */ -#if defined( USE_IMAGES_IN_MENUS ) && defined( __WINDOWS__ ) -# define SETBITMAPS( aImage ) item->SetBitmaps( KiBitmap( apply_xpm ), KiBitmap( aImage ) ) -#else -# define SETBITMAPS( aImage ) -#endif - -/** - * Definition SETBITMAP - * is a macro use to add a bitmap to a menu items. - * @note Do not use with checked menu items. - * @param aImage is the image to add the menu item. - */ -#if !defined( USE_IMAGES_IN_MENUS ) -# define SET_BITMAP( aImage ) -#else -# define SET_BITMAP( aImage ) item->SetBitmap( aImage ) -#endif - /** * Specialization of the wxAuiPaneInfo class for KiCad panels. diff --git a/kicad/class_treeprojectfiles.cpp b/kicad/class_treeprojectfiles.cpp index 8f58775a49..9cf484db70 100644 --- a/kicad/class_treeprojectfiles.cpp +++ b/kicad/class_treeprojectfiles.cpp @@ -12,6 +12,7 @@ #include #include +#include IMPLEMENT_ABSTRACT_CLASS( TREEPROJECTFILES, wxTreeCtrl ) diff --git a/kicad/commandframe.cpp b/kicad/commandframe.cpp index 28fda0568f..51ed272674 100644 --- a/kicad/commandframe.cpp +++ b/kicad/commandframe.cpp @@ -7,6 +7,7 @@ #include #include +#include RIGHT_KM_FRAME::RIGHT_KM_FRAME( KICAD_MANAGER_FRAME* parent ) : diff --git a/kicad/mainframe.cpp b/kicad/mainframe.cpp index d203bd4665..772c66e054 100644 --- a/kicad/mainframe.cpp +++ b/kicad/mainframe.cpp @@ -36,6 +36,7 @@ #include #include #include +#include static const wxString TreeFrameWidthEntry( wxT( "LeftWinWidth" ) ); diff --git a/kicad/menubar.cpp b/kicad/menubar.cpp index c284cd85d0..6c4957d47c 100644 --- a/kicad/menubar.cpp +++ b/kicad/menubar.cpp @@ -30,6 +30,7 @@ #include #include #include +#include /* Menubar and toolbar event table */ diff --git a/kicad/tree_project_frame.cpp b/kicad/tree_project_frame.cpp index 2271b1ae2f..a50d2ecc74 100644 --- a/kicad/tree_project_frame.cpp +++ b/kicad/tree_project_frame.cpp @@ -18,6 +18,7 @@ #include #include #include +#include /* Note about the tree project build process: diff --git a/pcbnew/controle.cpp b/pcbnew/controle.cpp index f2b3ce617c..a59abef318 100644 --- a/pcbnew/controle.cpp +++ b/pcbnew/controle.cpp @@ -41,6 +41,7 @@ #include #include #include +#include //external functions used here: extern bool Magnetize( BOARD* m_Pcb, PCB_EDIT_FRAME* frame, diff --git a/pcbnew/menubar_modedit.cpp b/pcbnew/menubar_modedit.cpp index 054e27d00d..ff4c0afb37 100644 --- a/pcbnew/menubar_modedit.cpp +++ b/pcbnew/menubar_modedit.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include diff --git a/pcbnew/menubar_pcbframe.cpp b/pcbnew/menubar_pcbframe.cpp index 9f71b28a6d..5df5fee5e4 100644 --- a/pcbnew/menubar_pcbframe.cpp +++ b/pcbnew/menubar_pcbframe.cpp @@ -36,6 +36,7 @@ #include #include +#include /** * Pcbnew mainframe menubar diff --git a/pcbnew/modedit.cpp b/pcbnew/modedit.cpp index b9acd991d9..0c1ccc4363 100644 --- a/pcbnew/modedit.cpp +++ b/pcbnew/modedit.cpp @@ -28,6 +28,7 @@ #include #include +#include // Functions defined in block_module_editor, but used here // These 2 functions are used in modedit to rotate or mirror the whole footprint diff --git a/pcbnew/modedit_onclick.cpp b/pcbnew/modedit_onclick.cpp index 2d4cbfd7c0..eb9e3b8d70 100644 --- a/pcbnew/modedit_onclick.cpp +++ b/pcbnew/modedit_onclick.cpp @@ -14,11 +14,12 @@ #include #include -#include +//#include #include #include #include #include +#include void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) diff --git a/pcbnew/onleftclick.cpp b/pcbnew/onleftclick.cpp index a6bb4035bc..644b11ca64 100644 --- a/pcbnew/onleftclick.cpp +++ b/pcbnew/onleftclick.cpp @@ -1,7 +1,7 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2007 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2007 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * @@ -39,6 +39,7 @@ #include #include +#include /* Handle the left button mouse click, when a tool is active diff --git a/pcbnew/onrightclick.cpp b/pcbnew/onrightclick.cpp index e48080de6f..b61dbf25bb 100644 --- a/pcbnew/onrightclick.cpp +++ b/pcbnew/onrightclick.cpp @@ -1,7 +1,7 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2009 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 2007-2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * @@ -43,6 +43,7 @@ #include #include #include +#include static wxMenu* Append_Track_Width_List( BOARD* aBoard ); From 72970d8c7d59c5f7eb19d3e37e629db05c150f0b Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Mon, 9 Apr 2012 08:56:30 -0500 Subject: [PATCH 55/68] remove #include --- pcbnew/legacy_plugin.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/pcbnew/legacy_plugin.cpp b/pcbnew/legacy_plugin.cpp index b76be49a8d..896887a3b0 100644 --- a/pcbnew/legacy_plugin.cpp +++ b/pcbnew/legacy_plugin.cpp @@ -66,7 +66,6 @@ #include // implement this here -#include #include #include #include From 09cfdfd7563f7bd6078bf64a94e8d8e2144c4931 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Tue, 10 Apr 2012 11:28:26 -0500 Subject: [PATCH 56/68] add PCNBEW nanometer support to specctra round-tripper, use micro-meters to do it. --- pcbnew/specctra_export.cpp | 71 ++++++++++++++++++++++++++++++-------- pcbnew/specctra_import.cpp | 30 ++++++++++++++++ polygon/PolyLine.cpp | 17 ++++++--- 3 files changed, 99 insertions(+), 19 deletions(-) diff --git a/pcbnew/specctra_export.cpp b/pcbnew/specctra_export.cpp index 2be30030ca..6f57d4c1a5 100644 --- a/pcbnew/specctra_export.cpp +++ b/pcbnew/specctra_export.cpp @@ -157,17 +157,42 @@ namespace DSN { const KICAD_T SPECCTRA_DB::scanPADs[] = { PCB_PAD_T, EOT }; +// "specctra reported units" are what we tell the external router that our +// exported lengths are in. + /** * Function scale - * converts a distance from KiCad units to our reported specctra dsn units: - * 1/10000 inches (deci-mils) to mils. So the factor of 10 comes in. + * converts a distance from PCBNEW internal units to the reported specctra dsn units + * in floating point format. */ static inline double scale( int kicadDist ) { +#if defined(USE_PCBNEW_NANOMETRES) + +// nanometers to um + return kicadDist / 1000.0; + + // nanometers to mils + // return kicadDist/25400.0; + +#else + // deci-mils to mils. return kicadDist/10.0; +#endif } +/// Convert integer internal units to float um +static inline double IU2um( int kicadDist ) +{ +#if defined(USE_PCBNEW_NANOMETRES) + return kicadDist / 1000.0; +#else + return kicadDist * 25.4e-1; +#endif +} + + static inline double mapX( int x ) { return scale(x); @@ -367,8 +392,9 @@ PADSTACK* SPECCTRA_DB::makePADSTACK( BOARD* aBoard, D_PAD* aPad ) circle->SetVertex( dsnOffset ); } - snprintf( name, sizeof(name), "Round%sPad_%.6g_mil", - uniqifier.c_str(), scale(aPad->GetSize().x) ); + snprintf( name, sizeof(name), "Round%sPad_%.6g_um", + uniqifier.c_str(), IU2um( aPad->GetSize().x ) ); + name[ sizeof(name)-1 ] = 0; padstack->SetPadstackId( name ); @@ -398,8 +424,11 @@ PADSTACK* SPECCTRA_DB::makePADSTACK( BOARD* aBoard, D_PAD* aPad ) rect->SetCorners( lowerLeft, upperRight ); } - snprintf( name, sizeof(name), "Rect%sPad_%.6gx%.6g_mil", - uniqifier.c_str(), scale(aPad->GetSize().x), scale(aPad->GetSize().y) ); + snprintf( name, sizeof(name), "Rect%sPad_%.6gx%.6g_um", + uniqifier.c_str(), + IU2um( aPad->GetSize().x ), + IU2um( aPad->GetSize().y ) ); + name[ sizeof(name)-1 ] = 0; padstack->SetPadstackId( name ); @@ -446,8 +475,10 @@ PADSTACK* SPECCTRA_DB::makePADSTACK( BOARD* aBoard, D_PAD* aPad ) path->aperture_width = 2.0 * radius; } - snprintf( name, sizeof(name), "Oval%sPad_%.6gx%.6g_mil", - uniqifier.c_str(), scale(aPad->GetSize().x), scale(aPad->GetSize().y) ); + snprintf( name, sizeof(name), "Oval%sPad_%.6gx%.6g_um", + uniqifier.c_str(), + IU2um( aPad->GetSize().x ), + IU2um( aPad->GetSize().y ) ); name[ sizeof(name)-1 ] = 0; padstack->SetPadstackId( name ); @@ -493,12 +524,12 @@ PADSTACK* SPECCTRA_DB::makePADSTACK( BOARD* aBoard, D_PAD* aPad ) D(printf( "m_DeltaSize: %d,%d\n", aPad->GetDelta().x, aPad->GetDelta().y );) // this string _must_ be unique for a given physical shape - snprintf( name, sizeof(name), "Trapz%sPad_%.6gx%.6g_%c%.6gx%c%.6g_mil", - uniqifier.c_str(), scale(aPad->GetSize().x), scale(aPad->GetSize().y), + snprintf( name, sizeof(name), "Trapz%sPad_%.6gx%.6g_%c%.6gx%c%.6g_um", + uniqifier.c_str(), IU2um( aPad->GetSize().x ), IU2um( aPad->GetSize().y ), aPad->GetDelta().x < 0 ? 'n' : 'p', - abs( scale( aPad->GetDelta().x )), + abs( IU2um( aPad->GetDelta().x )), aPad->GetDelta().y < 0 ? 'n' : 'p', - abs( scale( aPad->GetDelta().y )) + abs( IU2um( aPad->GetDelta().y ) ) ); name[ sizeof(name)-1 ] = 0; @@ -708,10 +739,10 @@ PADSTACK* SPECCTRA_DB::makeVia( int aCopperDiameter, int aDrillDiameter, circle->SetLayerId( layerIds[layer].c_str() ); } - snprintf( name, sizeof(name), "Via[%d-%d]_%.6g:%.6g_mil", + snprintf( name, sizeof(name), "Via[%d-%d]_%.6g:%.6g_um", aTopLayer, aBotLayer, dsnDiameter, // encode the drill value into the name for later import - scale( aDrillDiameter ) + IU2um( aDrillDiameter ) ); name[ sizeof(name)-1 ] = 0; @@ -1004,6 +1035,16 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IO_ERROR ) //----- & -------------------- { + +#if defined(USE_PCBNEW_NANOMETRES) + // tell freerouter about centi-mil + + pcb->unit->units = T_um; + pcb->resolution->units = T_um; + + pcb->resolution->value = 10; + +#else pcb->unit->units = T_mil; pcb->resolution->units = T_mil; @@ -1013,9 +1054,9 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IO_ERROR ) // resolution precisely at 1/10th for now. For more on this, see: // http://www.freerouting.net/usren/viewtopic.php?f=3&t=354 pcb->resolution->value = 10; +#endif } - //----------------------------------------------- { // Because fillBOUNDARY() can throw an exception, we link in an diff --git a/pcbnew/specctra_import.cpp b/pcbnew/specctra_import.cpp index 99e9a7bc8c..b395d66ad2 100644 --- a/pcbnew/specctra_import.cpp +++ b/pcbnew/specctra_import.cpp @@ -146,6 +146,33 @@ static int scale( double distance, UNIT_RES* aResolution ) { double resValue = aResolution->GetValue(); +#if defined(USE_PCBNEW_NANOMETRES) + + double factor; + + switch( aResolution->GetEngUnits() ) + { + default: + case T_inch: + factor = 25.4e6; // nanometers per inch + break; + case T_mil: + factor = 25.4e3; // nanometers per mil + break; + case T_cm: + factor = 1e7; // nanometers per cm + break; + case T_mm: + factor = 1e6; // nanometers per mm + break; + case T_um: + factor = 1e3; // nanometers per um + break; + } + + int ret = wxRound( factor * distance / resValue ); + +#else double factor; // multiply this times session value to get mils for KiCad. switch( aResolution->GetEngUnits() ) @@ -173,6 +200,9 @@ static int scale( double distance, UNIT_RES* aResolution ) factor *= 10.0; int ret = wxRound( factor * distance / resValue ); + +#endif + return ret; } diff --git a/polygon/PolyLine.cpp b/polygon/PolyLine.cpp index 7fdfe9a094..2d5cbdaaf9 100644 --- a/polygon/PolyLine.cpp +++ b/polygon/PolyLine.cpp @@ -15,11 +15,12 @@ #include #if defined(KICAD_NANOMETRE) -#define PCBU_PER_MIL (1000.0*25.4) +#define PCBU_PER_MIL (1000.0*25.4) #else -#define PCBU_PER_MIL 10 +#define PCBU_PER_MIL 10 #endif + #define to_int( x ) wxRound( (x) ) #ifndef MIN @@ -115,7 +116,8 @@ int CPolyLine::NormalizeWithKbool( std::vector * aExtraPolyList, boo side_style.clear(); bool first = true; while( m_Kbool_Poly_Engine->PolygonHasMorePoints() ) - { // foreach point in the polygon + { + // foreach point in the polygon int x = (int) m_Kbool_Poly_Engine->GetPolygonXPoint(); int y = (int) m_Kbool_Poly_Engine->GetPolygonYPoint(); if( first ) @@ -1406,6 +1408,7 @@ void CPolyLine::Hatch() spacing = 20 * PCBU_PER_MIL; else spacing = 50 * PCBU_PER_MIL; + // set the "lenght" of hatch lines (the lenght on horizontal axis) double hatch_line_len = 20 * PCBU_PER_MIL; @@ -1437,9 +1440,11 @@ void CPolyLine::Hatch() // loop through hatch lines #define MAXPTS 200 // Usually we store only few values // depending on the compexity of the zone outline + static std::vector pointbuffer; pointbuffer.clear(); pointbuffer.reserve(MAXPTS+2); + for( int a = min_a; a < max_a; a += spacing ) { // get intersection points for this hatch line @@ -1520,17 +1525,21 @@ void CPolyLine::Hatch() { double dy = pointbuffer[ip + 1].y - pointbuffer[ip].y; double slope = dy / dx; + if( dx > 0 ) dx = hatch_line_len; else dx = -hatch_line_len; + double x1 = pointbuffer[ip].x + dx; double x2 = pointbuffer[ip + 1].x - dx; double y1 = pointbuffer[ip].y + dx * slope; double y2 = pointbuffer[ip + 1].y - dx * slope; + m_HatchLines.push_back( CSegment( pointbuffer[ip].x, pointbuffer[ip].y, to_int( x1 ), to_int( y1 ) ) ); + m_HatchLines.push_back( CSegment( pointbuffer[ip + 1].x, pointbuffer[ip + 1].y, to_int( x2 ), to_int( y2 ) ) ); @@ -1560,6 +1569,7 @@ bool CPolyLine::TestPointInside( int px, int py ) { int istart = GetContourStart( icont ); int iend = GetContourEnd( icont ); + // Test this polygon: if( TestPointInsidePolygon( corner, istart, iend, px, py) ) // test point inside the current polygon inside = not inside; @@ -1671,4 +1681,3 @@ void CPolyLine::AppendBezier(int x1, int y1, int x2, int y2, int x3, int y3, int for( unsigned int i = 0; i < bezier_points.size() ; i++) AppendCorner( bezier_points[i].x, bezier_points[i].y); } - From cf4991979d4a010fc8ba0e3fe0775c18480fdc95 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Wed, 11 Apr 2012 11:47:57 +0200 Subject: [PATCH 57/68] Pcbnew nanometer: fix hatch lines issue in polyline.cpp Some minor code cleaning. --- include/convert_to_biu.h | 38 +++++++++++++++++++++ pcbnew/class_board.cpp | 7 ---- pcbnew/class_board.h | 8 +++++ pcbnew/class_dimension.cpp | 3 +- pcbnew/class_drawsegment.cpp | 2 +- pcbnew/class_mire.cpp | 2 +- pcbnew/class_module_transform_functions.cpp | 19 ++++++----- pcbnew/class_pcb_text.cpp | 2 +- pcbnew/class_track.cpp | 2 +- pcbnew/class_zone.cpp | 5 +-- pcbnew/class_zone_settings.cpp | 2 +- pcbnew/item_io.cpp | 2 +- pcbnew/legacy_plugin.cpp | 7 ++-- pcbnew/modules.cpp | 2 ++ pcbnew/pcbnew.h | 15 +------- pcbnew/protos.h | 13 ------- pcbnew/zone_filling_algorithm.cpp | 1 - polygon/PolyLine.cpp | 29 +++++++--------- polygon/PolyLine.h | 29 ++++++++++++---- 19 files changed, 108 insertions(+), 80 deletions(-) create mode 100644 include/convert_to_biu.h diff --git a/include/convert_to_biu.h b/include/convert_to_biu.h new file mode 100644 index 0000000000..8fc2281fa9 --- /dev/null +++ b/include/convert_to_biu.h @@ -0,0 +1,38 @@ +#ifndef CONVERT_TO_BIU_H +#define CONVERT_TO_BIU_H + +#include // USE_PCBNEW_NANOMETRES is defined here + +/** + * @file convert_to_biu.h + */ + + +/** + * @brief inline convert functions to convert a value in decimils (or mils) + * to the internal unit used in pcbnew or cvpcb(nanometer or decimil) + * depending on compil option + */ + +/// Convert mils to PCBNEW internal units (iu). +inline int Mils2iu( int mils ) +{ +#if defined( USE_PCBNEW_NANOMETRES ) + return int( mils * 25.4e3 + 0.5 ); +#else + return mils * 10; +#endif +} + +/// Convert deci-mils to PCBNEW internal units (iu). +inline int DMils2iu( int dmils ) +{ +#if defined( USE_PCBNEW_NANOMETRES ) + return int( dmils * 25.4e2 + 0.5 ); +#else + return dmils; +#endif +} + +#endif // #define CONVERT_TO_BIU_H + diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 6be88e0307..1181c4ae12 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -71,13 +71,6 @@ BOARD::BOARD() : BOARD::~BOARD() { - /* @todo - NO! this has nothing to do with a BOARD - Do this in the UI, not in the storage container please. - if( m_PcbFrame && m_PcbFrame->GetScreen() ) - m_PcbFrame->GetScreen()->ClearUndoRedoList(); - */ - while( m_ZoneDescriptorList.size() ) { ZONE_CONTAINER* area_to_remove = m_ZoneDescriptorList[0]; diff --git a/pcbnew/class_board.h b/pcbnew/class_board.h index 0716ac51ea..3dae2934c3 100644 --- a/pcbnew/class_board.h +++ b/pcbnew/class_board.h @@ -272,6 +272,14 @@ public: */ static wxString GetDefaultLayerName( int aLayerNumber ); + /** + * Function ReturnFlippedLayerNumber + * @return the layer number after flipping an item + * some (not all) layers: external copper, Mask, Paste, and solder + * are swapped between front and back sides + */ + static int ReturnFlippedLayerNumber( int oldlayer ); + /** * Function Add * adds the given item to this BOARD and takes ownership of its memory. diff --git a/pcbnew/class_dimension.cpp b/pcbnew/class_dimension.cpp index 6582ad8ad0..d80584c91d 100644 --- a/pcbnew/class_dimension.cpp +++ b/pcbnew/class_dimension.cpp @@ -36,7 +36,6 @@ #include #include #include -#include #include #include @@ -200,7 +199,7 @@ void DIMENSION::Rotate( const wxPoint& aRotCentre, double aAngle ) void DIMENSION::Flip( const wxPoint& aCentre ) { Mirror( aCentre ); - SetLayer( ChangeSideNumLayer( GetLayer() ) ); + SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); } diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index a72e569b6a..7c710e179a 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -107,7 +107,7 @@ void DRAWSEGMENT::Flip( const wxPoint& aCentre ) NEGATE( m_Angle ); } - SetLayer( ChangeSideNumLayer( GetLayer() ) ); + SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); } diff --git a/pcbnew/class_mire.cpp b/pcbnew/class_mire.cpp index e989ef1d27..5a18558e9a 100644 --- a/pcbnew/class_mire.cpp +++ b/pcbnew/class_mire.cpp @@ -189,7 +189,7 @@ void PCB_TARGET::Rotate(const wxPoint& aRotCentre, double aAngle) void PCB_TARGET::Flip(const wxPoint& aCentre ) { m_Pos.y = aCentre.y - ( m_Pos.y - aCentre.y ); - SetLayer( ChangeSideNumLayer( GetLayer() ) ); + SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); } diff --git a/pcbnew/class_module_transform_functions.cpp b/pcbnew/class_module_transform_functions.cpp index 171afdfbe1..3bcc462b6c 100644 --- a/pcbnew/class_module_transform_functions.cpp +++ b/pcbnew/class_module_transform_functions.cpp @@ -11,15 +11,18 @@ #include #include +#include #include #include #include -/* Calculate the layer number for changing cu / cmp layers for Cu / CMP - * (Copper, Mask, Paste, solder) + +/* Returns the layer number after flipping an item + * some layers: external copper, Mask, Paste, and solder + * are swapped between front and back sides */ -int ChangeSideNumLayer( int oldlayer ) +int BOARD::ReturnFlippedLayerNumber( int oldlayer ) { int newlayer; @@ -155,7 +158,7 @@ void MODULE::Flip( const wxPoint& aCentre ) SetPosition( finalPos ); // Flip layer - SetLayer( ChangeSideNumLayer( GetLayer() ) ); + SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); // Reverse mirror orientation. NEGATE( m_Orient ); @@ -174,7 +177,7 @@ void MODULE::Flip( const wxPoint& aCentre ) pt_texte->m_Mirror = false; NEGATE_AND_NORMALIZE_ANGLE_POS( pt_texte->m_Orient ); pt_texte->SetLayer( GetLayer() ); - pt_texte->SetLayer( ChangeSideNumLayer( pt_texte->GetLayer() ) ); + pt_texte->SetLayer( BOARD::ReturnFlippedLayerNumber( pt_texte->GetLayer() ) ); if( GetLayer() == LAYER_N_BACK ) pt_texte->SetLayer( SILKSCREEN_N_BACK ); @@ -195,7 +198,7 @@ void MODULE::Flip( const wxPoint& aCentre ) pt_texte->m_Mirror = false; NEGATE_AND_NORMALIZE_ANGLE_POS( pt_texte->m_Orient ); pt_texte->SetLayer( GetLayer() ); - pt_texte->SetLayer( ChangeSideNumLayer( pt_texte->GetLayer() ) ); + pt_texte->SetLayer( BOARD::ReturnFlippedLayerNumber( pt_texte->GetLayer() ) ); if( GetLayer() == LAYER_N_BACK ) pt_texte->SetLayer( SILKSCREEN_N_BACK ); @@ -236,7 +239,7 @@ void MODULE::Flip( const wxPoint& aCentre ) em->SetAngle( -em->GetAngle() ); } - em->SetLayer( ChangeSideNumLayer( em->GetLayer() ) ); + em->SetLayer( BOARD::ReturnFlippedLayerNumber( em->GetLayer() ) ); } break; @@ -251,7 +254,7 @@ void MODULE::Flip( const wxPoint& aCentre ) NEGATE_AND_NORMALIZE_ANGLE_POS( pt_texte->m_Orient ); pt_texte->SetLayer( GetLayer() ); - pt_texte->SetLayer( ChangeSideNumLayer( pt_texte->GetLayer() ) ); + pt_texte->SetLayer( BOARD::ReturnFlippedLayerNumber( pt_texte->GetLayer() ) ); if( GetLayer() == LAYER_N_BACK ) pt_texte->SetLayer( SILKSCREEN_N_BACK ); diff --git a/pcbnew/class_pcb_text.cpp b/pcbnew/class_pcb_text.cpp index ccda388b71..bc9d559fc3 100644 --- a/pcbnew/class_pcb_text.cpp +++ b/pcbnew/class_pcb_text.cpp @@ -165,7 +165,7 @@ void TEXTE_PCB::Flip(const wxPoint& aCentre ) { m_Mirror = not m_Mirror; /* inverse mirror */ } - SetLayer( ChangeSideNumLayer( GetLayer() ) ); + SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); } diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 218f6ecd49..dbe2e80ee7 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -392,7 +392,7 @@ void TRACK::Flip( const wxPoint& aCentre ) } else { - SetLayer( ChangeSideNumLayer( GetLayer() ) ); + SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); } } diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index f893b21bb5..4355257d88 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -824,7 +824,7 @@ void ZONE_CONTAINER::Rotate( const wxPoint& centre, double angle ) void ZONE_CONTAINER::Flip( const wxPoint& aCentre ) { Mirror( aCentre ); - SetLayer( ChangeSideNumLayer( GetLayer() ) ); + SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); } @@ -876,7 +876,8 @@ void ZONE_CONTAINER::Copy( ZONE_CONTAINER* src ) m_PadConnection = src->m_PadConnection; m_ThermalReliefGap = src->m_ThermalReliefGap; m_ThermalReliefCopperBridge = src->m_ThermalReliefCopperBridge; - m_Poly->m_HatchStyle = src->m_Poly->GetHatchStyle(); + m_Poly->SetHatchStyle( src->m_Poly->GetHatchStyle() ); + m_Poly->SetHatchPitch( src->m_Poly->GetHatchPitch() ); m_Poly->m_HatchLines = src->m_Poly->m_HatchLines; // Copy vector m_FilledPolysList.clear(); m_FilledPolysList = src->m_FilledPolysList; diff --git a/pcbnew/class_zone_settings.cpp b/pcbnew/class_zone_settings.cpp index aadefdc5d6..845f8b4b50 100644 --- a/pcbnew/class_zone_settings.cpp +++ b/pcbnew/class_zone_settings.cpp @@ -73,7 +73,7 @@ void ZONE_SETTINGS::ExportSetting( ZONE_CONTAINER& aTarget, bool aFullExport ) c aTarget.m_FillMode = m_FillMode; aTarget.m_ZoneClearance = m_ZoneClearance; aTarget.m_ZoneMinThickness = m_ZoneMinThickness; - aTarget.m_Poly->SetHatch( m_Zone_HatchingStyle ); + aTarget.m_Poly->SetHatch( m_Zone_HatchingStyle, Mils2iu( 20 ) ); aTarget.m_ArcToSegmentsCount = m_ArcToSegmentsCount; aTarget.m_ThermalReliefGap = m_ThermalReliefGap; aTarget.m_ThermalReliefCopperBridge = m_ThermalReliefCopperBridge; diff --git a/pcbnew/item_io.cpp b/pcbnew/item_io.cpp index a3121514be..d145a2e213 100644 --- a/pcbnew/item_io.cpp +++ b/pcbnew/item_io.cpp @@ -1980,7 +1980,7 @@ int ZONE_CONTAINER::ReadDescr( LINE_READER* aReader ) } // Set hatch here, when outlines corners are read - m_Poly->SetHatch( outline_hatch ); + m_Poly->SetHatch( outline_hatch, Mils2iu( m_Poly->GetDefaultHatchPitchMils() ) ); return error ? 0 : 1; } diff --git a/pcbnew/legacy_plugin.cpp b/pcbnew/legacy_plugin.cpp index 896887a3b0..8f5626634c 100644 --- a/pcbnew/legacy_plugin.cpp +++ b/pcbnew/legacy_plugin.cpp @@ -3,7 +3,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2007-2011 SoftPLC Corporation, Dick Hollenbeck - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2004 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. * @@ -82,7 +82,7 @@ #include <3d_struct.h> #include #include - +#include #include #include @@ -2286,7 +2286,8 @@ void LEGACY_PLUGIN::loadZONE_CONTAINER() } // Set hatch here, after outlines corners are read - zc->m_Poly->SetHatch( outline_hatch ); + zc->m_Poly->SetHatch( outline_hatch, + Mils2iu( zc->m_Poly->GetDefaultHatchPitchMils() ) ); m_board->Add( zc.release() ); } diff --git a/pcbnew/modules.cpp b/pcbnew/modules.cpp index b36315324a..379189e01a 100644 --- a/pcbnew/modules.cpp +++ b/pcbnew/modules.cpp @@ -44,6 +44,8 @@ #include +static void MoveFootprint( EDA_DRAW_PANEL* aPanel, wxDC* aDC, + const wxPoint& aPosition, bool aErase ); static void Abort_MoveOrCopyModule( EDA_DRAW_PANEL* Panel, wxDC* DC ); diff --git a/pcbnew/pcbnew.h b/pcbnew/pcbnew.h index e013189886..9759ee4b4c 100644 --- a/pcbnew/pcbnew.h +++ b/pcbnew/pcbnew.h @@ -8,7 +8,7 @@ #include // PCB_INTERNAL_UNIT and EESCHEMA_INTERNAL_UNIT definitions. #include // IS_DRAGGED and IN_EDIT definitions. - +#include // to define DMils2iu() conversion function #define U_PCB (PCB_INTERNAL_UNIT / EESCHEMA_INTERNAL_UNIT) @@ -34,19 +34,6 @@ #define DIM_ANCRE_TEXTE 2 /* Anchor size (Text center) */ -#if defined(PCBNEW) -/// Convert deci-mils to PCBNEW internal units (iu). -inline int DMils2iu( int dmils ) -{ -#if defined( USE_PCBNEW_NANOMETRES ) - return int( dmils * 25.4e2 + 0.5 ); -#else - return dmils; -#endif -} -#endif - - #define TEXTS_MIN_SIZE DMils2iu( 50 ) ///< Minimum text size in Pcbnew units value (50 * 0.0001 mils) #define TEXTS_MAX_SIZE DMils2iu( 10000 ) ///< Maximum text size in Pcbnew units value (1 inch) ) #define TEXTS_MAX_WIDTH DMils2iu( 5000 ) ///< Maximum text width in Pcbnew units value (0.5 inches) diff --git a/pcbnew/protos.h b/pcbnew/protos.h index 2e1a0948ac..611f26cdba 100644 --- a/pcbnew/protos.h +++ b/pcbnew/protos.h @@ -6,18 +6,13 @@ #define PROTO_H -#include - - class wxDC; class wxPoint; class EDA_DRAW_PANEL; class BOARD_ITEM; -class D_PAD; class TRACK; class MODULE; - /** * Function SwapData * Used in undo / redo command: @@ -63,15 +58,7 @@ void DrawTraces( EDA_DRAW_PANEL* panel, */ int ChangeSideMaskLayer( int aMask ); -/** - * Function ChangeSideNumLayer - * calculates the layer number for changing cu / cmp layers for Cu / CMP. - * (Copper, Mask, Paste, solder) - */ -int ChangeSideNumLayer( int oldlayer ); - void DrawModuleOutlines( EDA_DRAW_PANEL* panel, wxDC* DC, MODULE* module ); -void MoveFootprint( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aPosition, bool aErase ); /****************/ diff --git a/pcbnew/zone_filling_algorithm.cpp b/pcbnew/zone_filling_algorithm.cpp index 921974db12..38e626c46c 100644 --- a/pcbnew/zone_filling_algorithm.cpp +++ b/pcbnew/zone_filling_algorithm.cpp @@ -14,7 +14,6 @@ #include #include -#include /* Local functions */ diff --git a/polygon/PolyLine.cpp b/polygon/PolyLine.cpp index 2d5cbdaaf9..7efda63ff0 100644 --- a/polygon/PolyLine.cpp +++ b/polygon/PolyLine.cpp @@ -8,18 +8,11 @@ #include #include -#include // to define KICAD_NANOMETRE #include #include #include -#if defined(KICAD_NANOMETRE) -#define PCBU_PER_MIL (1000.0*25.4) -#else -#define PCBU_PER_MIL 10 -#endif - #define to_int( x ) wxRound( (x) ) @@ -34,7 +27,8 @@ CPolyLine::CPolyLine() { - m_HatchStyle = 0; + m_hatchStyle = NO_HATCH; + m_hatchPitch = 0; m_Width = 0; utility = 0; m_Kbool_Poly_Engine = NULL; @@ -794,7 +788,7 @@ int CPolyLine::RestoreArcs( std::vector * arc_array, std::vector pointbuffer; @@ -1514,7 +1508,7 @@ void CPolyLine::Hatch() // Push only one line for diagonal hatch, // or for small lines < twice the line len // else push 2 small lines - if( m_HatchStyle == DIAGONAL_FULL || fabs( dx ) < 2 * hatch_line_len ) + if( m_hatchStyle == DIAGONAL_FULL || fabs( dx ) < 2 * hatch_line_len ) { m_HatchLines.push_back( CSegment( pointbuffer[ip].x, pointbuffer[ip].y, @@ -1583,7 +1577,8 @@ bool CPolyLine::TestPointInside( int px, int py ) void CPolyLine::Copy( CPolyLine* src ) { UnHatch(); - m_HatchStyle = src->m_HatchStyle; + m_hatchStyle = src->m_hatchStyle; + m_hatchPitch = src->m_hatchPitch; // copy corners, using vector copy corner = src->corner; // copy side styles, using vector copy diff --git a/polygon/PolyLine.h b/polygon/PolyLine.h index 827ff0ae85..fc44f87755 100644 --- a/polygon/PolyLine.h +++ b/polygon/PolyLine.h @@ -108,8 +108,8 @@ public: class CPolyLine { public: - enum { STRAIGHT, ARC_CW, ARC_CCW }; // side styles - enum { NO_HATCH, DIAGONAL_FULL, DIAGONAL_EDGE }; // hatch styles + enum side_style { STRAIGHT, ARC_CW, ARC_CCW }; // side styles + enum hatch_style { NO_HATCH, DIAGONAL_FULL, DIAGONAL_EDGE }; // hatch styles // constructors/destructor CPolyLine(); @@ -180,13 +180,25 @@ public: int GetUtility( int ic ) { return corner[ic].utility; }; void SetUtility( int ic, int utility ) { corner[ic].utility = utility; }; int GetSideStyle( int is ); + int GetHatchPitch() { return m_hatchPitch; } + int GetDefaultHatchPitchMils() { return 20; } // default hatch pitch value in mils - int GetHatchStyle() { return m_HatchStyle; } - void SetHatch( int hatch ) { m_HatchStyle = hatch; Hatch(); }; + enum hatch_style GetHatchStyle() { return m_hatchStyle; } + void SetHatch( int hatch, int pitch ) + { + SetHatchPitch( pitch ); + m_hatchStyle = (enum hatch_style ) hatch; + Hatch(); + } void SetX( int ic, int x ); void SetY( int ic, int y ); void SetEndContour( int ic, bool end_contour ); void SetSideStyle( int is, int style ); + void SetHatchStyle( enum hatch_style style ) + { + m_hatchStyle = style; + } + void SetHatchPitch( int pitch ) { m_hatchPitch = pitch; } int RestoreArcs( std::vector * arc_array, std::vector * pa = NULL ); @@ -260,15 +272,18 @@ public: private: - int m_layer; // layer to draw on - int m_Width; // lines width when drawing. Provided but not really used + int m_layer; // layer to draw on + int m_Width; // lines width when drawing. Provided but not really used + enum hatch_style m_hatchStyle; // hatch style, see enum above + int m_hatchPitch; // for DIAGONAL_EDGE hatched outlines, basic distance between 2 hatch lines + // and the len of eacvh segment + // for DIAGONAL_FULL, the pitch is twice this value int utility; Bool_Engine* m_Kbool_Poly_Engine; // polygons set in kbool engine data public: std::vector corner; // array of points for corners std::vector side_style; // array of styles for sides - int m_HatchStyle; // hatch style, see enum above std::vector m_HatchLines; // hatch lines }; From aa6c9e7f2170d8daafac4e84c248ca25faa70b70 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Wed, 11 Apr 2012 09:49:11 -0500 Subject: [PATCH 58/68] improve comments in specctra stuff --- pcbnew/specctra_export.cpp | 10 ++++++---- pcbnew/specctra_import.cpp | 4 +--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pcbnew/specctra_export.cpp b/pcbnew/specctra_export.cpp index 6f57d4c1a5..59efb6ee7a 100644 --- a/pcbnew/specctra_export.cpp +++ b/pcbnew/specctra_export.cpp @@ -170,7 +170,7 @@ static inline double scale( int kicadDist ) { #if defined(USE_PCBNEW_NANOMETRES) -// nanometers to um + // nanometers to um return kicadDist / 1000.0; // nanometers to mils @@ -1037,12 +1037,14 @@ void SPECCTRA_DB::FromBOARD( BOARD* aBoard ) throw( IO_ERROR ) { #if defined(USE_PCBNEW_NANOMETRES) - // tell freerouter about centi-mil + // tell freerouter to use "tenths of micrometers", + // which is 100 nm resolution. Possibly more resolution is possible + // in freerouter, but it would need testing. pcb->unit->units = T_um; pcb->resolution->units = T_um; - - pcb->resolution->value = 10; + pcb->resolution->value = 10; // tenths of a um + // pcb->resolution->value = 1000; // "thousandths of a um" (i.e. "nm") #else pcb->unit->units = T_mil; diff --git a/pcbnew/specctra_import.cpp b/pcbnew/specctra_import.cpp index b395d66ad2..dcb02f2b21 100644 --- a/pcbnew/specctra_import.cpp +++ b/pcbnew/specctra_import.cpp @@ -145,11 +145,10 @@ namespace DSN { static int scale( double distance, UNIT_RES* aResolution ) { double resValue = aResolution->GetValue(); + double factor; #if defined(USE_PCBNEW_NANOMETRES) - double factor; - switch( aResolution->GetEngUnits() ) { default: @@ -173,7 +172,6 @@ static int scale( double distance, UNIT_RES* aResolution ) int ret = wxRound( factor * distance / resValue ); #else - double factor; // multiply this times session value to get mils for KiCad. switch( aResolution->GetEngUnits() ) { From 50067840c72af3e5cc20faa1d21e4ff7e2eecebc Mon Sep 17 00:00:00 2001 From: lajos kamocsay Date: Wed, 11 Apr 2012 09:55:40 -0500 Subject: [PATCH 59/68] This is some boost weirdness. --- include/boost/polygon/polygon.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/boost/polygon/polygon.hpp b/include/boost/polygon/polygon.hpp index 10104565da..2591156309 100644 --- a/include/boost/polygon/polygon.hpp +++ b/include/boost/polygon/polygon.hpp @@ -23,6 +23,7 @@ #include "transform.hpp" #include "detail/transform_detail.hpp" +#include "detail/polygon_sort_adaptor.hpp" //interval #include "interval_data.hpp" From b1866205ed5f56c88261f737eeedc62751e75792 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Wed, 11 Apr 2012 10:50:17 -0500 Subject: [PATCH 60/68] handle negative constants --- include/convert_to_biu.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/convert_to_biu.h b/include/convert_to_biu.h index 8fc2281fa9..2867c9abbe 100644 --- a/include/convert_to_biu.h +++ b/include/convert_to_biu.h @@ -18,7 +18,8 @@ inline int Mils2iu( int mils ) { #if defined( USE_PCBNEW_NANOMETRES ) - return int( mils * 25.4e3 + 0.5 ); + double x = mils * 25.4e3; + return int( x < 0 ? x - 0.5 : x + 0.5 ); #else return mils * 10; #endif @@ -28,11 +29,11 @@ inline int Mils2iu( int mils ) inline int DMils2iu( int dmils ) { #if defined( USE_PCBNEW_NANOMETRES ) - return int( dmils * 25.4e2 + 0.5 ); + double x = dmils * 25.4e2; + return int( x < 0 ? x - 0.5 : x + 0.5 ); #else return dmils; #endif } #endif // #define CONVERT_TO_BIU_H - From c0dfc5bb89c519a566316034a40e1334fadeb9d6 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Wed, 11 Apr 2012 20:54:20 +0200 Subject: [PATCH 61/68] All: new middle mouse pan feature, from lajos kamocsay (and jp charras for some enhancements). If enable in preference menu, allow the pan with drag mouse with middle button down. both unlimited and limited pan is allowed. --- common/drawpanel.cpp | 139 +- cvpcb/dialogs/dialog_display_options.cpp | 5 + cvpcb/dialogs/dialog_display_options.h | 49 +- cvpcb/dialogs/dialog_display_options_base.cpp | 47 +- cvpcb/dialogs/dialog_display_options_base.fbp | 706 ++- cvpcb/dialogs/dialog_display_options_base.h | 25 +- eeschema/dialogs/dialog_eeschema_options.h | 26 + .../dialogs/dialog_eeschema_options_base.cpp | 20 +- .../dialogs/dialog_eeschema_options_base.fbp | 1910 +++++++- .../dialogs/dialog_eeschema_options_base.h | 21 +- eeschema/eeschema_config.cpp | 4 + .../gerbview_dialog_display_options_frame.cpp | 13 + ...view_dialog_display_options_frame_base.cpp | 27 +- ...view_dialog_display_options_frame_base.fbp | 622 ++- ...rbview_dialog_display_options_frame_base.h | 23 +- include/class_drawpanel.h | 15 + pcbnew/dialogs/dialog_general_options.cpp | 19 +- pcbnew/dialogs/dialog_general_options.h | 12 +- ...ialog_general_options_BoardEditor_base.cpp | 78 +- ...ialog_general_options_BoardEditor_base.fbp | 3891 +++++++++-------- .../dialog_general_options_BoardEditor_base.h | 27 +- pcbnew/pcbnew_config.cpp | 2 +- 22 files changed, 5385 insertions(+), 2296 deletions(-) diff --git a/common/drawpanel.cpp b/common/drawpanel.cpp index c222e18d20..dab3732318 100644 --- a/common/drawpanel.cpp +++ b/common/drawpanel.cpp @@ -43,6 +43,11 @@ #define CLIP_BOX_PADDING 2 +// keys to store options in config: +#define ENBL_MIDDLE_BUTT_PAN_KEY wxT( "MiddleButtonPAN" ) +#define MIDDLE_BUTT_PAN_LIMITED_KEY wxT( "MiddleBtnPANLimited" ) +#define ENBL_AUTO_PAN_KEY wxT( "AutoPAN" ) + /* Definitions for enabling and disabling debugging features in drawpanel.cpp. * Please don't forget to turn these off before making any commits to Launchpad. */ @@ -96,6 +101,8 @@ EDA_DRAW_PANEL::EDA_DRAW_PANEL( EDA_DRAW_FRAME* parent, int id, m_ClipBox.SetY( 0 ); m_canStartBlock = -1; // Command block can start if >= 0 m_abortRequest = false; + m_enableMiddleButtonPan = false; + m_panScrollbarLimits = false; m_enableAutoPan = true; m_ignoreMouseEvents = false; @@ -103,7 +110,11 @@ EDA_DRAW_PANEL::EDA_DRAW_PANEL( EDA_DRAW_FRAME* parent, int id, m_endMouseCaptureCallback = NULL; if( wxGetApp().GetSettings() ) - wxGetApp().GetSettings()->Read( wxT( "AutoPAN" ), &m_enableAutoPan, true ); + { + wxGetApp().GetSettings()->Read( ENBL_MIDDLE_BUTT_PAN_KEY, &m_enableMiddleButtonPan, false ); + wxGetApp().GetSettings()->Read( MIDDLE_BUTT_PAN_LIMITED_KEY, &m_panScrollbarLimits, false ); + wxGetApp().GetSettings()->Read( ENBL_AUTO_PAN_KEY, &m_enableAutoPan, true ); + } m_requestAutoPan = false; m_enableBlockCommands = false; @@ -123,10 +134,11 @@ EDA_DRAW_PANEL::EDA_DRAW_PANEL( EDA_DRAW_FRAME* parent, int id, EDA_DRAW_PANEL::~EDA_DRAW_PANEL() { - wxGetApp().GetSettings()->Write( wxT( "AutoPAN" ), m_enableAutoPan ); + wxGetApp().GetSettings()->Write( ENBL_MIDDLE_BUTT_PAN_KEY, m_enableMiddleButtonPan ); + wxGetApp().GetSettings()->Write( MIDDLE_BUTT_PAN_LIMITED_KEY, m_panScrollbarLimits ); + wxGetApp().GetSettings()->Write( ENBL_AUTO_PAN_KEY, m_enableAutoPan ); } - EDA_DRAW_FRAME* EDA_DRAW_PANEL::GetParent() { return ( EDA_DRAW_FRAME* ) wxWindow::GetParent(); @@ -317,18 +329,24 @@ void EDA_DRAW_PANEL::OnScroll( wxScrollWinEvent& event ) int dir; int x, y; int ppux, ppuy; + int csizeX, csizeY; int unitsX, unitsY; int maxX, maxY; GetViewStart( &x, &y ); GetScrollPixelsPerUnit( &ppux, &ppuy ); + GetClientSize( &csizeX, &csizeY ); GetVirtualSize( &unitsX, &unitsY ); - maxX = unitsX; - maxY = unitsY; + + csizeX /= ppux; + csizeY /= ppuy; unitsX /= ppux; unitsY /= ppuy; + maxX = unitsX - csizeX; + maxY = unitsY - csizeY; + dir = event.GetOrientation(); // wxHORIZONTAL or wxVERTICAL if( id == wxEVT_SCROLLWIN_LINEUP ) @@ -381,7 +399,7 @@ void EDA_DRAW_PANEL::OnScroll( wxScrollWinEvent& event ) wxT( "Setting scroll bars ppuX=%d, ppuY=%d, unitsX=%d, unitsY=%d, posX=%d, posY=%d" ), ppux, ppuy, unitsX, unitsY, x, y ); - Scroll( x/ppux, y/ppuy ); + Scroll( x, y ); event.Skip(); } @@ -958,8 +976,104 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) ignoreNextLeftButtonRelease = false; } - if( event.ButtonUp( wxMOUSE_BTN_MIDDLE ) - && (screen->m_BlockLocate.GetState() == STATE_NO_BLOCK) ) + if( event.ButtonDown( wxMOUSE_BTN_MIDDLE ) && m_enableMiddleButtonPan ) + { + if( m_panScrollbarLimits ) + { + int ppux, ppuy; + GetScrollPixelsPerUnit( &ppux, &ppuy ); + GetViewStart( &m_PanStartCenter.x, &m_PanStartCenter.y ); + m_PanStartCenter.x *= ppux; + m_PanStartCenter.y *= ppuy; + } + else + m_PanStartCenter = GetParent()->GetScreen()->GetScrollCenterPosition(); + + m_PanStartEventPosition = event.GetPosition(); + + INSTALL_UNBUFFERED_DC( dc, this ); + CrossHairOff( &dc ); + } + + if( event.ButtonUp( wxMOUSE_BTN_MIDDLE ) && m_enableMiddleButtonPan ) + { + INSTALL_UNBUFFERED_DC( dc, this ); + CrossHairOn( &dc ); + } + + if( event.MiddleIsDown() && m_enableMiddleButtonPan ) + { + wxPoint currentPosition = event.GetPosition(); + if( m_panScrollbarLimits ) + { + int x, y; + int ppux, ppuy; + int maxX, maxY; + int vsizeX, vsizeY; + int csizeX, csizeY; + + GetScrollPixelsPerUnit( &ppux, &ppuy ); + GetVirtualSize( &vsizeX, &vsizeY ); + GetClientSize( &csizeX, &csizeY ); + + maxX = vsizeX - csizeX; + maxY = vsizeY - csizeY; + + x = m_PanStartCenter.x + m_PanStartEventPosition.x - currentPosition.x; + y = m_PanStartCenter.y + m_PanStartEventPosition.y - currentPosition.y; + + bool shouldMoveCursor = false; + + if( x < 0 ) + { + currentPosition.x += x; + x = 0; + shouldMoveCursor = true; + } + + if( y < 0 ) + { + currentPosition.y += y; + y = 0; + shouldMoveCursor = true; + } + + if( x > maxX ) + { + currentPosition.x += ( x - maxX ); + x = maxX; + shouldMoveCursor = true; + } + + if( y > maxY ) + { + currentPosition.y += ( y - maxY ); + y = maxY; + shouldMoveCursor = true; + } + + if ( shouldMoveCursor ) + WarpPointer( currentPosition.x, currentPosition.y ); + + Scroll( x/ppux, y/ppuy ); + + Refresh(); + Update(); + } + else + { + double scale = GetParent()->GetScreen()->GetScalingFactor(); + int x = m_PanStartCenter.x + + wxRound( (double) ( m_PanStartEventPosition.x - currentPosition.x ) / scale ); + int y = m_PanStartCenter.y + + wxRound( (double) ( m_PanStartEventPosition.y - currentPosition.y ) / scale ); + + GetParent()->RedrawScreen( wxPoint( x, y ), false ); + } + } + + if( event.ButtonUp( wxMOUSE_BTN_MIDDLE ) && !m_enableMiddleButtonPan && + (screen->m_BlockLocate.GetState() == STATE_NO_BLOCK) ) { // The middle button has been released, with no block command: // We use it for a zoom center at cursor position command @@ -1010,7 +1124,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) screen->m_BlockLocate.SetOrigin( m_CursorStartPos ); } - if( event.LeftDown() || event.MiddleDown() ) + if( event.LeftDown() || ( !m_enableMiddleButtonPan && event.MiddleDown() ) ) { if( screen->m_BlockLocate.GetState() == STATE_BLOCK_MOVE ) { @@ -1020,7 +1134,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) } } else if( ( m_canStartBlock >= 0 ) - && ( event.LeftIsDown() || event.MiddleIsDown() ) + && ( event.LeftIsDown() || ( !m_enableMiddleButtonPan && event.MiddleIsDown() ) ) && !IsMouseCaptured() ) { // Mouse is dragging: if no block in progress, start a block command. @@ -1029,7 +1143,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) // Start a block command int cmd_type = kbstat; - if( event.MiddleIsDown() ) + if( !m_enableMiddleButtonPan && event.MiddleIsDown() ) cmd_type |= MOUSE_MIDDLE; /* A block command is started if the drag is enough. A small @@ -1055,7 +1169,8 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) } } - if( event.ButtonUp( wxMOUSE_BTN_LEFT ) || event.ButtonUp( wxMOUSE_BTN_MIDDLE ) ) + if( event.ButtonUp( wxMOUSE_BTN_LEFT ) || + ( !m_enableMiddleButtonPan && event.ButtonUp( wxMOUSE_BTN_MIDDLE ) ) ) { /* Release the mouse button: end of block. * The command can finish (DELETE) or have a next command (MOVE, diff --git a/cvpcb/dialogs/dialog_display_options.cpp b/cvpcb/dialogs/dialog_display_options.cpp index 468aaced11..2140fd0073 100644 --- a/cvpcb/dialogs/dialog_display_options.cpp +++ b/cvpcb/dialogs/dialog_display_options.cpp @@ -54,6 +54,9 @@ void DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::initDialog() m_TextDisplayOption->SetSelection( m_Parent->m_DisplayModText ); m_IsShowPadFill->SetValue( m_Parent->m_DisplayPadFill ); m_IsShowPadNum->SetValue( m_Parent->m_DisplayPadNum ); + m_IsMiddleButtonPan->SetValue( m_Parent->GetCanvas()->GetEnableMiddleButtonPan() ); + m_IsMiddleButtonPanLimited->SetValue( m_Parent->GetCanvas()->GetMiddleButtonPanLimited() ); + m_IsMiddleButtonPanLimited->Enable( m_IsMiddleButtonPan->GetValue() ); } @@ -68,6 +71,8 @@ void DIALOG_FOOTPRINTS_DISPLAY_OPTIONS::UpdateObjectSettings( void ) m_Parent->m_DisplayModText = m_TextDisplayOption->GetSelection(); m_Parent->m_DisplayPadNum = m_IsShowPadNum->GetValue(); m_Parent->m_DisplayPadFill = m_IsShowPadFill->GetValue(); + m_Parent->GetCanvas()->SetEnableMiddleButtonPan( m_IsMiddleButtonPan->GetValue() ); + m_Parent->GetCanvas()->SetMiddleButtonPanLimited( m_IsMiddleButtonPanLimited->GetValue() ); m_Parent->GetCanvas()->Refresh(); } diff --git a/cvpcb/dialogs/dialog_display_options.h b/cvpcb/dialogs/dialog_display_options.h index 84f11f3564..3b63d7c849 100644 --- a/cvpcb/dialogs/dialog_display_options.h +++ b/cvpcb/dialogs/dialog_display_options.h @@ -1,18 +1,39 @@ -//////////////////////////////////////////// -// Name: dialog_display_options.h -// Licence: GPL -//////////////////////////////////////////// +/** + * @file dialog_display_options.h + */ #ifndef _DIALOG_DISPLAY_OPTIONS_H_ #define _DIALOG_DISPLAY_OPTIONS_H_ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + #include -//////////////////////////////////////////// -/// Class DIALOG_FOOTPRINTS_DISPLAY_OPTIONS -// derived from DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE, -// created by wxformBuilder -//////////////////////////////////////////// +/* Class DIALOG_FOOTPRINTS_DISPLAY_OPTIONS + * derived from DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE, + * created by wxformBuilder +*/ class DIALOG_FOOTPRINTS_DISPLAY_OPTIONS : public DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE @@ -28,9 +49,13 @@ public: private: void initDialog( ); void UpdateObjectSettings( void ); - virtual void OnApplyClick( wxCommandEvent& event ); - virtual void OnCancelClick( wxCommandEvent& event ); - virtual void OnOkClick( wxCommandEvent& event ); + void OnApplyClick( wxCommandEvent& event ); + void OnCancelClick( wxCommandEvent& event ); + void OnOkClick( wxCommandEvent& event ); + void OnMiddleBtnPanEnbl( wxCommandEvent& event ) + { + m_IsMiddleButtonPanLimited->Enable( m_IsMiddleButtonPan->GetValue() ); + } }; #endif // _DIALOG_DISPLAY_OPTIONS_H_ diff --git a/cvpcb/dialogs/dialog_display_options_base.cpp b/cvpcb/dialogs/dialog_display_options_base.cpp index 1cff3e15d6..ce5dc7c283 100644 --- a/cvpcb/dialogs/dialog_display_options_base.cpp +++ b/cvpcb/dialogs/dialog_display_options_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Apr 16 2008) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -19,30 +19,54 @@ DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE( wxBoxSizer* bUpperSizer; bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + wxBoxSizer* bSizerLeft; + bSizerLeft = new wxBoxSizer( wxVERTICAL ); + wxString m_EdgesDisplayOptionChoices[] = { _("Line"), _("Filled"), _("Sketch") }; int m_EdgesDisplayOptionNChoices = sizeof( m_EdgesDisplayOptionChoices ) / sizeof( wxString ); m_EdgesDisplayOption = new wxRadioBox( this, ID_EDGE_SELECT, _("Edges:"), wxDefaultPosition, wxDefaultSize, m_EdgesDisplayOptionNChoices, m_EdgesDisplayOptionChoices, 1, wxRA_SPECIFY_COLS ); m_EdgesDisplayOption->SetSelection( 0 ); - bUpperSizer->Add( m_EdgesDisplayOption, 1, wxALL|wxEXPAND, 5 ); + bSizerLeft->Add( m_EdgesDisplayOption, 1, wxALL|wxEXPAND, 5 ); wxString m_TextDisplayOptionChoices[] = { _("Line"), _("Filled"), _("Sketch") }; int m_TextDisplayOptionNChoices = sizeof( m_TextDisplayOptionChoices ) / sizeof( wxString ); m_TextDisplayOption = new wxRadioBox( this, ID_TEXT_SELECT, _("Texts:"), wxDefaultPosition, wxDefaultSize, m_TextDisplayOptionNChoices, m_TextDisplayOptionChoices, 1, wxRA_SPECIFY_COLS ); m_TextDisplayOption->SetSelection( 0 ); - bUpperSizer->Add( m_TextDisplayOption, 1, wxALL|wxEXPAND, 5 ); + bSizerLeft->Add( m_TextDisplayOption, 1, wxALL|wxEXPAND, 5 ); - wxStaticBoxSizer* sbSizer1; - sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Pads:") ), wxVERTICAL ); + + bUpperSizer->Add( bSizerLeft, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizerRight; + bSizerRight = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizerPads; + sbSizerPads = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Pads:") ), wxVERTICAL ); m_IsShowPadFill = new wxCheckBox( this, ID_PADFILL_OPT, _("Fill &pad"), wxDefaultPosition, wxDefaultSize, 0 ); - - sbSizer1->Add( m_IsShowPadFill, 0, wxALL|wxEXPAND, 5 ); + sbSizerPads->Add( m_IsShowPadFill, 0, wxALL|wxEXPAND, 5 ); m_IsShowPadNum = new wxCheckBox( this, wxID_ANY, _("Show pad &number"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPads->Add( m_IsShowPadNum, 0, wxALL|wxEXPAND, 5 ); - sbSizer1->Add( m_IsShowPadNum, 0, wxALL|wxEXPAND, 5 ); - bUpperSizer->Add( sbSizer1, 1, wxEXPAND|wxALL, 5 ); + bSizerRight->Add( sbSizerPads, 1, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbSizerViewOpt; + sbSizerViewOpt = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("View:") ), wxVERTICAL ); + + m_IsMiddleButtonPan = new wxCheckBox( this, wxID_ANY, _("Middle Button PAN Enabled"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerViewOpt->Add( m_IsMiddleButtonPan, 0, wxALL|wxEXPAND, 5 ); + + m_IsMiddleButtonPanLimited = new wxCheckBox( this, wxID_ANY, _("Middle Button PAN Limited"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerViewOpt->Add( m_IsMiddleButtonPanLimited, 0, wxALL, 5 ); + + + bSizerRight->Add( sbSizerViewOpt, 1, wxALL|wxEXPAND, 5 ); + + + bUpperSizer->Add( bSizerRight, 1, wxEXPAND, 5 ); + bSizerMain->Add( bUpperSizer, 1, wxEXPAND, 5 ); @@ -57,12 +81,15 @@ DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE( m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); m_sdbSizer1->Realize(); + bSizerMain->Add( m_sdbSizer1, 0, wxEXPAND|wxALL, 5 ); + this->SetSizer( bSizerMain ); this->Layout(); // Connect Events + m_IsMiddleButtonPan->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::OnMiddleBtnPanEnbl ), NULL, this ); m_sdbSizer1Apply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::OnApplyClick ), NULL, this ); m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::OnCancelClick ), NULL, this ); m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::OnOkClick ), NULL, this ); @@ -71,7 +98,9 @@ DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::~DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE() { // Disconnect Events + m_IsMiddleButtonPan->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::OnMiddleBtnPanEnbl ), NULL, this ); m_sdbSizer1Apply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::OnApplyClick ), NULL, this ); m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::OnCancelClick ), NULL, this ); m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE::OnOkClick ), NULL, this ); + } diff --git a/cvpcb/dialogs/dialog_display_options_base.fbp b/cvpcb/dialogs/dialog_display_options_base.fbp index f386ea182e..28c2d13af8 100644 --- a/cvpcb/dialogs/dialog_display_options_base.fbp +++ b/cvpcb/dialogs/dialog_display_options_base.fbp @@ -1,10 +1,14 @@ - + C++ 1 + source_name + 0 + 0 + res UTF-8 connect dialog_display_options_base @@ -16,32 +20,78 @@ . 1 + 1 + 1 0 0 + 1 + 1 + 1 + 1 + + 0 + + + + + + 1 + 0 + 1 + 1 + 0 + Dock + 0 + Left 1 + impl_virtual + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE + 1 + + + 1 - 331,164 + Resizable + 1 + 362,251 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Display Options + 0 + + wxFILTER_NONE + wxDefaultValidator + + + + + + + @@ -86,152 +136,78 @@ none 5 - wxALL|wxEXPAND + wxEXPAND 1 - - - "Line" "Filled" "Sketch" - - 1 - - - 0 - ID_EDGE_SELECT - Edges: - 1 - + - m_EdgesDisplayOption - protected - - 0 - - wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - - "Line" "Filled" "Sketch" - - 1 - - - 0 - ID_TEXT_SELECT - Texts: - 1 - - - m_TextDisplayOption - protected - - 0 - - wxRA_SPECIFY_COLS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALL - 1 - - wxID_ANY - Pads: - - sbSizer1 + bSizerLeft wxVERTICAL none - 5 wxALL|wxEXPAND - 0 - + 1 + + 1 + 1 + 1 + 1 + + + + + - 0 + + 1 + 0 + "Line" "Filled" "Sketch" + 1 + 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 - ID_PADFILL_OPT - Fill &pad + ID_EDGE_SELECT + Edges: + 1 + + 0 + + 0 - m_IsShowPadFill + 1 + m_EdgesDisplayOption + 1 + + protected + 1 + Resizable + 0 + 1 - + wxRA_SPECIFY_COLS + 0 + + wxFILTER_NONE + wxDefaultValidator + - @@ -248,6 +224,7 @@ + @@ -259,31 +236,68 @@ 5 wxALL|wxEXPAND - 0 - + 1 + + 1 + 1 + 1 + 1 + + + + + - 0 + + 1 + 0 + "Line" "Filled" "Sketch" + 1 + 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 - wxID_ANY - Show pad &number + ID_TEXT_SELECT + Texts: + 1 + + 0 + + 0 - m_IsShowPadNum + 1 + m_TextDisplayOption + 1 + + protected + 1 + Resizable + 0 + 1 - + wxRA_SPECIFY_COLS + 0 + + wxFILTER_NONE + wxDefaultValidator + - @@ -300,6 +314,7 @@ + @@ -310,6 +325,397 @@ + + 5 + wxEXPAND + 1 + + + bSizerRight + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 1 + + wxID_ANY + Pads: + + sbSizerPads + wxVERTICAL + none + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + ID_PADFILL_OPT + Fill &pad + + 0 + + + 0 + + 1 + m_IsShowPadFill + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show pad &number + + 0 + + + 0 + + 1 + m_IsShowPadNum + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 1 + + wxID_ANY + Pan: + + sbSizerViewOpt + wxVERTICAL + none + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Middle Button PAN Enabled + + 0 + + + 0 + + 1 + m_IsMiddleButtonPan + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnMiddleBtnPanEnbl + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Middle Button PAN Limited + + 0 + + + 0 + + 1 + m_IsMiddleButtonPanLimited + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -317,22 +723,58 @@ wxEXPAND | wxALL 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 + 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 m_staticline1 + 1 + + protected + 1 + Resizable + 1 wxLI_HORIZONTAL + 0 + + wxFILTER_NONE + wxDefaultValidator + diff --git a/cvpcb/dialogs/dialog_display_options_base.h b/cvpcb/dialogs/dialog_display_options_base.h index b1d5b33f55..4ad10bbd32 100644 --- a/cvpcb/dialogs/dialog_display_options_base.h +++ b/cvpcb/dialogs/dialog_display_options_base.h @@ -1,23 +1,24 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Apr 16 2008) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// -#ifndef __dialog_display_options_base__ -#define __dialog_display_options_base__ +#ifndef __DIALOG_DISPLAY_OPTIONS_BASE_H__ +#define __DIALOG_DISPLAY_OPTIONS_BASE_H__ +#include +#include #include - #include #include #include #include #include #include -#include #include +#include #include #include #include @@ -41,6 +42,8 @@ class DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE : public wxDialog wxRadioBox* m_TextDisplayOption; wxCheckBox* m_IsShowPadFill; wxCheckBox* m_IsShowPadNum; + wxCheckBox* m_IsMiddleButtonPan; + wxCheckBox* m_IsMiddleButtonPanLimited; wxStaticLine* m_staticline1; wxStdDialogButtonSizer* m_sdbSizer1; wxButton* m_sdbSizer1OK; @@ -48,15 +51,17 @@ class DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE : public wxDialog wxButton* m_sdbSizer1Cancel; // Virtual event handlers, overide them in your derived class - virtual void OnApplyClick( wxCommandEvent& event ){ event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } - virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnMiddleBtnPanEnbl( wxCommandEvent& event ) { event.Skip(); } + virtual void OnApplyClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } public: - DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Display Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 331,164 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + + DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Display Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 362,251 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_FOOTPRINTS_DISPLAY_OPTIONS_BASE(); }; -#endif //__dialog_display_options_base__ +#endif //__DIALOG_DISPLAY_OPTIONS_BASE_H__ diff --git a/eeschema/dialogs/dialog_eeschema_options.h b/eeschema/dialogs/dialog_eeschema_options.h index 7585ff79ff..686cbba050 100644 --- a/eeschema/dialogs/dialog_eeschema_options.h +++ b/eeschema/dialogs/dialog_eeschema_options.h @@ -96,6 +96,26 @@ public: return m_checkShowHiddenPins->GetValue(); } + void SetEnableMiddleButtonPan( bool enable ) + { + m_checkEnableMiddleButtonPan->SetValue( enable ); + m_checkMiddleButtonPanLimited->Enable( enable ); + } + + bool GetEnableMiddleButtonPan( void ) + { + return m_checkEnableMiddleButtonPan->GetValue(); + } + + void SetMiddleButtonPanLimited( bool enable ) + { + m_checkMiddleButtonPanLimited->SetValue( enable ); + } + bool GetMiddleButtonPanLimited( void ) + { + return m_checkEnableMiddleButtonPan->GetValue(); + } + void SetEnableAutoPan( bool enable ) { m_checkAutoPan->SetValue( enable ); @@ -126,6 +146,12 @@ public: /** Get the field \a aNdx name from the fields textctrl */ wxString GetFieldName( int aNdx ); + +private: + void OnMiddleBtnPanEnbl( wxCommandEvent& event ) + { + m_checkMiddleButtonPanLimited->Enable( GetEnableMiddleButtonPan() ); + } }; #endif // __dialog_eeschema_options__ diff --git a/eeschema/dialogs/dialog_eeschema_options_base.cpp b/eeschema/dialogs/dialog_eeschema_options_base.cpp index 04f2ece650..025fd1a605 100644 --- a/eeschema/dialogs/dialog_eeschema_options_base.cpp +++ b/eeschema/dialogs/dialog_eeschema_options_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 8 2010) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -11,6 +11,7 @@ BEGIN_EVENT_TABLE( DIALOG_EESCHEMA_OPTIONS_BASE, wxDialog ) EVT_CHOICE( wxID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnChooseUnits ) + EVT_CHECKBOX( xwID_ANY, DIALOG_EESCHEMA_OPTIONS_BASE::_wxFB_OnMiddleBtnPanEnbl ) END_EVENT_TABLE() DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) @@ -131,6 +132,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx m_staticText23->Wrap( -1 ); fgSizer1->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); + bSizer3->Add( fgSizer1, 0, wxALIGN_CENTER|wxEXPAND, 0 ); wxBoxSizer* bSizer2; @@ -142,6 +144,12 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx m_checkShowHiddenPins = new wxCheckBox( m_panel1, wxID_ANY, _("Show hi&dden pins"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer2->Add( m_checkShowHiddenPins, 0, wxALL|wxEXPAND, 3 ); + m_checkEnableMiddleButtonPan = new wxCheckBox( m_panel1, xwID_ANY, _("Enable middle mouse button panning"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer2->Add( m_checkEnableMiddleButtonPan, 0, wxALL, 3 ); + + m_checkMiddleButtonPanLimited = new wxCheckBox( m_panel1, wxID_ANY, _("Middle mouse button panning limited by current toolbar panning"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer2->Add( m_checkMiddleButtonPanLimited, 0, wxALL, 3 ); + m_checkAutoPan = new wxCheckBox( m_panel1, wxID_ANY, _("Enable automatic &panning"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer2->Add( m_checkAutoPan, 0, wxALL|wxEXPAND, 3 ); @@ -151,13 +159,16 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx m_checkPageLimits = new wxCheckBox( m_panel1, wxID_ANY, _("Show p&age limits"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer2->Add( m_checkPageLimits, 0, wxALL|wxEXPAND, 3 ); + bSizer3->Add( bSizer2, 0, wxEXPAND, 0 ); bSizer3->Add( 0, 0, 1, wxALL|wxEXPAND, 10 ); + p1mainSizer->Add( bSizer3, 1, wxALL|wxEXPAND, 12 ); + m_panel1->SetSizer( p1mainSizer ); m_panel1->Layout(); p1mainSizer->Fit( m_panel1 ); @@ -175,6 +186,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx m_staticText211->Wrap( 400 ); bSizer8->Add( m_staticText211, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); + bSizer6->Add( bSizer8, 0, wxEXPAND, 5 ); wxBoxSizer* bSizer7; @@ -242,10 +254,13 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx m_fieldName8 = new wxTextCtrl( m_panel2, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); fgSizer2->Add( m_fieldName8, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 ); + bSizer7->Add( fgSizer2, 1, wxALIGN_CENTER|wxEXPAND, 5 ); + bSizer6->Add( bSizer7, 1, wxALL|wxEXPAND, 12 ); + m_panel2->SetSizer( bSizer6 ); m_panel2->Layout(); bSizer6->Fit( m_panel2 ); @@ -259,10 +274,13 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); m_sdbSizer1->Realize(); + bOptionsSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 12 ); + mainSizer->Add( bOptionsSizer, 1, 0, 12 ); + this->SetSizer( mainSizer ); this->Layout(); mainSizer->Fit( this ); diff --git a/eeschema/dialogs/dialog_eeschema_options_base.fbp b/eeschema/dialogs/dialog_eeschema_options_base.fbp index c1d27f49f9..ca9fb73e2f 100644 --- a/eeschema/dialogs/dialog_eeschema_options_base.fbp +++ b/eeschema/dialogs/dialog_eeschema_options_base.fbp @@ -1,12 +1,14 @@ - + C++ 1 source_name + 0 0 + res UTF-8 table dialog_eeschema_options_base @@ -18,29 +20,62 @@ . 1 + 1 1 1 0 + 1 + 1 + 1 + 1 + + 0 + + + + + + 1 wxBOTH + 0 + 1 1 + 0 + Dock + 0 + Left 1 impl_virtual + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 DIALOG_EESCHEMA_OPTIONS_BASE + 1 + + + 1 + Resizable + 1 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Schematic Editor Options + 0 wxFILTER_NONE @@ -51,6 +86,12 @@ + + + + + + @@ -84,37 +125,68 @@ mainSizer wxVERTICAL none - + 12 1 - + bOptionsSizer wxVERTICAL none - + 0 wxEXPAND 1 - + + 1 + 1 + 1 + 1 + + + + + wxSYS_COLOUR_BTNFACE + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 m_notebook1 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -148,26 +220,57 @@ - + General Options 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 m_panel1 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -199,25 +302,25 @@ - + p1mainSizer wxHORIZONTAL none - + 12 wxALL|wxEXPAND 1 - + bSizer3 wxVERTICAL none - + 0 wxALIGN_CENTER|wxEXPAND 0 - + 3 wxHORIZONTAL 0,1,2 @@ -229,28 +332,59 @@ none 8 0 - + 3 wxALIGN_CENTER_VERTICAL|wxALL 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Measurement &units: + + 0 + + 0 + 1 m_staticText2 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -285,28 +419,60 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 m_choiceUnits + 1 + + protected + 1 + Resizable 0 + 1 + + 0 wxFILTER_NONE @@ -341,38 +507,69 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxEXPAND 1 - + 0 protected 0 - + 3 wxALIGN_CENTER_VERTICAL|wxALL 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY &Grid size: + + 0 + + 0 + 1 m_staticText3 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -407,28 +604,60 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 m_choiceGridSize + 1 + + protected + 1 + Resizable 0 + 1 + + 0 wxFILTER_NONE @@ -463,28 +692,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY mils + + 0 + + 0 + 1 m_staticGridUnits + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -519,28 +779,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Default &line width: + + 0 + + 0 + 1 m_staticText5 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -575,30 +866,61 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY 0 100 + + 0 0 + + 0 + 1 m_spinLineWidth + 1 + + protected + 1 + Resizable + 1 wxSP_ARROW_KEYS|wxSP_WRAP + 0 wxFILTER_NONE @@ -635,28 +957,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY mils + + 0 + + 0 + 1 m_staticLineWidthUnits + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -691,28 +1044,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Default text &size: + + 0 + + 0 + 1 m_staticText7 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -747,30 +1131,61 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY 0 1000 + + 0 0 + + 0 + 1 m_spinTextSize + 1 + + protected + 1 + Resizable + 1 wxSP_ARROW_KEYS|wxSP_WRAP + 0 wxFILTER_NONE @@ -807,28 +1222,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY mils + + 0 + + 0 + 1 m_staticTextSizeUnits + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -863,28 +1309,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Repeat draw item &horizontal displacement: + + 0 + + 0 + 1 m_staticText9 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -919,30 +1396,61 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY 0 500 + + 0 -500 + + 0 + 1 m_spinRepeatHorizontal + 1 + + protected + 1 + Resizable + 1 wxSP_ARROW_KEYS|wxSP_WRAP + 0 wxFILTER_NONE @@ -979,28 +1487,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY mils + + 0 + + 0 + 1 m_staticRepeatXUnits + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1035,28 +1574,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Repeat draw item &vertical displacement: + + 0 + + 0 + 1 m_staticText12 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1091,30 +1661,61 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY 100 500 + + 0 -500 + + 0 + 1 m_spinRepeatVertical + 1 + + protected + 1 + Resizable + 1 wxSP_ARROW_KEYS|wxSP_WRAP + 0 wxFILTER_NONE @@ -1151,28 +1752,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY mils + + 0 + + 0 + 1 m_staticRepeatYUnits + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1207,28 +1839,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY &Repeat label increment: + + 0 + + 0 + 1 m_staticText16 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1263,30 +1926,61 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY 1 10 + + 0 0 + + 0 + 1 m_spinRepeatLabel + 1 + + protected + 1 + Resizable + 1 wxSP_ARROW_KEYS|wxSP_WRAP + 0 wxFILTER_NONE @@ -1323,38 +2017,69 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxEXPAND 1 - + 0 protected 0 - + 3 wxALIGN_CENTER_VERTICAL|wxALL 1 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Auto save time interval: + + 0 + + 0 + 1 m_staticText221 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1389,30 +2114,61 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 ID_M_SPINAUTOSAVEINTERVAL 10 1000 + + 0 0 + + 0 + 1 m_spinAutoSaveInterval + 1 + + protected + 1 + Resizable + 1 wxSP_ARROW_KEYS + 0 wxFILTER_NONE @@ -1449,28 +2205,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY minutes + + 0 + + 0 + 1 m_staticText23 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1507,38 +2294,69 @@ - + 0 wxEXPAND 0 - + bSizer2 wxVERTICAL none - + 3 wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Show g&rid + + 0 + + 0 + 1 m_checkShowGrid + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1573,29 +2391,60 @@ - + 3 wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Show hi&dden pins + + 0 + + 0 + 1 m_checkShowHiddenPins + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1632,27 +2481,234 @@ 3 - wxALL|wxEXPAND + wxALL 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 + 0 + xwID_ANY + Enable middle mouse button panning + + 0 + + + 0 + + 1 + m_checkEnableMiddleButtonPan + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnMiddleBtnPanEnbl + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Middle mouse button panning limited by current toolbar panning + + 0 + + + 0 + + 1 + m_checkMiddleButtonPanLimited + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 0 wxID_ANY Enable automatic &panning + + 0 + + 0 + 1 m_checkAutoPan + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1687,29 +2743,60 @@ - + 3 wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Allow buses and wires to be placed in H or V &orientation only + + 0 + + 0 + 1 m_checkHVOrientation + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1744,29 +2831,60 @@ - + 3 wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Show p&age limits + + 0 + + 0 + 1 m_checkPageLimits + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1803,11 +2921,11 @@ - + 10 wxALL|wxEXPAND 1 - + 0 protected 0 @@ -1818,26 +2936,57 @@ - + Template Field Names 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 m_panel2 + 1 + + protected + 1 + Resizable + 1 + 0 User defined field names for schematic components. wxFILTER_NONE @@ -1869,42 +3018,73 @@ - + bSizer6 wxVERTICAL none - + 5 wxEXPAND 0 - + bSizer8 wxVERTICAL none - + 5 wxALIGN_CENTER_HORIZONTAL|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Please enter fieldnames which you want presented in the component fieldname (property) editors. Names may not include (, ), or " characters. + + 0 + + 0 + 1 m_staticText211 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -1941,16 +3121,16 @@ - + 12 wxALL|wxEXPAND 1 - + bSizer7 wxVERTICAL none - + 5 wxALIGN_CENTER|wxEXPAND 1 @@ -1966,28 +3146,59 @@ none 8 0 - + 3 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Custom field 1 + + 0 + + 0 + 1 m_staticText15 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2022,28 +3233,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 0 + + 0 + 1 m_fieldName1 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2082,28 +3324,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Custom field 2 + + 0 + + 0 + 1 m_staticText161 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2138,28 +3411,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 0 + + 0 + 1 m_fieldName2 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2198,28 +3502,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Custom field 3 + + 0 + + 0 + 1 m_staticText17 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2254,28 +3589,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 0 + + 0 + 1 m_fieldName3 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2314,28 +3680,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Custom field 4 + + 0 + + 0 + 1 m_staticText18 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2370,28 +3767,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 0 + + 0 + 1 m_fieldName4 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2430,28 +3858,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Custom field 5 + + 0 + + 0 + 1 m_staticText19 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2486,28 +3945,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 0 + + 0 + 1 m_fieldName5 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2546,28 +4036,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Custom field 6 + + 0 + + 0 + 1 m_staticText20 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2602,28 +4123,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 0 + + 0 + 1 m_fieldName6 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2662,28 +4214,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Custom field 7 + + 0 + + 0 + 1 m_staticText21 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2718,28 +4301,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 0 + + 0 + 1 m_fieldName7 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2778,28 +4392,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Custom field 8 + + 0 + + 0 + 1 m_staticText22 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2834,28 +4479,59 @@ - + 3 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 - + + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 0 + + 0 + 1 m_fieldName8 + 1 + + protected + 1 + Resizable + 1 + 0 wxFILTER_NONE @@ -2903,11 +4579,11 @@ - + 12 wxALL|wxEXPAND 0 - + 0 1 0 diff --git a/eeschema/dialogs/dialog_eeschema_options_base.h b/eeschema/dialogs/dialog_eeschema_options_base.h index ba3305049c..343cc230c2 100644 --- a/eeschema/dialogs/dialog_eeschema_options_base.h +++ b/eeschema/dialogs/dialog_eeschema_options_base.h @@ -1,15 +1,16 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 8 2010) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// -#ifndef __dialog_eeschema_options_base__ -#define __dialog_eeschema_options_base__ +#ifndef __DIALOG_EESCHEMA_OPTIONS_BASE_H__ +#define __DIALOG_EESCHEMA_OPTIONS_BASE_H__ +#include +#include #include - #include #include #include @@ -41,19 +42,20 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public wxDialog // Private event handlers void _wxFB_OnChooseUnits( wxCommandEvent& event ){ OnChooseUnits( event ); } + void _wxFB_OnMiddleBtnPanEnbl( wxCommandEvent& event ){ OnMiddleBtnPanEnbl( event ); } protected: enum { ID_M_SPINAUTOSAVEINTERVAL = 1000, + xwID_ANY }; wxNotebook* m_notebook1; wxPanel* m_panel1; wxStaticText* m_staticText2; wxChoice* m_choiceUnits; - wxStaticText* m_staticText3; wxChoice* m_choiceGridSize; wxStaticText* m_staticGridUnits; @@ -71,16 +73,16 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public wxDialog wxStaticText* m_staticRepeatYUnits; wxStaticText* m_staticText16; wxSpinCtrl* m_spinRepeatLabel; - wxStaticText* m_staticText221; wxSpinCtrl* m_spinAutoSaveInterval; wxStaticText* m_staticText23; wxCheckBox* m_checkShowGrid; wxCheckBox* m_checkShowHiddenPins; + wxCheckBox* m_checkEnableMiddleButtonPan; + wxCheckBox* m_checkMiddleButtonPanLimited; wxCheckBox* m_checkAutoPan; wxCheckBox* m_checkHVOrientation; wxCheckBox* m_checkPageLimits; - wxPanel* m_panel2; wxStaticText* m_staticText211; wxStaticText* m_staticText15; @@ -105,13 +107,14 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public wxDialog // Virtual event handlers, overide them in your derived class virtual void OnChooseUnits( wxCommandEvent& event ) { event.Skip(); } + virtual void OnMiddleBtnPanEnbl( wxCommandEvent& event ) { event.Skip(); } public: - DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Schematic Editor Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Schematic Editor Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_EESCHEMA_OPTIONS_BASE(); }; -#endif //__dialog_eeschema_options_base__ +#endif //__DIALOG_EESCHEMA_OPTIONS_BASE_H__ diff --git a/eeschema/eeschema_config.cpp b/eeschema/eeschema_config.cpp index 3394abbc83..d27c50d3b4 100644 --- a/eeschema/eeschema_config.cpp +++ b/eeschema/eeschema_config.cpp @@ -215,6 +215,8 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event ) dlg.SetAutoSaveInterval( GetAutoSaveInterval() / 60 ); dlg.SetShowGrid( IsGridVisible() ); dlg.SetShowHiddenPins( m_showAllPins ); + dlg.SetEnableMiddleButtonPan( m_canvas->GetEnableMiddleButtonPan() ); + dlg.SetMiddleButtonPanLimited( m_canvas->GetMiddleButtonPanLimited() ); dlg.SetEnableAutoPan( m_canvas->GetEnableAutoPan() ); dlg.SetEnableHVBusOrientation( g_HVLines ); dlg.SetShowPageLimits( g_ShowPageLimits ); @@ -246,6 +248,8 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event ) SetAutoSaveInterval( dlg.GetAutoSaveInterval() * 60 ); SetGridVisibility( dlg.GetShowGrid() ); m_showAllPins = dlg.GetShowHiddenPins(); + m_canvas->SetEnableMiddleButtonPan( dlg.GetEnableMiddleButtonPan() ); + m_canvas->SetMiddleButtonPanLimited( dlg.GetMiddleButtonPanLimited() ); m_canvas->SetEnableAutoPan( dlg.GetEnableAutoPan() ); g_HVLines = dlg.GetEnableHVBusOrientation(); g_ShowPageLimits = dlg.GetShowPageLimits(); diff --git a/gerbview/dialogs/gerbview_dialog_display_options_frame.cpp b/gerbview/dialogs/gerbview_dialog_display_options_frame.cpp index b13b80223c..64a2866b3e 100644 --- a/gerbview/dialogs/gerbview_dialog_display_options_frame.cpp +++ b/gerbview/dialogs/gerbview_dialog_display_options_frame.cpp @@ -31,6 +31,10 @@ private: void OnOKBUttonClick( wxCommandEvent& event ); void OnCancelButtonClick( wxCommandEvent& event ); void initOptDialog( ); + void OnMiddleBtnPanEnbl( wxCommandEvent& event ) + { + m_OptMiddleButtonPanLimited->Enable( m_OptMiddleButtonPan->GetValue() ); + } }; @@ -93,6 +97,10 @@ void DIALOG_DISPLAY_OPTIONS::initOptDialog( ) } m_OptDisplayDCodes->SetValue( m_Parent->IsElementVisible( DCODES_VISIBLE ) ); + + m_OptMiddleButtonPan->SetValue( m_Parent->GetCanvas()->GetEnableMiddleButtonPan() ); + m_OptMiddleButtonPanLimited->SetValue( m_Parent->GetCanvas()->GetMiddleButtonPanLimited() ); + m_OptMiddleButtonPanLimited->Enable( m_OptMiddleButtonPan->GetValue() ); } @@ -138,6 +146,11 @@ void DIALOG_DISPLAY_OPTIONS::OnOKBUttonClick( wxCommandEvent& event ) m_Parent->SetPageSettings( pageInfo ); + m_Parent->GetCanvas()->SetEnableMiddleButtonPan( m_OptMiddleButtonPan->GetValue() ); + m_Parent->GetCanvas()->SetMiddleButtonPanLimited( m_OptMiddleButtonPanLimited->GetValue() ); + + m_Parent->GetCanvas()->Refresh(); + EndModal( 1 ); } diff --git a/gerbview/dialogs/gerbview_dialog_display_options_frame_base.cpp b/gerbview/dialogs/gerbview_dialog_display_options_frame_base.cpp index 1804883163..3f5e2a3a14 100644 --- a/gerbview/dialogs/gerbview_dialog_display_options_frame_base.cpp +++ b/gerbview/dialogs/gerbview_dialog_display_options_frame_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 8 2010) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -40,6 +40,11 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi m_CursorShape->SetSelection( 1 ); bLeftSizer->Add( m_CursorShape, 0, wxALL|wxEXPAND, 5 ); + m_OptDisplayDCodes = new wxCheckBox( this, wxID_ANY, _("Show D codes"), wxDefaultPosition, wxDefaultSize, 0 ); + m_OptDisplayDCodes->SetValue(true); + bLeftSizer->Add( m_OptDisplayDCodes, 0, wxALL, 5 ); + + bUpperSizer->Add( bLeftSizer, 0, wxEXPAND, 5 ); wxBoxSizer* bMiddleSizer; @@ -63,6 +68,7 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi m_OptDisplayPolygons->SetSelection( 1 ); bMiddleSizer->Add( m_OptDisplayPolygons, 0, wxALL|wxEXPAND, 5 ); + bUpperSizer->Add( bMiddleSizer, 0, wxEXPAND, 5 ); @@ -77,15 +83,22 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi m_ShowPageLimits->SetSelection( 0 ); bRightSizer->Add( m_ShowPageLimits, 0, wxALL|wxEXPAND, 5 ); + wxStaticBoxSizer* bLeftBottomSizer; + bLeftBottomSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Pan:") ), wxVERTICAL ); - bRightSizer->Add( 20, 20, 0, 0, 5 ); + m_OptMiddleButtonPan = new wxCheckBox( this, wxID_ANY, _("Middle Button PAN Enabled"), wxDefaultPosition, wxDefaultSize, 0 ); + bLeftBottomSizer->Add( m_OptMiddleButtonPan, 0, wxALL, 5 ); + + m_OptMiddleButtonPanLimited = new wxCheckBox( this, wxID_ANY, _("Middle Button PAN Limited"), wxDefaultPosition, wxDefaultSize, 0 ); + bLeftBottomSizer->Add( m_OptMiddleButtonPanLimited, 0, wxALL, 5 ); + + + bRightSizer->Add( bLeftBottomSizer, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - m_OptDisplayDCodes = new wxCheckBox( this, wxID_ANY, _("Show D codes"), wxDefaultPosition, wxDefaultSize, 0 ); - m_OptDisplayDCodes->SetValue(true); - bRightSizer->Add( m_OptDisplayDCodes, 0, wxALL, 5 ); bUpperSizer->Add( bRightSizer, 1, wxEXPAND, 5 ); + bDialogSizer->Add( bUpperSizer, 1, wxEXPAND, 5 ); m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); @@ -97,12 +110,15 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); m_sdbSizer1->Realize(); + bDialogSizer->Add( m_sdbSizer1, 0, wxEXPAND|wxALL, 5 ); + this->SetSizer( bDialogSizer ); this->Layout(); // Connect Events + m_OptMiddleButtonPan->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnMiddleBtnPanEnbl ), NULL, this ); m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnCancelButtonClick ), NULL, this ); m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnOKBUttonClick ), NULL, this ); } @@ -110,6 +126,7 @@ DIALOG_DISPLAY_OPTIONS_BASE::DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWi DIALOG_DISPLAY_OPTIONS_BASE::~DIALOG_DISPLAY_OPTIONS_BASE() { // Disconnect Events + m_OptMiddleButtonPan->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnMiddleBtnPanEnbl ), NULL, this ); m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnCancelButtonClick ), NULL, this ); m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DISPLAY_OPTIONS_BASE::OnOKBUttonClick ), NULL, this ); diff --git a/gerbview/dialogs/gerbview_dialog_display_options_frame_base.fbp b/gerbview/dialogs/gerbview_dialog_display_options_frame_base.fbp index 55e609c672..f4560f63d1 100644 --- a/gerbview/dialogs/gerbview_dialog_display_options_frame_base.fbp +++ b/gerbview/dialogs/gerbview_dialog_display_options_frame_base.fbp @@ -1,12 +1,14 @@ - + C++ 1 source_name + 0 0 + res UTF-8 connect gerbview_dialog_display_options_frame_base @@ -18,29 +20,62 @@ . 1 + 1 1 0 0 + 1 + 1 + 1 + 1 + + 0 + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 impl_virtual + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 DIALOG_DISPLAY_OPTIONS_BASE + 1 + + + 1 - 446,299 + Resizable + 1 + 446,330 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Gerbview Options + 0 wxFILTER_NONE @@ -51,6 +86,12 @@ + + + + + + @@ -107,26 +148,57 @@ wxALL|wxEXPAND 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 "No Display" "Display" + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Display Polar Coord 1 + + 0 + + 0 + 1 m_PolarDisplay + 1 + + protected + 1 + Resizable 0 + 1 wxRA_SPECIFY_COLS + 0 wxFILTER_NONE @@ -166,26 +238,57 @@ wxALL|wxEXPAND 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 "Inches" "millimeters" + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Units 1 + + 0 + + 0 + 1 m_BoxUnits + 1 + + protected + 1 + Resizable 0 + 1 wxRA_SPECIFY_COLS + 0 wxFILTER_NONE @@ -225,26 +328,57 @@ wxALL|wxEXPAND 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 "Small" "Large" + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Cursor 1 + + 0 + + 0 + 1 m_CursorShape + 1 + + protected + 1 + Resizable 1 + 1 wxRA_SPECIFY_COLS + 0 wxFILTER_NONE @@ -279,6 +413,94 @@ + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show D codes + + 0 + + + 0 + + 1 + m_OptDisplayDCodes + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -295,26 +517,57 @@ wxALL|wxEXPAND 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 "Sketch" "Filled" + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Lines: 1 + + 0 + + 0 + 1 m_OptDisplayLines + 1 + + protected + 1 + Resizable 1 + 1 wxRA_SPECIFY_COLS + 0 wxFILTER_NONE @@ -354,26 +607,57 @@ wxALL|wxEXPAND 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 "Sketch" "Filled" + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Spots: 1 + + 0 + + 0 + 1 m_OptDisplayFlashedItems + 1 + + protected + 1 + Resizable 1 + 1 wxRA_SPECIFY_COLS + 0 wxFILTER_NONE @@ -413,26 +697,57 @@ wxALL|wxEXPAND 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 "Sketch" "Filled" + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Polygons: 1 + + 0 + + 0 + 1 m_OptDisplayPolygons + 1 + + protected + 1 + Resizable 1 + 1 wxRA_SPECIFY_COLS + 0 wxFILTER_NONE @@ -493,26 +808,57 @@ wxALL|wxEXPAND 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 "Full size. Do not show page limits" "Full size" "Size A4" "Size A3" "Size A2" "Size A" "Size B" "Size C" + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY Show Page Limits: 1 + + 0 + + 0 + 1 m_ShowPageLimits + 1 + + protected + 1 + Resizable 0 + 1 wxRA_SPECIFY_COLS + 0 wxFILTER_NONE @@ -549,69 +895,192 @@ 5 - + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT 0 - - 20 - protected - 20 - - - - 5 - wxALL - 0 - - - 1 - - 1 - 1 - - - 0 + wxID_ANY - Show D codes - + Pan: - m_OptDisplayDCodes - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + bLeftBottomSizer + wxVERTICAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Middle Button PAN Enabled + + 0 + + + 0 + + 1 + m_OptMiddleButtonPan + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnMiddleBtnPanEnbl + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Middle Button PAN Limited + + 0 + + + 0 + + 1 + m_OptMiddleButtonPanLimited + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -623,22 +1092,53 @@ wxEXPAND|wxTOP|wxRIGHT|wxLEFT 0 + 1 + 1 + 1 + 1 + + + + + + + 1 + 0 + 1 1 + 0 + Dock + 0 + Left 1 + 1 + 0 0 wxID_ANY + + 0 + + 0 + 1 m_staticline1 + 1 + + protected + 1 + Resizable + 1 wxLI_HORIZONTAL + 0 wxFILTER_NONE diff --git a/gerbview/dialogs/gerbview_dialog_display_options_frame_base.h b/gerbview/dialogs/gerbview_dialog_display_options_frame_base.h index 188efbd9fd..03610e8cfa 100644 --- a/gerbview/dialogs/gerbview_dialog_display_options_frame_base.h +++ b/gerbview/dialogs/gerbview_dialog_display_options_frame_base.h @@ -1,23 +1,25 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Sep 8 2010) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// -#ifndef __gerbview_dialog_display_options_frame_base__ -#define __gerbview_dialog_display_options_frame_base__ +#ifndef __GERBVIEW_DIALOG_DISPLAY_OPTIONS_FRAME_BASE_H__ +#define __GERBVIEW_DIALOG_DISPLAY_OPTIONS_FRAME_BASE_H__ +#include +#include #include - #include #include #include #include #include #include -#include #include +#include +#include #include #include #include @@ -36,28 +38,29 @@ class DIALOG_DISPLAY_OPTIONS_BASE : public wxDialog wxRadioBox* m_PolarDisplay; wxRadioBox* m_BoxUnits; wxRadioBox* m_CursorShape; + wxCheckBox* m_OptDisplayDCodes; wxRadioBox* m_OptDisplayLines; wxRadioBox* m_OptDisplayFlashedItems; wxRadioBox* m_OptDisplayPolygons; - wxRadioBox* m_ShowPageLimits; - - wxCheckBox* m_OptDisplayDCodes; + wxCheckBox* m_OptMiddleButtonPan; + wxCheckBox* m_OptMiddleButtonPanLimited; wxStaticLine* m_staticline1; wxStdDialogButtonSizer* m_sdbSizer1; wxButton* m_sdbSizer1OK; wxButton* m_sdbSizer1Cancel; // Virtual event handlers, overide them in your derived class + virtual void OnMiddleBtnPanEnbl( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOKBUttonClick( wxCommandEvent& event ) { event.Skip(); } public: - DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Gerbview Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 446,299 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Gerbview Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 446,330 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_DISPLAY_OPTIONS_BASE(); }; -#endif //__gerbview_dialog_display_options_frame_base__ +#endif //__GERBVIEW_DIALOG_DISPLAY_OPTIONS_FRAME_BASE_H__ diff --git a/include/class_drawpanel.h b/include/class_drawpanel.h index cf3ca24c89..4a45027d37 100644 --- a/include/class_drawpanel.h +++ b/include/class_drawpanel.h @@ -61,6 +61,8 @@ private: int m_scrollIncrementX; ///< X axis scroll increment in pixels per unit. int m_scrollIncrementY; ///< Y axis scroll increment in pixels per unit. wxPoint m_CursorStartPos; ///< Used for testing the cursor movement. + wxPoint m_PanStartCenter; ///< Initial scroll center position when pan started + wxPoint m_PanStartEventPosition; ///< Initial position of mouse event when pan started /// The drawing area used to redraw the screen which is usually the visible area /// of the drawing in internal units. @@ -68,6 +70,11 @@ private: bool m_abortRequest; ///< Flag used to abort long commands. + bool m_enableMiddleButtonPan; ///< True to enable middle mouse button panning. + bool m_panScrollbarLimits; ///< has meaning only if m_enableMiddleButtonPan = true + ///< true to limit panning to scrollbar current limits + ///< false to used unlimited pan + bool m_enableAutoPan; ///< True to enable automatic panning. /// true to request an auto pan. Valid only when m_enableAutoPan = true. @@ -110,6 +117,14 @@ public: void SetAbortRequest( bool aAbortRequest ) { m_abortRequest = aAbortRequest; } + bool GetEnableMiddleButtonPan() const { return m_enableMiddleButtonPan; } + + void SetEnableMiddleButtonPan( bool aEnable ) { m_enableMiddleButtonPan = aEnable; } + + bool GetMiddleButtonPanLimited() const { return m_panScrollbarLimits; } + + void SetMiddleButtonPanLimited( bool aEnable ) { m_panScrollbarLimits = aEnable; } + bool GetEnableAutoPan() const { return m_enableAutoPan; } void SetEnableAutoPan( bool aEnable ) { m_enableAutoPan = aEnable; } diff --git a/pcbnew/dialogs/dialog_general_options.cpp b/pcbnew/dialogs/dialog_general_options.cpp index 02e9aa532b..d11c0f35b6 100644 --- a/pcbnew/dialogs/dialog_general_options.cpp +++ b/pcbnew/dialogs/dialog_general_options.cpp @@ -44,20 +44,20 @@ #include -Dialog_GeneralOptions::Dialog_GeneralOptions( PCB_EDIT_FRAME* parent ) : - DialogGeneralOptionsBoardEditor_base( parent ) +DIALOG_GENERALOPTIONS::DIALOG_GENERALOPTIONS( PCB_EDIT_FRAME* parent ) : + DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE( parent ) { init(); - m_buttonOK->SetDefault(); GetSizer()->SetSizeHints( this ); Center(); } -void Dialog_GeneralOptions::init() +void DIALOG_GENERALOPTIONS::init() { SetFocus(); + m_sdbSizerOK->SetDefault(); m_Board = GetParent()->GetBoard(); @@ -88,6 +88,9 @@ void Dialog_GeneralOptions::init() m_TrackAutodel->SetValue( g_AutoDeleteOldTrack ); m_Track_45_Only_Ctrl->SetValue( g_Track_45_Only_Allowed ); m_Segments_45_Only_Ctrl->SetValue( Segments_45_Only ); + m_MiddleButtonPANOpt->SetValue( GetParent()->GetCanvas()->GetEnableMiddleButtonPan() ); + m_OptMiddleButtonPanLimited->SetValue( GetParent()->GetCanvas()->GetMiddleButtonPanLimited() ); + m_OptMiddleButtonPanLimited->Enable( m_MiddleButtonPANOpt->GetValue() ); m_AutoPANOpt->SetValue( GetParent()->GetCanvas()->GetEnableAutoPan() ); m_Segments_45_Only_Ctrl->SetValue( Segments_45_Only ); m_Track_DoubleSegm_Ctrl->SetValue( g_TwoSegmentTrackBuild ); @@ -97,13 +100,13 @@ void Dialog_GeneralOptions::init() } -void Dialog_GeneralOptions::OnCancelClick( wxCommandEvent& event ) +void DIALOG_GENERALOPTIONS::OnCancelClick( wxCommandEvent& event ) { event.Skip(); } -void Dialog_GeneralOptions::OnOkClick( wxCommandEvent& event ) +void DIALOG_GENERALOPTIONS::OnOkClick( wxCommandEvent& event ) { EDA_UNITS_T ii; @@ -133,6 +136,10 @@ void Dialog_GeneralOptions::OnOkClick( wxCommandEvent& event ) g_AutoDeleteOldTrack = m_TrackAutodel->GetValue(); Segments_45_Only = m_Segments_45_Only_Ctrl->GetValue(); g_Track_45_Only_Allowed = m_Track_45_Only_Ctrl->GetValue(); + + GetParent()->GetCanvas()->SetEnableMiddleButtonPan( m_MiddleButtonPANOpt->GetValue() ); + GetParent()->GetCanvas()->SetMiddleButtonPanLimited( m_OptMiddleButtonPanLimited->GetValue() ); + GetParent()->GetCanvas()->SetEnableAutoPan( m_AutoPANOpt->GetValue() ); g_TwoSegmentTrackBuild = m_Track_DoubleSegm_Ctrl->GetValue(); g_MagneticPadOption = m_MagneticPadOptCtrl->GetSelection(); diff --git a/pcbnew/dialogs/dialog_general_options.h b/pcbnew/dialogs/dialog_general_options.h index 04d6d939a3..7cdefdbe2e 100644 --- a/pcbnew/dialogs/dialog_general_options.h +++ b/pcbnew/dialogs/dialog_general_options.h @@ -3,7 +3,7 @@ #include -class Dialog_GeneralOptions : public DialogGeneralOptionsBoardEditor_base +class DIALOG_GENERALOPTIONS : public DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE { private: BOARD* m_Board; @@ -11,12 +11,18 @@ private: void init(); public: - Dialog_GeneralOptions( PCB_EDIT_FRAME* parent ); - ~Dialog_GeneralOptions() {}; + DIALOG_GENERALOPTIONS( PCB_EDIT_FRAME* parent ); + ~DIALOG_GENERALOPTIONS() {}; void OnOkClick( wxCommandEvent& event ); void OnCancelClick( wxCommandEvent& event ); PCB_EDIT_FRAME* GetParent() { return (PCB_EDIT_FRAME*) wxDialog::GetParent(); } + +private: + void OnMiddleBtnPanEnbl( wxCommandEvent& event ) + { + m_OptMiddleButtonPanLimited->Enable( m_MiddleButtonPANOpt->GetValue() ); + } }; diff --git a/pcbnew/dialogs/dialog_general_options_BoardEditor_base.cpp b/pcbnew/dialogs/dialog_general_options_BoardEditor_base.cpp index 58e10fae28..a338d0a973 100644 --- a/pcbnew/dialogs/dialog_general_options_BoardEditor_base.cpp +++ b/pcbnew/dialogs/dialog_general_options_BoardEditor_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -9,12 +9,15 @@ /////////////////////////////////////////////////////////////////////////// -DialogGeneralOptionsBoardEditor_base::DialogGeneralOptionsBoardEditor_base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxDefaultSize, wxDefaultSize ); wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxHORIZONTAL ); + bMainSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerUpper; + bSizerUpper = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bLeftSizer; bLeftSizer = new wxBoxSizer( wxVERTICAL ); @@ -43,7 +46,8 @@ DialogGeneralOptionsBoardEditor_base::DialogGeneralOptionsBoardEditor_base( wxWi bLeftSizer->Add( m_CursorShape, 0, wxALL|wxEXPAND, 5 ); - bMainSizer->Add( bLeftSizer, 1, wxEXPAND, 5 ); + + bSizerUpper->Add( bLeftSizer, 1, wxEXPAND, 5 ); wxBoxSizer* bMiddleLeftSizer; bMiddleLeftSizer = new wxBoxSizer( wxVERTICAL ); @@ -78,7 +82,8 @@ DialogGeneralOptionsBoardEditor_base::DialogGeneralOptionsBoardEditor_base( wxWi bMiddleLeftSizer->Add( m_RotationAngle, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - bMainSizer->Add( bMiddleLeftSizer, 1, wxEXPAND, 5 ); + + bSizerUpper->Add( bMiddleLeftSizer, 1, wxEXPAND, 5 ); wxStaticBoxSizer* bMiddleRightBoxSizer; bMiddleRightBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL ); @@ -114,17 +119,13 @@ DialogGeneralOptionsBoardEditor_base::DialogGeneralOptionsBoardEditor_base( wxWi bMiddleRightBoxSizer->Add( m_Segments_45_Only_Ctrl, 0, wxALL, 5 ); - m_AutoPANOpt = new wxCheckBox( this, wxID_AUTOPAN, _("Auto PAN"), wxDefaultPosition, wxDefaultSize, 0 ); - m_AutoPANOpt->SetToolTip( _("Allows auto pan when creating a track, or moving an item.") ); - - bMiddleRightBoxSizer->Add( m_AutoPANOpt, 0, wxALL, 5 ); - m_Track_DoubleSegm_Ctrl = new wxCheckBox( this, wxID_ANY, _("Double Segm Track"), wxDefaultPosition, wxDefaultSize, 0 ); m_Track_DoubleSegm_Ctrl->SetToolTip( _("If enabled, uses two track segments, with 45 degrees angle between them when creating a new track ") ); bMiddleRightBoxSizer->Add( m_Track_DoubleSegm_Ctrl, 0, wxALL, 5 ); - bMainSizer->Add( bMiddleRightBoxSizer, 1, 0, 5 ); + + bSizerUpper->Add( bMiddleRightBoxSizer, 1, 0, 5 ); wxBoxSizer* bRightSizer; bRightSizer = new wxBoxSizer( wxVERTICAL ); @@ -145,27 +146,60 @@ DialogGeneralOptionsBoardEditor_base::DialogGeneralOptionsBoardEditor_base( wxWi bRightSizer->Add( m_MagneticTrackOptCtrl, 0, wxALL|wxEXPAND, 5 ); - m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonOK->SetDefault(); - bRightSizer->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + wxStaticBoxSizer* sbSizer2PAN; + sbSizer2PAN = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Pan:") ), wxVERTICAL ); - m_buttonCANCEL = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - bRightSizer->Add( m_buttonCANCEL, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); + m_MiddleButtonPANOpt = new wxCheckBox( this, wxID_MIDDLEBUTTONPAN, _("Middle Button PAN Enabled"), wxDefaultPosition, wxDefaultSize, 0 ); + m_MiddleButtonPANOpt->SetToolTip( _("Allows auto pan when creating a track, or moving an item.") ); + + sbSizer2PAN->Add( m_MiddleButtonPANOpt, 0, wxALL, 5 ); + + m_OptMiddleButtonPanLimited = new wxCheckBox( this, wxID_MIDDLEBUTTONPAN, _("Middle Button PAN Limited"), wxDefaultPosition, wxDefaultSize, 0 ); + m_OptMiddleButtonPanLimited->SetToolTip( _("Allows auto pan when creating a track, or moving an item.") ); + + sbSizer2PAN->Add( m_OptMiddleButtonPanLimited, 0, wxALL, 5 ); + + m_AutoPANOpt = new wxCheckBox( this, wxID_AUTOPAN, _("Auto PAN"), wxDefaultPosition, wxDefaultSize, 0 ); + m_AutoPANOpt->SetToolTip( _("Allows auto pan when creating a track, or moving an item.") ); + + sbSizer2PAN->Add( m_AutoPANOpt, 0, wxALL, 5 ); + + + bRightSizer->Add( sbSizer2PAN, 1, wxEXPAND|wxBOTTOM|wxLEFT, 5 ); + + + bSizerUpper->Add( bRightSizer, 1, wxEXPAND, 5 ); + + + bMainSizer->Add( bSizerUpper, 1, wxEXPAND, 5 ); + + m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bMainSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); + + m_sdbSizer = new wxStdDialogButtonSizer(); + m_sdbSizerOK = new wxButton( this, wxID_OK ); + m_sdbSizer->AddButton( m_sdbSizerOK ); + m_sdbSizerCancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizer->AddButton( m_sdbSizerCancel ); + m_sdbSizer->Realize(); + + bMainSizer->Add( m_sdbSizer, 0, wxEXPAND, 5 ); - bMainSizer->Add( bRightSizer, 1, wxEXPAND, 5 ); this->SetSizer( bMainSizer ); this->Layout(); // Connect Events - m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnOkClick ), NULL, this ); - m_buttonCANCEL->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnCancelClick ), NULL, this ); + m_MiddleButtonPANOpt->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::OnMiddleBtnPanEnbl ), NULL, this ); + m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::OnCancelClick ), NULL, this ); + m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::OnOkClick ), NULL, this ); } -DialogGeneralOptionsBoardEditor_base::~DialogGeneralOptionsBoardEditor_base() +DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::~DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE() { // Disconnect Events - m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnOkClick ), NULL, this ); - m_buttonCANCEL->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnCancelClick ), NULL, this ); + m_MiddleButtonPANOpt->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::OnMiddleBtnPanEnbl ), NULL, this ); + m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::OnCancelClick ), NULL, this ); + m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::OnOkClick ), NULL, this ); } diff --git a/pcbnew/dialogs/dialog_general_options_BoardEditor_base.fbp b/pcbnew/dialogs/dialog_general_options_BoardEditor_base.fbp index 8348f8c3b7..ed370978d2 100644 --- a/pcbnew/dialogs/dialog_general_options_BoardEditor_base.fbp +++ b/pcbnew/dialogs/dialog_general_options_BoardEditor_base.fbp @@ -1,11 +1,12 @@ - + C++ 1 source_name + 0 0 res UTF-8 @@ -19,6 +20,7 @@ . 1 + 1 1 1 0 @@ -27,8 +29,11 @@ 1 1 1 + 0 + + @@ -51,7 +56,6 @@ 0 0 wxID_ANY - 0 @@ -59,17 +63,15 @@ 0 1 - DialogGeneralOptionsBoardEditor_base + DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE 1 1 - Resizable - 1 - 585,280 + 611,346 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER General settings @@ -121,7 +123,7 @@ bMainSizer - wxHORIZONTAL + wxVERTICAL none 5 @@ -129,1905 +131,2042 @@ 1 - bLeftSizer - wxVERTICAL + bSizerUpper + wxHORIZONTAL none 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "No Display" "Display" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_POLAR_CTRL - Display Polar Coord - - 1 - - 0 - - - 0 + wxEXPAND + 1 + - 1 - m_PolarDisplay - 1 - - - protected - 1 - - - Resizable - - 1 - 1 - - wxRA_SPECIFY_COLS - - 0 - Activates the display of relative coordinates from relative origin (set by the space key) to the cursor, in polar coordinates (angle and distance) - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + bLeftSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "No Display" "Display" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_POLAR_CTRL + Display Polar Coord + 1 + + 0 + + + 0 + + 1 + m_PolarDisplay + 1 + + + protected + 1 + + Resizable + 1 + 1 + + wxRA_SPECIFY_COLS + + 0 + Activates the display of relative coordinates from relative origin (set by the space key) to the cursor, in polar coordinates (angle and distance) + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Inches" "Millimeters" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_UNITS + Units + 1 + + 0 + + + 0 + + 1 + m_UnitsSelection + 1 + + + protected + 1 + + Resizable + 1 + 1 + + wxRA_SPECIFY_COLS + + 0 + Selection of units used to display dimensions and positions of items + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Small cross" "Full screen cursor" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_CURSOR_SHAPE + Cursor + 1 + + 0 + + + 0 + + 1 + m_CursorShape + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + Main cursor shape selection (small cross or large cursor) + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Inches" "Millimeters" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_UNITS - Units - - 1 - - 0 - - - 0 + wxEXPAND + 1 + - 1 - m_UnitsSelection - 1 - - - protected - 1 - - - Resizable - - 1 - 1 - - wxRA_SPECIFY_COLS - - 0 - Selection of units used to display dimensions and positions of items - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - + bMiddleLeftSizer + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Max Links: + + 0 + + + 0 + + 1 + m_staticTextmaxlinks + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 1 + 5 + + 0 + + 1 + + 0 + + 1 + m_MaxShowLinks + 1 + + + protected + 1 + + Resizable + 1 + + wxSP_ARROW_KEYS + + 0 + Adjust the number of ratsnets shown from cursor to closest pads + + wxFILTER_NONE + wxDefaultValidator + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Auto Save (minutes): + + 0 + + + 0 + + 1 + m_staticTextautosave + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 60 + + 0 + + 0 + + 0 + + 1 + m_SaveTime + 1 + + + protected + 1 + + Resizable + 1 + + wxSP_ARROW_KEYS + + 0 + Delay after the first change to create a backup file of the board on disk. + + wxFILTER_NONE + wxDefaultValidator + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Rotation Angle + + 0 + + + 0 + + 1 + m_staticTextRotationAngle + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "45" "90" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_RotationAngle + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + + 0 + Footprints rotation increment, for rotate menu or hot key. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Small cross" "Full screen cursor" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_CURSOR_SHAPE - Cursor - - 1 - - 0 - - - 0 + + 1 + + wxID_ANY + Options: - 1 - m_CursorShape - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - Main cursor shape selection (small cross or large cursor) - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - + bMiddleRightBoxSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_DRC_ONOFF + Drc ON + + 0 + + + 0 + + 1 + m_DrcOn + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Enable/disable the DRC control. When DRC is disable, all connections are allowed. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_GENERAL_RATSNEST + Show Ratsnest + + 0 + + + 0 + + 1 + m_ShowGlobalRatsnest + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Show (or not) the full rastnest. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_RATSNEST_MODULE + Show Mod Ratsnest + + 0 + + + 0 + + 1 + m_ShowModuleRatsnest + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Shows (or not) the local ratsnest relative to a footprint, when moving it. This ratsnest is useful to place a footprint. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_TRACK_AUTODEL + Tracks Auto Del + + 0 + + + 0 + + 1 + m_TrackAutodel + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Enable/disable the automatic track deletion when recreating a track. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_TRACKS45 + Track only 45 degrees + + 0 + + + 0 + + 1 + m_Track_45_Only_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + If enabled, force tracks directions to H, V or 45 degrees, when creating a track. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_SEGMENTS45 + Segments 45 Only + + 0 + + + 0 + + 1 + m_Segments_45_Only_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + If enabled, force segments directions to H, V or 45 degrees, when creating a segment on technical layers. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Double Segm Track + + 0 + + + 0 + + 1 + m_Track_DoubleSegm_Ctrl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + If enabled, uses two track segments, with 45 degrees angle between them when creating a new track + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bRightSizer + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Never" "When creating tracks" "Always" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Magnetic Pads + 1 + + 0 + + + 0 + + 1 + m_MagneticPadOptCtrl + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + control the capture of the pcb cursor when the mouse cursor enters a pad area + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Never" "When creating tracks" "Always" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_MAGNETIC_TRACKS + Magnetic Tracks + 1 + + 0 + + + 0 + + 1 + m_MagneticTrackOptCtrl + 1 + + + protected + 1 + + Resizable + 0 + 1 + + wxRA_SPECIFY_COLS + + 0 + Control the capture of the pcb cursor when the mouse cursor enters a track + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxLEFT + 1 + + wxID_ANY + Pan: + + sbSizer2PAN + wxVERTICAL + none + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_MIDDLEBUTTONPAN + Middle Button PAN Enabled + + 0 + + + 0 + + 1 + m_MiddleButtonPANOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Allows auto pan when creating a track, or moving an item. + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnMiddleBtnPanEnbl + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_MIDDLEBUTTONPAN + Middle Button PAN Limited + + 0 + + + 0 + + 1 + m_OptMiddleButtonPanLimited + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Allows auto pan when creating a track, or moving an item. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_AUTOPAN + Auto PAN + + 0 + + + 0 + + 1 + m_AutoPANOpt + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + Allows auto pan when creating a track, or moving an item. + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 - wxEXPAND - 1 - - - bMiddleLeftSizer - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Max Links: - - - 0 - - - 0 - - 1 - m_staticTextmaxlinks - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 1 - - 5 - - 0 - - 1 - - 0 - - 1 - m_MaxShowLinks - 1 - - - protected - 1 - - - Resizable - - 1 - - wxSP_ARROW_KEYS - - 0 - Adjust the number of ratsnets shown from cursor to closest pads - - wxFILTER_NONE - wxDefaultValidator - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Auto Save (minutes): - - - 0 - - - 0 - - 1 - m_staticTextautosave - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - - 60 - - 0 - - 0 - - 0 - - 1 - m_SaveTime - 1 - - - protected - 1 - - - Resizable - - 1 - - wxSP_ARROW_KEYS - - 0 - Delay after the first change to create a backup file of the board on disk. - - wxFILTER_NONE - wxDefaultValidator - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Rotation Angle - - - 0 - - - 0 - - 1 - m_staticTextRotationAngle - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "45" "90" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - - 0 - - - 0 - - 1 - m_RotationAngle - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - - 0 - Footprints rotation increment, for rotate menu or hot key. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - - 1 - + wxEXPAND | wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 wxID_ANY - Options: + + 0 + + + 0 - bMiddleRightBoxSizer - wxVERTICAL - none + 1 + m_staticline1 + 1 + + + protected + 1 + + Resizable + 1 + + wxLI_HORIZONTAL + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_DRC_ONOFF - Drc ON - - - 0 - - - 0 - - 1 - m_DrcOn - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Enable/disable the DRC control. When DRC is disable, all connections are allowed. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_GENERAL_RATSNEST - Show Ratsnest - - - 0 - - - 0 - - 1 - m_ShowGlobalRatsnest - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Show (or not) the full rastnest. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_RATSNEST_MODULE - Show Mod Ratsnest - - - 0 - - - 0 - - 1 - m_ShowModuleRatsnest - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Shows (or not) the local ratsnest relative to a footprint, when moving it. This ratsnest is useful to place a footprint. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_TRACK_AUTODEL - Tracks Auto Del - - - 0 - - - 0 - - 1 - m_TrackAutodel - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Enable/disable the automatic track deletion when recreating a track. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_TRACKS45 - Track only 45 degrees - - - 0 - - - 0 - - 1 - m_Track_45_Only_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - If enabled, force tracks directions to H, V or 45 degrees, when creating a track. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_SEGMENTS45 - Segments 45 Only - - - 0 - - - 0 - - 1 - m_Segments_45_Only_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - If enabled, force segments directions to H, V or 45 degrees, when creating a segment on technical layers. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_AUTOPAN - Auto PAN - - - 0 - - - 0 - - 1 - m_AutoPANOpt - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - Allows auto pan when creating a track, or moving an item. - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Double Segm Track - - - 0 - - - 0 - - 1 - m_Track_DoubleSegm_Ctrl - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - If enabled, uses two track segments, with 45 degrees angle between them when creating a new track - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 wxEXPAND - 1 - + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 - bRightSizer - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Never" "When creating tracks" "Always" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Magnetic Pads - - 1 - - 0 - - - 0 - - 1 - m_MagneticPadOptCtrl - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - control the capture of the pcb cursor when the mouse cursor enters a pad area - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - "Never" "When creating tracks" "Always" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_MAGNETIC_TRACKS - Magnetic Tracks - - 1 - - 0 - - - 0 - - 1 - m_MagneticTrackOptCtrl - 1 - - - protected - 1 - - - Resizable - - 0 - 1 - - wxRA_SPECIFY_COLS - - 0 - Control the capture of the pcb cursor when the mouse cursor enters a track - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_OK - OK - - - 0 - - - 0 - - 1 - m_buttonOK - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnOkClick - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_CANCEL - Cancel - - - 0 - - - 0 - - 1 - m_buttonCANCEL - 1 - - - protected - 1 - - - Resizable - - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnCancelClick - - - - - - - - - - - - - - - - - - - - - - - - - + m_sdbSizer + protected + + OnCancelClick + + + + OnOkClick + + diff --git a/pcbnew/dialogs/dialog_general_options_BoardEditor_base.h b/pcbnew/dialogs/dialog_general_options_BoardEditor_base.h index baec1f0bf4..fce8addba9 100644 --- a/pcbnew/dialogs/dialog_general_options_BoardEditor_base.h +++ b/pcbnew/dialogs/dialog_general_options_BoardEditor_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 30 2011) +// C++ code generated with wxFormBuilder (version Mar 17 2012) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -23,15 +23,16 @@ #include #include #include +#include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// -/// Class DialogGeneralOptionsBoardEditor_base +/// Class DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE /////////////////////////////////////////////////////////////////////////////// -class DialogGeneralOptionsBoardEditor_base : public wxDialog +class DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE : public wxDialog { private: @@ -47,8 +48,9 @@ class DialogGeneralOptionsBoardEditor_base : public wxDialog wxID_TRACK_AUTODEL, wxID_TRACKS45, wxID_SEGMENTS45, - wxID_AUTOPAN, wxID_MAGNETIC_TRACKS, + wxID_MIDDLEBUTTONPAN, + wxID_AUTOPAN }; wxRadioBox* m_PolarDisplay; @@ -66,22 +68,27 @@ class DialogGeneralOptionsBoardEditor_base : public wxDialog wxCheckBox* m_TrackAutodel; wxCheckBox* m_Track_45_Only_Ctrl; wxCheckBox* m_Segments_45_Only_Ctrl; - wxCheckBox* m_AutoPANOpt; wxCheckBox* m_Track_DoubleSegm_Ctrl; wxRadioBox* m_MagneticPadOptCtrl; wxRadioBox* m_MagneticTrackOptCtrl; - wxButton* m_buttonOK; - wxButton* m_buttonCANCEL; + wxCheckBox* m_MiddleButtonPANOpt; + wxCheckBox* m_OptMiddleButtonPanLimited; + wxCheckBox* m_AutoPANOpt; + wxStaticLine* m_staticline1; + wxStdDialogButtonSizer* m_sdbSizer; + wxButton* m_sdbSizerOK; + wxButton* m_sdbSizerCancel; // Virtual event handlers, overide them in your derived class - virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnMiddleBtnPanEnbl( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } public: - DialogGeneralOptionsBoardEditor_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("General settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 585,280 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DialogGeneralOptionsBoardEditor_base(); + DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("General settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 611,346 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE(); }; diff --git a/pcbnew/pcbnew_config.cpp b/pcbnew/pcbnew_config.cpp index 71cf632012..709d16e51b 100644 --- a/pcbnew/pcbnew_config.cpp +++ b/pcbnew/pcbnew_config.cpp @@ -89,7 +89,7 @@ void PCB_EDIT_FRAME::Process_Config( wxCommandEvent& event ) case wxID_PREFERENCES: { - Dialog_GeneralOptions dlg( this ); + DIALOG_GENERALOPTIONS dlg( this ); dlg.ShowModal(); } break; From 833bbc5b880ba6d9e1b78d7c8c9cb6b2438b96e6 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Wed, 11 Apr 2012 23:01:20 +0200 Subject: [PATCH 62/68] Eeschema: fix a bug in my previous commit. --- eeschema/dialogs/dialog_eeschema_options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eeschema/dialogs/dialog_eeschema_options.h b/eeschema/dialogs/dialog_eeschema_options.h index 686cbba050..418589a4a0 100644 --- a/eeschema/dialogs/dialog_eeschema_options.h +++ b/eeschema/dialogs/dialog_eeschema_options.h @@ -113,7 +113,7 @@ public: } bool GetMiddleButtonPanLimited( void ) { - return m_checkEnableMiddleButtonPan->GetValue(); + return m_checkMiddleButtonPanLimited->GetValue(); } void SetEnableAutoPan( bool enable ) From 039fe4bddfec7a3018ebc884ed6a39f0902834fc Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Wed, 11 Apr 2012 18:30:06 -0500 Subject: [PATCH 63/68] * Coding standards, private functions are lowercase. * Fix bug in PCBNEW dialog_pad_properties.cpp that I introduced several days ago. The m_Master_Pad stuff is stored in the PCB_EDIT_FRAME's BOARD_DESIGN_SETTINGS, not in the FOOTPRINT_EDIT_FRAME's BOARD_DESIGN_SETTINGS (i.e. not stored in the module editor's dummy BOARD). Now we properly initialize the DIALOG_PAD_PROPERTIES::m_Pad_Master reference to the correct master pad dope, instead of to the dummy module BOARD's master pad, which is not used. --- pcbnew/dialogs/dialog_pad_properties.cpp | 71 +++++++++++++----------- pcbnew/moduleframe.cpp | 2 +- 2 files changed, 39 insertions(+), 34 deletions(-) diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index 25ba093d50..ebac1e4d76 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -103,37 +103,45 @@ private: void initValues(); - bool PadValuesOK(); ///< test if all values are acceptable for the pad - - void OnPadShapeSelection( wxCommandEvent& event ); - void OnDrillShapeSelected( wxCommandEvent& event ); - void PadOrientEvent( wxCommandEvent& event ); - void PadTypeSelected( wxCommandEvent& event ); - - /// Updates the different parameters for the component being edited. - void PadPropertiesAccept( wxCommandEvent& event ); + bool padValuesOK(); ///< test if all values are acceptable for the pad /** - * Function SetPadLayersList + * Function setPadLayersList * updates the CheckBox states in pad layers list, * @param layer_mask = pad layer mask (ORed layers bit mask) */ - void SetPadLayersList( long layer_mask ); + void setPadLayersList( long layer_mask ); + + /// Copy values from dialog field to aPad's members + bool transferDataToPad( D_PAD* aPad ); + + // event handlers: + + void OnPadShapeSelection( wxCommandEvent& event ); + void OnDrillShapeSelected( wxCommandEvent& event ); + + void PadOrientEvent( wxCommandEvent& event ); + void PadTypeSelected( wxCommandEvent& event ); void OnSetLayers( wxCommandEvent& event ); void OnCancelButtonClick( wxCommandEvent& event ); void OnPaintShowPanel( wxPaintEvent& event ); - bool TransfertDataToPad( D_PAD* aPad ); /// Called when a dimension has changed. /// Update the graphical pad shown in the panel. void OnValuesChanged( wxCommandEvent& event ); + + /// Updates the different parameters for the component being edited. + void PadPropertiesAccept( wxCommandEvent& event ); }; DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aPad ) : DIALOG_PAD_PROPERTIES_BASE( aParent ), - m_Pad_Master( aParent->GetBoard()->GetDesignSettings().m_Pad_Master ) + // use aParent's parent, which is the original BOARD, not the dummy module editor BOARD, + // since FOOTPRINT_EDIT_FRAME::GetDesignSettings() is tricked out to use the PCB_EDITOR_FRAME's + // BOARD, not its own BOARD. + m_Pad_Master( aParent->GetDesignSettings().m_Pad_Master ) { m_canUpdate = false; m_Parent = aParent; @@ -234,8 +242,6 @@ void PCB_BASE_FRAME::InstallPadOptionsFrame( D_PAD* aPad ) void DIALOG_PAD_PROPERTIES::initValues() { - SetFocus(); // Required under wxGTK if we want to dismiss the dialog with the ESC key - int internalUnits = m_Parent->GetInternalUnits(); wxString msg; double angle; @@ -397,7 +403,7 @@ void DIALOG_PAD_PROPERTIES::initValues() NORMALIZE_ANGLE_180( angle ); // ? normalizing is in D_PAD::SetOrientation() // Set layers used by this pad: : - SetPadLayersList( m_dummyPad->GetLayerMask() ); + setPadLayersList( m_dummyPad->GetLayerMask() ); // Pad Orient switch( int( angle ) ) @@ -474,7 +480,7 @@ void DIALOG_PAD_PROPERTIES::initValues() // Update some dialog widgets state (Enable/disable options): wxCommandEvent cmd_event; - SetPadLayersList( m_dummyPad->GetLayerMask() ); + setPadLayersList( m_dummyPad->GetLayerMask() ); OnDrillShapeSelected( cmd_event ); } @@ -483,7 +489,7 @@ void DIALOG_PAD_PROPERTIES::OnPadShapeSelection( wxCommandEvent& event ) { switch( m_PadShape->GetSelection() ) { - case 0: //CIRCLE: + case 0: // CIRCLE: m_ShapeDelta_Ctrl->Enable( false ); m_trapDeltaDirChoice->Enable( false ); m_ShapeSize_Y_Ctrl->Enable( false ); @@ -491,7 +497,7 @@ void DIALOG_PAD_PROPERTIES::OnPadShapeSelection( wxCommandEvent& event ) m_ShapeOffset_Y_Ctrl->Enable( false ); break; - case 1: //OVALE: + case 1: // OVAL: m_ShapeDelta_Ctrl->Enable( false ); m_trapDeltaDirChoice->Enable( false ); m_ShapeSize_Y_Ctrl->Enable( true ); @@ -507,7 +513,7 @@ void DIALOG_PAD_PROPERTIES::OnPadShapeSelection( wxCommandEvent& event ) m_ShapeOffset_Y_Ctrl->Enable( true ); break; - case 3: //TRAPEZE: + case 3: // TRAPEZOID: m_ShapeDelta_Ctrl->Enable( true ); m_trapDeltaDirChoice->Enable( true ); m_ShapeSize_Y_Ctrl->Enable( true ); @@ -516,7 +522,7 @@ void DIALOG_PAD_PROPERTIES::OnPadShapeSelection( wxCommandEvent& event ) break; } - TransfertDataToPad( m_dummyPad ); + transferDataToPad( m_dummyPad ); m_panelShowPad->Refresh(); } @@ -545,7 +551,7 @@ void DIALOG_PAD_PROPERTIES::OnDrillShapeSelected( wxCommandEvent& event ) } } - TransfertDataToPad( m_dummyPad ); + transferDataToPad( m_dummyPad ); m_panelShowPad->Refresh(); } @@ -578,7 +584,7 @@ void DIALOG_PAD_PROPERTIES::PadOrientEvent( wxCommandEvent& event ) msg.Printf( wxT( "%g" ), m_dummyPad->GetOrientation() ); m_PadOrientCtrl->SetValue( msg ); - TransfertDataToPad( m_dummyPad ); + transferDataToPad( m_dummyPad ); m_panelShowPad->Refresh(); } @@ -592,7 +598,7 @@ void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) ii = 0; layer_mask = Std_Pad_Layers[ii]; - SetPadLayersList( layer_mask ); + setPadLayersList( layer_mask ); // Enable/disable drill dialog items: event.SetId( m_DrillShapeCtrl->GetSelection() ); @@ -612,7 +618,7 @@ void DIALOG_PAD_PROPERTIES::PadTypeSelected( wxCommandEvent& event ) } -void DIALOG_PAD_PROPERTIES::SetPadLayersList( long layer_mask ) +void DIALOG_PAD_PROPERTIES::setPadLayersList( long layer_mask ) { if( ( layer_mask & ALL_CU_LAYERS ) == LAYER_FRONT ) m_rbCopperLayersSel->SetSelection(0); @@ -645,15 +651,15 @@ void DIALOG_PAD_PROPERTIES::SetPadLayersList( long layer_mask ) // Called when select/deselect a layer. void DIALOG_PAD_PROPERTIES::OnSetLayers( wxCommandEvent& event ) { - TransfertDataToPad( m_dummyPad ); + transferDataToPad( m_dummyPad ); m_panelShowPad->Refresh(); } // test if all values are acceptable for the pad -bool DIALOG_PAD_PROPERTIES::PadValuesOK() +bool DIALOG_PAD_PROPERTIES::padValuesOK() { - bool error = TransfertDataToPad( m_dummyPad ); + bool error = transferDataToPad( m_dummyPad ); wxArrayString error_msgs; wxString msg; @@ -730,13 +736,13 @@ if you do not want this pad plotted in gerber files"); void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) { - if( !PadValuesOK() ) + if( !padValuesOK() ) return; bool rastnestIsChanged = false; int isign = m_isFlipped ? -1 : 1; - TransfertDataToPad( &m_Pad_Master ); + transferDataToPad( &m_Pad_Master ); if( m_CurrentPad ) // Set current Pad parameters { @@ -841,8 +847,7 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) m_Parent->GetBoard()->m_Status_Pcb = 0; } -// Copy values from dialog to aPad parameters. -bool DIALOG_PAD_PROPERTIES::TransfertDataToPad( D_PAD* aPad ) +bool DIALOG_PAD_PROPERTIES::transferDataToPad( D_PAD* aPad ) { long padLayerMask; int internalUnits = m_Parent->GetInternalUnits(); @@ -1088,7 +1093,7 @@ void DIALOG_PAD_PROPERTIES::OnValuesChanged( wxCommandEvent& event ) { if( m_canUpdate ) { - TransfertDataToPad( m_dummyPad ); + transferDataToPad( m_dummyPad ); m_panelShowPad->Refresh(); } } diff --git a/pcbnew/moduleframe.cpp b/pcbnew/moduleframe.cpp index ca97a58b01..aa23bb98eb 100644 --- a/pcbnew/moduleframe.cpp +++ b/pcbnew/moduleframe.cpp @@ -255,7 +255,7 @@ BOARD_DESIGN_SETTINGS& FOOTPRINT_EDIT_FRAME::GetDesignSettings() const void FOOTPRINT_EDIT_FRAME::SetDesignSettings( const BOARD_DESIGN_SETTINGS& aSettings ) { - // set the BOARD_DESIGN_SETTINGS int parent editor, not our BOARD. + // set the BOARD_DESIGN_SETTINGS into parent editor, not our BOARD. PCB_BASE_FRAME* parentFrame = (PCB_BASE_FRAME*) GetParent(); From 4df999cbe27cd1f576855132767afa52574b0ef1 Mon Sep 17 00:00:00 2001 From: Dick Hollenbeck Date: Wed, 11 Apr 2012 18:51:16 -0500 Subject: [PATCH 64/68] fix comment --- pcbnew/dialogs/dialog_pad_properties.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index ebac1e4d76..b9f4a76861 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -132,6 +132,7 @@ private: void OnValuesChanged( wxCommandEvent& event ); /// Updates the different parameters for the component being edited. + /// Fired from the OK button click. void PadPropertiesAccept( wxCommandEvent& event ); }; @@ -139,7 +140,7 @@ private: DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, D_PAD* aPad ) : DIALOG_PAD_PROPERTIES_BASE( aParent ), // use aParent's parent, which is the original BOARD, not the dummy module editor BOARD, - // since FOOTPRINT_EDIT_FRAME::GetDesignSettings() is tricked out to use the PCB_EDITOR_FRAME's + // since FOOTPRINT_EDIT_FRAME::GetDesignSettings() is tricked out to use the PCB_EDIT_FRAME's // BOARD, not its own BOARD. m_Pad_Master( aParent->GetDesignSettings().m_Pad_Master ) { @@ -847,6 +848,7 @@ void DIALOG_PAD_PROPERTIES::PadPropertiesAccept( wxCommandEvent& event ) m_Parent->GetBoard()->m_Status_Pcb = 0; } + bool DIALOG_PAD_PROPERTIES::transferDataToPad( D_PAD* aPad ) { long padLayerMask; From 4f74bf88f1f074cd2c968c8a875aef9ea9648e61 Mon Sep 17 00:00:00 2001 From: lajos kamocsay Date: Thu, 12 Apr 2012 09:58:12 +0200 Subject: [PATCH 65/68] Fix small issue when panning with middle button. --- common/drawpanel.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/common/drawpanel.cpp b/common/drawpanel.cpp index dab3732318..c6b23f51ee 100644 --- a/common/drawpanel.cpp +++ b/common/drawpanel.cpp @@ -338,6 +338,9 @@ void EDA_DRAW_PANEL::OnScroll( wxScrollWinEvent& event ) GetClientSize( &csizeX, &csizeY ); GetVirtualSize( &unitsX, &unitsY ); + int tmpX = x; + int tmpY = y; + csizeX /= ppux; csizeY /= ppuy; @@ -399,6 +402,13 @@ void EDA_DRAW_PANEL::OnScroll( wxScrollWinEvent& event ) wxT( "Setting scroll bars ppuX=%d, ppuY=%d, unitsX=%d, unitsY=%d, posX=%d, posY=%d" ), ppux, ppuy, unitsX, unitsY, x, y ); + double scale = GetParent()->GetScreen()->GetScalingFactor(); + + wxPoint center = GetParent()->GetScreen()->GetScrollCenterPosition(); + center.x += wxRound( (double) ( x - tmpX ) / scale ); + center.y += wxRound( (double) ( y - tmpY ) / scale ); + GetParent()->GetScreen()->SetScrollCenterPosition( center ); + Scroll( x, y ); event.Skip(); } @@ -1007,11 +1017,13 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) if( m_panScrollbarLimits ) { int x, y; + int tmpX, tmpY; int ppux, ppuy; int maxX, maxY; int vsizeX, vsizeY; int csizeX, csizeY; + GetViewStart( &tmpX, &tmpY ); GetScrollPixelsPerUnit( &ppux, &ppuy ); GetVirtualSize( &vsizeX, &vsizeY ); GetClientSize( &csizeX, &csizeY ); @@ -1057,6 +1069,13 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event ) Scroll( x/ppux, y/ppuy ); + double scale = GetParent()->GetScreen()->GetScalingFactor(); + + wxPoint center = GetParent()->GetScreen()->GetScrollCenterPosition(); + center.x += wxRound( (double) ( x - tmpX ) / scale ) / ppux; + center.y += wxRound( (double) ( y - tmpY ) / scale ) / ppuy; + GetParent()->GetScreen()->SetScrollCenterPosition( center ); + Refresh(); Update(); } From 5cbd311e803ab4b32515f109a7c62e2508bb4961 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Thu, 12 Apr 2012 17:31:31 -0400 Subject: [PATCH 66/68] Internal unit improvements and Pcbnew s-expression file format changes. * Move EDA_TEXT object into separate header and source file. * Compile EDA_TEXT class separately for BOARD_ITEM and SCH_ITEM units. * Compile PAGE_INFO class separately for BOARD_ITEM and SCH_ITEM units. * Minor formatting tweaks to Pcbnew s-expression file. * Move internal unit formatting functions into BOARD_ITEM and SCH_ITEM. --- bitmap2component/bitmap2cmp_gui.cpp | 14 - common/CMakeLists.txt | 3 +- common/base_struct.cpp | 362 +-------------------- common/class_page_info.cpp | 5 +- common/common.cpp | 12 - common/drawtxt.cpp | 3 +- common/eda_text.cpp | 405 ++++++++++++++++++++++++ common/sch_item_struct.cpp | 49 +++ eeschema/CMakeLists.txt | 2 + eeschema/eeschema.cpp | 1 + eeschema/lib_field.h | 1 + eeschema/lib_text.h | 2 +- eeschema/sch_field.h | 1 + eeschema/sch_screen.cpp | 17 - eeschema/sch_text.h | 1 + include/base_struct.h | 264 +-------------- include/class_board_item.h | 31 ++ include/common.h | 18 -- include/drawtxt.h | 1 + include/eda_text.h | 271 ++++++++++++++++ include/plot_common.h | 1 + include/sch_item_struct.h | 29 ++ include/wxBasePcbFrame.h | 1 + kicad/mainframe.cpp | 13 - pcb_calculator/pcb_calculator_frame.cpp | 12 - pcbnew/class_board.cpp | 74 ++--- pcbnew/class_board_item.cpp | 40 ++- pcbnew/class_dimension.cpp | 60 ++-- pcbnew/class_drawsegment.cpp | 30 +- pcbnew/class_edge_mod.cpp | 2 +- pcbnew/class_mire.cpp | 6 +- pcbnew/class_module.cpp | 14 +- pcbnew/class_netclass.cpp | 18 +- pcbnew/class_pad.cpp | 26 +- pcbnew/class_pcb_text.h | 1 + pcbnew/class_text_mod.cpp | 2 +- pcbnew/class_text_mod.h | 1 + pcbnew/class_track.cpp | 8 +- pcbnew/class_zone.cpp | 18 +- pcbnew/classpcb.cpp | 2 + pcbnew/pcb_plot_params.h | 2 +- 41 files changed, 986 insertions(+), 837 deletions(-) create mode 100644 common/eda_text.cpp create mode 100644 include/eda_text.h diff --git a/bitmap2component/bitmap2cmp_gui.cpp b/bitmap2component/bitmap2cmp_gui.cpp index e9efb955d7..9c7335e712 100644 --- a/bitmap2component/bitmap2cmp_gui.cpp +++ b/bitmap2component/bitmap2cmp_gui.cpp @@ -427,17 +427,3 @@ bool EDA_APP::OnInit() void EDA_APP::MacOpenFile(const wxString &fileName) { } - - - - -/** - * @copydoc - * - * This is a dummy since KiCad doesn't perform any interal unit formatting. - */ -/** @todo Remove FormatBIU() when the common DSO/DSL code is implemented. */ -std::string FormatBIU( int aValue ) -{ - return ""; -} diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index b42c2004f5..cd04595f00 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -36,7 +36,6 @@ set(COMMON_SRCS class_bitmap_base.cpp class_colors_design_settings.cpp class_marker_base.cpp - class_page_info.cpp class_plotter.cpp class_undoredo_container.cpp common.cpp @@ -84,6 +83,8 @@ add_library(common STATIC ${COMMON_SRCS}) set(PCB_COMMON_SRCS base_screen.cpp + eda_text.cpp + class_page_info.cpp pcbcommon.cpp footprint_info.cpp class_layer_box_selector.cpp diff --git a/common/base_struct.cpp b/common/base_struct.cpp index be2fb8465f..c5cdb74ea1 100644 --- a/common/base_struct.cpp +++ b/common/base_struct.cpp @@ -24,11 +24,10 @@ /** * @file base_struct.cpp - * @brief Implementation of EDA_ITEM and EDA_TEXT base classes for KiCad. + * @brief Implementation of EDA_ITEM base class for KiCad. */ #include -#include #include #include #include @@ -36,7 +35,6 @@ #include #include #include -#include #include "../eeschema/dialogs/dialog_schematic_find.h" @@ -274,364 +272,6 @@ std::ostream& EDA_ITEM::NestedSpace( int nestLevel, std::ostream& os ) #endif -/*******************************************/ -/* EDA_TEXT (base class, not directly used */ -/*******************************************/ -EDA_TEXT::EDA_TEXT( const wxString& text ) -{ - m_Size.x = m_Size.y = DEFAULT_SIZE_TEXT; // Width and height of font. - m_Orient = 0; // Rotation angle in 0.1 degrees. - m_Attributs = 0; - m_Mirror = false; // display mirror if true - m_HJustify = GR_TEXT_HJUSTIFY_CENTER; // Default horizontal justification is centered. - m_VJustify = GR_TEXT_VJUSTIFY_CENTER; // Default vertical justification is centered. - m_Thickness = 0; // thickness - m_Italic = false; // true = italic shape. - m_Bold = false; - m_MultilineAllowed = false; // Set to true for multiline text. - m_Text = text; -} - - -EDA_TEXT::EDA_TEXT( const EDA_TEXT& aText ) -{ - m_Pos = aText.m_Pos; - m_Size = aText.m_Size; - m_Orient = aText.m_Orient; - m_Attributs = aText.m_Attributs; - m_Mirror = aText.m_Mirror; - m_HJustify = aText.m_HJustify; - m_VJustify = aText.m_VJustify; - m_Thickness = aText.m_Thickness; - m_Italic = aText.m_Italic; - m_Bold = aText.m_Bold; - m_MultilineAllowed = aText.m_MultilineAllowed; - m_Text = aText.m_Text; -} - - -EDA_TEXT::~EDA_TEXT() -{ -} - - -int EDA_TEXT::LenSize( const wxString& aLine ) const -{ - return ReturnGraphicTextWidth( aLine, m_Size.x, m_Italic, m_Bold ); -} - - -EDA_RECT EDA_TEXT::GetTextBox( int aLine, int aThickness, bool aInvertY ) const -{ - EDA_RECT rect; - wxPoint pos; - wxArrayString* list = NULL; - wxString text = m_Text; - int thickness = ( aThickness < 0 ) ? m_Thickness : aThickness; - - if( m_MultilineAllowed ) - { - list = wxStringSplit( m_Text, '\n' ); - - if ( list->GetCount() ) // GetCount() == 0 for void strings - { - if( aLine >= 0 && (aLine < (int)list->GetCount()) ) - text = list->Item( aLine ); - else - text = list->Item( 0 ); - } - } - - // calculate the H and V size - int dx = LenSize( text ); - int dy = GetInterline(); - - /* Creates bounding box (rectangle) for an horizontal text */ - wxSize textsize = wxSize( dx, dy ); - - if( aInvertY ) - rect.SetOrigin( m_Pos.x, -m_Pos.y ); - else - rect.SetOrigin( m_Pos ); - - // extra dy interval for letters like j and y and ] - int extra_dy = dy - m_Size.y; - rect.Move( wxPoint( 0, -extra_dy / 2 ) ); // move origin by the half extra interval - - // for multiline texts and aLine < 0, merge all rectangles - if( m_MultilineAllowed && list && aLine < 0 ) - { - for( unsigned ii = 1; ii < list->GetCount(); ii++ ) - { - text = list->Item( ii ); - dx = LenSize( text ); - textsize.x = MAX( textsize.x, dx ); - textsize.y += dy; - } - } - - delete list; - - rect.SetSize( textsize ); - - /* Now, calculate the rect origin, according to text justification - * At this point the rectangle origin is the text origin (m_Pos). - * This is true only for left and top text justified texts (using top to bottom Y axis - * orientation). and must be recalculated for others justifications - * also, note the V justification is relative to the first line - */ - switch( m_HJustify ) - { - case GR_TEXT_HJUSTIFY_LEFT: - if( m_Mirror ) - rect.SetX( rect.GetX() - rect.GetWidth() ); - break; - - case GR_TEXT_HJUSTIFY_CENTER: - rect.SetX( rect.GetX() - (rect.GetWidth() / 2) ); - break; - - case GR_TEXT_HJUSTIFY_RIGHT: - if( !m_Mirror ) - rect.SetX( rect.GetX() - rect.GetWidth() ); - break; - } - - dy = m_Size.y + thickness; - - switch( m_VJustify ) - { - case GR_TEXT_VJUSTIFY_TOP: - break; - - case GR_TEXT_VJUSTIFY_CENTER: - rect.SetY( rect.GetY() - (dy / 2) ); - break; - - case GR_TEXT_VJUSTIFY_BOTTOM: - rect.SetY( rect.GetY() - dy ); - break; - } - - rect.Inflate( thickness / 2 ); - rect.Normalize(); // Make h and v sizes always >= 0 - - return rect; -} - - -bool EDA_TEXT::TextHitTest( const wxPoint& aPoint, int aAccuracy ) const -{ - EDA_RECT rect = GetTextBox( -1 ); // Get the full text area. - wxPoint location = aPoint; - - rect.Inflate( aAccuracy ); - RotatePoint( &location, m_Pos, -m_Orient ); - - return rect.Contains( location ); -} - - -bool EDA_TEXT::TextHitTest( const EDA_RECT& aRect, bool aContains, int aAccuracy ) const -{ - EDA_RECT rect = aRect; - - rect.Inflate( aAccuracy ); - - if( aContains ) - return rect.Contains( GetTextBox( -1 ) ); - - return rect.Intersects( GetTextBox( -1 ) ); -} - - -void EDA_TEXT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - EDA_COLOR_T aColor, int aDrawMode, - EDA_DRAW_MODE_T aFillMode, EDA_COLOR_T aAnchor_color ) -{ - if( m_MultilineAllowed ) - { - wxPoint pos = m_Pos; - wxArrayString* list = wxStringSplit( m_Text, '\n' ); - wxPoint offset; - - offset.y = GetInterline(); - - RotatePoint( &offset, m_Orient ); - - for( unsigned i = 0; iCount(); i++ ) - { - wxString txt = list->Item( i ); - DrawOneLineOfText( aPanel, - aDC, - aOffset, - aColor, - aDrawMode, - aFillMode, - i ? UNSPECIFIED : aAnchor_color, - txt, - pos ); - pos += offset; - } - - delete (list); - } - else - DrawOneLineOfText( aPanel, - aDC, - aOffset, - aColor, - aDrawMode, - aFillMode, - aAnchor_color, - m_Text, - m_Pos ); -} - - -void EDA_TEXT::DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, - const wxPoint& aOffset, EDA_COLOR_T aColor, - int aDrawMode, EDA_DRAW_MODE_T aFillMode, - EDA_COLOR_T aAnchor_color, - wxString& aText, wxPoint aPos ) -{ - int width = m_Thickness; - - if( aFillMode == LINE ) - width = 0; - - if( aDrawMode != -1 ) - GRSetDrawMode( aDC, aDrawMode ); - - /* Draw text anchor, if allowed */ - if( aAnchor_color != UNSPECIFIED ) - { - - int anchor_size = aDC->DeviceToLogicalXRel( 2 ); - - aAnchor_color = (EDA_COLOR_T) ( aAnchor_color & MASKCOLOR ); - - int cX = aPos.x + aOffset.x; - int cY = aPos.y + aOffset.y; - - GRLine( aPanel->GetClipBox(), aDC, cX - anchor_size, cY, - cX + anchor_size, cY, 0, aAnchor_color ); - - GRLine( aPanel->GetClipBox(), aDC, cX, cY - anchor_size, - cX, cY + anchor_size, 0, aAnchor_color ); - } - - if( aFillMode == SKETCH ) - width = -width; - - wxSize size = m_Size; - - if( m_Mirror ) - size.x = -size.x; - - DrawGraphicText( aPanel, aDC, aOffset + aPos, aColor, aText, m_Orient, size, - m_HJustify, m_VJustify, width, m_Italic, m_Bold ); -} - - -wxString EDA_TEXT::GetTextStyleName() -{ - int style = 0; - - if( m_Italic ) - style = 1; - - if( m_Bold ) - style += 2; - - wxString stylemsg[4] = { - _("Normal"), - _("Italic"), - _("Bold"), - _("Bold+Italic") - }; - - return stylemsg[style]; -} - - -bool EDA_TEXT::IsDefaultFormatting() const -{ - return ( ( m_Size.x == DEFAULT_SIZE_TEXT ) - && ( m_Size.y == DEFAULT_SIZE_TEXT ) - && ( m_Attributs == 0 ) - && ( m_Mirror == false ) - && ( m_HJustify == GR_TEXT_HJUSTIFY_CENTER ) - && ( m_VJustify == GR_TEXT_VJUSTIFY_CENTER ) - && ( m_Thickness == 0 ) - && ( m_Italic == false ) - && ( m_Bold == false ) - && ( m_MultilineAllowed == false ) ); -} - - -void EDA_TEXT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const - throw( IO_ERROR ) -{ - aFormatter->Print( aNestLevel, "(text %s (at %s", - aFormatter->Quotew( m_Text ).c_str(), FormatBIU( m_Pos ).c_str() ); - - if( m_Orient != 0.0 ) - aFormatter->Print( 0, " %0.1f", m_Orient ); - - aFormatter->Print( 0, ")\n" ); - - if( !IsDefaultFormatting() ) - { - aFormatter->Print( aNestLevel+1, "(effects\n" ); - - if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) || m_Bold - || m_Italic ) - { - aFormatter->Print( aNestLevel+2, "(font" ); - - // Add font support here at some point in the future. - - if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) ) - aFormatter->Print( 0, " (size %s)", FormatBIU( m_Size ).c_str() ); - - if( m_Bold ) - aFormatter->Print( 0, " bold" ); - - if( m_Bold ) - aFormatter->Print( 0, " italic" ); - - aFormatter->Print( 0, ")\n"); - } - - if( m_Mirror || ( m_HJustify != GR_TEXT_HJUSTIFY_CENTER ) - || ( m_VJustify != GR_TEXT_VJUSTIFY_CENTER ) ) - { - aFormatter->Print( aNestLevel+2, "(justify"); - - if( m_HJustify != GR_TEXT_HJUSTIFY_CENTER ) - aFormatter->Print( 0, (m_HJustify == GR_TEXT_HJUSTIFY_LEFT) ? " left" : " right" ); - - if( m_VJustify != GR_TEXT_VJUSTIFY_CENTER ) - aFormatter->Print( 0, (m_VJustify == GR_TEXT_VJUSTIFY_TOP) ? " top" : " bottom" ); - - if( m_Mirror ) - aFormatter->Print( 0, " mirror" ); - - aFormatter->Print( 0, ")\n" ); - } - - // As of now the only place this is used is in Eeschema to hide or show the text. - if( m_Attributs ) - aFormatter->Print( aNestLevel+2, "hide\n" ); - - aFormatter->Print( aNestLevel+1, ")\n" ); - } - - aFormatter->Print( aNestLevel, ")\n" ); -} - - /******************/ /* Class EDA_RECT */ /******************/ diff --git a/common/class_page_info.cpp b/common/class_page_info.cpp index ff86d8c457..6c6612bd28 100644 --- a/common/class_page_info.cpp +++ b/common/class_page_info.cpp @@ -36,6 +36,7 @@ #define PAPER_A1 wxPAPER_A2 #endif + // Standard paper sizes nicknames. const wxString PAGE_INFO::A4( wxT( "A4" ) ); const wxString PAGE_INFO::A3( wxT( "A3" ) ); @@ -318,11 +319,11 @@ void PAGE_INFO::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aContro // If page is A3 landscape, then it is assumed to be the default and is not written. if( !IsDefault() ) { - aFormatter->Print( aNestLevel, "(page %s", TO_UTF8( GetType() ) ); + aFormatter->Print( aNestLevel, "(page %s", aFormatter->Quotew( GetType() ).c_str() ); // The page dimensions are only required for user defined page sizes. if( GetType() == PAGE_INFO::Custom ) - aFormatter->Print( aNestLevel, " %d %d", GetWidthMils(), GetHeightMils() ); + aFormatter->Print( aNestLevel, " %d %d", GetWidthIU(), GetHeightIU() ); if( IsCustom() && IsPortrait() ) aFormatter->Print( aNestLevel, " portrait" ); diff --git a/common/common.cpp b/common/common.cpp index 9656e1db33..db77f54ab3 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -560,15 +560,3 @@ wxString& operator <<( wxString& aString, const wxPoint& aPos ) return aString; } - - -std::string FormatBIU( const wxPoint& aPoint ) -{ - return FormatBIU( aPoint.x ) + " " + FormatBIU( aPoint.y ); -} - - -std::string FormatBIU( const wxSize& aSize ) -{ - return FormatBIU( aSize.GetWidth() ) + " " + FormatBIU( aSize.GetHeight() ); -} diff --git a/common/drawtxt.cpp b/common/drawtxt.cpp index 36887666a4..fed7ff29d0 100644 --- a/common/drawtxt.cpp +++ b/common/drawtxt.cpp @@ -4,10 +4,9 @@ */ #include #include - #include #include - +#include // EDA_TEXT_HJUSTIFY_T and EDA_TEXT_VJUSTIFY_T #include #include #include diff --git a/common/eda_text.cpp b/common/eda_text.cpp new file mode 100644 index 0000000000..5d718d82f0 --- /dev/null +++ b/common/eda_text.cpp @@ -0,0 +1,405 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2004 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @file eda_text.cpp + * @brief Implementation of base KiCad text object. + */ + +#include +#include +#include // MAX +#include // RotatePoint +#include // EDA_DRAW_PANEL + + +// Conversion to application internal units defined at build time. +#if defined( PCBNEW ) +#include +#if defined( USE_PCBNEW_NANOMETRES ) +#define MILS_TO_IU( x ) ( x * 25400 ); +#else +#define MILS_TO_IU( x ) ( x * 10 ) +#endif +#elif defined( EESCHEMA ) +#include +#define MILS_TO_IU( x ) ( x ) +#else +#error "Cannot resolve units formatting due to no definition of EESCHEMA or PCBNEW." +#endif + + +EDA_TEXT::EDA_TEXT( const wxString& text ) +{ + m_Size.x = m_Size.y = MILS_TO_IU( DEFAULT_SIZE_TEXT ); // Width and height of font. + m_Orient = 0; // Rotation angle in 0.1 degrees. + m_Attributs = 0; + m_Mirror = false; // display mirror if true + m_HJustify = GR_TEXT_HJUSTIFY_CENTER; // Default horizontal justification is centered. + m_VJustify = GR_TEXT_VJUSTIFY_CENTER; // Default vertical justification is centered. + m_Thickness = 0; // thickness + m_Italic = false; // true = italic shape. + m_Bold = false; + m_MultilineAllowed = false; // Set to true for multiline text. + m_Text = text; +} + + +EDA_TEXT::EDA_TEXT( const EDA_TEXT& aText ) +{ + m_Pos = aText.m_Pos; + m_Size = aText.m_Size; + m_Orient = aText.m_Orient; + m_Attributs = aText.m_Attributs; + m_Mirror = aText.m_Mirror; + m_HJustify = aText.m_HJustify; + m_VJustify = aText.m_VJustify; + m_Thickness = aText.m_Thickness; + m_Italic = aText.m_Italic; + m_Bold = aText.m_Bold; + m_MultilineAllowed = aText.m_MultilineAllowed; + m_Text = aText.m_Text; +} + + +EDA_TEXT::~EDA_TEXT() +{ +} + + +int EDA_TEXT::LenSize( const wxString& aLine ) const +{ + return ReturnGraphicTextWidth( aLine, m_Size.x, m_Italic, m_Bold ); +} + + +EDA_RECT EDA_TEXT::GetTextBox( int aLine, int aThickness, bool aInvertY ) const +{ + EDA_RECT rect; + wxPoint pos; + wxArrayString* list = NULL; + wxString text = m_Text; + int thickness = ( aThickness < 0 ) ? m_Thickness : aThickness; + + if( m_MultilineAllowed ) + { + list = wxStringSplit( m_Text, '\n' ); + + if ( list->GetCount() ) // GetCount() == 0 for void strings + { + if( aLine >= 0 && (aLine < (int)list->GetCount()) ) + text = list->Item( aLine ); + else + text = list->Item( 0 ); + } + } + + // calculate the H and V size + int dx = LenSize( text ); + int dy = GetInterline(); + + /* Creates bounding box (rectangle) for an horizontal text */ + wxSize textsize = wxSize( dx, dy ); + + if( aInvertY ) + rect.SetOrigin( m_Pos.x, -m_Pos.y ); + else + rect.SetOrigin( m_Pos ); + + // extra dy interval for letters like j and y and ] + int extra_dy = dy - m_Size.y; + rect.Move( wxPoint( 0, -extra_dy / 2 ) ); // move origin by the half extra interval + + // for multiline texts and aLine < 0, merge all rectangles + if( m_MultilineAllowed && list && aLine < 0 ) + { + for( unsigned ii = 1; ii < list->GetCount(); ii++ ) + { + text = list->Item( ii ); + dx = LenSize( text ); + textsize.x = MAX( textsize.x, dx ); + textsize.y += dy; + } + } + + delete list; + + rect.SetSize( textsize ); + + /* Now, calculate the rect origin, according to text justification + * At this point the rectangle origin is the text origin (m_Pos). + * This is true only for left and top text justified texts (using top to bottom Y axis + * orientation). and must be recalculated for others justifications + * also, note the V justification is relative to the first line + */ + switch( m_HJustify ) + { + case GR_TEXT_HJUSTIFY_LEFT: + if( m_Mirror ) + rect.SetX( rect.GetX() - rect.GetWidth() ); + break; + + case GR_TEXT_HJUSTIFY_CENTER: + rect.SetX( rect.GetX() - (rect.GetWidth() / 2) ); + break; + + case GR_TEXT_HJUSTIFY_RIGHT: + if( !m_Mirror ) + rect.SetX( rect.GetX() - rect.GetWidth() ); + break; + } + + dy = m_Size.y + thickness; + + switch( m_VJustify ) + { + case GR_TEXT_VJUSTIFY_TOP: + break; + + case GR_TEXT_VJUSTIFY_CENTER: + rect.SetY( rect.GetY() - (dy / 2) ); + break; + + case GR_TEXT_VJUSTIFY_BOTTOM: + rect.SetY( rect.GetY() - dy ); + break; + } + + rect.Inflate( thickness / 2 ); + rect.Normalize(); // Make h and v sizes always >= 0 + + return rect; +} + + +bool EDA_TEXT::TextHitTest( const wxPoint& aPoint, int aAccuracy ) const +{ + EDA_RECT rect = GetTextBox( -1 ); // Get the full text area. + wxPoint location = aPoint; + + rect.Inflate( aAccuracy ); + RotatePoint( &location, m_Pos, -m_Orient ); + + return rect.Contains( location ); +} + + +bool EDA_TEXT::TextHitTest( const EDA_RECT& aRect, bool aContains, int aAccuracy ) const +{ + EDA_RECT rect = aRect; + + rect.Inflate( aAccuracy ); + + if( aContains ) + return rect.Contains( GetTextBox( -1 ) ); + + return rect.Intersects( GetTextBox( -1 ) ); +} + + +void EDA_TEXT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, + EDA_COLOR_T aColor, int aDrawMode, + EDA_DRAW_MODE_T aFillMode, EDA_COLOR_T aAnchor_color ) +{ + if( m_MultilineAllowed ) + { + wxPoint pos = m_Pos; + wxArrayString* list = wxStringSplit( m_Text, '\n' ); + wxPoint offset; + + offset.y = GetInterline(); + + RotatePoint( &offset, m_Orient ); + + for( unsigned i = 0; iCount(); i++ ) + { + wxString txt = list->Item( i ); + DrawOneLineOfText( aPanel, + aDC, + aOffset, + aColor, + aDrawMode, + aFillMode, + i ? UNSPECIFIED : aAnchor_color, + txt, + pos ); + pos += offset; + } + + delete (list); + } + else + DrawOneLineOfText( aPanel, + aDC, + aOffset, + aColor, + aDrawMode, + aFillMode, + aAnchor_color, + m_Text, + m_Pos ); +} + + +void EDA_TEXT::DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, + const wxPoint& aOffset, EDA_COLOR_T aColor, + int aDrawMode, EDA_DRAW_MODE_T aFillMode, + EDA_COLOR_T aAnchor_color, + wxString& aText, wxPoint aPos ) +{ + int width = m_Thickness; + + if( aFillMode == LINE ) + width = 0; + + if( aDrawMode != -1 ) + GRSetDrawMode( aDC, aDrawMode ); + + /* Draw text anchor, if allowed */ + if( aAnchor_color != UNSPECIFIED ) + { + + int anchor_size = aDC->DeviceToLogicalXRel( 2 ); + + aAnchor_color = (EDA_COLOR_T) ( aAnchor_color & MASKCOLOR ); + + int cX = aPos.x + aOffset.x; + int cY = aPos.y + aOffset.y; + + GRLine( aPanel->GetClipBox(), aDC, cX - anchor_size, cY, + cX + anchor_size, cY, 0, aAnchor_color ); + + GRLine( aPanel->GetClipBox(), aDC, cX, cY - anchor_size, + cX, cY + anchor_size, 0, aAnchor_color ); + } + + if( aFillMode == SKETCH ) + width = -width; + + wxSize size = m_Size; + + if( m_Mirror ) + size.x = -size.x; + + DrawGraphicText( aPanel, aDC, aOffset + aPos, aColor, aText, m_Orient, size, + m_HJustify, m_VJustify, width, m_Italic, m_Bold ); +} + + +wxString EDA_TEXT::GetTextStyleName() +{ + int style = 0; + + if( m_Italic ) + style = 1; + + if( m_Bold ) + style += 2; + + wxString stylemsg[4] = { + _("Normal"), + _("Italic"), + _("Bold"), + _("Bold+Italic") + }; + + return stylemsg[style]; +} + + +bool EDA_TEXT::IsDefaultFormatting() const +{ + return ( ( m_Size.x == DEFAULT_SIZE_TEXT ) + && ( m_Size.y == DEFAULT_SIZE_TEXT ) + && ( m_Attributs == 0 ) + && ( m_Mirror == false ) + && ( m_HJustify == GR_TEXT_HJUSTIFY_CENTER ) + && ( m_VJustify == GR_TEXT_VJUSTIFY_CENTER ) + && ( m_Thickness == 0 ) + && ( m_Italic == false ) + && ( m_Bold == false ) + && ( m_MultilineAllowed == false ) ); +} + + +void EDA_TEXT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ) +{ + aFormatter->Print( aNestLevel, "(text %s (at %s", + aFormatter->Quotew( m_Text ).c_str(), FMT_IU( m_Pos ).c_str() ); + + if( m_Orient != 0.0 ) + aFormatter->Print( 0, " %s", FMT_ANGLE( m_Orient ).c_str() ); + + aFormatter->Print( 0, ")\n" ); + + if( !IsDefaultFormatting() ) + { + aFormatter->Print( aNestLevel+1, "(effects\n" ); + + if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) || m_Bold + || m_Italic ) + { + aFormatter->Print( aNestLevel+2, "(font" ); + + // Add font support here at some point in the future. + + if( ( m_Size.x != DEFAULT_SIZE_TEXT ) || ( m_Size.y != DEFAULT_SIZE_TEXT ) ) + aFormatter->Print( 0, " (size %s)", FMT_IU( m_Size ).c_str() ); + + if( m_Bold ) + aFormatter->Print( 0, " bold" ); + + if( m_Bold ) + aFormatter->Print( 0, " italic" ); + + aFormatter->Print( 0, ")\n"); + } + + if( m_Mirror || ( m_HJustify != GR_TEXT_HJUSTIFY_CENTER ) + || ( m_VJustify != GR_TEXT_VJUSTIFY_CENTER ) ) + { + aFormatter->Print( aNestLevel+2, "(justify"); + + if( m_HJustify != GR_TEXT_HJUSTIFY_CENTER ) + aFormatter->Print( 0, (m_HJustify == GR_TEXT_HJUSTIFY_LEFT) ? " left" : " right" ); + + if( m_VJustify != GR_TEXT_VJUSTIFY_CENTER ) + aFormatter->Print( 0, (m_VJustify == GR_TEXT_VJUSTIFY_TOP) ? " top" : " bottom" ); + + if( m_Mirror ) + aFormatter->Print( 0, " mirror" ); + + aFormatter->Print( 0, ")\n" ); + } + + // As of now the only place this is used is in Eeschema to hide or show the text. + if( m_Attributs ) + aFormatter->Print( aNestLevel+2, "hide\n" ); + + aFormatter->Print( aNestLevel+1, ")\n" ); + } + + aFormatter->Print( aNestLevel, ")\n" ); +} diff --git a/common/sch_item_struct.cpp b/common/sch_item_struct.cpp index a9c2bec4c0..65a2fba58b 100644 --- a/common/sch_item_struct.cpp +++ b/common/sch_item_struct.cpp @@ -105,3 +105,52 @@ void SCH_ITEM::Plot( PLOTTER* aPlotter ) { wxFAIL_MSG( wxT( "Plot() method not implemented for class " ) + GetClass() ); } + + +std::string SCH_ITEM::FormatInternalUnits( int aValue ) +{ + char buf[50]; + double engUnits = aValue; + int len; + + if( engUnits != 0.0 && fabs( engUnits ) <= 0.0001 ) + { + // printf( "f: " ); + len = snprintf( buf, 49, "%.10f", engUnits ); + + while( --len > 0 && buf[len] == '0' ) + buf[len] = '\0'; + + ++len; + } + else + { + // printf( "g: " ); + len = snprintf( buf, 49, "%.10g", engUnits ); + } + + return std::string( buf, len ); +} + + +std::string SCH_ITEM::FormatAngle( double aAngle ) +{ + char temp[50]; + int len; + + len = snprintf( temp, 49, "%.10g", aAngle / 10.0 ); + + return std::string( temp, len ); +} + + +std::string SCH_ITEM::FormatInternalUnits( const wxPoint& aPoint ) +{ + return FormatInternalUnits( aPoint.x ) + " " + FormatInternalUnits( aPoint.y ); +} + + +std::string SCH_ITEM::FormatInternalUnits( const wxSize& aSize ) +{ + return FormatInternalUnits( aSize.GetWidth() ) + " " + FormatInternalUnits( aSize.GetHeight() ); +} diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt index 7419c2da6c..cfe73b36e3 100644 --- a/eeschema/CMakeLists.txt +++ b/eeschema/CMakeLists.txt @@ -160,6 +160,8 @@ set(EESCHEMA_SRCS set(EESCHEMA_COMMON_SRCS ../common/dialogs/dialog_page_settings.cpp ../common/base_screen.cpp + ../common/eda_text.cpp + ../common/class_page_info.cpp ) diff --git a/eeschema/eeschema.cpp b/eeschema/eeschema.cpp index 4da3ec25d0..e899851990 100644 --- a/eeschema/eeschema.cpp +++ b/eeschema/eeschema.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include diff --git a/eeschema/lib_field.h b/eeschema/lib_field.h index df3dc0ee38..da47f2639b 100644 --- a/eeschema/lib_field.h +++ b/eeschema/lib_field.h @@ -29,6 +29,7 @@ #ifndef CLASS_LIBENTRY_FIELDS_H #define CLASS_LIBENTRY_FIELDS_H +#include #include diff --git a/eeschema/lib_text.h b/eeschema/lib_text.h index 10ef15582b..391385211c 100644 --- a/eeschema/lib_text.h +++ b/eeschema/lib_text.h @@ -29,9 +29,9 @@ #ifndef _LIB_TEXT_H_ #define _LIB_TEXT_H_ +#include #include - /** * Class LIB_TEXT * defines a component library graphical text item. diff --git a/eeschema/sch_field.h b/eeschema/sch_field.h index 1d7924b963..8d0ff02564 100644 --- a/eeschema/sch_field.h +++ b/eeschema/sch_field.h @@ -31,6 +31,7 @@ #define CLASS_SCH_FIELD_H +#include #include #include diff --git a/eeschema/sch_screen.cpp b/eeschema/sch_screen.cpp index a3e86adbfb..725c637a16 100644 --- a/eeschema/sch_screen.cpp +++ b/eeschema/sch_screen.cpp @@ -1498,20 +1498,3 @@ void SCH_SCREEN::Show( int nestLevel, std::ostream& os ) const NestedSpace( nestLevel, os ) << "\n"; } #endif - - -/** - * Function FormatBIU - * formats Eeschema internal units in mils to a string for s-expression output. - * - * @todo Move FormatBIU() where ever the common DSO/DSL code for Eeschema ends up. - */ -std::string FormatBIU( int aValue ) -{ - char buf[50]; - int len; - - len = snprintf( buf, 49, "%d", aValue ); - - return std::string( buf, len ); -} diff --git a/eeschema/sch_text.h b/eeschema/sch_text.h index 46f3b1ec09..7cae617369 100644 --- a/eeschema/sch_text.h +++ b/eeschema/sch_text.h @@ -32,6 +32,7 @@ #include +#include #include diff --git a/include/base_struct.h b/include/base_struct.h index 25d376bf98..0e9b5036fb 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -131,6 +131,22 @@ enum KICAD_T { }; +/** + * Enum FILL_T + * is the set of fill types used in plotting or drawing enclosed areas. + */ +enum FILL_T { + NO_FILL, // Poly, Square, Circle, Arc = option No Fill + FILLED_SHAPE, /* Poly, Square, Circle, Arc = option Fill + * with current color ("Solid shape") */ + FILLED_WITH_BG_BODYCOLOR /* Poly, Square, Circle, Arc = option Fill + * with background body color, translucent + * (texts inside this shape can be seen) + * not filled in B&W mode when plotting or + * printing */ +}; + + enum SEARCH_RESULT { SEARCH_QUIT, SEARCH_CONTINUE @@ -771,252 +787,4 @@ inline EDA_ITEM* new_clone( const EDA_ITEM& aItem ) { return aItem.Clone(); } typedef std::vector< EDA_ITEM* > EDA_ITEMS; -// Graphic Text justify: -// Values -1,0,1 are used in computations, do not change them -enum EDA_TEXT_HJUSTIFY_T { - GR_TEXT_HJUSTIFY_LEFT = -1, - GR_TEXT_HJUSTIFY_CENTER = 0, - GR_TEXT_HJUSTIFY_RIGHT = 1 -}; - - -enum EDA_TEXT_VJUSTIFY_T { - GR_TEXT_VJUSTIFY_TOP = -1, - GR_TEXT_VJUSTIFY_CENTER = 0, - GR_TEXT_VJUSTIFY_BOTTOM = 1 -}; - -/* Options to show solid segments (segments, texts...) */ -enum EDA_DRAW_MODE_T { - LINE = 0, // segments are drawn as lines - FILLED, // normal mode: segments have thickness - SKETCH // sketch mode: segments have thickness, but are not filled -}; - -/** - * Enum FILL_T - * is the set of fill types used in plotting or drawing enclosed areas. - */ -enum FILL_T { - NO_FILL, // Poly, Square, Circle, Arc = option No Fill - FILLED_SHAPE, /* Poly, Square, Circle, Arc = option Fill - * with current color ("Solid shape") */ - FILLED_WITH_BG_BODYCOLOR /* Poly, Square, Circle, Arc = option Fill - * with background body color, translucent - * (texts inside this shape can be seen) - * not filled in B&W mode when plotting or - * printing */ -}; - - -#define DEFAULT_SIZE_TEXT 60 /* default text height (in mils or 1/1000") */ - -/** - * Class EDA_TEXT - * is a basic class to handle texts (labels, texts on components or footprints - * ..) not used directly. The "used" text classes are derived from EDA_ITEM and - * EDA_TEXT using multiple inheritance. - */ -class EDA_TEXT -{ -public: - wxString m_Text; - int m_Thickness; ///< pen size used to draw this text - double m_Orient; ///< Orient in 0.1 degrees - wxPoint m_Pos; ///< XY position of anchor text. - wxSize m_Size; ///< XY size of text - bool m_Mirror; ///< true if mirrored - int m_Attributs; ///< bit flags such as visible, etc. - bool m_Italic; ///< should be italic font (if available) - bool m_Bold; ///< should be bold font (if available) - EDA_TEXT_HJUSTIFY_T m_HJustify; ///< horizontal justification - EDA_TEXT_VJUSTIFY_T m_VJustify; ///< vertical justification - - bool m_MultilineAllowed; /**< true to use multiline option, false - * to use only single line text - * Single line is faster in - * calculations than multiline */ - -public: - EDA_TEXT( const wxString& text = wxEmptyString ); - EDA_TEXT( const EDA_TEXT& aText ); - virtual ~EDA_TEXT(); - - /** - * Function SetThickness - * sets text thickness. - * @param aNewThickness is the new text thickness. - */ - void SetThickness( int aNewThickness ) { m_Thickness = aNewThickness; }; - - /** - * Function GetThickness - * returns text thickness. - * @return int - text thickness. - */ - int GetThickness() const { return m_Thickness; }; - - void SetOrientation( double aOrientation ) { m_Orient = aOrientation; } - double GetOrientation() const { return m_Orient; } - - void SetItalic( bool isItalic ) { m_Italic = isItalic; } - bool IsItalic() const { return m_Italic; } - - void SetMirrored( bool isMirrored ) { m_Mirror = isMirrored; } - bool IsMirrored() const { return m_Mirror; } - - bool IsDefaultFormatting() const; - - /** - * Function SetSize - * sets text size. - * @param aNewSize is the new text size. - */ - void SetSize( const wxSize& aNewSize ) { m_Size = aNewSize; }; - - /** - * Function GetSize - * returns text size. - * @return wxSize - text size. - */ - const wxSize GetSize() const { return m_Size; }; - - /// named differently than the ones using multiple inheritance and including this class - void SetPos( const wxPoint& aPoint ) { m_Pos = aPoint; } - const wxPoint GetPos() const { return m_Pos; } - - int GetLength() const { return m_Text.Length(); }; - - /** - * Function Draw - * @param aPanel = the current DrawPanel - * @param aDC = the current Device Context - * @param aOffset = draw offset (usually (0,0)) - * @param aColor = text color - * @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode. - * @param aDisplay_mode = LINE, FILLED or SKETCH - * @param aAnchor_color = anchor color ( UNSPECIFIED = do not draw anchor ). - */ - void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, - const wxPoint& aOffset, EDA_COLOR_T aColor, - int aDrawMode, EDA_DRAW_MODE_T aDisplay_mode = LINE, - EDA_COLOR_T aAnchor_color = UNSPECIFIED ); - -private: - - /** - * Function DrawOneLineOfText - * Draw a single text line. - * Used to draw each line of this EDA_TEXT, that can be multiline - * @param aPanel = the current DrawPanel - * @param aDC = the current Device Context - * @param aOffset = draw offset (usually (0,0)) - * @param aColor = text color - * @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode. - * @param aFillMode = LINE, FILLED or SKETCH - * @param aAnchor_color = anchor color ( UNSPECIFIED = do not draw anchor ). - * @param aText = the single line of text to draw. - * @param aPos = the position of this line ). - */ - void DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, - const wxPoint& aOffset, EDA_COLOR_T aColor, - int aDrawMode, EDA_DRAW_MODE_T aFillMode, - EDA_COLOR_T aAnchor_color, wxString& aText, - wxPoint aPos ); - -public: - - /** - * Function TextHitTest - * Test if \a aPoint is within the bounds of this object. - * @param aPoint- A wxPoint to test - * @param aAccuracy - Amount to inflate the bounding box. - * @return bool - true if a hit, else false - */ - bool TextHitTest( const wxPoint& aPoint, int aAccuracy = 0 ) const; - - /** - * Function TextHitTest (overloaded) - * Tests if object bounding box is contained within or intersects \a aRect. - * - * @param aRect - Rect to test against. - * @param aContains - Test for containment instead of intersection if true. - * @param aAccuracy - Amount to inflate the bounding box. - * @return bool - true if a hit, else false - */ - bool TextHitTest( const EDA_RECT& aRect, bool aContains = false, int aAccuracy = 0 ) const; - - /** - * Function LenSize - * @return the text length in internal units - * @param aLine : the line of text to consider. - * For single line text, this parameter is always m_Text - */ - int LenSize( const wxString& aLine ) const; - - /** - * Function GetTextBox - * useful in multiline texts to calculate the full text or a line area (for - * zones filling, locate functions....) - * @return the rect containing the line of text (i.e. the position and the - * size of one line) this rectangle is calculated for 0 orient text. - * If orientation is not 0 the rect must be rotated to match the - * physical area - * @param aLine The line of text to consider. - * for single line text, aLine is unused - * If aLine == -1, the full area (considering all lines) is returned - * @param aThickness Overrides the current thickness when greater than 0. - * @param aInvertY Invert the Y axis when calculating bounding box. - */ - EDA_RECT GetTextBox( int aLine = -1, int aThickness = -1, bool aInvertY = false ) const; - - /** - * Function GetInterline - * return the distance between 2 text lines - * has meaning only for multiline texts - */ - int GetInterline() const - { - return (( m_Size.y * 14 ) / 10) + m_Thickness; - } - - /** - * Function GetTextStyleName - * @return a wxString with the style name( Normal, Italic, Bold, Bold+Italic) - */ - wxString GetTextStyleName(); - - void SetText( const wxString& aText ) { m_Text = aText; } - - /** - * Function GetText - * returns the string associated with the text object. - *

- * This function is virtual to allow derived classes to override getting the - * string to provide a way for modifying the base string by adding a suffix or - * prefix to the base string. - *

- * @return a const wxString object containing the string of the item. - */ - virtual const wxString GetText() const { return m_Text; } - - EDA_TEXT_HJUSTIFY_T GetHorizJustify() const { return m_HJustify; }; - EDA_TEXT_VJUSTIFY_T GetVertJustify() const { return m_VJustify; }; - void SetHorizJustify( EDA_TEXT_HJUSTIFY_T aType ) { m_HJustify = aType; }; - void SetVertJustify( EDA_TEXT_VJUSTIFY_T aType ) { m_VJustify = aType; }; - - /** - * Function Format - * outputs the object to \a aFormatter in s-expression form. - * - * @param aFormatter The #OUTPUTFORMATTER object to write to. - * @param aNestLevel The indentation next level. - * @param aControlBits The control bit definition for object specific formatting. - * @throw IO_ERROR on write error. - */ - virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const - throw( IO_ERROR ); - -}; - #endif // BASE_STRUCT_H_ diff --git a/include/class_board_item.h b/include/class_board_item.h index 718206be7c..bd7e5a6743 100644 --- a/include/class_board_item.h +++ b/include/class_board_item.h @@ -36,6 +36,10 @@ #include +/// Abbrevation for fomatting internal units to a string. +#define FMT_IU BOARD_ITEM::FormatInternalUnits +#define FMT_ANGLE BOARD_ITEM::FormatAngle + class BOARD; class EDA_DRAW_PANEL; @@ -247,6 +251,33 @@ public: * @return wxString containing the layer name associated with this item. */ wxString GetLayerName() const; + + + /** + * Function FormatInternalUnits + * converts \a aValue from board internal units to a string appropriate for writing to file. + * + * @note Internal units for board items can be either deci-mils or nanometers depending + * on how KiCad is build. + * @param aValue A coordinate value to convert. + * @return A std::string object containing the converted value. + */ + static std::string FormatInternalUnits( int aValue ); + + /** + * Function FormatAngle + * converts \a aAngle from board units to a string appropriate for writing to file. + * + * @note Internal angles for board items can be either degrees or tenths of degree + * on how KiCad is built. + * @param aAngle A angle value to convert. + * @return A std::string object containing the converted angle. + */ + static std::string FormatAngle( double aAngle ); + + static std::string FormatInternalUnits( const wxPoint& aPoint ); + + static std::string FormatInternalUnits( const wxSize& aSize ); }; #endif /* BOARD_ITEM_STRUCT_H */ diff --git a/include/common.h b/include/common.h index 2a767a4cc1..f1cc46e354 100644 --- a/include/common.h +++ b/include/common.h @@ -136,24 +136,6 @@ enum EDA_UNITS_T { }; -/** - * Function FormatBIU - * converts coordinate \a aValue from the application specific internal units to a string - * appropriate to write to an #OUTPUTFORMATTER in the s-expression file formats. - * - * @note A separate version of this function exists for Pcbnew and Eeschema. This removes - * the runtime dependency for converting coordinates to the appropriate application. - * Do not add any runtime conversions to either the Pcbnew or Eeschema implementation - * of this function. - * @param aValue The value in application specific internal units to convert. - * @return An s-expression appropriate string containing the converted value in millimeters. - */ -extern std::string FormatBIU( int aValue ); - -extern std::string FormatBIU( const wxPoint& aPoint ); - -extern std::string FormatBIU( const wxSize& aSize ); - // forward declarations: class LibNameList; diff --git a/include/drawtxt.h b/include/drawtxt.h index c29e2d8a3c..53ef4ddea8 100644 --- a/include/drawtxt.h +++ b/include/drawtxt.h @@ -8,6 +8,7 @@ #define __INCLUDE__DRAWTXT_H__ 1 #include +#include // EDA_TEXT_HJUSTIFY_T and EDA_TEXT_VJUSTIFY_T class EDA_DRAW_PANEL; class PLOTTER; diff --git a/include/eda_text.h b/include/eda_text.h new file mode 100644 index 0000000000..529733bb3c --- /dev/null +++ b/include/eda_text.h @@ -0,0 +1,271 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2004 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @file eda_text.h + * @brief Definition of base KiCad text object. + */ + +#ifndef _EDA_TEXT_H_ +#define _EDA_TEXT_H_ + +#include // wxStringSplit +#include // EDA_DRAW_MODE_T +#include // EDA_RECT + + +// Graphic Text justify: +// Values -1,0,1 are used in computations, do not change them +enum EDA_TEXT_HJUSTIFY_T { + GR_TEXT_HJUSTIFY_LEFT = -1, + GR_TEXT_HJUSTIFY_CENTER = 0, + GR_TEXT_HJUSTIFY_RIGHT = 1 +}; + + +enum EDA_TEXT_VJUSTIFY_T { + GR_TEXT_VJUSTIFY_TOP = -1, + GR_TEXT_VJUSTIFY_CENTER = 0, + GR_TEXT_VJUSTIFY_BOTTOM = 1 +}; + +/* Options to show solid segments (segments, texts...) */ +enum EDA_DRAW_MODE_T { + LINE = 0, // segments are drawn as lines + FILLED, // normal mode: segments have thickness + SKETCH // sketch mode: segments have thickness, but are not filled +}; + +#define DEFAULT_SIZE_TEXT 60 /* default text height (in mils or 1/1000") */ + +/** + * Class EDA_TEXT + * is a basic class to handle texts (labels, texts on components or footprints + * ..) not used directly. The "used" text classes are derived from EDA_ITEM and + * EDA_TEXT using multiple inheritance. + */ +class EDA_TEXT +{ +public: + wxString m_Text; + int m_Thickness; ///< pen size used to draw this text + double m_Orient; ///< Orient in 0.1 degrees + wxPoint m_Pos; ///< XY position of anchor text. + wxSize m_Size; ///< XY size of text + bool m_Mirror; ///< true if mirrored + int m_Attributs; ///< bit flags such as visible, etc. + bool m_Italic; ///< should be italic font (if available) + bool m_Bold; ///< should be bold font (if available) + EDA_TEXT_HJUSTIFY_T m_HJustify; ///< horizontal justification + EDA_TEXT_VJUSTIFY_T m_VJustify; ///< vertical justification + + bool m_MultilineAllowed; /**< true to use multiline option, false + * to use only single line text + * Single line is faster in + * calculations than multiline */ + +public: + EDA_TEXT( const wxString& text = wxEmptyString ); + EDA_TEXT( const EDA_TEXT& aText ); + virtual ~EDA_TEXT(); + + /** + * Function SetThickness + * sets text thickness. + * @param aNewThickness is the new text thickness. + */ + void SetThickness( int aNewThickness ) { m_Thickness = aNewThickness; }; + + /** + * Function GetThickness + * returns text thickness. + * @return int - text thickness. + */ + int GetThickness() const { return m_Thickness; }; + + void SetOrientation( double aOrientation ) { m_Orient = aOrientation; } + double GetOrientation() const { return m_Orient; } + + void SetItalic( bool isItalic ) { m_Italic = isItalic; } + bool IsItalic() const { return m_Italic; } + + void SetMirrored( bool isMirrored ) { m_Mirror = isMirrored; } + bool IsMirrored() const { return m_Mirror; } + + bool IsDefaultFormatting() const; + + /** + * Function SetSize + * sets text size. + * @param aNewSize is the new text size. + */ + void SetSize( const wxSize& aNewSize ) { m_Size = aNewSize; }; + + /** + * Function GetSize + * returns text size. + * @return wxSize - text size. + */ + const wxSize GetSize() const { return m_Size; }; + + /// named differently than the ones using multiple inheritance and including this class + void SetPos( const wxPoint& aPoint ) { m_Pos = aPoint; } + const wxPoint GetPos() const { return m_Pos; } + + int GetLength() const { return m_Text.Length(); }; + + /** + * Function Draw + * @param aPanel = the current DrawPanel + * @param aDC = the current Device Context + * @param aOffset = draw offset (usually (0,0)) + * @param aColor = text color + * @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode. + * @param aDisplay_mode = LINE, FILLED or SKETCH + * @param aAnchor_color = anchor color ( UNSPECIFIED = do not draw anchor ). + */ + void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, + const wxPoint& aOffset, EDA_COLOR_T aColor, + int aDrawMode, EDA_DRAW_MODE_T aDisplay_mode = LINE, + EDA_COLOR_T aAnchor_color = UNSPECIFIED ); + +private: + + /** + * Function DrawOneLineOfText + * Draw a single text line. + * Used to draw each line of this EDA_TEXT, that can be multiline + * @param aPanel = the current DrawPanel + * @param aDC = the current Device Context + * @param aOffset = draw offset (usually (0,0)) + * @param aColor = text color + * @param aDrawMode = GR_OR, GR_XOR.., -1 to use the current mode. + * @param aFillMode = LINE, FILLED or SKETCH + * @param aAnchor_color = anchor color ( UNSPECIFIED = do not draw anchor ). + * @param aText = the single line of text to draw. + * @param aPos = the position of this line ). + */ + void DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC, + const wxPoint& aOffset, EDA_COLOR_T aColor, + int aDrawMode, EDA_DRAW_MODE_T aFillMode, + EDA_COLOR_T aAnchor_color, wxString& aText, + wxPoint aPos ); + +public: + + /** + * Function TextHitTest + * Test if \a aPoint is within the bounds of this object. + * @param aPoint- A wxPoint to test + * @param aAccuracy - Amount to inflate the bounding box. + * @return bool - true if a hit, else false + */ + bool TextHitTest( const wxPoint& aPoint, int aAccuracy = 0 ) const; + + /** + * Function TextHitTest (overloaded) + * Tests if object bounding box is contained within or intersects \a aRect. + * + * @param aRect - Rect to test against. + * @param aContains - Test for containment instead of intersection if true. + * @param aAccuracy - Amount to inflate the bounding box. + * @return bool - true if a hit, else false + */ + bool TextHitTest( const EDA_RECT& aRect, bool aContains = false, int aAccuracy = 0 ) const; + + /** + * Function LenSize + * @return the text length in internal units + * @param aLine : the line of text to consider. + * For single line text, this parameter is always m_Text + */ + int LenSize( const wxString& aLine ) const; + + /** + * Function GetTextBox + * useful in multiline texts to calculate the full text or a line area (for + * zones filling, locate functions....) + * @return the rect containing the line of text (i.e. the position and the + * size of one line) this rectangle is calculated for 0 orient text. + * If orientation is not 0 the rect must be rotated to match the + * physical area + * @param aLine The line of text to consider. + * for single line text, aLine is unused + * If aLine == -1, the full area (considering all lines) is returned + * @param aThickness Overrides the current thickness when greater than 0. + * @param aInvertY Invert the Y axis when calculating bounding box. + */ + EDA_RECT GetTextBox( int aLine = -1, int aThickness = -1, bool aInvertY = false ) const; + + /** + * Function GetInterline + * return the distance between 2 text lines + * has meaning only for multiline texts + */ + int GetInterline() const + { + return (( m_Size.y * 14 ) / 10) + m_Thickness; + } + + /** + * Function GetTextStyleName + * @return a wxString with the style name( Normal, Italic, Bold, Bold+Italic) + */ + wxString GetTextStyleName(); + + void SetText( const wxString& aText ) { m_Text = aText; } + + /** + * Function GetText + * returns the string associated with the text object. + *

+ * This function is virtual to allow derived classes to override getting the + * string to provide a way for modifying the base string by adding a suffix or + * prefix to the base string. + *

+ * @return a const wxString object containing the string of the item. + */ + virtual const wxString GetText() const { return m_Text; } + + EDA_TEXT_HJUSTIFY_T GetHorizJustify() const { return m_HJustify; }; + EDA_TEXT_VJUSTIFY_T GetVertJustify() const { return m_VJustify; }; + void SetHorizJustify( EDA_TEXT_HJUSTIFY_T aType ) { m_HJustify = aType; }; + void SetVertJustify( EDA_TEXT_VJUSTIFY_T aType ) { m_VJustify = aType; }; + + /** + * Function Format + * outputs the object to \a aFormatter in s-expression form. + * + * @param aFormatter The #OUTPUTFORMATTER object to write to. + * @param aNestLevel The indentation next level. + * @param aControlBits The control bit definition for object specific formatting. + * @throw IO_ERROR on write error. + */ + virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const + throw( IO_ERROR ); + +}; + + +#endif // _EDA_TEXT_H_ diff --git a/include/plot_common.h b/include/plot_common.h index 0a239d8c98..f9c4c62dcc 100644 --- a/include/plot_common.h +++ b/include/plot_common.h @@ -11,6 +11,7 @@ #include #include #include // PAGE_INFO +#include // FILL_T /** * Enum PlotFormat diff --git a/include/sch_item_struct.h b/include/sch_item_struct.h index 663f918f2e..f1629745ec 100644 --- a/include/sch_item_struct.h +++ b/include/sch_item_struct.h @@ -60,6 +60,10 @@ typedef vector< SCH_ITEMS_ITR > SCH_ITEMS_ITRS; #endif +#define FMT_IU SCH_ITEM::FormatInternalUnits +#define FMT_ANGLE SCH_ITEM::FormatAngle + + /// Flag to enable find and replace tracing using the WXTRACE environment variable. extern const wxString traceFindReplace; @@ -365,6 +369,31 @@ public: virtual bool operator <( const SCH_ITEM& aItem ) const; + /** + * Function FormatInternalUnits + * converts \a aValue from schematic internal units to a string appropriate for writing + * to file. + * + * @param aValue A coordinate value to convert. + * @return A std::string object containing the converted value. + */ + static std::string FormatInternalUnits( int aValue ); + + /** + * Function FormatAngle + * converts \a aAngle from board units to a string appropriate for writing to file. + * + * @note Internal angles for board items can be either degrees or tenths of degree + * on how KiCad is built. + * @param aAngle A angle value to convert. + * @return A std::string object containing the converted angle. + */ + static std::string FormatAngle( double aAngle ); + + static std::string FormatInternalUnits( const wxPoint& aPoint ); + + static std::string FormatInternalUnits( const wxSize& aSize ); + private: /** * Function doIsConnected diff --git a/include/wxBasePcbFrame.h b/include/wxBasePcbFrame.h index 71af7cde6c..60b3c438a9 100644 --- a/include/wxBasePcbFrame.h +++ b/include/wxBasePcbFrame.h @@ -36,6 +36,7 @@ #include #include +#include // EDA_DRAW_MODE_T #include #include diff --git a/kicad/mainframe.cpp b/kicad/mainframe.cpp index 772c66e054..472907f178 100644 --- a/kicad/mainframe.cpp +++ b/kicad/mainframe.cpp @@ -299,16 +299,3 @@ void KICAD_MANAGER_FRAME::SaveSettings() cfg->Write( TreeFrameWidthEntry, m_LeftWin->GetSize().x ); } - - -/** - * Function FormatBIU - * is a dummy function to prevent link errors since KiCad doesn't perform any interal - * unit formatting. - * - * @todo Remove FormatBIU() when the common DSO/DSL code is implemented. - */ -std::string FormatBIU( int aValue ) -{ - return ""; -} diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp index 64d0a50775..ab32faa8bd 100644 --- a/pcb_calculator/pcb_calculator_frame.cpp +++ b/pcb_calculator/pcb_calculator_frame.cpp @@ -358,15 +358,3 @@ void PCB_CALCULATOR_FRAME::SetDataFilename( const wxString & aFilename) m_regulators_fileNameCtrl->SetValue( fn.GetFullPath() ); } } - - -/** - * @copydoc - * - * This is a dummy since KiCad doesn't perform any interal unit formatting. - */ -/** @todo Remove FormatBIU() when the common DSO/DSL code is implemented. */ -std::string FormatBIU( int aValue ) -{ - return ""; -} diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 1181c4ae12..1eec4719a9 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -2151,12 +2151,12 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit // Write Bounding box info aFormatter->Print( aNestLevel+1, "(area %s %s %s %s)\n", - FormatBIU( m_BoundingBox.GetX() ).c_str(), - FormatBIU( m_BoundingBox.GetY() ).c_str(), - FormatBIU( m_BoundingBox.GetRight() ).c_str(), - FormatBIU( m_BoundingBox.GetBottom() ).c_str() ); + FMT_IU( m_BoundingBox.GetX() ).c_str(), + FMT_IU( m_BoundingBox.GetY() ).c_str(), + FMT_IU( m_BoundingBox.GetRight() ).c_str(), + FMT_IU( m_BoundingBox.GetBottom() ).c_str() ); aFormatter->Print( aNestLevel+1, "(thickness %s)\n", - FormatBIU( GetDesignSettings().m_BoardThickness ).c_str() ); + FMT_IU( GetDesignSettings().m_BoardThickness ).c_str() ); aFormatter->Print( aNestLevel+1, "(drawings %d)\n", m_Drawings.GetCount() ); aFormatter->Print( aNestLevel+1, "(tracks %d)\n", GetNumSegmTrack() ); @@ -2195,92 +2195,92 @@ void BOARD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit // Save current default track width, for compatibility with older Pcbnew version; aFormatter->Print( aNestLevel+1, "(last_trace_width %s)\n", - FormatBIU( m_TrackWidthList[m_TrackWidthSelector] ).c_str() ); + FMT_IU( m_TrackWidthList[m_TrackWidthSelector] ).c_str() ); // Save custom tracks width list (the first is not saved here: this is the netclass value for( unsigned ii = 1; ii < m_TrackWidthList.size(); ii++ ) aFormatter->Print( aNestLevel+1, "(user_trace_width%d %s)\n", - ii+1, FormatBIU( m_TrackWidthList[ii] ).c_str() ); + ii+1, FMT_IU( m_TrackWidthList[ii] ).c_str() ); aFormatter->Print( aNestLevel+1, "(trace_clearance %s)\n", - FormatBIU( m_NetClasses.GetDefault()->GetClearance() ).c_str() ); + FMT_IU( m_NetClasses.GetDefault()->GetClearance() ).c_str() ); // ZONE_SETTINGS aFormatter->Print( aNestLevel+1, "(zone_clearance %s)\n", - FormatBIU( GetZoneSettings().m_ZoneClearance ).c_str() ); + FMT_IU( GetZoneSettings().m_ZoneClearance ).c_str() ); aFormatter->Print( aNestLevel+1, "(zone_45_only %d)\n", GetZoneSettings().m_Zone_45_Only ); aFormatter->Print( aNestLevel+1, "(trace_min %s)\n", - FormatBIU( GetDesignSettings().m_TrackMinWidth ).c_str() ); + FMT_IU( GetDesignSettings().m_TrackMinWidth ).c_str() ); aFormatter->Print( aNestLevel+1, "(segment_width %s)\n", - FormatBIU( GetDesignSettings().m_DrawSegmentWidth ).c_str() ); + FMT_IU( GetDesignSettings().m_DrawSegmentWidth ).c_str() ); aFormatter->Print( aNestLevel+1, "(edge_width %s)\n", - FormatBIU( GetDesignSettings().m_EdgeSegmentWidth ).c_str() ); + FMT_IU( GetDesignSettings().m_EdgeSegmentWidth ).c_str() ); // Save current default via size, for compatibility with older Pcbnew version; aFormatter->Print( aNestLevel+1, "(via_size %s)\n", - FormatBIU( m_NetClasses.GetDefault()->GetViaDiameter() ).c_str() ); + FMT_IU( m_NetClasses.GetDefault()->GetViaDiameter() ).c_str() ); aFormatter->Print( aNestLevel+1, "(via_drill %s)\n", - FormatBIU( m_NetClasses.GetDefault()->GetViaDrill() ).c_str() ); + FMT_IU( m_NetClasses.GetDefault()->GetViaDrill() ).c_str() ); aFormatter->Print( aNestLevel+1, "(via_min_size %s)\n", - FormatBIU( GetDesignSettings().m_ViasMinSize ).c_str() ); + FMT_IU( GetDesignSettings().m_ViasMinSize ).c_str() ); aFormatter->Print( aNestLevel+1, "(via_min_drill %s)\n", - FormatBIU( GetDesignSettings().m_ViasMinDrill ).c_str() ); + FMT_IU( GetDesignSettings().m_ViasMinDrill ).c_str() ); // Save custom vias diameters list (the first is not saved here: this is // the netclass value for( unsigned ii = 1; ii < m_ViasDimensionsList.size(); ii++ ) aFormatter->Print( aNestLevel+1, "(user_via%d %s %s)\n", ii, - FormatBIU( m_ViasDimensionsList[ii].m_Diameter ).c_str(), - FormatBIU( m_ViasDimensionsList[ii].m_Drill ).c_str() ); + FMT_IU( m_ViasDimensionsList[ii].m_Diameter ).c_str(), + FMT_IU( m_ViasDimensionsList[ii].m_Drill ).c_str() ); // for old versions compatibility: aFormatter->Print( aNestLevel+1, "(uvia_size %s)\n", - FormatBIU( m_NetClasses.GetDefault()->GetuViaDiameter() ).c_str() ); + FMT_IU( m_NetClasses.GetDefault()->GetuViaDiameter() ).c_str() ); aFormatter->Print( aNestLevel+1, "(uvia_drill %s)\n", - FormatBIU( m_NetClasses.GetDefault()->GetuViaDrill() ).c_str() ); + FMT_IU( m_NetClasses.GetDefault()->GetuViaDrill() ).c_str() ); aFormatter->Print( aNestLevel+1, "(uvias_allow %s)\n", - FormatBIU( GetDesignSettings().m_MicroViasAllowed ).c_str() ); + FMT_IU( GetDesignSettings().m_MicroViasAllowed ).c_str() ); aFormatter->Print( aNestLevel+1, "(uvia_min_size %s)\n", - FormatBIU( GetDesignSettings().m_MicroViasMinSize ).c_str() ); + FMT_IU( GetDesignSettings().m_MicroViasMinSize ).c_str() ); aFormatter->Print( aNestLevel+1, "(uvia_min_drill %s)\n", - FormatBIU( GetDesignSettings().m_MicroViasMinDrill ).c_str() ); + FMT_IU( GetDesignSettings().m_MicroViasMinDrill ).c_str() ); aFormatter->Print( aNestLevel+1, "(pcb_text_width %s)\n", - FormatBIU( GetDesignSettings().m_PcbTextWidth ).c_str() ); + FMT_IU( GetDesignSettings().m_PcbTextWidth ).c_str() ); aFormatter->Print( aNestLevel+1, "(pcb_text_size %s %s)\n", - FormatBIU( GetDesignSettings().m_PcbTextSize.x ).c_str(), - FormatBIU( GetDesignSettings().m_PcbTextSize.y ).c_str() ); + FMT_IU( GetDesignSettings().m_PcbTextSize.x ).c_str(), + FMT_IU( GetDesignSettings().m_PcbTextSize.y ).c_str() ); aFormatter->Print( aNestLevel+1, "(mod_edge_width %s)\n", - FormatBIU( GetDesignSettings().m_ModuleSegmentWidth ).c_str() ); + FMT_IU( GetDesignSettings().m_ModuleSegmentWidth ).c_str() ); aFormatter->Print( aNestLevel+1, "(mod_text_size %s %s)\n", - FormatBIU( GetDesignSettings().m_ModuleTextSize.x ).c_str(), - FormatBIU( GetDesignSettings().m_ModuleTextSize.y ).c_str() ); + FMT_IU( GetDesignSettings().m_ModuleTextSize.x ).c_str(), + FMT_IU( GetDesignSettings().m_ModuleTextSize.y ).c_str() ); aFormatter->Print( aNestLevel+1, "(mod_text_width %s)\n", - FormatBIU( GetDesignSettings().m_ModuleTextWidth ).c_str() ); + FMT_IU( GetDesignSettings().m_ModuleTextWidth ).c_str() ); aFormatter->Print( aNestLevel+1, "(pad_size %s %s)\n", - FormatBIU( GetDesignSettings().m_Pad_Master.GetSize().x ).c_str(), - FormatBIU( GetDesignSettings().m_Pad_Master.GetSize().x ).c_str() ); + FMT_IU( GetDesignSettings().m_Pad_Master.GetSize().x ).c_str(), + FMT_IU( GetDesignSettings().m_Pad_Master.GetSize().x ).c_str() ); aFormatter->Print( aNestLevel+1, "(pad_drill %s)\n", - FormatBIU( GetDesignSettings().m_Pad_Master.GetDrillSize().x ).c_str() ); + FMT_IU( GetDesignSettings().m_Pad_Master.GetDrillSize().x ).c_str() ); aFormatter->Print( aNestLevel+1, "(pad_to_mask_clearance %s)\n", - FormatBIU( GetDesignSettings().m_SolderMaskMargin ).c_str() ); + FMT_IU( GetDesignSettings().m_SolderMaskMargin ).c_str() ); if( GetDesignSettings().m_SolderPasteMargin != 0 ) aFormatter->Print( aNestLevel+1, "(pad_to_paste_clearance %s)\n", - FormatBIU( GetDesignSettings().m_SolderPasteMargin ).c_str() ); + FMT_IU( GetDesignSettings().m_SolderPasteMargin ).c_str() ); if( GetDesignSettings().m_SolderPasteMarginRatio != 0 ) aFormatter->Print( aNestLevel+1, "(pad_to_paste_clearance_ratio %g)\n", GetDesignSettings().m_SolderPasteMarginRatio ); aFormatter->Print( aNestLevel+1, "(aux_axis_origin %s %s)\n", - FormatBIU( GetOriginAxisPosition().x ).c_str(), - FormatBIU( GetOriginAxisPosition().y ).c_str() ); + FMT_IU( GetOriginAxisPosition().x ).c_str(), + FMT_IU( GetOriginAxisPosition().y ).c_str() ); aFormatter->Print( aNestLevel+1, "(visible_elements %X)\n", GetDesignSettings().GetVisibleElements() ); diff --git a/pcbnew/class_board_item.cpp b/pcbnew/class_board_item.cpp index 7db715d625..e9639b4fbb 100644 --- a/pcbnew/class_board_item.cpp +++ b/pcbnew/class_board_item.cpp @@ -64,15 +64,16 @@ wxString BOARD_ITEM::GetLayerName() const } -/** @todo Move Pcbnew version of FormatBIU() where ever the common DSO/DSL code ends up. */ -std::string FormatBIU( int aValue ) +std::string BOARD_ITEM::FormatInternalUnits( int aValue ) { -#if !defined( USE_PCBNEW_NANOMETRES ) - wxFAIL_MSG( wxT( "Cannot use FormatBIU() unless Pcbnew is build with PCBNEW_NANOMETERS=ON." ) ); + char buf[50]; + +#if defined( USE_PCBNEW_NANOMETRES ) + double engUnits = aValue / 1000000.0; +#else + double engUnits = ( aValue * 10000.0 ) / 25.4 / 1000000.0; #endif - char buf[50]; - double engUnits = aValue / 1000000.0; int len; if( engUnits != 0.0 && fabs( engUnits ) <= 0.0001 ) @@ -93,3 +94,30 @@ std::string FormatBIU( int aValue ) return std::string( buf, len ); } + + +std::string BOARD_ITEM::FormatAngle( double aAngle ) +{ + char temp[50]; + int len; + +#if defined( USE_PCBNEW_SEXPR_FILE_FORMAT ) + len = snprintf( temp, 49, "%.10g", aAngle / 10.0 ); +#else + len = snprintf( temp, 49, "%.10g", aAngle ); +#endif + + return std::string( temp, len ); +} + + +std::string BOARD_ITEM::FormatInternalUnits( const wxPoint& aPoint ) +{ + return FormatInternalUnits( aPoint.x ) + " " + FormatInternalUnits( aPoint.y ); +} + + +std::string BOARD_ITEM::FormatInternalUnits( const wxSize& aSize ) +{ + return FormatInternalUnits( aSize.GetWidth() ) + " " + FormatInternalUnits( aSize.GetHeight() ); +} diff --git a/pcbnew/class_dimension.cpp b/pcbnew/class_dimension.cpp index d80584c91d..c954b630e3 100644 --- a/pcbnew/class_dimension.cpp +++ b/pcbnew/class_dimension.cpp @@ -610,53 +610,53 @@ EDA_ITEM* DIMENSION::Clone() const void DIMENSION::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const throw( IO_ERROR ) { - aFormatter->Print( aNestLevel, "(dimension %s\n", FormatBIU( m_Value ).c_str() ); + aFormatter->Print( aNestLevel, "(dimension %s\n", FMT_IU( m_Value ).c_str() ); aFormatter->Print( aNestLevel+1, "(width %s)\n(layer %d)\n(tstamp %lX)\n", - FormatBIU( m_Width ).c_str(), GetLayer(), GetTimeStamp() ); + FMT_IU( m_Width ).c_str(), GetLayer(), GetTimeStamp() ); m_Text.EDA_TEXT::Format( aFormatter, aNestLevel+1, aControlBits ); aFormatter->Print( aNestLevel+1, "(feature1 pts((xy %s %s) (xy %s %s)))\n", - FormatBIU( m_featureLineDOx ).c_str(), - FormatBIU( m_featureLineDOy ).c_str(), - FormatBIU( m_featureLineDFx ).c_str(), - FormatBIU( m_featureLineDFy ).c_str() ); + FMT_IU( m_featureLineDOx ).c_str(), + FMT_IU( m_featureLineDOy ).c_str(), + FMT_IU( m_featureLineDFx ).c_str(), + FMT_IU( m_featureLineDFy ).c_str() ); aFormatter->Print( aNestLevel+1, "(feature2 pts((xy %s %s) (xy %s %s)))\n", - FormatBIU( m_featureLineGOx ).c_str(), - FormatBIU( m_featureLineGOy ).c_str(), - FormatBIU( m_featureLineGFx ).c_str(), - FormatBIU( m_featureLineGFy ).c_str() ); + FMT_IU( m_featureLineGOx ).c_str(), + FMT_IU( m_featureLineGOy ).c_str(), + FMT_IU( m_featureLineGFx ).c_str(), + FMT_IU( m_featureLineGFy ).c_str() ); aFormatter->Print( aNestLevel+1, "(crossbar pts((xy %s %s) (xy %s %s)))\n", - FormatBIU( m_crossBarOx ).c_str(), - FormatBIU( m_crossBarOy ).c_str(), - FormatBIU( m_crossBarFx ).c_str(), - FormatBIU( m_crossBarFy ).c_str() ); + FMT_IU( m_crossBarOx ).c_str(), + FMT_IU( m_crossBarOy ).c_str(), + FMT_IU( m_crossBarFx ).c_str(), + FMT_IU( m_crossBarFy ).c_str() ); aFormatter->Print( aNestLevel+1, "(arrow1a pts((xy %s %s) (xy %s %s)))\n", - FormatBIU( m_arrowD1Ox ).c_str(), - FormatBIU( m_arrowD1Oy ).c_str(), - FormatBIU( m_arrowD1Fx ).c_str(), - FormatBIU( m_arrowD1Fy ).c_str() ); + FMT_IU( m_arrowD1Ox ).c_str(), + FMT_IU( m_arrowD1Oy ).c_str(), + FMT_IU( m_arrowD1Fx ).c_str(), + FMT_IU( m_arrowD1Fy ).c_str() ); aFormatter->Print( aNestLevel+1, "(arrow1b pts((xy %s %s) (xy %s %s)))\n", - FormatBIU( m_arrowD2Ox ).c_str(), - FormatBIU( m_arrowD2Oy ).c_str(), - FormatBIU( m_arrowD2Fx ).c_str(), - FormatBIU( m_arrowD2Fy ).c_str() ); + FMT_IU( m_arrowD2Ox ).c_str(), + FMT_IU( m_arrowD2Oy ).c_str(), + FMT_IU( m_arrowD2Fx ).c_str(), + FMT_IU( m_arrowD2Fy ).c_str() ); aFormatter->Print( aNestLevel+1, "(arrow2a pts((xy %s %s) (xy %s %s)))\n", - FormatBIU( m_arrowG1Ox ).c_str(), - FormatBIU( m_arrowG1Oy ).c_str(), - FormatBIU( m_arrowG1Fx ).c_str(), - FormatBIU( m_arrowG1Fy ).c_str() ); + FMT_IU( m_arrowG1Ox ).c_str(), + FMT_IU( m_arrowG1Oy ).c_str(), + FMT_IU( m_arrowG1Fx ).c_str(), + FMT_IU( m_arrowG1Fy ).c_str() ); aFormatter->Print( aNestLevel+1, "(arrow2b pts((xy %s %s) (xy %s %s)))\n", - FormatBIU( m_arrowG2Ox ).c_str(), - FormatBIU( m_arrowG2Oy ).c_str(), - FormatBIU( m_arrowG2Fx ).c_str(), - FormatBIU( m_arrowG2Fy ).c_str() ); + FMT_IU( m_arrowG2Ox ).c_str(), + FMT_IU( m_arrowG2Oy ).c_str(), + FMT_IU( m_arrowG2Fx ).c_str(), + FMT_IU( m_arrowG2Fy ).c_str() ); aFormatter->Print( aNestLevel, ")\n" ); } diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 7c710e179a..b8156747b8 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -554,39 +554,39 @@ void DRAWSEGMENT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCont switch( m_Shape ) { case S_SEGMENT: // Line - aFormatter->Print( 0, "line (pts xy(%s) xy(%s))", - FormatBIU( m_Start ).c_str(), - FormatBIU( m_End ).c_str() ); + aFormatter->Print( 0, "line (pts (xy %s) (xy %s))", + FMT_IU( m_Start ).c_str(), + FMT_IU( m_End ).c_str() ); break; case S_CIRCLE: // Circle aFormatter->Print( 0, "circle (center (xy %s)) (end (xy %s))", - FormatBIU( m_Start ).c_str(), - FormatBIU( m_End ).c_str() ); + FMT_IU( m_Start ).c_str(), + FMT_IU( m_End ).c_str() ); break; case S_ARC: // Arc - aFormatter->Print( 0, "arc (start (xy %s)) (end (xy %s)) (angle %0.1f)", - FormatBIU( m_Start ).c_str(), - FormatBIU( m_End ).c_str(), - m_Angle ); + aFormatter->Print( 0, "arc (start (xy %s)) (end (xy %s)) (angle %s)", + FMT_IU( m_Start ).c_str(), + FMT_IU( m_End ).c_str(), + FMT_ANGLE( m_Angle ).c_str() ); break; case S_POLYGON: // Polygon aFormatter->Print( 0, "line (pts" ); for( i = 0; iPrint( 0, " (xy %s)", FormatBIU( m_PolyPoints[i] ).c_str() ); + aFormatter->Print( 0, " (xy %s)", FMT_IU( m_PolyPoints[i] ).c_str() ); aFormatter->Print( 0, ")" ); break; case S_CURVE: // Bezier curve aFormatter->Print( 0, "curve pts(xy(%s) xy(%s) xy(%s) xy(%s))", - FormatBIU( m_Start ).c_str(), - FormatBIU( m_BezierC1 ).c_str(), - FormatBIU( m_BezierC2 ).c_str(), - FormatBIU( m_End ).c_str() ); + FMT_IU( m_Start ).c_str(), + FMT_IU( m_BezierC1 ).c_str(), + FMT_IU( m_BezierC2 ).c_str(), + FMT_IU( m_End ).c_str() ); break; default: @@ -596,7 +596,7 @@ void DRAWSEGMENT::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCont aFormatter->Print( 0, " (layer %d)", GetLayer() ); if( m_Width != 0 ) - aFormatter->Print( 0, " (width %s)", FormatBIU( m_Width ).c_str() ); + aFormatter->Print( 0, " (width %s)", FMT_IU( m_Width ).c_str() ); if( GetTimeStamp() ) aFormatter->Print( 0, " (tstamp %lX)", GetTimeStamp() ); diff --git a/pcbnew/class_edge_mod.cpp b/pcbnew/class_edge_mod.cpp index d5511a2a33..bc8b84f053 100644 --- a/pcbnew/class_edge_mod.cpp +++ b/pcbnew/class_edge_mod.cpp @@ -283,7 +283,7 @@ void EDGE_MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCont throw( IO_ERROR ) { aFormatter->Print( aNestLevel, "(edge (start (xy %s)) (end (xy %s))\n", - FormatBIU( m_Start0 ).c_str(), FormatBIU( m_End0 ).c_str() ); + FMT_IU( m_Start0 ).c_str(), FMT_IU( m_End0 ).c_str() ); DRAWSEGMENT::Format( aFormatter, aNestLevel+1, aControlBits ); aFormatter->Print( aNestLevel, ")\n" ); } diff --git a/pcbnew/class_mire.cpp b/pcbnew/class_mire.cpp index 5a18558e9a..e545b1f752 100644 --- a/pcbnew/class_mire.cpp +++ b/pcbnew/class_mire.cpp @@ -230,11 +230,11 @@ void PCB_TARGET::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aContr { aFormatter->Print( aNestLevel, "(target %c (pos (xy %s)) (size %s)", ( m_Shape ) ? 'x' : '+', - FormatBIU( m_Pos ).c_str(), - FormatBIU( m_Size ).c_str() ); + FMT_IU( m_Pos ).c_str(), + FMT_IU( m_Size ).c_str() ); if( m_Width != 0 ) - aFormatter->Print( aNestLevel, " (width %s)", FormatBIU( m_Width ).c_str() ); + aFormatter->Print( aNestLevel, " (width %s)", FMT_IU( m_Width ).c_str() ); aFormatter->Print( aNestLevel, " (layer %d)", GetLayer() ); diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index 50c517d72b..27f0be46c7 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -677,10 +677,10 @@ void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBi aFormatter->Print( 0, " (tedit %lX) (tstamp %lX)\n", GetLastEditTime(), GetTimeStamp() ); - aFormatter->Print( aNestLevel+1, "(at %s", FormatBIU( m_Pos ).c_str() ); + aFormatter->Print( aNestLevel+1, "(at %s", FMT_IU( m_Pos ).c_str() ); if( m_Orient != 0.0 ) - aFormatter->Print( 0, " %0.1f", m_Orient ); + aFormatter->Print( 0, " %s", FMT_ANGLE( m_Orient ).c_str() ); aFormatter->Print( 0, ")\n" ); @@ -701,11 +701,11 @@ void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBi if( m_LocalSolderMaskMargin != 0 ) aFormatter->Print( aNestLevel+1, "(solder_mask_margin %s)\n", - FormatBIU( m_LocalSolderMaskMargin ).c_str() ); + FMT_IU( m_LocalSolderMaskMargin ).c_str() ); if( m_LocalSolderPasteMargin != 0 ) aFormatter->Print( aNestLevel+1, "(solder_paste_margin %s)\n", - FormatBIU( m_LocalSolderPasteMargin ).c_str() ); + FMT_IU( m_LocalSolderPasteMargin ).c_str() ); if( m_LocalSolderPasteMarginRatio != 0 ) aFormatter->Print( aNestLevel+1, "(solder_paste_ratio %g)\n", @@ -713,18 +713,18 @@ void MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBi if( m_LocalClearance != 0 ) aFormatter->Print( aNestLevel+1, "(clearance %s)\n", - FormatBIU( m_LocalClearance ).c_str() ); + FMT_IU( m_LocalClearance ).c_str() ); if( m_ZoneConnection != UNDEFINED_CONNECTION ) aFormatter->Print( aNestLevel+1, "(zone_connect %d)\n", m_ZoneConnection ); if( m_ThermalWidth != 0 ) aFormatter->Print( aNestLevel+1, "(thermal_width %s)\n", - FormatBIU( m_ThermalWidth ).c_str() ); + FMT_IU( m_ThermalWidth ).c_str() ); if( m_ThermalGap != 0 ) aFormatter->Print( aNestLevel+1, "(thermal_gap %s)\n", - FormatBIU( m_ThermalGap ).c_str() ); + FMT_IU( m_ThermalGap ).c_str() ); // Attributes if( m_Attributs != MOD_DEFAULT ) diff --git a/pcbnew/class_netclass.cpp b/pcbnew/class_netclass.cpp index 38c221bffb..f945963a95 100644 --- a/pcbnew/class_netclass.cpp +++ b/pcbnew/class_netclass.cpp @@ -39,9 +39,9 @@ const wxString NETCLASS::Default = wxT("Default"); // Initial values for netclass initialization -int NETCLASS::DEFAULT_CLEARANCE = DMils2iu( 100 ); // track to track and track to pads clearance -int NETCLASS::DEFAULT_VIA_DRILL = DMils2iu( 250 ); // default via drill -int NETCLASS::DEFAULT_UVIA_DRILL = DMils2iu( 50 ); // micro via drill +int NETCLASS::DEFAULT_CLEARANCE = DMils2iu( 100 ); // track to track and track to pads clearance +int NETCLASS::DEFAULT_VIA_DRILL = DMils2iu( 250 ); // default via drill +int NETCLASS::DEFAULT_UVIA_DRILL = DMils2iu( 50 ); // micro via drill NETCLASS::NETCLASS( BOARD* aParent, const wxString& aName, const NETCLASS* initialParameters ) : @@ -328,14 +328,14 @@ void NETCLASS::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControl aFormatter->Quotew( GetName() ).c_str(), aFormatter->Quotew( GetDescription() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(clearance %s)\n", FormatBIU( GetClearance() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(trace_width %s)\n", FormatBIU( GetTrackWidth() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(clearance %s)\n", FMT_IU( GetClearance() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(trace_width %s)\n", FMT_IU( GetTrackWidth() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(via_dia %s)\n", FormatBIU( GetViaDiameter() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(via_drill %s)\n", FormatBIU( GetViaDrill() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(via_dia %s)\n", FMT_IU( GetViaDiameter() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(via_drill %s)\n", FMT_IU( GetViaDrill() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(uvia_dia %s)\n", FormatBIU( GetuViaDiameter() ).c_str() ); - aFormatter->Print( aNestLevel+1, "(uvia_drill %s)\n", FormatBIU( GetuViaDrill() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(uvia_dia %s)\n", FMT_IU( GetuViaDiameter() ).c_str() ); + aFormatter->Print( aNestLevel+1, "(uvia_drill %s)\n", FMT_IU( GetuViaDrill() ).c_str() ); for( NETCLASS::const_iterator it = begin(); it!= end(); ++it ) aFormatter->Print( aNestLevel+1, "(add_net %s)\n", aFormatter->Quotew( *it ).c_str() ); diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index b3921efd31..13cebb1509 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -860,25 +860,25 @@ void D_PAD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit aFormatter->Print( aNestLevel, "(pad %s %s %s (size %s)\n", aFormatter->Quotew( GetPadName() ).c_str(), type.c_str(), shape.c_str(), - FormatBIU( m_Size ).c_str() ); - aFormatter->Print( aNestLevel+1, "(at %s", FormatBIU( m_Pos0 ).c_str() ); + FMT_IU( m_Size ).c_str() ); + aFormatter->Print( aNestLevel+1, "(at %s", FMT_IU( m_Pos0 ).c_str() ); if( m_Orient != 0.0 ) - aFormatter->Print( 0, " %0.1f", m_Orient ); + aFormatter->Print( 0, " %s", FMT_ANGLE( m_Orient ).c_str() ); aFormatter->Print( 0, ")\n" ); if( (m_Drill.GetWidth() > 0) || (m_Drill.GetHeight() > 0) ) { - std::string drill = (m_Drill.GetHeight() > 0) ? FormatBIU( m_Drill ).c_str() : - FormatBIU( m_Drill.GetWidth() ).c_str(); + std::string drill = (m_Drill.GetHeight() > 0) ? FMT_IU( m_Drill ).c_str() : + FMT_IU( m_Drill.GetWidth() ).c_str(); aFormatter->Print( aNestLevel+1, "(drill %s", drill.c_str() ); if( (m_Offset.x > 0) || (m_Offset.y > 0) ) { std::string drillOffset = ( m_Offset.x > 0 ) ? - FormatBIU( m_Offset ).c_str() : - FormatBIU( m_Offset.x ).c_str(); + FMT_IU( m_Offset ).c_str() : + FMT_IU( m_Offset.x ).c_str(); aFormatter->Print( 0, " (offset %s)", drillOffset.c_str() ); } @@ -891,15 +891,15 @@ void D_PAD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit GetNet(), aFormatter->Quotew( m_Netname ).c_str() ); if( m_LengthDie != 0 ) - aFormatter->Print( aNestLevel+1, "(die_length %s)\n", FormatBIU( m_LengthDie ).c_str() ); + aFormatter->Print( aNestLevel+1, "(die_length %s)\n", FMT_IU( m_LengthDie ).c_str() ); if( m_LocalSolderMaskMargin != 0 ) aFormatter->Print( aNestLevel+1, "(solder_mask_margin %s)\n", - FormatBIU( m_LocalSolderMaskMargin ).c_str() ); + FMT_IU( m_LocalSolderMaskMargin ).c_str() ); if( m_LocalSolderPasteMargin != 0 ) aFormatter->Print( aNestLevel+1, "(solder_paste_margin %s)\n", - FormatBIU( m_LocalSolderPasteMargin ).c_str() ); + FMT_IU( m_LocalSolderPasteMargin ).c_str() ); if( m_LocalSolderPasteMarginRatio != 0 ) aFormatter->Print( aNestLevel+1, "(solder_paste_margin_ratio %g)\n", @@ -907,18 +907,18 @@ void D_PAD::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit if( m_LocalClearance != 0 ) aFormatter->Print( aNestLevel+1, "(clearance %s)\n", - FormatBIU( m_LocalClearance ).c_str() ); + FMT_IU( m_LocalClearance ).c_str() ); if( GetZoneConnection() != UNDEFINED_CONNECTION ) aFormatter->Print( aNestLevel+1, "(zone_connect %d)\n", GetZoneConnection() ); if( GetThermalWidth() != 0 ) aFormatter->Print( aNestLevel+1, "(thermal_width %s)\n", - FormatBIU( GetThermalWidth() ).c_str() ); + FMT_IU( GetThermalWidth() ).c_str() ); if( GetThermalGap() != 0 ) aFormatter->Print( aNestLevel+1, "(thermal_gap %s)\n", - FormatBIU( GetThermalGap() ).c_str() ); + FMT_IU( GetThermalGap() ).c_str() ); aFormatter->Print( aNestLevel, ")\n" ); } diff --git a/pcbnew/class_pcb_text.h b/pcbnew/class_pcb_text.h index ad727f3b93..c21bfca413 100644 --- a/pcbnew/class_pcb_text.h +++ b/pcbnew/class_pcb_text.h @@ -30,6 +30,7 @@ #ifndef CLASS_PCB_TEXT_H #define CLASS_PCB_TEXT_H +#include #include #include diff --git a/pcbnew/class_text_mod.cpp b/pcbnew/class_text_mod.cpp index 7a5e466d7f..9541f62cd4 100644 --- a/pcbnew/class_text_mod.cpp +++ b/pcbnew/class_text_mod.cpp @@ -492,7 +492,7 @@ void TEXTE_MODULE::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCon orient += parent->GetOrientation(); aFormatter->Print( aNestLevel, "(module_text %d (at %s %0.1f)%s\n", m_Type, - FormatBIU( m_Pos0 ).c_str(), orient, (m_NoShow) ? "hide" : "" ); + FMT_IU( m_Pos0 ).c_str(), orient, (m_NoShow) ? "hide" : "" ); EDA_TEXT::Format( aFormatter, aNestLevel+1, aControlBits ); diff --git a/pcbnew/class_text_mod.h b/pcbnew/class_text_mod.h index 0336baaaaf..b64cd788be 100644 --- a/pcbnew/class_text_mod.h +++ b/pcbnew/class_text_mod.h @@ -32,6 +32,7 @@ #define TEXT_MODULE_H_ +#include #include diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index dbe2e80ee7..1fc4ff3a5f 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -1576,16 +1576,16 @@ void TRACK::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBit } aFormatter->Print( aNestLevel, "(via %s (at %s) (size %s)", type.c_str(), - FormatBIU( m_Start ).c_str(), FormatBIU( m_Width ).c_str() ); + FMT_IU( m_Start ).c_str(), FMT_IU( m_Width ).c_str() ); if( m_Drill != UNDEFINED_DRILL_DIAMETER ) - aFormatter->Print( 0, " (drill %s)", FormatBIU( m_Drill ).c_str() ); + aFormatter->Print( 0, " (drill %s)", FMT_IU( m_Drill ).c_str() ); } else { aFormatter->Print( aNestLevel, "(segment (start %s) (end %s) (width %s)", - FormatBIU( m_Start ).c_str(), FormatBIU( m_End ).c_str(), - FormatBIU( m_Width ).c_str() ); + FMT_IU( m_Start ).c_str(), FMT_IU( m_End ).c_str(), + FMT_IU( m_Width ).c_str() ); } aFormatter->Print( 0, " (layer %d) (net %d)", GetLayer(), GetNet() ); diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 4355257d88..8ee9e83b98 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -993,18 +993,18 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC } aFormatter->Print( aNestLevel+1, "(connect_pads %s (clearance %s))\n", - padoption.c_str(), FormatBIU( m_ZoneClearance ).c_str() ); + padoption.c_str(), FMT_IU( m_ZoneClearance ).c_str() ); aFormatter->Print( aNestLevel+1, "(min_thickness %s)\n", - FormatBIU( m_ZoneMinThickness ).c_str() ); + FMT_IU( m_ZoneMinThickness ).c_str() ); aFormatter->Print( aNestLevel+1, "(fill %s (mode %s) (arc_segments %d) (thermal_gap %s) (thermal_bridge_width %s)\n", (m_IsFilled) ? "yes" : "no", (m_FillMode) ? "segment" : "polygon", m_ArcToSegmentsCount, - FormatBIU( m_ThermalReliefGap ).c_str(), - FormatBIU( m_ThermalReliefCopperBridge ).c_str() ); + FMT_IU( m_ThermalReliefGap ).c_str(), + FMT_IU( m_ThermalReliefCopperBridge ).c_str() ); std::string smoothing; @@ -1019,7 +1019,7 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC } aFormatter->Print( aNestLevel+1, "(smoothing %s (radius %s))\n", - smoothing.c_str(), FormatBIU( cornerRadius ).c_str() ); + smoothing.c_str(), FMT_IU( cornerRadius ).c_str() ); const std::vector< CPolyPt >& cv = m_Poly->corner; @@ -1031,7 +1031,7 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC for( std::vector< CPolyPt >::const_iterator it = cv.begin(); it != cv.end(); ++it ) { aFormatter->Print( aNestLevel+3, "(xy %s %s)\n", - FormatBIU( it->x ).c_str(), FormatBIU( it->y ).c_str() ); + FMT_IU( it->x ).c_str(), FMT_IU( it->y ).c_str() ); if( it->end_contour ) { @@ -1060,7 +1060,7 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC for( std::vector< CPolyPt >::const_iterator it = fv.begin(); it != fv.end(); ++it ) { aFormatter->Print( aNestLevel+3, "(xy %s %s)\n", - FormatBIU( it->x ).c_str(), FormatBIU( it->y ).c_str() ); + FMT_IU( it->x ).c_str(), FMT_IU( it->y ).c_str() ); if( it->end_contour ) { @@ -1088,8 +1088,8 @@ void ZONE_CONTAINER::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aC for( std::vector< SEGMENT >::const_iterator it = segs.begin(); it != segs.end(); ++it ) { aFormatter->Print( aNestLevel+2, "(pts (xy %s) (xy %s))\n", - FormatBIU( it->m_Start ).c_str(), - FormatBIU( it->m_End ).c_str() ); + FMT_IU( it->m_Start ).c_str(), + FMT_IU( it->m_End ).c_str() ); } aFormatter->Print( aNestLevel+1, ")\n" ); diff --git a/pcbnew/classpcb.cpp b/pcbnew/classpcb.cpp index 1d7c95cf95..26213ea229 100644 --- a/pcbnew/classpcb.cpp +++ b/pcbnew/classpcb.cpp @@ -9,6 +9,8 @@ #include #include #include +#include // FILLED + #include #include #include diff --git a/pcbnew/pcb_plot_params.h b/pcbnew/pcb_plot_params.h index 1dfced44b2..342547f8db 100644 --- a/pcbnew/pcb_plot_params.h +++ b/pcbnew/pcb_plot_params.h @@ -25,7 +25,7 @@ #include #include -#include +#include // EDA_DRAW_MODE_T class PCB_PLOT_PARAMS_PARSER; class LINE_READER; From b7fe42a545615c799ac07a8289918aa05cb7e651 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 13 Apr 2012 20:44:02 +0200 Subject: [PATCH 67/68] Eeschema: BOM list generation: some fixes and enhancements. drawframe.cpp: commit a fix about scrollbars from lajos kamocsay --- common/drawframe.cpp | 104 ++++++++------ eeschema/component_references_lister.cpp | 101 ++++++++++++- eeschema/dialogs/dialog_build_BOM.cpp | 173 ++++++++++++----------- eeschema/dialogs/dialog_build_BOM.h | 28 ++-- eeschema/netlist.h | 4 +- 5 files changed, 265 insertions(+), 145 deletions(-) diff --git a/common/drawframe.cpp b/common/drawframe.cpp index 9378ca26d0..7f5b4510b5 100644 --- a/common/drawframe.cpp +++ b/common/drawframe.cpp @@ -554,68 +554,80 @@ void EDA_DRAW_FRAME::AdjustScrollBars( const wxPoint& aCenterPosition ) { virtualSize = drawingRect.GetSize(); } - else if( drawingRect.Contains( logicalClientRect ) ) - { - virtualSize = drawingRect.GetSize(); - } else { - int drawingCenterX = drawingRect.x + ( drawingRect.width / 2 ); - int clientCenterX = logicalClientRect.x + ( logicalClientRect.width / 2 ); - int drawingCenterY = drawingRect.y + ( drawingRect.height / 2 ); - int clientCenterY = logicalClientRect.y + ( logicalClientRect.height / 2 ); - - if( logicalClientRect.width > drawingRect.width ) + if( drawingRect.GetLeft() < logicalClientRect.GetLeft() && drawingRect.GetRight() > logicalClientRect.GetRight() ) { - if( drawingCenterX > clientCenterX ) - virtualSize.x = ( drawingCenterX - logicalClientRect.GetLeft() ) * 2; - else if( drawingCenterX < clientCenterX ) - virtualSize.x = ( logicalClientRect.GetRight() - drawingCenterX ) * 2; - else - virtualSize.x = logicalClientRect.width; + virtualSize.x = drawingRect.GetSize().x; } - else if( logicalClientRect.width < drawingRect.width ) + else { - if( drawingCenterX > clientCenterX ) - virtualSize.x = drawingRect.width + - ( (drawingRect.GetLeft() - logicalClientRect.GetLeft() ) * 2 ); - else if( drawingCenterX < clientCenterX ) - virtualSize.x = drawingRect.width + - ( (logicalClientRect.GetRight() - drawingRect.GetRight() ) * 2 ); + int drawingCenterX = drawingRect.x + ( drawingRect.width / 2 ); + int clientCenterX = logicalClientRect.x + ( logicalClientRect.width / 2 ); + + if( logicalClientRect.width > drawingRect.width ) + { + if( drawingCenterX > clientCenterX ) + virtualSize.x = ( drawingCenterX - logicalClientRect.GetLeft() ) * 2; + else if( drawingCenterX < clientCenterX ) + virtualSize.x = ( logicalClientRect.GetRight() - drawingCenterX ) * 2; + else + virtualSize.x = logicalClientRect.width; + } + else if( logicalClientRect.width < drawingRect.width ) + { + if( drawingCenterX > clientCenterX ) + virtualSize.x = drawingRect.width + + ( (drawingRect.GetLeft() - logicalClientRect.GetLeft() ) * 2 ); + else if( drawingCenterX < clientCenterX ) + virtualSize.x = drawingRect.width + + ( (logicalClientRect.GetRight() - drawingRect.GetRight() ) * 2 ); + else + virtualSize.x = drawingRect.width; + } else + { virtualSize.x = drawingRect.width; - } - else - { - virtualSize.x = drawingRect.width; + } } - if( logicalClientRect.height > drawingRect.height ) + if( drawingRect.GetTop() < logicalClientRect.GetTop() && drawingRect.GetBottom() > logicalClientRect.GetBottom() ) { - if( drawingCenterY > clientCenterY ) - virtualSize.y = ( drawingCenterY - logicalClientRect.GetTop() ) * 2; - else if( drawingCenterY < clientCenterY ) - virtualSize.y = ( logicalClientRect.GetBottom() - drawingCenterY ) * 2; - else - virtualSize.y = logicalClientRect.height; - } - else if( logicalClientRect.height < drawingRect.height ) - { - if( drawingCenterY > clientCenterY ) - virtualSize.y = drawingRect.height + - ( ( drawingRect.GetTop() - logicalClientRect.GetTop() ) * 2 ); - else if( drawingCenterY < clientCenterY ) - virtualSize.y = drawingRect.height + - ( ( logicalClientRect.GetBottom() - drawingRect.GetBottom() ) * 2 ); - else - virtualSize.y = drawingRect.height; + virtualSize.y = drawingRect.GetSize().y; } else { - virtualSize.y = drawingRect.height; + int drawingCenterY = drawingRect.y + ( drawingRect.height / 2 ); + int clientCenterY = logicalClientRect.y + ( logicalClientRect.height / 2 ); + + if( logicalClientRect.height > drawingRect.height ) + { + if( drawingCenterY > clientCenterY ) + virtualSize.y = ( drawingCenterY - logicalClientRect.GetTop() ) * 2; + else if( drawingCenterY < clientCenterY ) + virtualSize.y = ( logicalClientRect.GetBottom() - drawingCenterY ) * 2; + else + virtualSize.y = logicalClientRect.height; + } + else if( logicalClientRect.height < drawingRect.height ) + { + if( drawingCenterY > clientCenterY ) + virtualSize.y = drawingRect.height + + ( ( drawingRect.GetTop() - logicalClientRect.GetTop() ) * 2 ); + else if( drawingCenterY < clientCenterY ) + virtualSize.y = drawingRect.height + + ( ( logicalClientRect.GetBottom() - drawingRect.GetBottom() ) * 2 ); + else + virtualSize.y = drawingRect.height; + } + else + { + virtualSize.y = drawingRect.height; + } } } + if( screen->m_Center ) { screen->m_DrawOrg.x = -( wxRound( (double) virtualSize.x / 2.0 ) ); diff --git a/eeschema/component_references_lister.cpp b/eeschema/component_references_lister.cpp index 53aa8d00d7..21ed73f3db 100644 --- a/eeschema/component_references_lister.cpp +++ b/eeschema/component_references_lister.cpp @@ -110,29 +110,52 @@ bool SCH_REFERENCE_LIST::sortByValueAndRef( const SCH_REFERENCE& item1, const SCH_REFERENCE& item2 ) { int ii = item1.CompareValue( item2 ); + if( ii == 0 ) ii = RefDesStringCompare( item1.GetRef(), item2.GetRef() ); + if( ii == 0 ) ii = item1.m_Unit - item2.m_Unit; + if( ii == 0 ) ii = item1.m_SheetNum - item2.m_SheetNum; + if( ii == 0 ) ii = item1.m_CmpPos.x - item2.m_CmpPos.x; + if( ii == 0 ) ii = item1.m_CmpPos.y - item2.m_CmpPos.y; + if( ii == 0 ) ii = item1.m_TimeStamp - item2.m_TimeStamp; return ii < 0; } +/* + * Helper function to calculate in a component value string + * the value, depending on multiplier symbol: + * pico + * nano + * micro (u) + * milli (m) + * kilo (k ou K) + * Mega + * Giga + * Tera + * + * with notations like 1K; 1.5K; 1,5K; 1k5 + * returns true if the string is a value, false if not + * (a value is a string starting by a number) + */ + static bool engStrToDouble( wxString aStr, double* aDouble ) { // A trick to take care of strings without a multiplier aStr.Append( wxT( "R" ) ); // Regular expression for a value string, e.g., 47k2 - static wxRegEx valueRegEx( wxT( "^([0-9]+)([pnumRkMGT.])([0-9]*)" ) ); + static wxRegEx valueRegEx( wxT( "^([0-9]+)([pnumRkKMGT.,])([0-9]*)([pnumRkKMGT]*)" ) ); if( !valueRegEx.Matches( aStr ) ) return false; @@ -141,6 +164,7 @@ static bool engStrToDouble( wxString aStr, double* aDouble ) + wxT( "." ) + valueRegEx.GetMatch( aStr, 3 ) ); wxString multiplierString = valueRegEx.GetMatch( aStr, 2 ); + wxString post_multiplierString = valueRegEx.GetMatch( aStr, 4 ); double multiplier; switch( (wxChar)multiplierString[0] ) @@ -158,6 +182,7 @@ static bool engStrToDouble( wxString aStr, double* aDouble ) multiplier = 1e-3; break; case 'k': + case 'K': multiplier = 1e3; break; case 'M': @@ -170,12 +195,46 @@ static bool engStrToDouble( wxString aStr, double* aDouble ) multiplier = 1e12; break; case 'R': - case '.': + case '.': // floatting point separator + case ',': // floatting point separator (some languages) default: multiplier = 1; break; } + switch( (wxChar)post_multiplierString[0] ) + { + case 'p': + multiplier = 1e-12; + break; + case 'n': + multiplier = 1e-9; + break; + case 'u': + multiplier = 1e-6; + break; + case 'm': + multiplier = 1e-3; + break; + case 'k': + case 'K': + multiplier = 1e3; + break; + case 'M': + multiplier = 1e6; + break; + case 'G': + multiplier = 1e9; + break; + case 'T': + multiplier = 1e12; + break; + case 'R': + default: + break; + } + + LOCALE_IO dummy; // set to C floatting point standard valueStr.ToDouble( aDouble ); *aDouble *= multiplier; @@ -183,11 +242,41 @@ static bool engStrToDouble( wxString aStr, double* aDouble ) } +/* sort the list of references by value. + * Components are grouped by type and are sorted by value: + * The value of a component accept multiplier symbols (p, n, K ..) + * groups are made by first letter of reference + */ bool SCH_REFERENCE_LIST::sortByValueOnly( const SCH_REFERENCE& item1, const SCH_REFERENCE& item2 ) { - wxString text1 = item1.GetComponent()->GetField( VALUE )->GetText(); - wxString text2 = item2.GetComponent()->GetField( VALUE )->GetText(); + // First, group by type, assuming 2 first letter of references + // are different for different types of components. + wxString text1 = item1.GetComponent()->GetField( REFERENCE )->GetText().Left(2); + wxString text2 = item2.GetComponent()->GetField( REFERENCE )->GetText().Left(2); + if( text1[0] != text2[0] ) + return text1[0] < text2[0]; + + // Compare the second letter, if exists + if( text1.length() > 1 && text2.length() > 1 ) + { + if( (text1[1] < '0') || (text1[1] > '9') || + (text2[1] < '0') || (text2[1] > '9') ) + return text1[1] < text2[1]; + } + + + // Inside a group of components of same value, it could be good to group per footprints + text1 = item1.GetComponent()->GetField( FOOTPRINT )->GetText(); + text2 = item2.GetComponent()->GetField( FOOTPRINT )->GetText(); + int same_footprint = text1.IsEmpty() || text2.IsEmpty(); + if( same_footprint == 0 ) + same_footprint = text1.CmpNoCase( text2 ); + + // We can compare here 2 values relative to components of the same type + // assuming references are correctly chosen + text1 = item1.GetComponent()->GetField( VALUE )->GetText(); + text2 = item2.GetComponent()->GetField( VALUE )->GetText(); double value1, value2; @@ -204,7 +293,11 @@ bool SCH_REFERENCE_LIST::sortByValueOnly( const SCH_REFERENCE& item1, return false; if( match1 && match2 ) + { + if( value1 == value2 ) + return same_footprint < 0; return value1 < value2; + } // Fall back to normal string compare int ii = text1.CmpNoCase( text2 ); diff --git a/eeschema/dialogs/dialog_build_BOM.cpp b/eeschema/dialogs/dialog_build_BOM.cpp index 54a436992c..e034c55dc7 100644 --- a/eeschema/dialogs/dialog_build_BOM.cpp +++ b/eeschema/dialogs/dialog_build_BOM.cpp @@ -60,11 +60,11 @@ static bool s_ListByRef = true; static bool s_ListByValue = true; static bool s_ListWithSubCmponents; static bool s_ListHierarchicalPinByName; -static bool s_ListBySheet; +static bool s_ListHierarchicalPinBySheet; static bool s_BrowseCreatedList; static int s_OutputFormOpt; static int s_OutputSeparatorOpt; -static bool s_Add_FpField_state; +static bool s_Add_FpField_state = true; static bool s_Add_F1_state; static bool s_Add_F2_state; static bool s_Add_F3_state; @@ -93,10 +93,17 @@ static bool* s_AddFieldList[] = }; -#define OPTION_BOM_FORMAT wxT( "BomFormat" ) -#define OPTION_BOM_LAUNCH_BROWSER wxT( "BomLaunchBrowser" ) -#define OPTION_BOM_SEPARATOR wxT( "BomExportSeparator" ) -#define OPTION_BOM_ADD_FIELD wxT( "BomAddField" ) +const wxString OPTION_BOM_LIST_REF( wxT("BomListPerRef") ); +const wxString OPTION_BOM_LIST_VALUE( wxT("BomListPerValue") ); +const wxString OPTION_BOM_LIST_HPINS( wxT("BomListPerHPins") ); +const wxString OPTION_BOM_LIST_HPINS_BY_SHEET( wxT("BomListHPinsPerSheet") ); +const wxString OPTION_BOM_LIST_HPINS_BY_NAME_( wxT("BomListHPinsPerName") ); +const wxString OPTION_BOM_LIST_SUB_CMP( wxT("BomListSubCmps") ); + +const wxString OPTION_BOM_FORMAT( wxT("BomFormat") ); +const wxString OPTION_BOM_LAUNCH_BROWSER( wxT("BomLaunchBrowser") ); +const wxString OPTION_BOM_SEPARATOR( wxT("BomExportSeparator") ); +const wxString OPTION_BOM_ADD_FIELD ( wxT("BomAddField") ); /* list of separators used in bom export to spreadsheet * (selected by s_OutputSeparatorOpt, and s_OutputSeparatorOpt radiobox) @@ -135,8 +142,16 @@ void DIALOG_BUILD_BOM::Init() SetFocus(); /* Get options */ + m_Config->Read( OPTION_BOM_LIST_REF, &s_ListByRef ); + m_Config->Read( OPTION_BOM_LIST_VALUE , &s_ListByValue ); + m_Config->Read( OPTION_BOM_LIST_HPINS, &s_ListHierarchicalPinByName ); + m_Config->Read( OPTION_BOM_LIST_HPINS_BY_SHEET, &s_ListWithSubCmponents ); + m_Config->Read( OPTION_BOM_LIST_HPINS_BY_NAME_, &s_ListWithSubCmponents ); + m_Config->Read( OPTION_BOM_LIST_SUB_CMP, &s_ListWithSubCmponents ); + m_Config->Read( OPTION_BOM_LIST_HPINS_BY_SHEET, &s_ListHierarchicalPinBySheet ); + m_Config->Read( OPTION_BOM_LIST_HPINS_BY_NAME_, &s_ListHierarchicalPinByName ); s_OutputFormOpt = m_Config->Read( OPTION_BOM_FORMAT, (long) 0 ); - s_BrowseCreatedList = m_Config->Read( OPTION_BOM_LAUNCH_BROWSER, (long) 0 ); + m_Config->Read( OPTION_BOM_LAUNCH_BROWSER, &s_BrowseCreatedList ); s_OutputSeparatorOpt = m_Config->Read( OPTION_BOM_SEPARATOR, (long) 0 ); long addfields = m_Config->Read( OPTION_BOM_ADD_FIELD, (long) 0 ); @@ -155,7 +170,7 @@ void DIALOG_BUILD_BOM::Init() m_ListSubCmpItems->SetValidator( wxGenericValidator( &s_ListWithSubCmponents ) ); m_ListCmpbyValItems->SetValidator( wxGenericValidator( &s_ListByValue ) ); m_GenListLabelsbyVal->SetValidator( wxGenericValidator( &s_ListHierarchicalPinByName ) ); - m_GenListLabelsbySheet->SetValidator( wxGenericValidator( &s_ListBySheet ) ); + m_GenListLabelsbySheet->SetValidator( wxGenericValidator( &s_ListHierarchicalPinBySheet ) ); m_OutputFormCtrl->SetValidator( wxGenericValidator( &s_OutputFormOpt ) ); m_OutputSeparatorCtrl->SetValidator( wxGenericValidator( &s_OutputSeparatorOpt ) ); m_GetListBrowser->SetValidator( wxGenericValidator( &s_BrowseCreatedList ) ); @@ -185,19 +200,34 @@ void DIALOG_BUILD_BOM::Init() void DIALOG_BUILD_BOM::OnRadioboxSelectFormatSelected( wxCommandEvent& event ) { - if( m_OutputFormCtrl->GetSelection() == 0 ) + switch( m_OutputFormCtrl->GetSelection() ) { - m_OutputSeparatorCtrl->Enable( false ); - m_ListCmpbyValItems->Enable( true ); - m_GenListLabelsbyVal->Enable( true ); - m_GenListLabelsbySheet->Enable( true ); - } - else - { - m_OutputSeparatorCtrl->Enable( true ); - m_ListCmpbyValItems->Enable( false ); - m_GenListLabelsbyVal->Enable( false ); - m_GenListLabelsbySheet->Enable( false ); + case 0: + m_OutputSeparatorCtrl->Enable( false ); + m_ListCmpbyRefItems->Enable( true ); + m_ListCmpbyValItems->Enable( true ); + m_GenListLabelsbyVal->Enable( true ); + m_GenListLabelsbySheet->Enable( true ); + m_ListSubCmpItems->Enable( true ); + break; + + case 1: + m_OutputSeparatorCtrl->Enable( true ); + m_ListCmpbyRefItems->Enable( false ); + m_ListCmpbyValItems->Enable( false ); + m_GenListLabelsbyVal->Enable( false ); + m_GenListLabelsbySheet->Enable( false ); + m_ListSubCmpItems->Enable( true ); + break; + + case 2: + m_OutputSeparatorCtrl->Enable( true ); + m_ListCmpbyRefItems->Enable( false ); + m_ListCmpbyValItems->Enable( false ); + m_GenListLabelsbyVal->Enable( false ); + m_GenListLabelsbySheet->Enable( false ); + m_ListSubCmpItems->Enable( false ); + break; } } @@ -237,13 +267,11 @@ void DIALOG_BUILD_BOM::SavePreferences() wxASSERT( m_Config != NULL ); // Determine current settings of "List items" and "Options" checkboxes - // (NOTE: These 6 settings are restored when the dialog box is next - // invoked, but are *not* still saved after Eeschema is next shut down.) s_ListByRef = m_ListCmpbyRefItems->GetValue(); s_ListWithSubCmponents = m_ListSubCmpItems->GetValue(); s_ListByValue = m_ListCmpbyValItems->GetValue(); s_ListHierarchicalPinByName = m_GenListLabelsbyVal->GetValue(); - s_ListBySheet = m_GenListLabelsbySheet->GetValue(); + s_ListHierarchicalPinBySheet = m_GenListLabelsbySheet->GetValue(); s_BrowseCreatedList = m_GetListBrowser->GetValue(); // (saved in config ): @@ -268,6 +296,13 @@ void DIALOG_BUILD_BOM::SavePreferences() s_Add_Alls_state = m_AddAllFields->GetValue(); // Now save current settings of both radiobutton groups + m_Config->Write( OPTION_BOM_LIST_REF, s_ListByRef ); + m_Config->Write( OPTION_BOM_LIST_VALUE , s_ListByValue ); + m_Config->Write( OPTION_BOM_LIST_HPINS, s_ListHierarchicalPinByName ); + m_Config->Write( OPTION_BOM_LIST_HPINS_BY_SHEET, s_ListHierarchicalPinBySheet ); + m_Config->Write( OPTION_BOM_LIST_HPINS_BY_NAME_, s_ListHierarchicalPinByName ); + m_Config->Write( OPTION_BOM_LIST_SUB_CMP, s_ListWithSubCmponents ); + m_Config->Write( OPTION_BOM_FORMAT, (long) s_OutputFormOpt ); m_Config->Write( OPTION_BOM_SEPARATOR, (long) s_OutputSeparatorOpt ); m_Config->Write( OPTION_BOM_LAUNCH_BROWSER, (long) s_BrowseCreatedList ); @@ -343,15 +378,15 @@ void DIALOG_BUILD_BOM::Create_BOM_Lists( int aTypeFile, switch( aTypeFile ) { case 0: // list - GenereListeOfItems( m_ListFileName, aIncludeSubComponents ); + GenereListeOfItems( aIncludeSubComponents ); break; - case 1: // spreadsheet - CreateExportList( m_ListFileName, aIncludeSubComponents ); + case 1: // spreadsheet, Single Part per line + CreateExportList( aIncludeSubComponents ); break; - case 2: // Single Part per line - CreatePartsList( m_ListFileName, aIncludeSubComponents ); + case 2: // spreadsheet, one value per line and no sub-component + CreatePartsList(); break; } @@ -404,31 +439,37 @@ bool DIALOG_BUILD_BOM::IsFieldChecked(int aFieldId) } -void DIALOG_BUILD_BOM::CreatePartsList( const wxString& aFullFileName, bool aIncludeSubComponents ) +/* Prints a list of components, in a form which can be imported by a spreadsheet. + * components having the same value and the same footprint + * are grouped on the same line + * Form is: + * value; number of components; list of references; ; ; ...; + * list is sorted by values + */ +void DIALOG_BUILD_BOM::CreatePartsList( ) { FILE* f; wxString msg; - if( ( f = wxFopen( aFullFileName, wxT( "wt" ) ) ) == NULL ) + if( ( f = wxFopen( m_ListFileName, wxT( "wt" ) ) ) == NULL ) { msg = _( "Failed to open file " ); - msg << aFullFileName; + msg << m_ListFileName; DisplayError( this, msg ); return; } SCH_REFERENCE_LIST cmplist; - SCH_SHEET_LIST sheetList; // uses a global + SCH_SHEET_LIST sheetList; sheetList.GetComponents( cmplist, false ); // sort component list by ref and remove sub components - if( !aIncludeSubComponents ) - cmplist.RemoveSubComponentsFromList(); + cmplist.RemoveSubComponentsFromList(); // sort component list by value cmplist.SortByValueAndRef( ); - PrintComponentsListByPart( f, cmplist, aIncludeSubComponents ); + PrintComponentsListByPart( f, cmplist, false ); fclose( f ); } @@ -437,18 +478,18 @@ void DIALOG_BUILD_BOM::CreatePartsList( const wxString& aFullFileName, bool aInc /* * Print a list of components, in a form which can be imported by a spreadsheet * form is: - * cmp name; cmp val; fields; + * cmp ref; cmp val; fields; + * Components are sorted by reference */ -void DIALOG_BUILD_BOM::CreateExportList( const wxString& aFullFileName, - bool aIncludeSubComponents ) +void DIALOG_BUILD_BOM::CreateExportList( bool aIncludeSubComponents ) { FILE* f; wxString msg; - if( ( f = wxFopen( aFullFileName, wxT( "wt" ) ) ) == NULL ) + if( ( f = wxFopen( m_ListFileName, wxT( "wt" ) ) ) == NULL ) { msg = _( "Failed to open file " ); - msg << aFullFileName; + msg << m_ListFileName; DisplayError( this, msg ); return; } @@ -471,21 +512,21 @@ void DIALOG_BUILD_BOM::CreateExportList( const wxString& aFullFileName, } -/** GenereListeOfItems() +/* + * GenereListeOfItems() * Main function to create the list of components and/or labels * (global labels and pin sheets" ) */ -void DIALOG_BUILD_BOM::GenereListeOfItems( const wxString& aFullFileName, - bool aIncludeSubComponents ) +void DIALOG_BUILD_BOM::GenereListeOfItems( bool aIncludeSubComponents ) { FILE* f; int itemCount; wxString msg; - if( ( f = wxFopen( aFullFileName, wxT( "wt" ) ) ) == NULL ) + if( ( f = wxFopen( m_ListFileName, wxT( "wt" ) ) ) == NULL ) { msg = _( "Failed to open file " ); - msg << aFullFileName; + msg << m_ListFileName; DisplayError( this, msg ); return; } @@ -559,39 +600,23 @@ order = Alphab. ) count = %d\n\n" ), fclose( f ); } -#if defined(KICAD_GOST) wxString DIALOG_BUILD_BOM::PrintFieldData( SCH_COMPONENT* DrawLibItem, -#else -void DIALOG_BUILD_BOM::PrintFieldData( FILE* f, SCH_COMPONENT* DrawLibItem, -#endif bool CompactForm ) { -#if defined(KICAD_GOST) wxString outStr; wxString tmpStr; -#endif if( IsFieldChecked( FOOTPRINT ) ) { if( CompactForm ) { -#if defined(KICAD_GOST) outStr.Printf( wxT( "%c%s" ), s_ExportSeparatorSymbol, GetChars( DrawLibItem->GetField( FOOTPRINT )->m_Text ) ); -#else - fprintf( f, "%c%s", s_ExportSeparatorSymbol, - TO_UTF8( DrawLibItem->GetField( FOOTPRINT )->m_Text ) ); -#endif } else { -#if defined(KICAD_GOST) outStr.Printf( wxT( "; %-12s" ), GetChars( DrawLibItem->GetField( FOOTPRINT )->m_Text ) ); -#else - fprintf( f, "; %-12s", - TO_UTF8( DrawLibItem->GetField( FOOTPRINT )->m_Text ) ); -#endif } } @@ -601,31 +626,19 @@ void DIALOG_BUILD_BOM::PrintFieldData( FILE* f, SCH_COMPONENT* DrawLibItem, continue; if( CompactForm ) -#if defined(KICAD_GOST) { tmpStr.Printf( wxT( "%c%s" ), s_ExportSeparatorSymbol, GetChars( DrawLibItem->GetField( ii )->m_Text ) ); outStr += tmpStr; } -#else - fprintf( f, "%c%s", s_ExportSeparatorSymbol, - TO_UTF8( DrawLibItem->GetField( ii )->m_Text ) ); -#endif else -#if defined(KICAD_GOST) { tmpStr.Printf( wxT( "; %-12s" ), GetChars( DrawLibItem->GetField( ii )->m_Text ) ); outStr += tmpStr; } -#else - fprintf( f, "; %-12s", - TO_UTF8( DrawLibItem->GetField( ii )->m_Text ) ); -#endif } -#if defined(KICAD_GOST) return outStr; -#endif } @@ -813,8 +826,8 @@ int DIALOG_BUILD_BOM::PrintComponentsListByRef( FILE* f, fprintf( f, "\n" ); } #else - PrintFieldData( f, comp, CompactForm ); - fprintf( f, "\n" ); + wxString tmpStr = PrintFieldData( comp, CompactForm ); + fprintf( f, "%s\n", TO_UTF8( tmpStr ) ); #endif } @@ -960,14 +973,8 @@ int DIALOG_BUILD_BOM::PrintComponentsListByVal( FILE* f, } } -#if defined(KICAD_GOST) - fprintf( f, "%s", TO_UTF8( PrintFieldData( DrawLibItem ) ) ); -#else - PrintFieldData( f, DrawLibItem ); -#endif - - fputs( "\n", f ); - } + fprintf( f, "%s\n", TO_UTF8( PrintFieldData( DrawLibItem ) ) ); + } msg = _( "#End Cmp\n" ); fputs( TO_UTF8( msg ), f ); diff --git a/eeschema/dialogs/dialog_build_BOM.h b/eeschema/dialogs/dialog_build_BOM.h index 16e42f6edf..ed88d4317e 100644 --- a/eeschema/dialogs/dialog_build_BOM.h +++ b/eeschema/dialogs/dialog_build_BOM.h @@ -20,7 +20,7 @@ class DIALOG_BUILD_BOM : public DIALOG_BUILD_BOM_BASE private: EDA_DRAW_FRAME* m_Parent; wxConfig* m_Config; - wxString m_ListFileName; + wxString m_ListFileName; // The full filename of the file report. private: void OnRadioboxSelectFormatSelected( wxCommandEvent& event ); @@ -34,17 +34,27 @@ private: char aExportSeparatorSymbol, bool aRunBrowser ); - void GenereListeOfItems( const wxString& FullFileName, bool aIncludeSubComponents ); - void CreateExportList( const wxString& FullFileName, bool aIncludeSubComponents ); + void GenereListeOfItems( bool aIncludeSubComponents ); /** - * Function CreateParstList + * Function CreateExportList * prints a list of components, in a form which can be imported by a * spreadsheet. Form is: - * cmp value; number of components; \; \; ...; - * list of references having the same value + * reference; cmp value; \; \; ...; + * Components are sorted by reference */ - void CreatePartsList( const wxString& aFullFileName, bool aIncludeSubComponents ); + void CreateExportList( bool aIncludeSubComponents ); + + /** + * Function CreatePartsList + * prints a list of components, in a form which can be imported by a spreadsheet. + * components having the same value and the same footprint + * are grouped on the same line + * Form is: + * value; number of components; list of references; \; \; ...; + * list is sorted by values + */ + void CreatePartsList(); int PrintComponentsListByRef( FILE* f, SCH_REFERENCE_LIST& aList, bool CompactForm, bool aIncludeSubComponents ); @@ -55,11 +65,7 @@ private: int PrintComponentsListByPart( FILE* f, SCH_REFERENCE_LIST& aList, bool aIncludeSubComponents ); -#if defined(KICAD_GOST) wxString PrintFieldData( SCH_COMPONENT* DrawLibItem, bool CompactForm = false ); -#else - void PrintFieldData( FILE* f, SCH_COMPONENT* DrawLibItem, bool CompactForm = false ); -#endif bool IsFieldChecked( int aFieldId ); diff --git a/eeschema/netlist.h b/eeschema/netlist.h index e274776c1a..9ab8ce4b16 100644 --- a/eeschema/netlist.h +++ b/eeschema/netlist.h @@ -416,13 +416,15 @@ public: * Function SortByValueOnly * sort the list of references by value. *

- * Components are sorted in the following order: + * Components are grouped by type and are sorted in the following order: *

    *
  • Value of component.
  • *
  • Numeric value of reference designator.
  • *
  • Unit number when component has multiple parts.
  • *
*

+ * groups are made by the first letter of reference + * or the 2 first letters when existing */ void SortByValueOnly() { From 40aee428b56b47d251e29b18da3c941ef505a0c7 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Fri, 13 Apr 2012 14:51:24 -0400 Subject: [PATCH 68/68] More internal unit improvements. * Move all convert from internal to user units functions into separate file. * Remove internal units parameter from all moved conversion functions. * Revise all source code that calls the moved conversion functions. * Compile these conversion routines separately for the appropriate pcb or schematic internal units. * Move internal units specific status bar update code into the appropriate application for updating the status bar. * Move millimeter user units rounding function to common.cpp. --- common/CMakeLists.txt | 1 + common/base_units.cpp | 161 ++++++++++++++++++ common/common.cpp | 127 +++----------- common/drawframe.cpp | 107 +----------- common/wxwineda.cpp | 36 +++- common/zoom.cpp | 35 +++- eeschema/CMakeLists.txt | 1 + eeschema/dialogs/dialog_SVG_print.cpp | 8 +- .../dialog_edit_component_in_schematic.cpp | 5 +- eeschema/dialogs/dialog_edit_label.cpp | 4 +- .../dialog_edit_libentry_fields_in_lib.cpp | 5 +- eeschema/dialogs/dialog_edit_one_field.cpp | 4 +- eeschema/dialogs/dialog_lib_edit_text.cpp | 7 +- .../dialogs/dialog_plot_schematic_HPGL.cpp | 11 +- eeschema/dialogs/dialog_plot_schematic_PS.cpp | 4 +- .../dialogs/dialog_print_using_printer.cpp | 1 + eeschema/find.cpp | 7 +- eeschema/lib_arc.cpp | 9 +- eeschema/lib_bezier.cpp | 3 +- eeschema/lib_circle.cpp | 11 +- eeschema/lib_field.cpp | 5 +- eeschema/lib_pin.cpp | 3 +- eeschema/lib_polyline.cpp | 9 +- eeschema/lib_rectangle.cpp | 11 +- eeschema/lib_text.cpp | 3 +- eeschema/pinedit.cpp | 9 +- eeschema/sch_base_frame.cpp | 67 ++++++++ eeschema/sch_line.cpp | 9 +- eeschema/sheet.cpp | 9 +- eeschema/sheetlab.cpp | 5 +- eeschema/symbdraw.cpp | 3 +- include/base_units.h | 83 +++++++++ include/common.h | 61 ++----- include/sch_base_frame.h | 2 + pcbnew/basepcbframe.cpp | 84 +++++++-- pcbnew/dialogs/dialog_SVG_print.cpp | 7 +- pcbnew/dialogs/dialog_copper_zones.cpp | 21 +-- pcbnew/dialogs/dialog_design_rules.cpp | 51 ++---- .../dialog_edit_module_for_BoardEditor.cpp | 20 +-- .../dialog_edit_module_for_Modedit.cpp | 14 +- pcbnew/dialogs/dialog_edit_module_text.cpp | 16 +- .../dialog_global_edit_tracks_and_vias.cpp | 22 +-- .../dialog_graphic_item_properties.cpp | 22 +-- ...og_graphic_item_properties_for_Modedit.cpp | 19 +-- .../dialogs/dialog_graphic_items_options.cpp | 34 ++-- pcbnew/dialogs/dialog_mask_clearance.cpp | 10 +- pcbnew/dialogs/dialog_pad_properties.cpp | 38 ++--- pcbnew/dialogs/dialog_pcb_text_properties.cpp | 16 +- pcbnew/dialogs/dialog_print_using_printer.cpp | 7 +- pcbnew/dimension.cpp | 16 +- pcbnew/drc.cpp | 12 +- pcbnew/edgemod.cpp | 4 +- pcbnew/muonde.cpp | 8 +- pcbnew/onrightclick.cpp | 8 +- pcbnew/pcbplot.cpp | 29 ++-- pcbnew/set_grid.cpp | 5 +- pcbnew/zones_non_copper_type_functions.cpp | 5 +- 57 files changed, 715 insertions(+), 579 deletions(-) create mode 100644 common/base_units.cpp create mode 100644 include/base_units.h diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index cd04595f00..7320e92788 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -83,6 +83,7 @@ add_library(common STATIC ${COMMON_SRCS}) set(PCB_COMMON_SRCS base_screen.cpp + base_units.cpp eda_text.cpp class_page_info.cpp pcbcommon.cpp diff --git a/common/base_units.cpp b/common/base_units.cpp new file mode 100644 index 0000000000..2c1a3fb794 --- /dev/null +++ b/common/base_units.cpp @@ -0,0 +1,161 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2012 CERN + * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @author Wayne Stambaugh + * @file base_units.cpp + * @brief Code to handle objects that require both schematic and board internal units. + * @note This file is an ugly hack to solve the problem of formatting the base units + * for either schematics or boards in objects that are include in both domains. + * At some point in the future. This code should be rolled back into the + * appropriate object and build with the correct internal unit formatting + * depending on the application. + */ + +#include +#include +#include +#include + + +#if defined( PCBNEW ) +#if defined( USE_PCBNEW_NANOMETRES ) +#define IU_TO_MM( x ) ( x * 1e-6 ) +#define IU_TO_IN( x ) ( ( x * 1e-6 ) / 25.4 ) +#else +#define IU_TO_MM( x ) ( ( x * 0.0001 ) * 25.4 ) +#define IU_TO_IN( x ) ( x * 0.0001 ) +#endif +#elif defined( EESCHEMA ) +#define IU_TO_MM( x ) ( ( x * 0.001 ) * 25.4 ) +#define IU_TO_IN( x ) ( x * 0.001 ) +#else +#error "Cannot resolve internal units due to no definition of EESCHEMA or PCBNEW." +#endif + + +double To_User_Unit( EDA_UNITS_T aUnit, double aValue ) +{ + switch( aUnit ) + { + case MILLIMETRES: + return IU_TO_MM( aValue ); + + case INCHES: + return IU_TO_IN( aValue ); + + default: + return aValue; + } +} + + +wxString CoordinateToString( int aValue, bool aConvertToMils ) +{ + wxString text; + const wxChar* format; + double value = To_User_Unit( g_UserUnit, aValue ); + + if( g_UserUnit == INCHES ) + { + if( aConvertToMils ) + { +#if defined( EESCHEMA ) + format = wxT( "%.0f" ); +#else + format = wxT( "%.1f" ); +#endif + if( aConvertToMils ) + value *= 1000; + } + else + { +#if defined( EESCHEMA ) + format = wxT( "%.3f" ); +#else + format = wxT( "%.4f" ); +#endif + } + } + else + { +#if defined( EESCHEMA ) + format = wxT( "%.2f" ); +#else + format = wxT( "%.3f" ); +#endif + } + + text.Printf( format, value ); + + if( g_UserUnit == INCHES ) + text += ( aConvertToMils ) ? _( " mils" ) : _( " in" ); + else + text += _( " mm" ); + + return text; +} + + +wxString ReturnStringFromValue( EDA_UNITS_T aUnit, int aValue, bool aAddUnitSymbol ) +{ + wxString StringValue; + double value_to_print; + + value_to_print = To_User_Unit( aUnit, aValue ); + +#if defined( PCBNEW ) + StringValue.Printf( wxT( "%.4f" ), value_to_print ); +#else + StringValue.Printf( wxT( "%.3f" ), value_to_print ); +#endif + + if( aAddUnitSymbol ) + { + switch( aUnit ) + { + case INCHES: + StringValue += _( " \"" ); + break; + + case MILLIMETRES: + StringValue += _( " mm" ); + break; + + case UNSCALED_UNITS: + break; + } + } + + return StringValue; +} + + +void PutValueInLocalUnits( wxTextCtrl& aTextCtr, int aValue ) +{ + wxString msg = ReturnStringFromValue( g_UserUnit, aValue ); + + aTextCtr.SetValue( msg ); +} diff --git a/common/common.cpp b/common/common.cpp index db77f54ab3..d9292d774c 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -36,6 +36,8 @@ #include #include #include +#include + #include /** @@ -251,14 +253,6 @@ void AddUnitSymbol( wxStaticText& Stext, EDA_UNITS_T aUnit ) } -void PutValueInLocalUnits( wxTextCtrl& TextCtr, int Value, int Internal_Unit ) -{ - wxString msg = ReturnStringFromValue( g_UserUnit, Value, Internal_Unit ); - - TextCtr.SetValue( msg ); -} - - int ReturnValueFromTextCtrl( const wxTextCtrl& TextCtr, int Internal_Unit ) { int value; @@ -270,37 +264,6 @@ int ReturnValueFromTextCtrl( const wxTextCtrl& TextCtr, int Internal_Unit ) } -wxString ReturnStringFromValue( EDA_UNITS_T aUnit, int aValue, int aInternal_Unit, - bool aAdd_unit_symbol ) -{ - wxString StringValue; - double value_to_print; - - value_to_print = To_User_Unit( aUnit, aValue, aInternal_Unit ); - - // Yet another 'if Pcbnew' :( - StringValue.Printf( ( aInternal_Unit > 1000 ) ? wxT( "%.4f" ) : wxT( "%.3f" ), - value_to_print ); - - if( aAdd_unit_symbol ) - switch( aUnit ) - { - case INCHES: - StringValue += _( " \"" ); - break; - - case MILLIMETRES: - StringValue += _( " mm" ); - break; - - case UNSCALED_UNITS: - break; - } - - return StringValue; -} - - int ReturnValueFromString( EDA_UNITS_T aUnit, const wxString& TextValue, int Internal_Unit ) { int Value; @@ -386,30 +349,6 @@ wxArrayString* wxStringSplit( wxString aString, wxChar aSplitter ) } -/** - * Function To_User_Unit - * Convert in inch or mm the variable "val" (double)given in internal units - * @return the converted value, in double - * @param aUnit : user measure unit - * @param val : double : the given value - * @param internal_unit_value = internal units per inch - */ -double To_User_Unit( EDA_UNITS_T aUnit, double val, int internal_unit_value ) -{ - switch( aUnit ) - { - case MILLIMETRES: - return val * 25.4 / internal_unit_value; - - case INCHES: - return val / internal_unit_value; - - default: - return val; - } -} - - /* * Return in internal units the value "val" given in inch or mm */ @@ -511,45 +450,6 @@ const wxString& valeur_param( int valeur, wxString& buf_texte ) } -wxString CoordinateToString( int aValue, int aInternalUnits, bool aConvertToMils ) -{ - wxCHECK_MSG( (aInternalUnits == EESCHEMA_INTERNAL_UNIT) - || (aInternalUnits == PCB_INTERNAL_UNIT), - wxString( _( "*** Bad Internal Units ***" ) ), - wxT( "Invalid interanl units value." ) ); - - wxString text; - const wxChar* format; - double value = To_User_Unit( g_UserUnit, aValue, aInternalUnits ); - - if( g_UserUnit == INCHES ) - { - if( aConvertToMils ) - { - format = ( aInternalUnits == EESCHEMA_INTERNAL_UNIT ) ? wxT( "%.0f" ) : wxT( "%.1f" ); - value *= 1000; - } - else - { - format = ( aInternalUnits == EESCHEMA_INTERNAL_UNIT ) ? wxT( "%.3f" ) : wxT( "%.4f" ); - } - } - else - { - format = ( aInternalUnits == EESCHEMA_INTERNAL_UNIT ) ? wxT( "%.2f" ) : wxT( "%.3f" ); - } - - text.Printf( format, value ); - - if( g_UserUnit == INCHES ) - text += ( aConvertToMils ) ? _( " mils" ) : _( " in" ); - else - text += _( " mm" ); - - return text; -} - - wxString& operator <<( wxString& aString, const wxPoint& aPos ) { wxString temp; @@ -560,3 +460,26 @@ wxString& operator <<( wxString& aString, const wxPoint& aPos ) return aString; } + + +double RoundTo0( double x, double precision ) +{ + assert( precision != 0 ); + + long long ix = wxRound( x * precision ); + + if ( x < 0.0 ) + NEGATE( ix ); + + int remainder = ix % 10; // remainder is in precision mm + + if ( remainder <= 2 ) + ix -= remainder; // truncate to the near number + else if (remainder >= 8 ) + ix += 10 - remainder; // round to near number + + if ( x < 0 ) + NEGATE( ix ); + + return (double) ix / precision; +} diff --git a/common/drawframe.cpp b/common/drawframe.cpp index 7f5b4510b5..0f9efa3095 100644 --- a/common/drawframe.cpp +++ b/common/drawframe.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include @@ -714,41 +715,9 @@ void EDA_DRAW_FRAME::SetLanguage( wxCommandEvent& event ) } -/** - * Round to the nearest precision. - * - * Try to approximate a coordinate using a given precision to prevent - * rounding errors when converting from inches to mm. - * - * ie round the unit value to 0 if unit is 1 or 2, or 8 or 9 - */ -double RoundTo0( double x, double precision ) -{ - assert( precision != 0 ); - - long long ix = wxRound( x * precision ); - - if ( x < 0.0 ) - NEGATE( ix ); - - int remainder = ix % 10; // remainder is in precision mm - - if ( remainder <= 2 ) - ix -= remainder; // truncate to the near number - else if (remainder >= 8 ) - ix += 10 - remainder; // round to near number - - if ( x < 0 ) - NEGATE( ix ); - - return (double) ix / precision; -} - - void EDA_DRAW_FRAME::UpdateStatusBar() { wxString Line; - int dx, dy; BASE_SCREEN* screen = GetScreen(); if( !screen ) @@ -759,76 +728,8 @@ void EDA_DRAW_FRAME::UpdateStatusBar() SetStatusText( Line, 1 ); - // Display absolute coordinates: - double dXpos = To_User_Unit( g_UserUnit, screen->GetCrossHairPosition().x, m_internalUnits ); - double dYpos = To_User_Unit( g_UserUnit, screen->GetCrossHairPosition().y, m_internalUnits ); - - /* - * Converting from inches to mm can give some coordinates due to - * float point precision rounding errors, like 1.999 or 2.001 so - * round to the nearest drawing precision required by the application. - */ - if ( g_UserUnit == MILLIMETRES ) - { - dXpos = RoundTo0( dXpos, (double)( m_internalUnits / 10 ) ); - dYpos = RoundTo0( dYpos, (double)( m_internalUnits / 10 ) ); - } - - // The following sadly is an if Eeschema/if Pcbnew - wxString absformatter; - wxString locformatter; - switch( g_UserUnit ) - { - case INCHES: - if( m_internalUnits == EESCHEMA_INTERNAL_UNIT ) - { - absformatter = wxT( "X %.3f Y %.3f" ); - locformatter = wxT( "dx %.3f dy %.3f d %.3f" ); - } - else - { - absformatter = wxT( "X %.4f Y %.4f" ); - locformatter = wxT( "dx %.4f dy %.4f d %.4f" ); - } - break; - - case MILLIMETRES: - if( m_internalUnits == EESCHEMA_INTERNAL_UNIT ) - { - absformatter = wxT( "X %.2f Y %.2f" ); - locformatter = wxT( "dx %.2f dy %.2f d %.2f" ); - } - else - { - absformatter = wxT( "X %.3f Y %.3f" ); - locformatter = wxT( "dx %.3f dy %.3f d %.3f" ); - } - break; - - case UNSCALED_UNITS: - absformatter = wxT( "X %f Y %f" ); - locformatter = wxT( "dx %f dy %f d %f" ); - break; - } - - Line.Printf( absformatter, dXpos, dYpos ); - SetStatusText( Line, 2 ); - - // Display relative coordinates: - dx = screen->GetCrossHairPosition().x - screen->m_O_Curseur.x; - dy = screen->GetCrossHairPosition().y - screen->m_O_Curseur.y; - dXpos = To_User_Unit( g_UserUnit, dx, m_internalUnits ); - dYpos = To_User_Unit( g_UserUnit, dy, m_internalUnits ); - - if( g_UserUnit == MILLIMETRES ) - { - dXpos = RoundTo0( dXpos, (double) ( m_internalUnits / 10 ) ); - dYpos = RoundTo0( dYpos, (double) ( m_internalUnits / 10 ) ); - } - - // We already decided the formatter above - Line.Printf( locformatter, dXpos, dYpos, sqrt( dXpos * dXpos + dYpos * dYpos ) ); - SetStatusText( Line, 3 ); + // Absolute and relative cursor positions are handled by overloading this function and + // handling the internal to user units conversion at the appropriate level. // refresh units display DisplayUnitsMsg(); @@ -893,7 +794,7 @@ void EDA_DRAW_FRAME::ClearMsgPanel( void ) wxString EDA_DRAW_FRAME::CoordinateToString( int aValue, bool aConvertToMils ) { - return ::CoordinateToString( aValue, m_internalUnits, aConvertToMils ); + return ::CoordinateToString( aValue, aConvertToMils ); } diff --git a/common/wxwineda.cpp b/common/wxwineda.cpp index 0f09081609..b0105eaaa8 100644 --- a/common/wxwineda.cpp +++ b/common/wxwineda.cpp @@ -1,3 +1,27 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + /** * @file wxwineda.cpp */ @@ -5,6 +29,7 @@ #include #include #include +#include /*******************************************************/ @@ -72,7 +97,7 @@ wxString EDA_GRAPHIC_TEXT_CTRL::FormatSize( int internalUnit, EDA_UNITS_T aUnit, textSize = 3000; value.Printf( ( internalUnit > 1000 ) ? wxT( "%.4f" ) : wxT( "%.3f" ), - To_User_Unit( aUnit, textSize, internalUnit ) ); + To_User_Unit( aUnit, textSize ) ); return value; } @@ -220,11 +245,11 @@ void EDA_POSITION_CTRL::SetValue( int x_value, int y_value ) m_Pos_To_Edit.x = x_value; m_Pos_To_Edit.y = y_value; - msg = ReturnStringFromValue( m_UserUnit, m_Pos_To_Edit.x, m_Internal_Unit ); + msg = ReturnStringFromValue( m_UserUnit, m_Pos_To_Edit.x ); m_FramePosX->Clear(); m_FramePosX->SetValue( msg ); - msg = ReturnStringFromValue( m_UserUnit, m_Pos_To_Edit.y, m_Internal_Unit ); + msg = ReturnStringFromValue( m_UserUnit, m_Pos_To_Edit.y ); m_FramePosY->Clear(); m_FramePosY->SetValue( msg ); } @@ -274,8 +299,7 @@ EDA_VALUE_CTRL::EDA_VALUE_CTRL( wxWindow* parent, const wxString& title, BoxSizer->Add( m_Text, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); - wxString stringvalue = ReturnStringFromValue( m_UserUnit, m_Value, - m_Internal_Unit ); + wxString stringvalue = ReturnStringFromValue( m_UserUnit, m_Value ); m_ValueCtrl = new wxTextCtrl( parent, -1, stringvalue ); BoxSizer->Add( m_ValueCtrl, @@ -308,7 +332,7 @@ void EDA_VALUE_CTRL::SetValue( int new_value ) m_Value = new_value; - buffer = ReturnStringFromValue( m_UserUnit, m_Value, m_Internal_Unit ); + buffer = ReturnStringFromValue( m_UserUnit, m_Value ); m_ValueCtrl->SetValue( buffer ); } diff --git a/common/zoom.cpp b/common/zoom.cpp index cae1173461..0f0b6524f1 100644 --- a/common/zoom.cpp +++ b/common/zoom.cpp @@ -1,6 +1,30 @@ -/************/ -/* zoom.cpp */ -/************/ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @file zoom.cpp + */ /* * Manage zoom, grid step, and auto crop. @@ -15,6 +39,7 @@ #include #include #include +#include void EDA_DRAW_FRAME::RedrawScreen( const wxPoint& aCenterPoint, bool aWarpPointer ) @@ -198,8 +223,8 @@ void EDA_DRAW_FRAME::AddMenuZoomAndGrid( wxMenu* MasterMenu ) for( size_t i = 0; i < screen->GetGridCount(); i++ ) { tmp = screen->GetGrid( i ); - double gridValueInch = To_User_Unit( INCHES, tmp.m_Size.x, m_internalUnits ); - double gridValue_mm = To_User_Unit( MILLIMETRES, tmp.m_Size.x, m_internalUnits ); + double gridValueInch = To_User_Unit( INCHES, tmp.m_Size.x ); + double gridValue_mm = To_User_Unit( MILLIMETRES, tmp.m_Size.x ); if( tmp.m_Id == ID_POPUP_GRID_USER ) { diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt index cfe73b36e3..e519f3cae1 100644 --- a/eeschema/CMakeLists.txt +++ b/eeschema/CMakeLists.txt @@ -162,6 +162,7 @@ set(EESCHEMA_COMMON_SRCS ../common/base_screen.cpp ../common/eda_text.cpp ../common/class_page_info.cpp + ../common/base_units.cpp ) diff --git a/eeschema/dialogs/dialog_SVG_print.cpp b/eeschema/dialogs/dialog_SVG_print.cpp index 3f205245bb..eb321d5e33 100644 --- a/eeschema/dialogs/dialog_SVG_print.cpp +++ b/eeschema/dialogs/dialog_SVG_print.cpp @@ -36,6 +36,8 @@ #include #include #include +#include + #include #include #include @@ -78,8 +80,7 @@ void DIALOG_SVG_PRINT::OnInitDialog( wxInitDialogEvent& event ) AddUnitSymbol( *m_TextPenWidth, g_UserUnit ); m_DialogPenWidth->SetValue( - ReturnStringFromValue( g_UserUnit, g_DrawDefaultLineThickness, - m_Parent->GetInternalUnits() ) ); + ReturnStringFromValue( g_UserUnit, g_DrawDefaultLineThickness ) ); m_Print_Sheet_Ref->SetValue( s_Print_Frame_Ref ); if( GetSizer() ) @@ -105,8 +106,7 @@ void DIALOG_SVG_PRINT::SetPenWidth() } m_DialogPenWidth->SetValue( - ReturnStringFromValue( g_UserUnit, g_DrawDefaultLineThickness, - m_Parent->GetInternalUnits() ) ); + ReturnStringFromValue( g_UserUnit, g_DrawDefaultLineThickness ) ); } diff --git a/eeschema/dialogs/dialog_edit_component_in_schematic.cpp b/eeschema/dialogs/dialog_edit_component_in_schematic.cpp index 0e6bd1f217..0c7d971884 100644 --- a/eeschema/dialogs/dialog_edit_component_in_schematic.cpp +++ b/eeschema/dialogs/dialog_edit_component_in_schematic.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -655,10 +656,10 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel() // top of each other. } - wxString coordText = ReturnStringFromValue( g_UserUnit, coord.x, EESCHEMA_INTERNAL_UNIT ); + wxString coordText = ReturnStringFromValue( g_UserUnit, coord.x ); posXTextCtrl->SetValue( coordText ); - coordText = ReturnStringFromValue( g_UserUnit, coord.y, EESCHEMA_INTERNAL_UNIT ); + coordText = ReturnStringFromValue( g_UserUnit, coord.y ); posYTextCtrl->SetValue( coordText ); } diff --git a/eeschema/dialogs/dialog_edit_label.cpp b/eeschema/dialogs/dialog_edit_label.cpp index 9f01bcdad1..189603ca60 100644 --- a/eeschema/dialogs/dialog_edit_label.cpp +++ b/eeschema/dialogs/dialog_edit_label.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -196,8 +197,7 @@ void DialogLabelEditor::InitDialog() msg = _( "H" ) + units + _( " x W" ) + units; m_staticSizeUnits->SetLabel( msg ); - msg = ReturnStringFromValue( g_UserUnit, m_CurrentText->m_Size.x, - m_Parent->GetInternalUnits() ); + msg = ReturnStringFromValue( g_UserUnit, m_CurrentText->m_Size.x ); m_TextSize->SetValue( msg ); if( m_CurrentText->Type() != SCH_GLOBAL_LABEL_T diff --git a/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp b/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp index 51f9fc2eeb..c1df45e904 100644 --- a/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp +++ b/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -679,13 +680,13 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel() // top of each other. } - wxString coordText = ReturnStringFromValue( g_UserUnit, coord.x, EESCHEMA_INTERNAL_UNIT ); + wxString coordText = ReturnStringFromValue( g_UserUnit, coord.x ); posXTextCtrl->SetValue( coordText ); // Note: the Y axis for components in lib is from bottom to top // and the screen axis is top to bottom: we must change the y coord sign for editing NEGATE( coord.y ); - coordText = ReturnStringFromValue( g_UserUnit, coord.y, EESCHEMA_INTERNAL_UNIT ); + coordText = ReturnStringFromValue( g_UserUnit, coord.y ); posYTextCtrl->SetValue( coordText ); } diff --git a/eeschema/dialogs/dialog_edit_one_field.cpp b/eeschema/dialogs/dialog_edit_one_field.cpp index f7e1ab7f95..402f13557e 100644 --- a/eeschema/dialogs/dialog_edit_one_field.cpp +++ b/eeschema/dialogs/dialog_edit_one_field.cpp @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -52,8 +53,7 @@ void DIALOG_EDIT_ONE_FIELD::initDlg_base( ) m_CommonConvert->Show(false); m_CommonUnit->Show(false); - msg = ReturnStringFromValue( g_UserUnit, m_textsize, - m_parent->GetInternalUnits() ); + msg = ReturnStringFromValue( g_UserUnit, m_textsize ); m_TextSize->SetValue( msg ); if( m_textorient == TEXT_ORIENT_VERT ) diff --git a/eeschema/dialogs/dialog_lib_edit_text.cpp b/eeschema/dialogs/dialog_lib_edit_text.cpp index b2cc18c6d1..c37ef9e0a9 100644 --- a/eeschema/dialogs/dialog_lib_edit_text.cpp +++ b/eeschema/dialogs/dialog_lib_edit_text.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -63,8 +64,7 @@ void DIALOG_LIB_EDIT_TEXT::initDlg( ) if ( m_graphicText ) { - msg = ReturnStringFromValue( g_UserUnit, m_graphicText->m_Size.x, - m_parent->GetInternalUnits() ); + msg = ReturnStringFromValue( g_UserUnit, m_graphicText->m_Size.x ); m_TextSize->SetValue( msg ); m_TextValue->SetValue( m_graphicText->m_Text ); @@ -116,8 +116,7 @@ void DIALOG_LIB_EDIT_TEXT::initDlg( ) } else { - msg = ReturnStringFromValue( g_UserUnit, m_parent->m_textSize, - m_parent->GetInternalUnits() ); + msg = ReturnStringFromValue( g_UserUnit, m_parent->m_textSize ); m_TextSize->SetValue( msg ); if ( ! m_parent->m_drawSpecificUnit ) diff --git a/eeschema/dialogs/dialog_plot_schematic_HPGL.cpp b/eeschema/dialogs/dialog_plot_schematic_HPGL.cpp index a275610e64..f459b9d822 100644 --- a/eeschema/dialogs/dialog_plot_schematic_HPGL.cpp +++ b/eeschema/dialogs/dialog_plot_schematic_HPGL.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -148,7 +149,7 @@ void DIALOG_PLOT_SCHEMATIC_HPGL::initDlg() // Set validators m_SizeOption->SetSelection( s_pageSizeSelect ); AddUnitSymbol( *m_penWidthTitle, g_UserUnit ); - PutValueInLocalUnits( *m_penWidthCtrl, g_HPGL_Pen_Descr. m_Pen_Diam, EESCHEMA_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_penWidthCtrl, g_HPGL_Pen_Descr. m_Pen_Diam ); m_penSpeedCtrl->SetValue( g_HPGL_Pen_Descr. m_Pen_Speed ); m_penNumCtrl->SetValue( g_HPGL_Pen_Descr. m_Pen_Num ); } @@ -179,15 +180,11 @@ void DIALOG_PLOT_SCHEMATIC_HPGL::SetPageOffsetValue() if( s_pageSizeSelect != PAGE_DEFAULT ) { - msg = ReturnStringFromValue( g_UserUnit, - s_Offset.x, - EESCHEMA_INTERNAL_UNIT ); + msg = ReturnStringFromValue( g_UserUnit, s_Offset.x ); m_PlotOrgPosition_X->SetValue( msg ); - msg = ReturnStringFromValue( g_UserUnit, - s_Offset.y, - EESCHEMA_INTERNAL_UNIT ); + msg = ReturnStringFromValue( g_UserUnit, s_Offset.y ); m_PlotOrgPosition_Y->SetValue( msg ); diff --git a/eeschema/dialogs/dialog_plot_schematic_PS.cpp b/eeschema/dialogs/dialog_plot_schematic_PS.cpp index b47487756d..1e8f8a2888 100644 --- a/eeschema/dialogs/dialog_plot_schematic_PS.cpp +++ b/eeschema/dialogs/dialog_plot_schematic_PS.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -115,8 +116,7 @@ void DIALOG_PLOT_SCHEMATIC_PS::initDlg() m_Plot_Sheet_Ref_Ctrl->SetValue( m_plot_Sheet_Ref ); AddUnitSymbol( *m_defaultLineWidthTitle, g_UserUnit ); - PutValueInLocalUnits( *m_DefaultLineSizeCtrl, - g_DrawDefaultLineThickness, EESCHEMA_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_DefaultLineSizeCtrl, g_DrawDefaultLineThickness ); } diff --git a/eeschema/dialogs/dialog_print_using_printer.cpp b/eeschema/dialogs/dialog_print_using_printer.cpp index 21c85a7eab..7551f80e82 100644 --- a/eeschema/dialogs/dialog_print_using_printer.cpp +++ b/eeschema/dialogs/dialog_print_using_printer.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include diff --git a/eeschema/find.cpp b/eeschema/find.cpp index e8ff657fcb..764181e24d 100644 --- a/eeschema/find.cpp +++ b/eeschema/find.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -95,10 +96,8 @@ void SCH_EDIT_FRAME::OnFindDrcMarker( wxFindDialogEvent& event ) wxString path = sheetFoundIn->Path(); wxString units = GetAbbreviatedUnitsLabel(); - double x = To_User_Unit( g_UserUnit, (double) lastMarker->GetPosition().x, - m_internalUnits ); - double y = To_User_Unit( g_UserUnit, (double) lastMarker->GetPosition().y, - m_internalUnits ); + double x = To_User_Unit( g_UserUnit, (double) lastMarker->GetPosition().x ); + double y = To_User_Unit( g_UserUnit, (double) lastMarker->GetPosition().y ); msg.Printf( _( "Design rule check marker found in sheet %s at %0.3f%s, %0.3f%s" ), GetChars( path ), x, GetChars( units ), y, GetChars( units) ); SetStatusText( msg ); diff --git a/eeschema/lib_arc.cpp b/eeschema/lib_arc.cpp index 17007ca0ae..e9567fb0cb 100644 --- a/eeschema/lib_arc.cpp +++ b/eeschema/lib_arc.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -507,7 +508,7 @@ void LIB_ARC::DisplayInfo( EDA_DRAW_FRAME* aFrame ) LIB_ITEM::DisplayInfo( aFrame ); - msg = ReturnStringFromValue( g_UserUnit, m_Width, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Width, true ); aFrame->AppendMsgPanel( _( "Line width" ), msg, BLUE ); @@ -521,9 +522,9 @@ void LIB_ARC::DisplayInfo( EDA_DRAW_FRAME* aFrame ) wxString LIB_ARC::GetSelectMenuText() const { return wxString::Format( _( "Arc center (%s, %s), radius %s" ), - GetChars( CoordinateToString( m_Pos.x, EESCHEMA_INTERNAL_UNIT ) ), - GetChars( CoordinateToString( m_Pos.y, EESCHEMA_INTERNAL_UNIT ) ), - GetChars( CoordinateToString( m_Radius, EESCHEMA_INTERNAL_UNIT ) ) ); + GetChars( CoordinateToString( m_Pos.x ) ), + GetChars( CoordinateToString( m_Pos.y ) ), + GetChars( CoordinateToString( m_Radius ) ) ); } diff --git a/eeschema/lib_bezier.cpp b/eeschema/lib_bezier.cpp index 0587b859bd..1c1bcc41dd 100644 --- a/eeschema/lib_bezier.cpp +++ b/eeschema/lib_bezier.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -410,7 +411,7 @@ void LIB_BEZIER::DisplayInfo( EDA_DRAW_FRAME* aFrame ) LIB_ITEM::DisplayInfo( aFrame ); - msg = ReturnStringFromValue( g_UserUnit, m_Width, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Width, true ); aFrame->AppendMsgPanel( _( "Line width" ), msg, BLUE ); diff --git a/eeschema/lib_circle.cpp b/eeschema/lib_circle.cpp index 1c945c9a42..4c5032c17e 100644 --- a/eeschema/lib_circle.cpp +++ b/eeschema/lib_circle.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -270,11 +271,11 @@ void LIB_CIRCLE::DisplayInfo( EDA_DRAW_FRAME* aFrame ) LIB_ITEM::DisplayInfo( aFrame ); - msg = ReturnStringFromValue( g_UserUnit, m_Width, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Width, true ); aFrame->AppendMsgPanel( _( "Line width" ), msg, BLUE ); - msg = ReturnStringFromValue( g_UserUnit, m_Radius, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Radius, true ); aFrame->AppendMsgPanel( _( "Radius" ), msg, RED ); msg.Printf( wxT( "(%d, %d, %d, %d)" ), bBox.GetOrigin().x, @@ -287,9 +288,9 @@ void LIB_CIRCLE::DisplayInfo( EDA_DRAW_FRAME* aFrame ) wxString LIB_CIRCLE::GetSelectMenuText() const { return wxString::Format( _( "Circle center (%s, %s), radius %s" ), - GetChars( CoordinateToString( m_Pos.x, EESCHEMA_INTERNAL_UNIT ) ), - GetChars( CoordinateToString( m_Pos.y, EESCHEMA_INTERNAL_UNIT ) ), - GetChars( CoordinateToString( m_Radius, EESCHEMA_INTERNAL_UNIT ) ) ); + GetChars( CoordinateToString( m_Pos.x ) ), + GetChars( CoordinateToString( m_Pos.y ) ), + GetChars( CoordinateToString( m_Radius ) ) ); } diff --git a/eeschema/lib_field.cpp b/eeschema/lib_field.cpp index f8cb98ee6c..c3786e685a 100644 --- a/eeschema/lib_field.cpp +++ b/eeschema/lib_field.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -731,10 +732,10 @@ void LIB_FIELD::DisplayInfo( EDA_DRAW_FRAME* aFrame ) msg = GetTextStyleName(); aFrame->AppendMsgPanel( _( "Style" ), msg, MAGENTA ); - msg = ReturnStringFromValue( g_UserUnit, m_Size.x, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Size.x, true ); aFrame->AppendMsgPanel( _( "Size X" ), msg, BLUE ); - msg = ReturnStringFromValue( g_UserUnit, m_Size.y, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Size.y, true ); aFrame->AppendMsgPanel( _( "Size Y" ), msg, BLUE ); // Display field name (ref, value ...) diff --git a/eeschema/lib_pin.cpp b/eeschema/lib_pin.cpp index 6e56c01f7d..fa7c106b70 100644 --- a/eeschema/lib_pin.cpp +++ b/eeschema/lib_pin.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -1854,7 +1855,7 @@ void LIB_PIN::DisplayInfo( EDA_DRAW_FRAME* aFrame ) aFrame->AppendMsgPanel( _( "Visible" ), Text, DARKGREEN ); /* Display pin length */ - Text = ReturnStringFromValue( g_UserUnit, m_length, EESCHEMA_INTERNAL_UNIT, true ); + Text = ReturnStringFromValue( g_UserUnit, m_length, true ); aFrame->AppendMsgPanel( _( "Length" ), Text, MAGENTA ); Text = wxGetTranslation( pin_orientation_names[ GetOrientationCodeIndex( m_orientation ) ] ); diff --git a/eeschema/lib_polyline.cpp b/eeschema/lib_polyline.cpp index 3022fbb4c1..ca57fe87b9 100644 --- a/eeschema/lib_polyline.cpp +++ b/eeschema/lib_polyline.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -398,7 +399,7 @@ void LIB_POLYLINE::DisplayInfo( EDA_DRAW_FRAME* aFrame ) LIB_ITEM::DisplayInfo( aFrame ); - msg = ReturnStringFromValue( g_UserUnit, m_Width, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Width, true ); aFrame->AppendMsgPanel( _( "Line width" ), msg, BLUE ); @@ -412,10 +413,8 @@ void LIB_POLYLINE::DisplayInfo( EDA_DRAW_FRAME* aFrame ) wxString LIB_POLYLINE::GetSelectMenuText() const { return wxString::Format( _( "Polyline at (%s, %s) with %u points" ), - GetChars( CoordinateToString( m_PolyPoints[0].x, - EESCHEMA_INTERNAL_UNIT ) ), - GetChars( CoordinateToString( m_PolyPoints[0].y, - EESCHEMA_INTERNAL_UNIT ) ), + GetChars( CoordinateToString( m_PolyPoints[0].x ) ), + GetChars( CoordinateToString( m_PolyPoints[0].y ) ), m_PolyPoints.size() ); } diff --git a/eeschema/lib_rectangle.cpp b/eeschema/lib_rectangle.cpp index bdab1b5f03..e06db81831 100644 --- a/eeschema/lib_rectangle.cpp +++ b/eeschema/lib_rectangle.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -248,7 +249,7 @@ void LIB_RECTANGLE::DisplayInfo( EDA_DRAW_FRAME* aFrame ) LIB_ITEM::DisplayInfo( aFrame ); - msg = ReturnStringFromValue( g_UserUnit, m_Width, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Width, true ); aFrame->AppendMsgPanel( _( "Line width" ), msg, BLUE ); } @@ -324,10 +325,10 @@ bool LIB_RECTANGLE::HitTest( wxPoint aPosition, int aThreshold, const TRANSFORM& wxString LIB_RECTANGLE::GetSelectMenuText() const { return wxString::Format( _( "Rectangle from (%s, %s) to (%s, %s)" ), - GetChars( CoordinateToString( m_Pos.x, EESCHEMA_INTERNAL_UNIT ) ), - GetChars( CoordinateToString( m_Pos.y, EESCHEMA_INTERNAL_UNIT ) ), - GetChars( CoordinateToString( m_End.x, EESCHEMA_INTERNAL_UNIT ) ), - GetChars( CoordinateToString( m_End.y, EESCHEMA_INTERNAL_UNIT ) ) ); + GetChars( CoordinateToString( m_Pos.x ) ), + GetChars( CoordinateToString( m_Pos.y ) ), + GetChars( CoordinateToString( m_End.x ) ), + GetChars( CoordinateToString( m_End.y ) ) ); } diff --git a/eeschema/lib_text.cpp b/eeschema/lib_text.cpp index 349dc09889..b36f1c0cce 100644 --- a/eeschema/lib_text.cpp +++ b/eeschema/lib_text.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -413,7 +414,7 @@ void LIB_TEXT::DisplayInfo( EDA_DRAW_FRAME* frame ) LIB_ITEM::DisplayInfo( frame ); - msg = ReturnStringFromValue( g_UserUnit, m_Thickness, EESCHEMA_INTERNAL_UNIT, true ); + msg = ReturnStringFromValue( g_UserUnit, m_Thickness, true ); frame->AppendMsgPanel( _( "Line width" ), msg, BLUE ); } diff --git a/eeschema/pinedit.cpp b/eeschema/pinedit.cpp index 6449214ba5..e7da98dd30 100644 --- a/eeschema/pinedit.cpp +++ b/eeschema/pinedit.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -84,14 +85,10 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event ) LIB_PIN::GetElectricalTypeSymbols() ); dlg.SetElectricalType( pin->GetType() ); dlg.SetName( pin->GetName() ); - dlg.SetNameTextSize( ReturnStringFromValue( g_UserUnit, - pin->GetNameTextSize(), - m_internalUnits ) ); + dlg.SetNameTextSize( ReturnStringFromValue( g_UserUnit, pin->GetNameTextSize() ) ); dlg.SetNameTextSizeUnits( units ); dlg.SetPadName( pin->GetNumberString() ); - dlg.SetPadNameTextSize( ReturnStringFromValue( g_UserUnit, - pin->GetNumberTextSize(), - m_internalUnits ) ); + dlg.SetPadNameTextSize( ReturnStringFromValue( g_UserUnit, pin->GetNumberTextSize() ) ); dlg.SetPadNameTextSizeUnits( units ); dlg.SetLength( ReturnStringFromValue( g_UserUnit, pin->GetLength(), m_internalUnits ) ); diff --git a/eeschema/sch_base_frame.cpp b/eeschema/sch_base_frame.cpp index 2954e054e7..265ee86e8c 100644 --- a/eeschema/sch_base_frame.cpp +++ b/eeschema/sch_base_frame.cpp @@ -25,6 +25,7 @@ #include #include #include +#include SCH_BASE_FRAME::SCH_BASE_FRAME( wxWindow* aParent, id_drawframe aWindowType, @@ -107,3 +108,69 @@ void SCH_BASE_FRAME::SetTitleBlock( const TITLE_BLOCK& aTitleBlock ) wxASSERT( GetScreen() ); GetScreen()->SetTitleBlock( aTitleBlock ); } + + +void SCH_BASE_FRAME::UpdateStatusBar() +{ + wxString line; + int dx, dy; + BASE_SCREEN* screen = GetScreen(); + + if( !screen ) + return; + + EDA_DRAW_FRAME::UpdateStatusBar(); + + // Display absolute coordinates: + double dXpos = To_User_Unit( g_UserUnit, screen->GetCrossHairPosition().x ); + double dYpos = To_User_Unit( g_UserUnit, screen->GetCrossHairPosition().y ); + + if ( g_UserUnit == MILLIMETRES ) + { + dXpos = RoundTo0( dXpos, 100.0 ); + dYpos = RoundTo0( dYpos, 100.0 ); + } + + wxString absformatter; + wxString locformatter; + + switch( g_UserUnit ) + { + case INCHES: + absformatter = wxT( "X %.3f Y %.3f" ); + locformatter = wxT( "dx %.3f dy %.3f d %.3f" ); + break; + + case MILLIMETRES: + absformatter = wxT( "X %.2f Y %.2f" ); + locformatter = wxT( "dx %.2f dy %.2f d %.2f" ); + break; + + case UNSCALED_UNITS: + absformatter = wxT( "X %f Y %f" ); + locformatter = wxT( "dx %f dy %f d %f" ); + break; + } + + line.Printf( absformatter, dXpos, dYpos ); + SetStatusText( line, 2 ); + + // Display relative coordinates: + dx = screen->GetCrossHairPosition().x - screen->m_O_Curseur.x; + dy = screen->GetCrossHairPosition().y - screen->m_O_Curseur.y; + dXpos = To_User_Unit( g_UserUnit, dx ); + dYpos = To_User_Unit( g_UserUnit, dy ); + + if( g_UserUnit == MILLIMETRES ) + { + dXpos = RoundTo0( dXpos, 100.0 ); + dYpos = RoundTo0( dYpos, 100.0 ); + } + + // We already decided the formatter above + line.Printf( locformatter, dXpos, dYpos, sqrt( dXpos * dXpos + dYpos * dYpos ) ); + SetStatusText( line, 3 ); + + // refresh units display + DisplayUnitsMsg(); +} diff --git a/eeschema/sch_line.cpp b/eeschema/sch_line.cpp index c9fddb6f6c..6e20f18fbe 100644 --- a/eeschema/sch_line.cpp +++ b/eeschema/sch_line.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -502,10 +503,10 @@ wxString SCH_LINE::GetSelectMenuText() const } menuText.Printf( txtfmt, GetChars( orient ), - GetChars(CoordinateToString( m_start.x, EESCHEMA_INTERNAL_UNIT )), - GetChars(CoordinateToString( m_start.y, EESCHEMA_INTERNAL_UNIT )), - GetChars(CoordinateToString( m_end.x, EESCHEMA_INTERNAL_UNIT )), - GetChars(CoordinateToString( m_end.y, EESCHEMA_INTERNAL_UNIT )) ); + GetChars( CoordinateToString( m_start.x ) ), + GetChars( CoordinateToString( m_start.y ) ), + GetChars( CoordinateToString( m_end.x ) ), + GetChars( CoordinateToString( m_end.y ) ) ); return menuText; } diff --git a/eeschema/sheet.cpp b/eeschema/sheet.cpp index 669060cb8c..149fef6578 100644 --- a/eeschema/sheet.cpp +++ b/eeschema/sheet.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -49,14 +50,10 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) wxString units = GetUnitsLabel( g_UserUnit ); dlg.SetFileName( aSheet->GetFileName() ); - dlg.SetFileNameTextSize( ReturnStringFromValue( g_UserUnit, - aSheet->GetFileNameSize(), - m_internalUnits ) ); + dlg.SetFileNameTextSize( ReturnStringFromValue( g_UserUnit, aSheet->GetFileNameSize() ) ); dlg.SetFileNameTextSizeUnits( units ); dlg.SetSheetName( aSheet->GetName() ); - dlg.SetSheetNameTextSize( ReturnStringFromValue( g_UserUnit, - aSheet->GetSheetNameSize(), - m_internalUnits ) ); + dlg.SetSheetNameTextSize( ReturnStringFromValue( g_UserUnit, aSheet->GetSheetNameSize() ) ); dlg.SetSheetNameTextSizeUnits( units ); /* This ugly hack fixes a bug in wxWidgets 2.8.7 and likely earlier diff --git a/eeschema/sheetlab.cpp b/eeschema/sheetlab.cpp index 38661fe6ef..da16b9bae8 100644 --- a/eeschema/sheetlab.cpp +++ b/eeschema/sheetlab.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -56,9 +57,9 @@ int SCH_EDIT_FRAME::EditSheetPin( SCH_SHEET_PIN* aSheetPin, wxDC* aDC ) DIALOG_SCH_EDIT_SHEET_PIN dlg( this ); dlg.SetLabelName( aSheetPin->m_Text ); - dlg.SetTextHeight( ReturnStringFromValue( g_UserUnit, aSheetPin->m_Size.y, m_internalUnits ) ); + dlg.SetTextHeight( ReturnStringFromValue( g_UserUnit, aSheetPin->m_Size.y ) ); dlg.SetTextHeightUnits( GetUnitsLabel( g_UserUnit ) ); - dlg.SetTextWidth( ReturnStringFromValue( g_UserUnit, aSheetPin->m_Size.x, m_internalUnits ) ); + dlg.SetTextWidth( ReturnStringFromValue( g_UserUnit, aSheetPin->m_Size.x ) ); dlg.SetTextWidthUnits( GetUnitsLabel( g_UserUnit ) ); dlg.SetConnectionType( aSheetPin->GetShape() ); diff --git a/eeschema/symbdraw.cpp b/eeschema/symbdraw.cpp index 6936e18d68..68d9ac2dd9 100644 --- a/eeschema/symbdraw.cpp +++ b/eeschema/symbdraw.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -67,7 +68,7 @@ void LIB_EDIT_FRAME::EditGraphicSymbol( wxDC* DC, LIB_ITEM* DrawItem ) dialog.SetWidthUnits( ReturnUnitSymbol( g_UserUnit ) ); - wxString val = ReturnStringFromValue( g_UserUnit, m_drawLineWidth, m_internalUnits ); + wxString val = ReturnStringFromValue( g_UserUnit, m_drawLineWidth ); dialog.SetWidth( val ); dialog.SetApplyToAllUnits( !m_drawSpecificUnit ); dialog.EnableApplyToAllUnits( component && component->GetPartCount() > 1 ); diff --git a/include/base_units.h b/include/base_units.h new file mode 100644 index 0000000000..06374608cb --- /dev/null +++ b/include/base_units.h @@ -0,0 +1,83 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2012 CERN + * Copyright (C) 1992-2011 KiCad Developers, see change_log.txt for contributors. + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @author Wayne Stambaugh + * @file base_units.h + * @brief Implementation of conversion functions that require both schematic and board + * internal units. + */ + +#ifndef _BASE_UNITS_H_ +#define _BASE_UNITS_H_ + + +#include + + +/** + * Function To_User_Unit + * convert \a aValue in internal units to the appropriate user units defined by \a aUnit. + * + * @return The converted value, in double + * @param aUnit The units to convert \a aValue to. + * @param aValue The value in internal units to convert. + */ +double To_User_Unit( EDA_UNITS_T aUnit, double aValue ); + +/** + * Function CoordinateToString + * is a helper to convert the integer coordinate \a aValue to a string in inches, + * millimeters, or unscaled units according to the current user units setting. + * + * @param aValue The coordinate to convert. + * @param aConvertToMils Convert inch values to mils if true. This setting has no effect if + * the current user unit is millimeters. + * @return The converted string for display in user interface elements. + */ +wxString CoordinateToString( int aValue, bool aConvertToMils = false ); + + +/** + * Function ReturnStringFromValue + * returns the string from \a aValue according to units (inch, mm ...) for display, + * and the initial unit for value. + * @param aUnit = display units (INCHES, MILLIMETRE ..) + * @param aValue = value in Internal_Unit + * @param aAddUnitSymbol = true to add symbol unit to the string value + * @return A wxString object containing value and optionally the symbol unit (like 2.000 mm) + */ +wxString ReturnStringFromValue( EDA_UNITS_T aUnit, int aValue, bool aAddUnitSymbol = false ); + +/** + * Function PutValueInLocalUnits + * converts \a aValue from internal units to user units and append the units notation + * (mm or ")then inserts the string an \a aTextCtrl. + * + * This function is used in dialog boxes for entering values depending on selected units. + */ +void PutValueInLocalUnits( wxTextCtrl& aTextCtr, int aValue ); + +#endif // _BASE_UNITS_H_ diff --git a/include/common.h b/include/common.h index f1cc46e354..5952c13635 100644 --- a/include/common.h +++ b/include/common.h @@ -530,20 +530,6 @@ int GetCommandOptions( const int argc, const char** argv, */ const wxString& valeur_param( int valeur, wxString& buf_texte ); -/** - * Function CoordinateToString - * is a helper to convert the integer coordinate \a aValue to a string in inches, - * millimeters, or unscaled units according to the current user units setting. - * - * @param aValue The coordinate to convert. - * @param aInternalUnits The internal units of the application. #EESCHEMA_INTERNAL_UNIT - * and #PCB_INTERNAL_UNIT are the only valid value. - * @param aConvertToMils Convert inch values to mils if true. This setting has no effect if - * the current user unit is millimeters. - * @return The converted string for display in user interface elements. - */ -wxString CoordinateToString( int aValue, int aInternalUnits, bool aConvertToMils = false ); - /** * Returns the units symbol. * @@ -577,34 +563,22 @@ wxString GetAbbreviatedUnitsLabel( EDA_UNITS_T aUnit = g_UserUnit ); */ int ReturnValueFromString( EDA_UNITS_T aUnit, const wxString& TextValue, int Internal_Unit ); -/** - * Function ReturnStringFromValue - * Return the string from Value, according to units (inch, mm ...) for display, - * and the initial unit for value - * @param aUnit = display units (INCHES, MILLIMETRE ..) - * @param aValue = value in Internal_Unit - * @param aInternal_Unit = units per inch for Value - * @param aAdd_unit_symbol = true to add symbol unit to the string value - * @return a wxString what contains value and optionally the symbol unit (like - * 2.000 mm) - */ -wxString ReturnStringFromValue( EDA_UNITS_T aUnit, - int aValue, - int aInternal_Unit, - bool aAdd_unit_symbol = false ); - -void AddUnitSymbol( wxStaticText& Stext, EDA_UNITS_T aUnit = g_UserUnit ); - -/* Add string " (mm):" or " ("):" to the static text Stext. - * Used in dialog boxes for entering values depending on selected units */ -void PutValueInLocalUnits( wxTextCtrl& TextCtr, int Value, - int Internal_Unit ); +void AddUnitSymbol( wxStaticText& Stext, EDA_UNITS_T aUnit = g_UserUnit ); /* Convert the number Value in a string according to the internal units * and the selected unit (g_UserUnit) and put it in the wxTextCtrl TextCtrl **/ -int ReturnValueFromTextCtrl( const wxTextCtrl& TextCtr, - int Internal_Unit ); +int ReturnValueFromTextCtrl( const wxTextCtrl& TextCtr, int Internal_Unit ); + +/** + * Round to the nearest precision. + * + * Try to approximate a coordinate using a given precision to prevent + * rounding errors when converting from inches to mm. + * + * ie round the unit value to 0 if unit is 1 or 2, or 8 or 9 + */ +double RoundTo0( double x, double precision ); /** * Function wxStringSplit @@ -615,17 +589,6 @@ int ReturnValueFromTextCtrl( const wxTextCtrl& TextCtr, */ wxArrayString* wxStringSplit( wxString aString, wxChar aSplitter ); -/** - * Function To_User_Unit - * Convert in inch or mm the variable "val" (double)given in internal units - * @return the converted value, in double - * @param aUnit : user unit to be converted to - * @param val : double : the given value - - * @param internal_unit_value = internal units per inch - */ -double To_User_Unit( EDA_UNITS_T aUnit, double val, int internal_unit_value ); - /** * Return in internal units the value "val" given in inch or mm */ diff --git a/include/sch_base_frame.h b/include/sch_base_frame.h index 33f02c9c9b..41efe6842e 100644 --- a/include/sch_base_frame.h +++ b/include/sch_base_frame.h @@ -76,6 +76,8 @@ public: const TITLE_BLOCK& GetTitleBlock() const; // overload EDA_DRAW_FRAME void SetTitleBlock( const TITLE_BLOCK& aTitleBlock ); // overload EDA_DRAW_FRAME + void UpdateStatusBar(); // overload EDA_DRAW_FRAME + protected: /** diff --git a/pcbnew/basepcbframe.cpp b/pcbnew/basepcbframe.cpp index 7b189a1575..3f0713e4e8 100644 --- a/pcbnew/basepcbframe.cpp +++ b/pcbnew/basepcbframe.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -78,7 +79,7 @@ PCB_BASE_FRAME::PCB_BASE_FRAME( wxWindow* father, const wxString& title, const wxPoint& pos, const wxSize& size, - long style) : + long style) : EDA_DRAW_FRAME( father, idtype, title, pos, size, style ) { m_internalUnits = PCB_INTERNAL_UNIT; // Internal unit = 1/10000 inch @@ -552,18 +553,24 @@ void PCB_BASE_FRAME::UpdateStatusBar() { EDA_DRAW_FRAME::UpdateStatusBar(); + PCB_SCREEN* screen = GetScreen(); + + if( !screen ) + return; + + int dx; + int dy; + double dXpos; + double dYpos; + wxString line; + wxString locformatter; + if( DisplayOpt.DisplayPolarCood ) // display polar coordinates { - PCB_SCREEN* screen = GetScreen(); - - if( !screen ) - return; - - wxString Line; double theta, ro; - int dx = screen->GetCrossHairPosition().x - screen->m_O_Curseur.x; - int dy = screen->GetCrossHairPosition().y - screen->m_O_Curseur.y; + dx = screen->GetCrossHairPosition().x - screen->m_O_Curseur.x; + dy = screen->GetCrossHairPosition().y - screen->m_O_Curseur.y; if( dx==0 && dy==0 ) theta = 0.0; @@ -589,11 +596,62 @@ void PCB_BASE_FRAME::UpdateStatusBar() break; } - Line.Printf( formatter, To_User_Unit( g_UserUnit, ro, m_internalUnits ), theta ); + line.Printf( formatter, To_User_Unit( g_UserUnit, ro ), theta ); - // overwrite the absolute cartesian coordinates - SetStatusText( Line, 2 ); + SetStatusText( line, 2 ); } + else + { + // Display absolute coordinates: + dXpos = To_User_Unit( g_UserUnit, screen->GetCrossHairPosition().x ); + dYpos = To_User_Unit( g_UserUnit, screen->GetCrossHairPosition().y ); + + if ( g_UserUnit == MILLIMETRES ) + { + dXpos = RoundTo0( dXpos, 1000.0 ); + dYpos = RoundTo0( dYpos, 1000.0 ); + } + + // The following sadly is an if Eeschema/if Pcbnew + wxString absformatter; + + switch( g_UserUnit ) + { + case INCHES: + absformatter = wxT( "X %.4f Y %.4f" ); + locformatter = wxT( "dx %.4f dy %.4f d %.4f" ); + break; + + case MILLIMETRES: + absformatter = wxT( "X %.3f Y %.3f" ); + locformatter = wxT( "dx %.3f dy %.3f d %.3f" ); + break; + + case UNSCALED_UNITS: + absformatter = wxT( "X %f Y %f" ); + locformatter = wxT( "dx %f dy %f d %f" ); + break; + } + + line.Printf( absformatter, dXpos, dYpos ); + SetStatusText( line, 2 ); + } + + // Display relative coordinates: + dx = screen->GetCrossHairPosition().x - screen->m_O_Curseur.x; + dy = screen->GetCrossHairPosition().y - screen->m_O_Curseur.y; + dXpos = To_User_Unit( g_UserUnit, dx ); + dYpos = To_User_Unit( g_UserUnit, dy ); + + if ( g_UserUnit == MILLIMETRES ) + { + dXpos = RoundTo0( dXpos, 1000.0 ); + dYpos = RoundTo0( dYpos, 1000.0 ); + } + + // We already decided the formatter above + line.Printf( locformatter, dXpos, dYpos, sqrt( dXpos * dXpos + dYpos * dYpos ) ); + SetStatusText( line, 3 ); } @@ -711,7 +769,7 @@ void PCB_BASE_FRAME::updateGridSelectBox() for( size_t i = 0; i < GetScreen()->GetGridCount(); i++ ) { GRID_TYPE& grid = GetScreen()->GetGrid( i ); - double value = To_User_Unit( g_UserUnit, grid.m_Size.x, m_internalUnits ); + double value = To_User_Unit( g_UserUnit, grid.m_Size.x ); if( grid.m_Id != ID_POPUP_GRID_USER ) { diff --git a/pcbnew/dialogs/dialog_SVG_print.cpp b/pcbnew/dialogs/dialog_SVG_print.cpp index 93d708dddc..863b149bd6 100644 --- a/pcbnew/dialogs/dialog_SVG_print.cpp +++ b/pcbnew/dialogs/dialog_SVG_print.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -70,8 +71,7 @@ void DIALOG_SVG_PRINT::initDialog( ) s_Parameters.m_PenDefaultSize = g_DrawDefaultLineThickness; AddUnitSymbol( *m_TextPenWidth, g_UserUnit ); m_DialogPenWidth->SetValue( - ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, - m_Parent->GetInternalUnits() ) ); + ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize ) ); m_Print_Frame_Ref_Ctrl->SetValue( s_Parameters.m_Print_Sheet_Ref ); @@ -150,8 +150,7 @@ void DIALOG_SVG_PRINT::SetPenWidth() g_DrawDefaultLineThickness = s_Parameters.m_PenDefaultSize; m_DialogPenWidth->SetValue( - ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, - m_Parent->GetInternalUnits() ) ); + ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize ) ); } diff --git a/pcbnew/dialogs/dialog_copper_zones.cpp b/pcbnew/dialogs/dialog_copper_zones.cpp index 666b8bc868..252654a6ef 100644 --- a/pcbnew/dialogs/dialog_copper_zones.cpp +++ b/pcbnew/dialogs/dialog_copper_zones.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -178,15 +179,11 @@ void DIALOG_COPPER_ZONE::initDialog() m_FillModeCtrl->SetSelection( m_settings.m_FillMode ? 1 : 0 ); AddUnitSymbol( *m_ClearanceValueTitle, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, - m_settings.m_ZoneClearance, - m_Parent->GetInternalUnits() ); + msg = ReturnStringFromValue( g_UserUnit, m_settings.m_ZoneClearance ); m_ZoneClearanceCtrl->SetValue( msg ); AddUnitSymbol( *m_MinThicknessValueTitle, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, - m_settings.m_ZoneMinThickness, - m_Parent->GetInternalUnits() ); + msg = ReturnStringFromValue( g_UserUnit, m_settings.m_ZoneMinThickness ); m_ZoneMinThicknessCtrl->SetValue( msg ); switch( m_settings.GetPadConnection() ) @@ -220,18 +217,12 @@ void DIALOG_COPPER_ZONE::initDialog() AddUnitSymbol( *m_AntipadSizeText, g_UserUnit ); AddUnitSymbol( *m_CopperBridgeWidthText, g_UserUnit ); - PutValueInLocalUnits( *m_AntipadSizeValue, - m_settings.m_ThermalReliefGap, - PCB_INTERNAL_UNIT ); - PutValueInLocalUnits( *m_CopperWidthValue, - m_settings.m_ThermalReliefCopperBridge, - PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_AntipadSizeValue, m_settings.m_ThermalReliefGap ); + PutValueInLocalUnits( *m_CopperWidthValue, m_settings.m_ThermalReliefCopperBridge ); m_cornerSmoothingChoice->SetSelection( m_settings.GetCornerSmoothingType() ); - PutValueInLocalUnits( *m_cornerSmoothingCtrl, - m_settings.GetCornerRadius(), - PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_cornerSmoothingCtrl, m_settings.GetCornerRadius() ); switch( m_settings.m_Zone_HatchingStyle ) { diff --git a/pcbnew/dialogs/dialog_design_rules.cpp b/pcbnew/dialogs/dialog_design_rules.cpp index cd5b6ba2f2..1913f65438 100644 --- a/pcbnew/dialogs/dialog_design_rules.cpp +++ b/pcbnew/dialogs/dialog_design_rules.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -207,26 +208,19 @@ DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES( PCB_EDIT_FRAME* parent ) : void DIALOG_DESIGN_RULES::PrintCurrentSettings() { wxString msg, value; - int internal_units = m_Parent->GetInternalUnits(); m_MessagesList->AppendToPage( _( "Current general settings:
" ) ); // Display min values: - value = ReturnStringFromValue( g_UserUnit, - m_BrdSettings.m_TrackMinWidth, - internal_units, - true ); + value = ReturnStringFromValue( g_UserUnit, m_BrdSettings.m_TrackMinWidth, true ); msg.Printf( _( "Minimum value for tracks width: %s
\n" ), GetChars( value ) ); m_MessagesList->AppendToPage( msg ); - value = ReturnStringFromValue( g_UserUnit, m_BrdSettings.m_ViasMinSize, internal_units, true ); + value = ReturnStringFromValue( g_UserUnit, m_BrdSettings.m_ViasMinSize, true ); msg.Printf( _( "Minimum value for vias diameter: %s
\n" ), GetChars( value ) ); m_MessagesList->AppendToPage( msg ); - value = ReturnStringFromValue( g_UserUnit, - m_BrdSettings.m_MicroViasMinSize, - internal_units, - true ); + value = ReturnStringFromValue( g_UserUnit, m_BrdSettings.m_MicroViasMinSize, true ); msg.Printf( _( "Minimum value for microvias diameter: %s
\n" ), GetChars( value ) ); m_MessagesList->AppendToPage( msg ); } @@ -290,22 +284,16 @@ void DIALOG_DESIGN_RULES::InitGlobalRules() AddUnitSymbol( *m_MicroViaMinDrillTitle ); AddUnitSymbol( *m_TrackMinWidthTitle ); - int Internal_Unit = m_Parent->GetInternalUnits(); - PutValueInLocalUnits( *m_SetViasMinSizeCtrl, m_BrdSettings.m_ViasMinSize, Internal_Unit ); - PutValueInLocalUnits( *m_SetViasMinDrillCtrl, m_BrdSettings.m_ViasMinDrill, Internal_Unit ); + PutValueInLocalUnits( *m_SetViasMinSizeCtrl, m_BrdSettings.m_ViasMinSize ); + PutValueInLocalUnits( *m_SetViasMinDrillCtrl, m_BrdSettings.m_ViasMinDrill ); if( m_BrdSettings.m_CurrentViaType != VIA_THROUGH ) m_OptViaType->SetSelection( 1 ); m_AllowMicroViaCtrl->SetSelection( m_BrdSettings.m_MicroViasAllowed ? 1 : 0 ); - PutValueInLocalUnits( *m_SetMicroViasMinSizeCtrl, - m_BrdSettings.m_MicroViasMinSize, - Internal_Unit ); - PutValueInLocalUnits( *m_SetMicroViasMinDrillCtrl, - m_BrdSettings.m_MicroViasMinDrill, - Internal_Unit ); - - PutValueInLocalUnits( *m_SetTrackMinWidthCtrl, m_BrdSettings.m_TrackMinWidth, Internal_Unit ); + PutValueInLocalUnits( *m_SetMicroViasMinSizeCtrl, m_BrdSettings.m_MicroViasMinSize ); + PutValueInLocalUnits( *m_SetMicroViasMinDrillCtrl, m_BrdSettings.m_MicroViasMinDrill ); + PutValueInLocalUnits( *m_SetTrackMinWidthCtrl, m_BrdSettings.m_TrackMinWidth ); // Initialize Vias and Tracks sizes lists. // note we display only extra values, never the current netclass value. @@ -326,7 +314,6 @@ void DIALOG_DESIGN_RULES::InitDimensionsLists() */ { wxString msg; - int Internal_Unit = m_Parent->GetInternalUnits(); // Compute the column widths here, after setting texts msg = wxT("000000.000000"); // This is a very long text to display values. @@ -347,19 +334,17 @@ void DIALOG_DESIGN_RULES::InitDimensionsLists() for( unsigned ii = 0; ii < m_TracksWidthList.size(); ii++ ) { - msg = ReturnStringFromValue( g_UserUnit, m_TracksWidthList[ii], Internal_Unit, false ); + msg = ReturnStringFromValue( g_UserUnit, m_TracksWidthList[ii], false ); m_gridTrackWidthList->SetCellValue( ii, 0, msg ); } for( unsigned ii = 0; ii < m_ViasDimensionsList.size(); ii++ ) { - msg = ReturnStringFromValue( g_UserUnit, m_ViasDimensionsList[ii].m_Diameter, - Internal_Unit, false ); + msg = ReturnStringFromValue( g_UserUnit, m_ViasDimensionsList[ii].m_Diameter, false ); m_gridViaSizeList->SetCellValue( ii, 0, msg ); if( m_ViasDimensionsList[ii].m_Drill > 0 ) { - msg = ReturnStringFromValue( g_UserUnit, m_ViasDimensionsList[ii].m_Drill, - Internal_Unit, false ); + msg = ReturnStringFromValue( g_UserUnit, m_ViasDimensionsList[ii].m_Drill, false ); m_gridViaSizeList->SetCellValue( ii, 1, msg ); } } @@ -495,22 +480,22 @@ static void class2gridRow( wxGrid* grid, int row, NETCLASS* nc, int units ) // label is netclass name grid->SetRowLabelValue( row, nc->GetName() ); - msg = ReturnStringFromValue( g_UserUnit, nc->GetClearance(), units ); + msg = ReturnStringFromValue( g_UserUnit, nc->GetClearance() ); grid->SetCellValue( row, GRID_CLEARANCE, msg ); - msg = ReturnStringFromValue( g_UserUnit, nc->GetTrackWidth(), units ); + msg = ReturnStringFromValue( g_UserUnit, nc->GetTrackWidth() ); grid->SetCellValue( row, GRID_TRACKSIZE, msg ); - msg = ReturnStringFromValue( g_UserUnit, nc->GetViaDiameter(), units ); + msg = ReturnStringFromValue( g_UserUnit, nc->GetViaDiameter() ); grid->SetCellValue( row, GRID_VIASIZE, msg ); - msg = ReturnStringFromValue( g_UserUnit, nc->GetViaDrill(), units ); + msg = ReturnStringFromValue( g_UserUnit, nc->GetViaDrill() ); grid->SetCellValue( row, GRID_VIADRILL, msg ); - msg = ReturnStringFromValue( g_UserUnit, nc->GetuViaDiameter(), units ); + msg = ReturnStringFromValue( g_UserUnit, nc->GetuViaDiameter() ); grid->SetCellValue( row, GRID_uVIASIZE, msg ); - msg = ReturnStringFromValue( g_UserUnit, nc->GetuViaDrill(), units ); + msg = ReturnStringFromValue( g_UserUnit, nc->GetuViaDrill() ); grid->SetCellValue( row, GRID_uVIADRILL, msg ); } diff --git a/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp b/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp index bab2d056a9..3c7652aea8 100644 --- a/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp +++ b/pcbnew/dialogs/dialog_edit_module_for_BoardEditor.cpp @@ -12,6 +12,7 @@ #include <3d_struct.h> #include <3d_viewer.h> #include +#include #include #include @@ -62,12 +63,10 @@ DIALOG_MODULE_BOARD_EDITOR::~DIALOG_MODULE_BOARD_EDITOR() /* Creation of the panel properties of the module editor. */ void DIALOG_MODULE_BOARD_EDITOR::InitBoardProperties() { - PutValueInLocalUnits( *m_ModPositionX, - m_CurrentModule->GetPosition().x, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_ModPositionX, m_CurrentModule->GetPosition().x ); AddUnitSymbol( *XPositionStatic, g_UserUnit ); - PutValueInLocalUnits( *m_ModPositionY, - m_CurrentModule->GetPosition().y, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_ModPositionY, m_CurrentModule->GetPosition().y ); AddUnitSymbol( *YPositionStatic, g_UserUnit ); m_LayerCtrl->SetSelection( @@ -111,18 +110,13 @@ void DIALOG_MODULE_BOARD_EDITOR::InitBoardProperties() m_SolderMaskMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); m_SolderPasteMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); - int internalUnit = m_Parent->GetInternalUnits(); - PutValueInLocalUnits( *m_NetClearanceValueCtrl, - m_CurrentModule->m_LocalClearance, internalUnit ); - PutValueInLocalUnits( *m_SolderMaskMarginCtrl, - m_CurrentModule->m_LocalSolderMaskMargin, - internalUnit ); + PutValueInLocalUnits( *m_NetClearanceValueCtrl, m_CurrentModule->m_LocalClearance ); + PutValueInLocalUnits( *m_SolderMaskMarginCtrl, m_CurrentModule->m_LocalSolderMaskMargin ); // These 2 parameters are usually < 0, so prepare entering a negative // value, if current is 0 - PutValueInLocalUnits( *m_SolderPasteMarginCtrl, - m_CurrentModule->GetLocalSolderPasteMargin(), - internalUnit ); + PutValueInLocalUnits( *m_SolderPasteMarginCtrl, m_CurrentModule->GetLocalSolderPasteMargin() ); + if( m_CurrentModule->GetLocalSolderPasteMargin() == 0 ) m_SolderPasteMarginCtrl->SetValue( wxT( "-" ) + m_SolderPasteMarginCtrl->GetValue() ); diff --git a/pcbnew/dialogs/dialog_edit_module_for_Modedit.cpp b/pcbnew/dialogs/dialog_edit_module_for_Modedit.cpp index 3274aa7abb..7b78f02849 100644 --- a/pcbnew/dialogs/dialog_edit_module_for_Modedit.cpp +++ b/pcbnew/dialogs/dialog_edit_module_for_Modedit.cpp @@ -11,6 +11,7 @@ #include <3d_struct.h> #include <3d_viewer.h> #include +#include #include #include @@ -148,20 +149,19 @@ void DIALOG_MODULE_MODULE_EDITOR::InitModeditProperties() m_SolderPasteMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); wxString msg; - int internalUnit = m_Parent->GetInternalUnits(); - PutValueInLocalUnits( *m_NetClearanceValueCtrl, - m_CurrentModule->m_LocalClearance, internalUnit ); - PutValueInLocalUnits( *m_SolderMaskMarginCtrl, - m_CurrentModule->m_LocalSolderMaskMargin, internalUnit ); + PutValueInLocalUnits( *m_NetClearanceValueCtrl, m_CurrentModule->m_LocalClearance ); + PutValueInLocalUnits( *m_SolderMaskMarginCtrl, m_CurrentModule->m_LocalSolderMaskMargin ); // These 2 parameters are usually < 0, so prepare entering a negative value, if current is 0 - PutValueInLocalUnits( *m_SolderPasteMarginCtrl, - m_CurrentModule->GetLocalSolderPasteMargin(), internalUnit ); + PutValueInLocalUnits( *m_SolderPasteMarginCtrl, m_CurrentModule->GetLocalSolderPasteMargin() ); + if( m_CurrentModule->GetLocalSolderPasteMargin() == 0 ) m_SolderPasteMarginCtrl->SetValue( wxT("-") + m_SolderPasteMarginCtrl->GetValue() ); + if( m_CurrentModule->GetLocalSolderPasteMarginRatio() == 0.0 ) msg.Printf( wxT( "-%.1f" ), m_CurrentModule->GetLocalSolderPasteMarginRatio() * 100.0 ); else msg.Printf( wxT( "%.1f" ), m_CurrentModule->GetLocalSolderPasteMarginRatio() * 100.0 ); + m_SolderPasteMarginRatioCtrl->SetValue( msg ); // if m_3D_ShapeNameListBox is not empty, preselect first 3D shape diff --git a/pcbnew/dialogs/dialog_edit_module_text.cpp b/pcbnew/dialogs/dialog_edit_module_text.cpp index e6a7526036..41b68095c9 100644 --- a/pcbnew/dialogs/dialog_edit_module_text.cpp +++ b/pcbnew/dialogs/dialog_edit_module_text.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -118,24 +119,19 @@ void DialogEditModuleText::initDlg( ) m_Style->SetSelection( m_currentText->m_Italic ? 1 : 0 ); AddUnitSymbol( *m_SizeXTitle ); - PutValueInLocalUnits( *m_TxtSizeCtrlX, m_currentText->m_Size.x, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_TxtSizeCtrlX, m_currentText->m_Size.x ); AddUnitSymbol( *m_SizeYTitle ); - PutValueInLocalUnits( *m_TxtSizeCtrlY, m_currentText->m_Size.y, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_TxtSizeCtrlY, m_currentText->m_Size.y ); AddUnitSymbol( *m_PosXTitle ); - PutValueInLocalUnits( *m_TxtPosCtrlX, m_currentText->GetPos0().x, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_TxtPosCtrlX, m_currentText->GetPos0().x ); AddUnitSymbol( *m_PosYTitle ); - PutValueInLocalUnits( *m_TxtPosCtrlY, m_currentText->GetPos0().y, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_TxtPosCtrlY, m_currentText->GetPos0().y ); AddUnitSymbol( *m_WidthTitle ); - PutValueInLocalUnits( *m_TxtWidthCtlr, m_currentText->m_Thickness, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_TxtWidthCtlr, m_currentText->m_Thickness ); int text_orient = m_currentText->m_Orient; NORMALIZE_ANGLE_90(text_orient) diff --git a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp index dfeb05fc6d..7533481ab1 100644 --- a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp +++ b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include @@ -44,7 +45,6 @@ void DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::MyInit() wxString msg; // Display current setup for tracks and vias - int Internal_Unit = m_Parent->GetInternalUnits(); BOARD* board = m_Parent->GetBoard(); NETCLASSES& netclasses = board->m_NetClasses; NETINFO_ITEM* net = board->FindNet( m_Netcode ); @@ -73,56 +73,56 @@ void DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::MyInit() // Display current values, and current netclass values: int value = netclass->GetTrackWidth(); // Display track width - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); m_gridDisplayCurrentSettings->SetCellValue( 0, 0, msg ); if( board->m_TrackWidthSelector ) { value = board->GetCurrentTrackWidth(); - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); } else msg = _( "Default" ); m_gridDisplayCurrentSettings->SetCellValue( 1, 0, msg ); value = netclass->GetViaDiameter(); // Display via diameter - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); m_gridDisplayCurrentSettings->SetCellValue( 0, 1, msg ); if( board->m_ViaSizeSelector ) { value = board->GetCurrentViaSize(); - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); } else msg = _( "Default" ); m_gridDisplayCurrentSettings->SetCellValue( 1, 1, msg ); value = netclass->GetViaDrill(); // Display via drill - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); m_gridDisplayCurrentSettings->SetCellValue( 0, 2, msg ); value = board->GetCurrentViaDrill(); if( value >= 0 ) - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); else msg = _( "Default" ); m_gridDisplayCurrentSettings->SetCellValue( 1, 2, msg ); value = netclass->GetuViaDiameter(); // Display micro via diameter - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); m_gridDisplayCurrentSettings->SetCellValue( 0, 3, msg ); #if 0 // Currently we use always the default netclass value value = board->GetCurrentMicroViaSize(); - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); #endif msg = _( "Default" ); m_gridDisplayCurrentSettings->SetCellValue( 1, 3, msg ); value = netclass->GetuViaDrill(); // Display micro via drill - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); m_gridDisplayCurrentSettings->SetCellValue( 0, 4, msg ); #if 0 // Currently we use always the default netclass value value = board->GetCurrentMicroViaDrill(); if( value >= 0 ) - msg = ReturnStringFromValue( g_UserUnit, value, Internal_Unit, true ); + msg = ReturnStringFromValue( g_UserUnit, value, true ); else #endif msg = _( "Default" ); diff --git a/pcbnew/dialogs/dialog_graphic_item_properties.cpp b/pcbnew/dialogs/dialog_graphic_item_properties.cpp index 5da000436c..02d1e49331 100644 --- a/pcbnew/dialogs/dialog_graphic_item_properties.cpp +++ b/pcbnew/dialogs/dialog_graphic_item_properties.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -136,20 +137,15 @@ void DIALOG_GRAPHIC_ITEM_PROPERTIES::initDlg( ) break; } - PutValueInLocalUnits( *m_Center_StartXCtrl, m_Item->GetStart().x, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_Center_StartXCtrl, m_Item->GetStart().x ); - PutValueInLocalUnits( *m_Center_StartYCtrl, m_Item->GetStart().y, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_Center_StartYCtrl, m_Item->GetStart().y ); - PutValueInLocalUnits( *m_EndX_Radius_Ctrl, m_Item->GetEnd().x, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_EndX_Radius_Ctrl, m_Item->GetEnd().x ); - PutValueInLocalUnits( *m_EndY_Ctrl, m_Item->GetEnd().y, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_EndY_Ctrl, m_Item->GetEnd().y ); - PutValueInLocalUnits( *m_ThicknessCtrl, m_Item->GetWidth(), - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_ThicknessCtrl, m_Item->GetWidth() ); int thickness; @@ -158,8 +154,7 @@ void DIALOG_GRAPHIC_ITEM_PROPERTIES::initDlg( ) else thickness = m_brdSettings.m_DrawSegmentWidth; - PutValueInLocalUnits( *m_DefaultThicknessCtrl, thickness, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_DefaultThicknessCtrl, thickness ); for( int layer=FIRST_NO_COPPER_LAYER; layer <= LAST_NO_COPPER_LAYER; ++layer ) { @@ -187,8 +182,7 @@ void DIALOG_GRAPHIC_ITEM_PROPERTIES::OnLayerChoice( wxCommandEvent& event ) else thickness = m_brdSettings.m_DrawSegmentWidth; - PutValueInLocalUnits( *m_DefaultThicknessCtrl, thickness, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_DefaultThicknessCtrl, thickness ); } /*******************************************************************/ diff --git a/pcbnew/dialogs/dialog_graphic_item_properties_for_Modedit.cpp b/pcbnew/dialogs/dialog_graphic_item_properties_for_Modedit.cpp index fac6f67cd4..1d4da8117e 100644 --- a/pcbnew/dialogs/dialog_graphic_item_properties_for_Modedit.cpp +++ b/pcbnew/dialogs/dialog_graphic_item_properties_for_Modedit.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -138,23 +139,17 @@ void DIALOG_MODEDIT_FP_BODY_ITEM_PROPERTIES::initDlg() break; } - PutValueInLocalUnits( *m_Center_StartXCtrl, m_item->GetStart().x, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_Center_StartXCtrl, m_item->GetStart().x ); - PutValueInLocalUnits( *m_Center_StartYCtrl, m_item->GetStart().y, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_Center_StartYCtrl, m_item->GetStart().y ); - PutValueInLocalUnits( *m_EndX_Radius_Ctrl, m_item->GetEnd().x, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_EndX_Radius_Ctrl, m_item->GetEnd().x ); - PutValueInLocalUnits( *m_EndY_Ctrl, m_item->GetEnd().y, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_EndY_Ctrl, m_item->GetEnd().y ); - PutValueInLocalUnits( *m_ThicknessCtrl, m_item->GetWidth(), - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_ThicknessCtrl, m_item->GetWidth() ); - PutValueInLocalUnits( *m_DefaultThicknessCtrl, m_brdSettings.m_ModuleSegmentWidth, - m_parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_DefaultThicknessCtrl, m_brdSettings.m_ModuleSegmentWidth ); m_LayerSelectionCtrl->Append( m_parent->GetBoard()->GetLayerName( LAYER_N_BACK ) ); m_layerId.push_back( LAYER_N_BACK ); diff --git a/pcbnew/dialogs/dialog_graphic_items_options.cpp b/pcbnew/dialogs/dialog_graphic_items_options.cpp index 2d383390f4..2e364439b0 100644 --- a/pcbnew/dialogs/dialog_graphic_items_options.cpp +++ b/pcbnew/dialogs/dialog_graphic_items_options.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include @@ -58,50 +59,39 @@ void DIALOG_GRAPHIC_ITEMS_OPTIONS::initValues() /* Drawings width */ AddUnitSymbol( *m_GraphicSegmWidthTitle ); - PutValueInLocalUnits( *m_OptPcbSegmWidth, - m_brdSettings.m_DrawSegmentWidth, - PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptPcbSegmWidth, m_brdSettings.m_DrawSegmentWidth ); + /* Edges width */ AddUnitSymbol( *m_BoardEdgesWidthTitle ); - PutValueInLocalUnits( *m_OptPcbEdgesWidth, - m_brdSettings.m_EdgeSegmentWidth, - PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptPcbEdgesWidth, m_brdSettings.m_EdgeSegmentWidth ); /* Pcb Textes (Size & Width) */ AddUnitSymbol( *m_CopperTextWidthTitle ); - PutValueInLocalUnits( *m_OptPcbTextWidth, - m_brdSettings.m_PcbTextWidth, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptPcbTextWidth, m_brdSettings.m_PcbTextWidth ); AddUnitSymbol( *m_TextSizeVTitle ); - PutValueInLocalUnits( *m_OptPcbTextVSize, - m_brdSettings.m_PcbTextSize.y, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptPcbTextVSize, m_brdSettings.m_PcbTextSize.y ); AddUnitSymbol( *m_TextSizeHTitle ); - PutValueInLocalUnits( *m_OptPcbTextHSize, - m_brdSettings.m_PcbTextSize.x, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptPcbTextHSize, m_brdSettings.m_PcbTextSize.x ); /* Modules: Edges width */ AddUnitSymbol( *m_EdgeModWidthTitle ); - PutValueInLocalUnits( *m_OptModuleEdgesWidth, - m_brdSettings.m_ModuleSegmentWidth, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptModuleEdgesWidth, m_brdSettings.m_ModuleSegmentWidth ); /* Modules: Texts: Size & width */ AddUnitSymbol( *m_TextModWidthTitle ); - PutValueInLocalUnits( *m_OptModuleTextWidth, - m_brdSettings.m_ModuleTextWidth, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptModuleTextWidth, m_brdSettings.m_ModuleTextWidth ); AddUnitSymbol( *m_TextModSizeVTitle ); - PutValueInLocalUnits( *m_OptModuleTextVSize, - m_brdSettings.m_ModuleTextSize.y, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptModuleTextVSize, m_brdSettings.m_ModuleTextSize.y ); AddUnitSymbol( *m_TextModSizeHTitle ); - PutValueInLocalUnits( *m_OptModuleTextHSize, - m_brdSettings.m_ModuleTextSize.x, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_OptModuleTextHSize, m_brdSettings.m_ModuleTextSize.x ); AddUnitSymbol( *m_DefaultPenSizeTitle ); - PutValueInLocalUnits( *m_DefaultPenSizeCtrl, - g_DrawDefaultLineThickness, PCB_INTERNAL_UNIT ); + PutValueInLocalUnits( *m_DefaultPenSizeCtrl, g_DrawDefaultLineThickness ); } diff --git a/pcbnew/dialogs/dialog_mask_clearance.cpp b/pcbnew/dialogs/dialog_mask_clearance.cpp index 126fbe79f1..eb862c6451 100644 --- a/pcbnew/dialogs/dialog_mask_clearance.cpp +++ b/pcbnew/dialogs/dialog_mask_clearance.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include @@ -59,16 +60,11 @@ void DIALOG_PADS_MASK_CLEARANCE::MyInit() m_SolderMaskMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); m_SolderPasteMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); - int Internal_Unit = m_Parent->GetInternalUnits(); - PutValueInLocalUnits( *m_SolderMaskMarginCtrl, - m_BrdSettings.m_SolderMaskMargin, - Internal_Unit ); + PutValueInLocalUnits( *m_SolderMaskMarginCtrl, m_BrdSettings.m_SolderMaskMargin ); // These 2 parameters are usually < 0, so prepare entering a negative // value, if current is 0 - PutValueInLocalUnits( *m_SolderPasteMarginCtrl, - m_BrdSettings.m_SolderPasteMargin, - Internal_Unit ); + PutValueInLocalUnits( *m_SolderPasteMarginCtrl, m_BrdSettings.m_SolderPasteMargin ); if( m_BrdSettings.m_SolderPasteMargin == 0 ) m_SolderPasteMarginCtrl->SetValue( wxT( "-" ) + diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index b9f4a76861..18f7175157 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -243,7 +244,6 @@ void PCB_BASE_FRAME::InstallPadOptionsFrame( D_PAD* aPad ) void DIALOG_PAD_PROPERTIES::initValues() { - int internalUnits = m_Parent->GetInternalUnits(); wxString msg; double angle; @@ -319,42 +319,38 @@ void DIALOG_PAD_PROPERTIES::initValues() m_ThermalGapUnits->SetLabel( GetUnitsLabel( g_UserUnit ) ); // Display current pad parameters units: - PutValueInLocalUnits( *m_PadPosition_X_Ctrl, m_dummyPad->GetPosition().x, internalUnits ); - PutValueInLocalUnits( *m_PadPosition_Y_Ctrl, m_dummyPad->GetPosition().y, internalUnits ); + PutValueInLocalUnits( *m_PadPosition_X_Ctrl, m_dummyPad->GetPosition().x ); + PutValueInLocalUnits( *m_PadPosition_Y_Ctrl, m_dummyPad->GetPosition().y ); - PutValueInLocalUnits( *m_PadDrill_X_Ctrl, m_dummyPad->GetDrillSize().x, internalUnits ); - PutValueInLocalUnits( *m_PadDrill_Y_Ctrl, m_dummyPad->GetDrillSize().y, internalUnits ); + PutValueInLocalUnits( *m_PadDrill_X_Ctrl, m_dummyPad->GetDrillSize().x ); + PutValueInLocalUnits( *m_PadDrill_Y_Ctrl, m_dummyPad->GetDrillSize().y ); - PutValueInLocalUnits( *m_ShapeSize_X_Ctrl, m_dummyPad->GetSize().x, internalUnits ); - PutValueInLocalUnits( *m_ShapeSize_Y_Ctrl, m_dummyPad->GetSize().y, internalUnits ); + PutValueInLocalUnits( *m_ShapeSize_X_Ctrl, m_dummyPad->GetSize().x ); + PutValueInLocalUnits( *m_ShapeSize_Y_Ctrl, m_dummyPad->GetSize().y ); - PutValueInLocalUnits( *m_ShapeOffset_X_Ctrl, m_dummyPad->GetOffset().x, internalUnits ); - PutValueInLocalUnits( *m_ShapeOffset_Y_Ctrl, m_dummyPad->GetOffset().y, internalUnits ); + PutValueInLocalUnits( *m_ShapeOffset_X_Ctrl, m_dummyPad->GetOffset().x ); + PutValueInLocalUnits( *m_ShapeOffset_Y_Ctrl, m_dummyPad->GetOffset().y ); if( m_dummyPad->GetDelta().x ) { - PutValueInLocalUnits( *m_ShapeDelta_Ctrl, m_dummyPad->GetDelta().x, internalUnits ); + PutValueInLocalUnits( *m_ShapeDelta_Ctrl, m_dummyPad->GetDelta().x ); m_trapDeltaDirChoice->SetSelection( 0 ); } else { - PutValueInLocalUnits( *m_ShapeDelta_Ctrl, m_dummyPad->GetDelta().y, internalUnits ); + PutValueInLocalUnits( *m_ShapeDelta_Ctrl, m_dummyPad->GetDelta().y ); m_trapDeltaDirChoice->SetSelection( 1 ); } - PutValueInLocalUnits( *m_LengthDieCtrl, m_dummyPad->GetDieLength(), internalUnits ); + PutValueInLocalUnits( *m_LengthDieCtrl, m_dummyPad->GetDieLength() ); - PutValueInLocalUnits( *m_NetClearanceValueCtrl, m_dummyPad->GetLocalClearance(), internalUnits ); - PutValueInLocalUnits( *m_SolderMaskMarginCtrl, - m_dummyPad->GetLocalSolderMaskMargin(), - internalUnits ); - PutValueInLocalUnits( *m_ThermalWidthCtrl, m_dummyPad->GetThermalWidth(), internalUnits ); - PutValueInLocalUnits( *m_ThermalGapCtrl, m_dummyPad->GetThermalGap(), internalUnits ); + PutValueInLocalUnits( *m_NetClearanceValueCtrl, m_dummyPad->GetLocalClearance() ); + PutValueInLocalUnits( *m_SolderMaskMarginCtrl, m_dummyPad->GetLocalSolderMaskMargin() ); + PutValueInLocalUnits( *m_ThermalWidthCtrl, m_dummyPad->GetThermalWidth() ); + PutValueInLocalUnits( *m_ThermalGapCtrl, m_dummyPad->GetThermalGap() ); // These 2 parameters are usually < 0, so prepare entering a negative value, if current is 0 - PutValueInLocalUnits( *m_SolderPasteMarginCtrl, - m_dummyPad->GetLocalSolderPasteMargin(), - internalUnits ); + PutValueInLocalUnits( *m_SolderPasteMarginCtrl, m_dummyPad->GetLocalSolderPasteMargin() ); if( m_dummyPad->GetLocalSolderPasteMargin() == 0 ) m_SolderPasteMarginCtrl->SetValue( wxT( "-" ) + m_SolderPasteMarginCtrl->GetValue() ); diff --git a/pcbnew/dialogs/dialog_pcb_text_properties.cpp b/pcbnew/dialogs/dialog_pcb_text_properties.cpp index 5b0e07d4c4..36cd766ef8 100644 --- a/pcbnew/dialogs/dialog_pcb_text_properties.cpp +++ b/pcbnew/dialogs/dialog_pcb_text_properties.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -113,16 +114,11 @@ void DIALOG_PCB_TEXT_PROPERTIES::MyInit() // Fill fields with current values *m_TextContentCtrl << m_SelectedPCBText->m_Text; - PutValueInLocalUnits( *m_SizeXCtrl, m_SelectedPCBText->m_Size.x, - m_Parent->GetInternalUnits() ); - PutValueInLocalUnits( *m_SizeYCtrl, m_SelectedPCBText->m_Size.y, - m_Parent->GetInternalUnits() ); - PutValueInLocalUnits( *m_ThicknessCtrl, m_SelectedPCBText->m_Thickness, - m_Parent->GetInternalUnits() ); - PutValueInLocalUnits( *m_PositionXCtrl, m_SelectedPCBText->m_Pos.x, - m_Parent->GetInternalUnits() ); - PutValueInLocalUnits( *m_PositionYCtrl, m_SelectedPCBText->m_Pos.y, - m_Parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_SizeXCtrl, m_SelectedPCBText->m_Size.x ); + PutValueInLocalUnits( *m_SizeYCtrl, m_SelectedPCBText->m_Size.y ); + PutValueInLocalUnits( *m_ThicknessCtrl, m_SelectedPCBText->m_Thickness ); + PutValueInLocalUnits( *m_PositionXCtrl, m_SelectedPCBText->m_Pos.x ); + PutValueInLocalUnits( *m_PositionYCtrl, m_SelectedPCBText->m_Pos.y ); int enabledLayers = m_Parent->GetBoard()->GetEnabledLayers(); diff --git a/pcbnew/dialogs/dialog_print_using_printer.cpp b/pcbnew/dialogs/dialog_print_using_printer.cpp index 095ef993c0..2824582bd0 100644 --- a/pcbnew/dialogs/dialog_print_using_printer.cpp +++ b/pcbnew/dialogs/dialog_print_using_printer.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -260,7 +261,7 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) s_Parameters.m_PenDefaultSize = g_DrawDefaultLineThickness; AddUnitSymbol( *m_TextPenWidth, g_UserUnit ); m_DialogPenWidth->SetValue( - ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, m_parent->GetInternalUnits() ) ); + ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize ) ); // Create scale adjust option msg.Printf( wxT( "%f" ), s_Parameters.m_XScaleAdjust ); @@ -399,7 +400,7 @@ void DIALOG_PRINT_USING_PRINTER::SetPenWidth() g_DrawDefaultLineThickness = s_Parameters.m_PenDefaultSize; m_DialogPenWidth->SetValue( - ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize, m_parent->GetInternalUnits() ) ); + ReturnStringFromValue( g_UserUnit, s_Parameters.m_PenDefaultSize ) ); } void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event ) @@ -416,7 +417,7 @@ void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event ) void DIALOG_PRINT_USING_PRINTER::OnPageSetup( wxCommandEvent& event ) { - wxPageSetupDialog pageSetupDialog(this, s_pageSetupData); + wxPageSetupDialog pageSetupDialog( this, s_pageSetupData ); pageSetupDialog.ShowModal(); (*s_PrintData) = pageSetupDialog.GetPageSetupDialogData().GetPrintData(); diff --git a/pcbnew/dimension.cpp b/pcbnew/dimension.cpp index 07dd09c1bb..235a7a4314 100644 --- a/pcbnew/dimension.cpp +++ b/pcbnew/dimension.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -91,24 +92,19 @@ DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR( PCB_EDIT_FRAME* aParent, m_Name->SetValue( aDimension->m_Text.m_Text ); // Enter size value in dialog - PutValueInLocalUnits( *m_TxtSizeXCtrl, aDimension->m_Text.m_Size.x, - m_Parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_TxtSizeXCtrl, aDimension->m_Text.m_Size.x ); AddUnitSymbol( *m_staticTextSizeX ); - PutValueInLocalUnits( *m_TxtSizeYCtrl, aDimension->m_Text.m_Size.y, - m_Parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_TxtSizeYCtrl, aDimension->m_Text.m_Size.y ); AddUnitSymbol( *m_staticTextSizeY ); // Enter lines thickness value in dialog - PutValueInLocalUnits( *m_TxtWidthCtrl, aDimension->m_Width, - m_Parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_TxtWidthCtrl, aDimension->m_Width ); AddUnitSymbol( *m_staticTextWidth ); // Enter position value in dialog - PutValueInLocalUnits( *m_textCtrlPosX, aDimension->m_Text.m_Pos.x, - m_Parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_textCtrlPosX, aDimension->m_Text.m_Pos.x ); AddUnitSymbol( *m_staticTextPosX ); - PutValueInLocalUnits( *m_textCtrlPosY, aDimension->m_Text.m_Pos.y, - m_Parent->GetInternalUnits() ); + PutValueInLocalUnits( *m_textCtrlPosY, aDimension->m_Text.m_Pos.y ); AddUnitSymbol( *m_staticTextPosY ); for( int layer = FIRST_NO_COPPER_LAYER; layer #include #include +#include #include #include @@ -55,14 +56,11 @@ void DRC::ShowDialog() // copy data retained in this DRC object into the m_ui DrcPanel: PutValueInLocalUnits( *m_ui->m_SetTrackMinWidthCtrl, - m_pcb->GetDesignSettings().m_TrackMinWidth, - m_mainWindow->GetInternalUnits() ); + m_pcb->GetDesignSettings().m_TrackMinWidth ); PutValueInLocalUnits( *m_ui->m_SetViaMinSizeCtrl, - m_pcb->GetDesignSettings().m_ViasMinSize, - m_mainWindow->GetInternalUnits() ); + m_pcb->GetDesignSettings().m_ViasMinSize ); PutValueInLocalUnits( *m_ui->m_SetMicroViakMinSizeCtrl, - m_pcb->GetDesignSettings().m_MicroViasMinSize, - m_mainWindow->GetInternalUnits() ); + m_pcb->GetDesignSettings().m_MicroViasMinSize ); m_ui->m_CreateRptCtrl->SetValue( m_doCreateRptFile ); m_ui->m_RptFilenameCtrl->SetValue( m_rptFilename ); @@ -294,7 +292,7 @@ bool DRC::doNetClass( NETCLASS* nc, wxString& msg ) const BOARD_DESIGN_SETTINGS& g = m_pcb->GetDesignSettings(); -#define FmtVal( x ) GetChars( ReturnStringFromValue( g_UserUnit, x, PCB_INTERNAL_UNIT ) ) +#define FmtVal( x ) GetChars( ReturnStringFromValue( g_UserUnit, x ) ) #if 0 // set to 1 when (if...) BOARD_DESIGN_SETTINGS has a m_MinClearance value if( nc->GetClearance() < g.m_MinClearance ) diff --git a/pcbnew/edgemod.cpp b/pcbnew/edgemod.cpp index ac1023086b..d755ab1a50 100644 --- a/pcbnew/edgemod.cpp +++ b/pcbnew/edgemod.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -238,8 +239,7 @@ void FOOTPRINT_EDIT_FRAME::Enter_Edge_Width( EDGE_MODULE* aEdge ) { wxString buffer; - buffer = ReturnStringFromValue( g_UserUnit, GetDesignSettings().m_ModuleSegmentWidth, - GetScreen()->GetInternalUnits() ); + buffer = ReturnStringFromValue( g_UserUnit, GetDesignSettings().m_ModuleSegmentWidth ); wxTextEntryDialog dlg( this, _( "New Width:" ), _( "Edge Width" ), buffer ); if( dlg.ShowModal() != wxID_OK ) diff --git a/pcbnew/muonde.cpp b/pcbnew/muonde.cpp index c82558dc0e..ac8e31da57 100644 --- a/pcbnew/muonde.cpp +++ b/pcbnew/muonde.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -197,7 +198,7 @@ MODULE* PCB_EDIT_FRAME::Genere_Self( wxDC* DC ) Mself.lng = min_len; // Enter the desired length. - msg = ReturnStringFromValue( g_UserUnit, Mself.lng, GetScreen()->GetInternalUnits() ); + msg = ReturnStringFromValue( g_UserUnit, Mself.lng ); wxTextEntryDialog dlg( this, _( "Length:" ), _( "Length" ), msg ); if( dlg.ShowModal() != wxID_OK ) @@ -610,8 +611,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveComponent( int shape_type ) break; } - wxString value = ReturnStringFromValue( g_UserUnit, gap_size, - GetScreen()->GetInternalUnits() ); + wxString value = ReturnStringFromValue( g_UserUnit, gap_size ); wxTextEntryDialog dlg( this, msg, _( "Create microwave module" ), value ); if( dlg.ShowModal() != wxID_OK ) @@ -1087,7 +1087,7 @@ void PCB_EDIT_FRAME::Edit_Gap( wxDC* DC, MODULE* aModule ) gap_size = next_pad->GetPos0().x - pad->GetPos0().x - pad->GetSize().x; // Entrer the desired length of the gap. - msg = ReturnStringFromValue( g_UserUnit, gap_size, GetScreen()->GetInternalUnits() ); + msg = ReturnStringFromValue( g_UserUnit, gap_size ); wxTextEntryDialog dlg( this, _( "Gap:" ), _( "Create Microwave Gap" ), msg ); if( dlg.ShowModal() != wxID_OK ) diff --git a/pcbnew/onrightclick.cpp b/pcbnew/onrightclick.cpp index b61dbf25bb..cc3f769e0d 100644 --- a/pcbnew/onrightclick.cpp +++ b/pcbnew/onrightclick.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -888,8 +889,7 @@ static wxMenu* Append_Track_Width_List( BOARD* aBoard ) for( unsigned ii = 0; ii < aBoard->m_TrackWidthList.size(); ii++ ) { - value = ReturnStringFromValue( g_UserUnit, aBoard->m_TrackWidthList[ii], - PCB_INTERNAL_UNIT, true ); + value = ReturnStringFromValue( g_UserUnit, aBoard->m_TrackWidthList[ii], true ); msg.Printf( _( "Track %s" ), GetChars( value ) ); if( ii == 0 ) @@ -903,10 +903,10 @@ static wxMenu* Append_Track_Width_List( BOARD* aBoard ) for( unsigned ii = 0; ii < aBoard->m_ViasDimensionsList.size(); ii++ ) { value = ReturnStringFromValue( g_UserUnit, aBoard->m_ViasDimensionsList[ii].m_Diameter, - PCB_INTERNAL_UNIT, true ); + true ); wxString drill = ReturnStringFromValue( g_UserUnit, aBoard->m_ViasDimensionsList[ii].m_Drill, - PCB_INTERNAL_UNIT, true ); + true ); if( aBoard->m_ViasDimensionsList[ii].m_Drill <= 0 ) { diff --git a/pcbnew/pcbplot.cpp b/pcbnew/pcbplot.cpp index 827c7fe5f3..da074ec1e2 100644 --- a/pcbnew/pcbplot.cpp +++ b/pcbnew/pcbplot.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include @@ -120,21 +121,20 @@ void DIALOG_PLOT::Init_Dialog() // Set units and value for HPGL pen size. AddUnitSymbol( *m_textPenSize, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetHpglPenDiameter(), UNITS_MILS ); + msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetHpglPenDiameter() * 10 ); m_HPGLPenSizeOpt->AppendText( msg ); // Set units to cm/s for standard HPGL pen speed. - msg = ReturnStringFromValue( UNSCALED_UNITS, m_plotOpts.GetHpglPenSpeed(), 1 ); + msg = ReturnStringFromValue( UNSCALED_UNITS, m_plotOpts.GetHpglPenSpeed() * 10000 ); m_HPGLPenSpeedOpt->AppendText( msg ); // Set units and value for HPGL pen overlay. AddUnitSymbol( *m_textPenOvr, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetHpglPenOverlay(), UNITS_MILS ); + msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetHpglPenOverlay() * 10 ); m_HPGLPenOverlayOpt->AppendText( msg ); AddUnitSymbol( *m_textDefaultPenSize, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetPlotLineWidth(), - PCB_INTERNAL_UNIT ); + msg = ReturnStringFromValue( g_UserUnit, m_plotOpts.GetPlotLineWidth() ); m_linesWidth->AppendText( msg ); // Set units for PS global width correction. @@ -157,7 +157,7 @@ void DIALOG_PLOT::Init_Dialog() if( m_PSWidthAdjust < m_WidthAdjustMinValue || m_PSWidthAdjust > m_WidthAdjustMaxValue ) m_PSWidthAdjust = 0.; - msg.Printf( wxT( "%f" ), To_User_Unit( g_UserUnit, m_PSWidthAdjust, PCB_INTERNAL_UNIT ) ); + msg.Printf( wxT( "%f" ), To_User_Unit( g_UserUnit, m_PSWidthAdjust ) ); m_PSFineAdjustWidthOpt->AppendText( msg ); m_plotPSNegativeOpt->SetValue( m_plotOpts.m_PlotPSNegative ); @@ -454,7 +454,7 @@ void DIALOG_PLOT::applyPlotSettings() if( !tempOptions.SetHpglPenDiameter( tmp ) ) { - msg = ReturnStringFromValue( g_UserUnit, tempOptions.GetHpglPenDiameter(), UNITS_MILS ); + msg = ReturnStringFromValue( g_UserUnit, tempOptions.GetHpglPenDiameter() * 10 ); m_HPGLPenSizeOpt->SetValue( msg ); msg.Printf( _( "HPGL pen size constrained!\n" ) ); m_messagesBox->AppendText( msg ); @@ -466,7 +466,7 @@ void DIALOG_PLOT::applyPlotSettings() if( !tempOptions.SetHpglPenSpeed( tmp ) ) { - msg = ReturnStringFromValue( UNSCALED_UNITS, tempOptions.GetHpglPenSpeed(), 1 ); + msg = ReturnStringFromValue( UNSCALED_UNITS, tempOptions.GetHpglPenSpeed() * 1000 ); m_HPGLPenSpeedOpt->SetValue( msg ); msg.Printf( _( "HPGL pen speed constrained!\n" ) ); m_messagesBox->AppendText( msg ); @@ -478,7 +478,7 @@ void DIALOG_PLOT::applyPlotSettings() if( !tempOptions.SetHpglPenOverlay( tmp ) ) { - msg = ReturnStringFromValue( g_UserUnit, tempOptions.GetHpglPenOverlay(), UNITS_MILS ); + msg = ReturnStringFromValue( g_UserUnit, tempOptions.GetHpglPenOverlay() * 10 ); m_HPGLPenOverlayOpt->SetValue( msg ); msg.Printf( _( "HPGL pen overlay constrained!\n" ) ); m_messagesBox->AppendText( msg ); @@ -490,8 +490,7 @@ void DIALOG_PLOT::applyPlotSettings() if( !tempOptions.SetPlotLineWidth( tmp ) ) { - msg = ReturnStringFromValue( g_UserUnit, tempOptions.GetPlotLineWidth(), - PCB_INTERNAL_UNIT ); + msg = ReturnStringFromValue( g_UserUnit, tempOptions.GetPlotLineWidth() ); m_linesWidth->SetValue( msg ); msg.Printf( _( "Default linewidth constrained!\n" ) ); m_messagesBox->AppendText( msg ); @@ -532,13 +531,13 @@ void DIALOG_PLOT::applyPlotSettings() if( !setDouble( &m_PSWidthAdjust, tmpDouble, m_WidthAdjustMinValue, m_WidthAdjustMaxValue ) ) { - msg = ReturnStringFromValue( g_UserUnit, m_PSWidthAdjust, PCB_INTERNAL_UNIT ); + msg = ReturnStringFromValue( g_UserUnit, m_PSWidthAdjust ); m_PSFineAdjustWidthOpt->SetValue( msg ); msg.Printf( _( "Width correction constrained!\n" "The reasonable width correction value must be in a range of\n" " [%+f; %+f] (%s) for current design rules!\n" ), - To_User_Unit( g_UserUnit, m_WidthAdjustMinValue, PCB_INTERNAL_UNIT ), - To_User_Unit( g_UserUnit, m_WidthAdjustMaxValue, PCB_INTERNAL_UNIT ), + To_User_Unit( g_UserUnit, m_WidthAdjustMinValue ), + To_User_Unit( g_UserUnit, m_WidthAdjustMaxValue ), ( g_UserUnit == INCHES )? wxT("\"") : wxT("mm") ); m_messagesBox->AppendText( msg ); } @@ -610,7 +609,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) else { wxMessageBox( _( "Cannot create output directory!" ), - _( "Plot" ), wxOK | wxICON_ERROR ); + _( "Plot" ), wxOK | wxICON_ERROR ); return; } } diff --git a/pcbnew/set_grid.cpp b/pcbnew/set_grid.cpp index c49fc46a06..a551eaef2f 100644 --- a/pcbnew/set_grid.cpp +++ b/pcbnew/set_grid.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -135,8 +136,8 @@ void DIALOG_SET_GRID::SetGridOrigin( const wxPoint& grid ) { wxString msg; - PutValueInLocalUnits( *m_GridOriginXCtrl, grid.x, m_internalUnits ); - PutValueInLocalUnits( *m_GridOriginYCtrl, grid.y, m_internalUnits ); + PutValueInLocalUnits( *m_GridOriginXCtrl, grid.x ); + PutValueInLocalUnits( *m_GridOriginYCtrl, grid.y ); } void DIALOG_SET_GRID::SetGridForFastSwitching( wxArrayString aGrids, int aGrid1, int aGrid2 ) diff --git a/pcbnew/zones_non_copper_type_functions.cpp b/pcbnew/zones_non_copper_type_functions.cpp index fee5d30791..310343373c 100644 --- a/pcbnew/zones_non_copper_type_functions.cpp +++ b/pcbnew/zones_non_copper_type_functions.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include @@ -79,9 +80,7 @@ void DIALOG_NON_COPPER_ZONES_EDITOR::Init() m_FillModeCtrl->SetSelection( m_settings.m_FillMode ? 1 : 0 ); AddUnitSymbol( *m_MinThicknessValueTitle, g_UserUnit ); - wxString msg = ReturnStringFromValue( g_UserUnit, - m_settings.m_ZoneMinThickness, - m_Parent->GetInternalUnits() ); + wxString msg = ReturnStringFromValue( g_UserUnit, m_settings.m_ZoneMinThickness ); m_ZoneMinThicknessCtrl->SetValue( msg ); if( m_settings.m_Zone_45_Only )