Sync with main branch r6513

This commit is contained in:
Cirilo Bernardo 2016-01-26 10:35:16 +11:00
commit fc5556c811
131 changed files with 1257 additions and 2191 deletions

View File

@ -66,7 +66,7 @@ BEGIN_EVENT_TABLE( EDA_3D_CANVAS, wxGLCanvas )
// mouse events
EVT_RIGHT_DOWN( EDA_3D_CANVAS::OnRightClick )
EVT_MOUSEWHEEL( EDA_3D_CANVAS::OnMouseWheel )
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
EVT_MAGNIFY( EDA_3D_CANVAS::OnMagnify )
#endif
EVT_MOTION( EDA_3D_CANVAS::OnMouseMove )
@ -319,7 +319,7 @@ void EDA_3D_CANVAS::OnMouseWheel( wxMouseEvent& event )
}
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
void EDA_3D_CANVAS::OnMagnify( wxMouseEvent& event )
{
double magnification = ( event.GetMagnification() + 1.0f );

View File

@ -134,7 +134,7 @@ public:
void OnEraseBackground( wxEraseEvent& event );
void OnChar( wxKeyEvent& event );
void OnMouseWheel( wxMouseEvent& event );
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
void OnMagnify( wxMouseEvent& event );
#endif
void OnMouseMove( wxMouseEvent& event );

View File

@ -89,36 +89,6 @@ const PAGE_INFO PAGE_INFO::pageUSLedger( wxSize( 17000, 11000 ), wxT( "USLedge
int PAGE_INFO::s_user_width = 17000;
int PAGE_INFO::s_user_height = 11000;
/*
wxArrayString PAGE_INFO::GetStandardSizes()
{
wxArrayString ret;
static const PAGE_INFO* stdPageSizes[] = {
&pageA4,
&pageA3,
&pageA2,
&pageA1,
&pageA0,
&pageA,
&pageB,
&pageC,
&pageD,
&pageE,
// &pageGERBER, // standard?
&pageUSLetter,
&pageUSLegal,
&pageUSLedger,
&pageUser,
};
for( unsigned i=0; i < DIM( stdPageSizes ); ++i )
ret.Add( stdPageSizes[i]->GetType() );
return ret;
}
*/
inline void PAGE_INFO::updatePortrait()
{

View File

@ -27,14 +27,12 @@
* @brief utilities to display some error, warning and info short messges
*/
#include <fctsys.h>
#include <common.h>
#include <wx/wx.h>
#include <wx/html/htmlwin.h>
#include <wx/stockitem.h>
#include <bitmaps.h>
#include <html_messagebox.h>
#include <dialog_exit_base.h>
#include <bitmaps.h>
class DIALOG_EXIT: public DIALOG_EXIT_BASE
{

View File

@ -52,26 +52,29 @@
// List of page formats.
// should be statically initialized, because we need both
// the translated and the not translated version.
// they are prefixed by "_HKI" (already in use for hotkeys) instead of "_",
// 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.
// See hotkeys_basic.h for more info
#define _HKI( x ) wxT( x )
static 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"), // USLetter without space is correct
_("USLegal 8.5x14in"), // USLegal without space is correct
_("USLedger 11x17in"), // USLedger without space is correct
_("User (Custom)"),
_HKI("A4 210x297mm"),
_HKI("A3 297x420mm"),
_HKI("A2 420x594mm"),
_HKI("A1 594x841mm"),
_HKI("A0 841x1189mm"),
_HKI("A 8.5x11in"),
_HKI("B 11x17in"),
_HKI("C 17x22in"),
_HKI("D 22x34in"),
_HKI("E 34x44in"),
_HKI("USLetter 8.5x11in"), // USLetter without space is correct
_HKI("USLegal 8.5x14in"), // USLegal without space is correct
_HKI("USLedger 11x17in"), // USLedger without space is correct
_HKI("User (Custom)"), // size defined by user. The string must contain "Custom"
// to be reconized in code
};
void EDA_DRAW_FRAME::Process_PageSettings( wxCommandEvent& event )

View File

@ -161,7 +161,7 @@ void EDA_LIST_DIALOG::Append( const wxArrayString& itemList )
{
long itemIndex = m_listBox->InsertItem( m_listBox->GetItemCount(), itemList[0] );
m_listBox->SetItemData( itemIndex, (long) &(itemList[0]) );
m_listBox->SetItemPtrData( itemIndex, wxUIntPtr( &itemList[0] ) );
// Adding the next columns content
for( unsigned i = 1; i < itemList.size(); i++ )
@ -184,7 +184,7 @@ void EDA_LIST_DIALOG::InsertItems( const std::vector< wxArrayString >& itemList,
if( col == 0 )
{
itemIndex = m_listBox->InsertItem( row+position, itemList[row].Item( col ) );
m_listBox->SetItemData( itemIndex, (long) &itemList[row].Item( col ) );
m_listBox->SetItemPtrData( itemIndex, wxUIntPtr( &itemList[row].Item( col ) ) );
}
else
{

View File

@ -594,7 +594,7 @@ void EDA_DRAW_FRAME::SetPresetGrid( int aIndex )
}
int EDA_DRAW_FRAME::BlockCommand( int key )
int EDA_DRAW_FRAME::BlockCommand( EDA_KEY key )
{
return 0;
}
@ -767,7 +767,7 @@ wxString EDA_DRAW_FRAME::LengthDoubleToString( double aValue, bool aConvertToMil
}
bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* aDC, int aKey, const wxPoint& aPosition )
bool EDA_DRAW_FRAME::HandleBlockBegin( wxDC* aDC, EDA_KEY aKey, const wxPoint& aPosition )
{
BLOCK_SELECTOR* block = &GetScreen()->m_BlockLocate;

View File

@ -72,7 +72,7 @@ BEGIN_EVENT_TABLE( EDA_DRAW_PANEL, wxScrolledWindow )
EVT_LEAVE_WINDOW( EDA_DRAW_PANEL::OnMouseLeaving )
EVT_ENTER_WINDOW( EDA_DRAW_PANEL::OnMouseEntering )
EVT_MOUSEWHEEL( EDA_DRAW_PANEL::OnMouseWheel )
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
EVT_MAGNIFY( EDA_DRAW_PANEL::OnMagnify )
#endif
EVT_MOUSE_EVENTS( EDA_DRAW_PANEL::OnMouseEvent )
@ -994,7 +994,7 @@ void EDA_DRAW_PANEL::OnMouseWheel( wxMouseEvent& event )
}
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
void EDA_DRAW_PANEL::OnMagnify( wxMouseEvent& event )
{
// Scale the panel around our cursor position.

View File

@ -83,7 +83,7 @@ EDA_DRAW_PANEL_GAL::EDA_DRAW_PANEL_GAL( wxWindow* aParentWindow, wxWindowID aWin
wxEVT_RIGHT_UP, wxEVT_RIGHT_DOWN, wxEVT_RIGHT_DCLICK,
wxEVT_MIDDLE_UP, wxEVT_MIDDLE_DOWN, wxEVT_MIDDLE_DCLICK,
wxEVT_MOTION, wxEVT_MOUSEWHEEL, wxEVT_CHAR,
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
wxEVT_MAGNIFY,
#endif
KIGFX::WX_VIEW_CONTROLS::EVT_REFRESH_MOUSE

View File

@ -257,38 +257,6 @@ void CAIRO_GAL::DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEnd
}
void CAIRO_GAL::DrawPolyline( std::deque<VECTOR2D>& aPointList )
{
// Iterate over the point list and draw the segments
std::deque<VECTOR2D>::const_iterator it = aPointList.begin();
cairo_move_to( currentContext, it->x, it->y );
for( ++it; it != aPointList.end(); ++it )
{
cairo_line_to( currentContext, it->x, it->y );
}
isElementAdded = true;
}
void CAIRO_GAL::DrawPolygon( const std::deque<VECTOR2D>& aPointList )
{
// Iterate over the point list and draw the polygon
std::deque<VECTOR2D>::const_iterator it = aPointList.begin();
cairo_move_to( currentContext, it->x, it->y );
for( ++it; it != aPointList.end(); ++it )
{
cairo_line_to( currentContext, it->x, it->y );
}
isElementAdded = true;
}
void CAIRO_GAL::DrawCurve( const VECTOR2D& aStartPoint, const VECTOR2D& aControlPointA,
const VECTOR2D& aControlPointB, const VECTOR2D& aEndPoint )
{
@ -1059,6 +1027,39 @@ void CAIRO_GAL::setCompositor()
}
void CAIRO_GAL::drawPoly( const std::deque<VECTOR2D>& aPointList )
{
// Iterate over the point list and draw the segments
std::deque<VECTOR2D>::const_iterator it = aPointList.begin();
cairo_move_to( currentContext, it->x, it->y );
for( ++it; it != aPointList.end(); ++it )
{
cairo_line_to( currentContext, it->x, it->y );
}
isElementAdded = true;
}
void CAIRO_GAL::drawPoly( const VECTOR2D aPointList[], int aListSize )
{
// Iterate over the point list and draw the segments
const VECTOR2D* ptr = aPointList;
cairo_move_to( currentContext, ptr->x, ptr->y );
for( int i = 0; i < aListSize; ++i )
{
++ptr;
cairo_line_to( currentContext, ptr->x, ptr->y );
}
isElementAdded = true;
}
unsigned int CAIRO_GAL::getNewGroupNumber()
{
wxASSERT_MSG( groups.size() < std::numeric_limits<unsigned int>::max(),

View File

@ -3,7 +3,7 @@
*
* Copyright (C) 2012 Torsten Hueter, torstenhtr <at> gmx.de
* Copyright (C) 2012 Kicad Developers, see change_log.txt for contributors.
* Copyright (C) 2013-2015 CERN
* Copyright (C) 2013-2016 CERN
* @author Maciej Suminski <maciej.suminski@cern.ch>
*
* Graphics Abstraction Layer (GAL) for OpenGL
@ -89,7 +89,7 @@ OPENGL_GAL::OPENGL_GAL( wxWindow* aParent, wxEvtHandler* aMouseListener,
Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( OPENGL_GAL::skipMouseEvent ) );
Connect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( OPENGL_GAL::skipMouseEvent ) );
Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( OPENGL_GAL::skipMouseEvent ) );
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
Connect( wxEVT_MAGNIFY, wxMouseEventHandler( OPENGL_GAL::skipMouseEvent ) );
#endif
#if defined _WIN32 || defined _WIN64
@ -448,7 +448,7 @@ void OPENGL_GAL::DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEn
}
void OPENGL_GAL::DrawPolyline( std::deque<VECTOR2D>& aPointList )
void OPENGL_GAL::DrawPolyline( const std::deque<VECTOR2D>& aPointList )
{
if( aPointList.empty() )
return;
@ -476,19 +476,43 @@ void OPENGL_GAL::DrawPolyline( std::deque<VECTOR2D>& aPointList )
}
void OPENGL_GAL::DrawPolyline( const VECTOR2D aPointList[], int aListSize )
{
currentManager->Color( strokeColor.r, strokeColor.g, strokeColor.b, strokeColor.a );
// Start from the second point
for( int i = 1; i < aListSize; ++i )
{
const VECTOR2D startEndVector = ( aPointList[i] - aPointList[i - 1] );
double lineAngle = startEndVector.Angle();
drawLineQuad( aPointList[i - 1], aPointList[i] );
// There is no need to draw line caps on both ends of polyline's segments
drawFilledSemiCircle( aPointList[i - 1], lineWidth / 2, lineAngle + M_PI / 2 );
}
// ..and now - draw the ending cap
const VECTOR2D startEndVector = ( aPointList[aListSize - 1] - aPointList[aListSize - 2] );
double lineAngle = startEndVector.Angle();
drawFilledSemiCircle( aPointList[aListSize - 1], lineWidth / 2, lineAngle - M_PI / 2 );
}
void OPENGL_GAL::DrawPolygon( const std::deque<VECTOR2D>& aPointList )
{
// Any non convex polygon needs to be tesselated
// for this purpose the GLU standard functions are used
currentManager->Shader( SHADER_NONE );
currentManager->Color( fillColor.r, fillColor.g, fillColor.b, fillColor.a );
// Any non convex polygon needs to be tesselated
// for this purpose the GLU standard functions are used
TessParams params = { currentManager, tessIntersects };
gluTessBeginPolygon( tesselator, &params );
gluTessBeginContour( tesselator );
boost::shared_array<GLdouble> points( new GLdouble[3 * aPointList.size()] );
int v = 0;
for( std::deque<VECTOR2D>::const_iterator it = aPointList.begin(); it != aPointList.end(); ++it )
{
points[v] = it->x;
@ -508,6 +532,41 @@ void OPENGL_GAL::DrawPolygon( const std::deque<VECTOR2D>& aPointList )
}
void OPENGL_GAL::DrawPolygon( const VECTOR2D aPointList[], int aListSize )
{
currentManager->Shader( SHADER_NONE );
currentManager->Color( fillColor.r, fillColor.g, fillColor.b, fillColor.a );
// Any non convex polygon needs to be tesselated
// for this purpose the GLU standard functions are used
TessParams params = { currentManager, tessIntersects };
gluTessBeginPolygon( tesselator, &params );
gluTessBeginContour( tesselator );
boost::shared_array<GLdouble> points( new GLdouble[3 * aListSize] );
int v = 0;
const VECTOR2D* ptr = aPointList;
for( int i = 0; i < aListSize; ++i )
{
points[v] = ptr->x;
points[v + 1] = ptr->y;
points[v + 2] = layerDepth;
gluTessVertex( tesselator, &points[v], &points[v] );
++ptr;
v += 3;
}
gluTessEndContour( tesselator );
gluTessEndPolygon( tesselator );
// Free allocated intersecting points
tessIntersects.clear();
// vertexList destroyed here
}
void OPENGL_GAL::DrawCurve( const VECTOR2D& aStartPoint, const VECTOR2D& aControlPointA,
const VECTOR2D& aControlPointB, const VECTOR2D& aEndPoint )
{

View File

@ -23,12 +23,15 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
// kicad_curl.h must be included before xw headers, to avoid
// conflicts for some defines, at least on Windows
#include <kicad_curl/kicad_curl.h>
#include <wx/log.h>
#include <wx/dynlib.h>
#include <macros.h>
#include <fctsys.h>
#include <kicad_curl/kicad_curl.h>
#include <ki_mutex.h> // MUTEX and MUTLOCK
#include <richio.h>

View File

@ -250,7 +250,7 @@ void TOOL_DISPATCHER::DispatchWxEvent( wxEvent& aEvent )
// Mouse handling
if( type == wxEVT_MOTION || type == wxEVT_MOUSEWHEEL ||
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
type == wxEVT_MAGNIFY ||
#endif
type == wxEVT_LEFT_DOWN || type == wxEVT_LEFT_UP ||

View File

@ -310,7 +310,7 @@ double ArcTangente( int dy, int dx )
}
// Of course dy and dx are treated as double
return RAD2DECIDEG( atan2( dy, dx ) );
return RAD2DECIDEG( atan2( (double) dy, (double) dx ) );
}

View File

@ -985,7 +985,7 @@ bool VIEW::areRequiredLayersEnabled( int aLayerId ) const
{
wxASSERT( (unsigned) aLayerId < m_layers.size() );
std::set<int>::iterator it, it_end;
std::set<int>::const_iterator it, it_end;
for( it = m_layers.at( aLayerId ).requiredLayers.begin(),
it_end = m_layers.at( aLayerId ).requiredLayers.end(); it != it_end; ++it )

View File

@ -40,7 +40,7 @@ WX_VIEW_CONTROLS::WX_VIEW_CONTROLS( VIEW* aView, wxScrolledCanvas* aParentPanel
{
m_parentPanel->Connect( wxEVT_MOTION,
wxMouseEventHandler( WX_VIEW_CONTROLS::onMotion ), NULL, this );
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
m_parentPanel->Connect( wxEVT_MAGNIFY,
wxMouseEventHandler( WX_VIEW_CONTROLS::onMagnify ), NULL, this );
#endif
@ -167,7 +167,7 @@ void WX_VIEW_CONTROLS::onWheel( wxMouseEvent& aEvent )
}
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
void WX_VIEW_CONTROLS::onMagnify( wxMouseEvent& aEvent )
{
// Scale based on the magnification from our underlying magnification event.

View File

@ -322,6 +322,10 @@ void WIDGET_HOTKEY_LIST::EditItem( wxTreeListItem aItem )
}
UpdateFromClientData();
// Trigger a resize in case column widths have changed
wxSizeEvent dummy_evt;
OnSize( dummy_evt );
}
}
@ -432,9 +436,16 @@ void WIDGET_HOTKEY_LIST::OnSize( wxSizeEvent& aEvent )
if( hk_column_width < HOTKEY_MIN_WIDTH )
hk_column_width = HOTKEY_MIN_WIDTH;
else if( hk_column_width <= 0 )
hk_column_width = 1;
int name_column_width = rect.width - hk_column_width - HORIZ_MARGIN;
if( name_column_width <= 0 )
name_column_width = 1;
SetColumnWidth( 1, hk_column_width );
SetColumnWidth( 0, rect.width - hk_column_width - HORIZ_MARGIN );
SetColumnWidth( 0, name_column_width );
}

View File

@ -315,7 +315,8 @@ void DISPLAY_FOOTPRINTS_FRAME::OnSelectOptionToolbar( wxCommandEvent& event )
}
bool DISPLAY_FOOTPRINTS_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey )
bool DISPLAY_FOOTPRINTS_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition,
EDA_KEY aHotKey )
{
bool eventHandled = true;

View File

@ -92,7 +92,7 @@ public:
void OnLeftClick( wxDC* DC, const wxPoint& MousePos );
void OnLeftDClick( wxDC* DC, const wxPoint& MousePos );
bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu );
bool GeneralControl( wxDC* DC, const wxPoint& aPosition, int aHotKey = 0 );
bool GeneralControl( wxDC* DC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 );
void InstallOptionsDisplay( wxCommandEvent& event );
MODULE* Get_Module( const wxString& CmpName );

View File

@ -25,8 +25,6 @@ set( EESCHEMA_DLGS
dialogs/dialog_bom.cpp
dialogs/dialog_bom_base.cpp
dialogs/dialog_bom_cfg_keywords.cpp
dialogs/dialog_color_config.cpp
dialogs/dialog_color_config_base.cpp
dialogs/dialog_choose_component.cpp
dialogs/dialog_choose_component_base.cpp
dialogs/dialog_lib_edit_text.cpp
@ -72,6 +70,11 @@ set( EESCHEMA_DLGS
dialogs/dialog_schematic_find_base.cpp
)
set( EESCHEMA_WIDGETS
widgets/widget_eeschema_color_config.cpp
)
set( EESCHEMA_SRCS
autoplace_fields.cpp
annotate.cpp
@ -90,6 +93,7 @@ set( EESCHEMA_SRCS
controle.cpp
cross-probing.cpp
${EESCHEMA_DLGS}
${EESCHEMA_WIDGETS}
edit_component_in_schematic.cpp
edit_bitmap.cpp
edit_label.cpp

View File

@ -34,6 +34,7 @@
#include <schframe.h>
#include <class_library.h>
#include <sch_reference_list.h>
#include <sch_sheet.h>
#include <sch_sheet_path.h>
@ -93,11 +94,11 @@ void SCH_EDIT_FRAME::AnnotateComponents( bool aAnnotateSchematic,
{
if( aAnnotateSchematic )
{
sheets.GetMultiUnitComponents( Prj().SchLibs(), lockedComponents );
g_RootSheet->GetMultiUnitComponents( Prj().SchLibs(), lockedComponents );
}
else
{
m_CurrentSheet->GetMultiUnitComponents( Prj().SchLibs(), lockedComponents );
m_CurrentSheet->Last()->GetMultiUnitComponents( Prj().SchLibs(), lockedComponents );
}
}

View File

@ -62,7 +62,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
const wxPoint& aPosition, bool aErase );
int SCH_EDIT_FRAME::BlockCommand( int key )
int SCH_EDIT_FRAME::BlockCommand( EDA_KEY key )
{
int cmd = BLOCK_IDLE;

View File

@ -41,7 +41,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
bool aErase );
int LIB_EDIT_FRAME::BlockCommand( int key )
int LIB_EDIT_FRAME::BlockCommand( EDA_KEY key )
{
int cmd = BLOCK_IDLE;
@ -51,11 +51,18 @@ int LIB_EDIT_FRAME::BlockCommand( int key )
cmd = key & 0xFF;
break;
case -1:
case EDA_KEY_C( 0xffffffff ): // -1
// Historically, -1 has been used as a key, which can cause bit flag
// clashes with unaware code. On debug builds, catch any old code that
// might still be doing this. TODO: remove if sure all this old code is gone.
wxFAIL_MSG( "negative EDA_KEY value should be converted to GR_KEY_INVALID" );
// fall through on release builds
case GR_KEY_INVALID:
cmd = BLOCK_PRESELECT_MOVE;
break;
case 0:
case GR_KEY_NONE:
cmd = BLOCK_MOVE;
break;

View File

@ -49,6 +49,7 @@ class SCH_SHEET_PIN;
class SCH_LINE;
class SCH_TEXT;
class PLOTTER;
class SCH_SHEET;
enum SCH_LINE_TEST_T
@ -500,13 +501,13 @@ public:
* searches screen for a component with \a aReference and set the footprint field to
* \a aFootPrint if found.
*
* @param aSheetPath The sheet path used to look up the reference designator.
* @param aSheet The sheet used to look up the reference designator.
* @param aReference The reference designator of the component.
* @param aFootPrint The value to set the footprint field.
* @param aSetVisible The value to set the field visibility flag.
* @return True if \a aReference was found otherwise false.
*/
bool SetComponentFootprint( SCH_SHEET_PATH* aSheetPath, const wxString& aReference,
bool SetComponentFootprint( SCH_SHEET* aSheet, const wxString& aReference,
const wxString& aFootPrint, bool aSetVisible );
/**

View File

@ -736,6 +736,24 @@ SCH_REFERENCE::SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibComponent
}
int SCH_REFERENCE::CompareLibName( const SCH_REFERENCE& item ) const
{
return Cmp_KEEPCASE( m_RootCmp->GetPartName(), item.m_RootCmp->GetPartName() );
}
bool SCH_REFERENCE::IsSameInstance( const SCH_REFERENCE& other ) const
{
return GetComp() == other.GetComp() && GetSheet()->GetPath() == other.GetSheet()->GetPath();
}
bool SCH_REFERENCE::IsUnitsLocked() const
{
return m_Entry->UnitsLocked();
}
void SCH_REFERENCE::Annotate()
{
if( m_NumRef < 0 )

View File

@ -187,7 +187,7 @@ SCH_ITEM* SCH_EDIT_FRAME::LocateItem( const wxPoint& aPosition, const KICAD_T aF
if( item )
{
if( item->Type() == SCH_COMPONENT_T )
( (SCH_COMPONENT*) item )->SetCurrentSheetPath( &GetCurrentSheet() );
( (SCH_COMPONENT*) item )->SetCurrentSheet( GetCurrentSheet().Last() );
MSG_PANEL_ITEMS items;
item->GetMsgPanelInfo( items );
@ -202,7 +202,7 @@ SCH_ITEM* SCH_EDIT_FRAME::LocateItem( const wxPoint& aPosition, const KICAD_T aF
}
bool SCH_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey )
bool SCH_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey )
{
bool eventHandled = true;
@ -249,7 +249,7 @@ bool SCH_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH
}
bool LIB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey )
bool LIB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey )
{
bool eventHandled = true;
@ -291,7 +291,7 @@ bool LIB_EDIT_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aH
}
bool LIB_VIEW_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey )
bool LIB_VIEW_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey )
{
bool eventHandled = true;

View File

@ -1,48 +0,0 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "dialog_color_config_base.h"
///////////////////////////////////////////////////////////////////////////
DIALOG_COLOR_CONFIG_BASE::DIALOG_COLOR_CONFIG_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_mainBoxSizer = new wxBoxSizer( wxHORIZONTAL );
bmainSizer->Add( m_mainBoxSizer, 1, wxEXPAND, 5 );
m_staticline = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bmainSizer->Add( m_staticline, 0, wxEXPAND | wxALL, 5 );
m_sdbSizer = new wxStdDialogButtonSizer();
m_sdbSizerOK = new wxButton( this, wxID_OK );
m_sdbSizer->AddButton( m_sdbSizerOK );
m_sdbSizerApply = new wxButton( this, wxID_APPLY );
m_sdbSizer->AddButton( m_sdbSizerApply );
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer->AddButton( m_sdbSizerCancel );
m_sdbSizer->Realize();
bmainSizer->Add( m_sdbSizer, 0, wxALIGN_RIGHT|wxALL, 5 );
this->SetSizer( bmainSizer );
this->Layout();
bmainSizer->Fit( this );
this->Centre( wxBOTH );
}
DIALOG_COLOR_CONFIG_BASE::~DIALOG_COLOR_CONFIG_BASE()
{
}

View File

@ -1,217 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
<FileVersion major="1" minor="13" />
<object class="Project" expanded="1">
<property name="class_decoration"></property>
<property name="code_generation">C++</property>
<property name="disconnect_events">1</property>
<property name="disconnect_mode">source_name</property>
<property name="disconnect_php_events">0</property>
<property name="disconnect_python_events">0</property>
<property name="embedded_files_path">res</property>
<property name="encoding">UTF-8</property>
<property name="event_generation">connect</property>
<property name="file">dialog_color_config_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
<property name="internationalize">1</property>
<property name="name">dialog_color_config_base</property>
<property name="namespace"></property>
<property name="path">.</property>
<property name="precompiled_header"></property>
<property name="relative_path">1</property>
<property name="skip_lua_events">1</property>
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
<property name="center">wxBOTH</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="event_handler">impl_virtual</property>
<property name="extra_style"></property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">DIALOG_COLOR_CONFIG_BASE</property>
<property name="pos"></property>
<property name="size">-1,-1</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title">EESchema Colors</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnActivate"></event>
<event name="OnActivateApp"></event>
<event name="OnAuiFindManager"></event>
<event name="OnAuiPaneButton"></event>
<event name="OnAuiPaneClose"></event>
<event name="OnAuiPaneMaximize"></event>
<event name="OnAuiPaneRestore"></event>
<event name="OnAuiRender"></event>
<event name="OnChar"></event>
<event name="OnClose"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnHibernate"></event>
<event name="OnIconize"></event>
<event name="OnIdle"></event>
<event name="OnInitDialog"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bmainSizer</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">m_mainBoxSizer</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">protected</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticLine" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticline</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxLI_HORIZONTAL</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_RIGHT|wxALL</property>
<property name="proportion">0</property>
<object class="wxStdDialogButtonSizer" expanded="1">
<property name="Apply">1</property>
<property name="Cancel">1</property>
<property name="ContextHelp">0</property>
<property name="Help">0</property>
<property name="No">0</property>
<property name="OK">1</property>
<property name="Save">0</property>
<property name="Yes">0</property>
<property name="minimum_size"></property>
<property name="name">m_sdbSizer</property>
<property name="permission">protected</property>
<event name="OnApplyButtonClick"></event>
<event name="OnCancelButtonClick"></event>
<event name="OnContextHelpButtonClick"></event>
<event name="OnHelpButtonClick"></event>
<event name="OnNoButtonClick"></event>
<event name="OnOKButtonClick"></event>
<event name="OnSaveButtonClick"></event>
<event name="OnYesButtonClick"></event>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>

View File

@ -1,52 +0,0 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __DIALOG_COLOR_CONFIG_BASE_H__
#define __DIALOG_COLOR_CONFIG_BASE_H__
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
#include "dialog_shim.h"
#include <wx/sizer.h>
#include <wx/gdicmn.h>
#include <wx/statline.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/string.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_COLOR_CONFIG_BASE
///////////////////////////////////////////////////////////////////////////////
class DIALOG_COLOR_CONFIG_BASE : public DIALOG_SHIM
{
private:
protected:
wxBoxSizer* m_mainBoxSizer;
wxStaticLine* m_staticline;
wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizerOK;
wxButton* m_sdbSizerApply;
wxButton* m_sdbSizerCancel;
public:
DIALOG_COLOR_CONFIG_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("EESchema Colors"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_COLOR_CONFIG_BASE();
};
#endif //__DIALOG_COLOR_CONFIG_BASE_H__

View File

@ -31,6 +31,7 @@
#include <dialog_eeschema_options.h>
#include <widgets/widget_hotkey_list.h>
#include "../widgets/widget_eeschema_color_config.h"
#include <schframe.h>
#include <hotkeys.h>
@ -59,6 +60,10 @@ DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( SCH_EDIT_FRAME* parent ) :
m_hotkeyListCtrl = new WIDGET_HOTKEY_LIST( m_panelHotkeys, sections );
m_hotkeyListCtrl->InstallOnPanel( m_panelHotkeys );
// Embed the color configurator
m_colorConfigCtrl = new WIDGET_EESCHEMA_COLOR_CONFIG( m_panelColors, GetParent() );
m_colorConfigCtrl->InstallOnPanel( m_panelColors );
// Make sure we select the first tab of the options tab page
m_notebook->SetSelection( 0 );
@ -288,6 +293,11 @@ bool DIALOG_EESCHEMA_OPTIONS::TransferDataFromWindow()
if( !m_hotkeyListCtrl->TransferDataFromControl() )
return false;
GetParent()->WriteHotkeyConfig( g_Eeschema_Hokeys_Descr );
if( !m_colorConfigCtrl->TransferDataFromControl() )
return false;
// Refresh hotkeys
GetParent()->ReCreateMenuBar();
GetParent()->Refresh();

View File

@ -34,13 +34,15 @@
#include <dialog_eeschema_options_base.h>
#include <template_fieldnames.h>
class WIDGET_EESCHEMA_COLOR_CONFIG;
class WIDGET_HOTKEY_LIST;
class SCH_EDIT_FRAME;
class DIALOG_EESCHEMA_OPTIONS : public DIALOG_EESCHEMA_OPTIONS_BASE
{
protected:
WIDGET_HOTKEY_LIST* m_hotkeyListCtrl;
WIDGET_HOTKEY_LIST* m_hotkeyListCtrl;
WIDGET_EESCHEMA_COLOR_CONFIG* m_colorConfigCtrl;
/** @brief The template fieldnames for this dialog */
TEMPLATE_FIELDNAMES templateFields;

View File

@ -117,7 +117,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
m_panel5->SetSizer( bSizer82 );
m_panel5->Layout();
bSizer82->Fit( m_panel5 );
m_notebook->AddPage( m_panel5, _("Display"), true );
m_notebook->AddPage( m_panel5, _("Display"), false );
m_panel3 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer8;
bSizer8 = new wxBoxSizer( wxVERTICAL );
@ -233,7 +233,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
m_panel3->Layout();
bSizer8->Fit( m_panel3 );
m_notebook->AddPage( m_panel3, _("Editing"), false );
m_controlsPanel = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_tabControls = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer81;
bSizer81 = new wxBoxSizer( wxVERTICAL );
@ -253,46 +253,58 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
wxBoxSizer* bSizer13;
bSizer13 = new wxBoxSizer( wxHORIZONTAL );
m_staticText20 = new wxStaticText( m_controlsPanel, wxID_ANY, _("Hotkeys:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText20 = new wxStaticText( m_tabControls, wxID_ANY, _("Hotkeys:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText20->Wrap( -1 );
bSizer13->Add( m_staticText20, 1, wxALL, 5 );
m_staticText21 = new wxStaticText( m_controlsPanel, wxID_ANY, _("Double-click to edit"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText21 = new wxStaticText( m_tabControls, wxID_ANY, _("Double-click to edit"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText21->Wrap( -1 );
bSizer13->Add( m_staticText21, 0, wxALL, 5 );
m_controlsSizer->Add( bSizer13, 0, wxEXPAND, 5 );
m_panelHotkeys = new wxPanel( m_controlsPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_panelHotkeys = new wxPanel( m_tabControls, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_controlsSizer->Add( m_panelHotkeys, 1, wxEXPAND | wxALL, 5 );
m_checkEnableZoomCenter = new wxCheckBox( m_controlsPanel, wxID_ANY, _("Cen&ter and warp cursor on zoom"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkEnableZoomCenter = new wxCheckBox( m_tabControls, wxID_ANY, _("Cen&ter and warp cursor on zoom"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkEnableZoomCenter->SetToolTip( _("Keep the cursor at its current location when zooming") );
m_controlsSizer->Add( m_checkEnableZoomCenter, 0, wxTOP|wxRIGHT|wxLEFT, 3 );
m_checkEnableMiddleButtonPan = new wxCheckBox( m_controlsPanel, xwID_ANY, _("&Use middle mouse button to pan"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkEnableMiddleButtonPan = new wxCheckBox( m_tabControls, xwID_ANY, _("&Use middle mouse button to pan"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkEnableMiddleButtonPan->SetToolTip( _("Use middle mouse button dragging to pan") );
m_controlsSizer->Add( m_checkEnableMiddleButtonPan, 0, wxTOP|wxRIGHT|wxLEFT, 3 );
m_checkMiddleButtonPanLimited = new wxCheckBox( m_controlsPanel, wxID_ANY, _("&Limit panning to scroll size"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkMiddleButtonPanLimited = new wxCheckBox( m_tabControls, wxID_ANY, _("&Limit panning to scroll size"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkMiddleButtonPanLimited->SetToolTip( _("Middle mouse button panning limited by current scrollbar size") );
m_controlsSizer->Add( m_checkMiddleButtonPanLimited, 0, wxTOP|wxRIGHT|wxLEFT, 3 );
m_checkAutoPan = new wxCheckBox( m_controlsPanel, wxID_ANY, _("&Pan while moving object"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkAutoPan = new wxCheckBox( m_tabControls, wxID_ANY, _("&Pan while moving object"), wxDefaultPosition, wxDefaultSize, 0 );
m_controlsSizer->Add( m_checkAutoPan, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 3 );
bSizer81->Add( m_controlsSizer, 1, wxALL|wxEXPAND, 5 );
m_controlsPanel->SetSizer( bSizer81 );
m_controlsPanel->Layout();
bSizer81->Fit( m_controlsPanel );
m_notebook->AddPage( m_controlsPanel, _("Controls"), false );
m_tabControls->SetSizer( bSizer81 );
m_tabControls->Layout();
bSizer81->Fit( m_tabControls );
m_notebook->AddPage( m_tabControls, _("Controls"), false );
m_tabColors = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizer14;
bSizer14 = new wxBoxSizer( wxVERTICAL );
m_panelColors = new wxPanel( m_tabColors, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
bSizer14->Add( m_panelColors, 1, wxEXPAND | wxALL, 5 );
m_tabColors->SetSizer( bSizer14 );
m_tabColors->Layout();
bSizer14->Fit( m_tabColors );
m_notebook->AddPage( m_tabColors, _("Colors"), true );
m_panel2 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_panel2->SetToolTip( _("User defined field names for schematic components. ") );

View File

@ -187,7 +187,7 @@
<object class="notebookpage" expanded="0">
<property name="bitmap"></property>
<property name="label">Display</property>
<property name="select">1</property>
<property name="select">0</property>
<object class="wxPanel" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
@ -3806,7 +3806,7 @@
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_controlsPanel</property>
<property name="name">m_tabControls</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
@ -3845,7 +3845,7 @@
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer81</property>
<property name="orient">wxVERTICAL</property>
@ -3868,20 +3868,20 @@
<property name="vgap">0</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">m_controlsSizer</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">protected</property>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizer13</property>
<property name="orient">wxHORIZONTAL</property>
@ -4054,11 +4054,11 @@
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">1</property>
<object class="wxPanel" expanded="1">
<object class="wxPanel" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -4491,6 +4491,172 @@
</object>
</object>
</object>
<object class="notebookpage" expanded="1">
<property name="bitmap"></property>
<property name="label">Colors</property>
<property name="select">1</property>
<object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_tabColors</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer14</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">1</property>
<object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_panelColors</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
</object>
<object class="notebookpage" expanded="0">
<property name="bitmap"></property>
<property name="label">Default Fields</property>

View File

@ -103,7 +103,7 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
wxCheckBox* m_checkAutoplaceFields;
wxCheckBox* m_checkAutoplaceJustify;
wxCheckBox* m_checkAutoplaceAlign;
wxPanel* m_controlsPanel;
wxPanel* m_tabControls;
wxBoxSizer* m_controlsSizer;
wxStaticText* m_staticText20;
wxStaticText* m_staticText21;
@ -112,6 +112,8 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
wxCheckBox* m_checkEnableMiddleButtonPan;
wxCheckBox* m_checkMiddleButtonPanLimited;
wxCheckBox* m_checkAutoPan;
wxPanel* m_tabColors;
wxPanel* m_panelColors;
wxPanel* m_panel2;
wxGrid* m_fieldGrid;
wxButton* addFieldButton;

View File

@ -146,7 +146,7 @@ void SCH_EDIT_FRAME::EditComponentFieldText( SCH_FIELD* aField )
}
MSG_PANEL_ITEMS items;
component->SetCurrentSheetPath( &GetCurrentSheet() );
component->SetCurrentSheet( GetCurrentSheet().Last() );
component->GetMsgPanelInfo( items );
SetMsgPanel( items );
}

View File

@ -42,7 +42,6 @@
#include <general.h>
#include <class_libentry.h>
#include <hotkeys.h>
#include <dialogs/dialog_color_config.h>
#include <transform.h>
#include <wildcards_and_files_ext.h>

View File

@ -47,7 +47,6 @@
#include <dialog_hotkeys_editor.h>
#include <dialogs/dialog_color_config.h>
#include <dialogs/dialog_eeschema_options.h>
#include <dialogs/dialog_libedit_options.h>
#include <dialogs/dialog_schematic_find.h>
@ -157,14 +156,6 @@ void LIB_EDIT_FRAME::InstallConfigFrame( wxCommandEvent& event )
}
void LIB_EDIT_FRAME::OnColorConfig( wxCommandEvent& aEvent )
{
DIALOG_COLOR_CONFIG dlg( this );
dlg.ShowModal();
}
void LIB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
{
int id = event.GetId();
@ -195,14 +186,6 @@ void LIB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
}
void SCH_EDIT_FRAME::OnColorConfig( wxCommandEvent& aEvent )
{
DIALOG_COLOR_CONFIG dlg( this );
dlg.ShowModal();
}
void SCH_EDIT_FRAME::InstallConfigFrame( wxCommandEvent& event )
{
// Identical to LIB_EDIT_FRAME::InstallConfigFrame()

View File

@ -447,6 +447,8 @@ bool SCH_EDIT_FRAME::AppendOneEEProject()
bs = nextbs;
}
}
OnModify();
// redraw base screen (ROOT) if necessary
GetScreen()->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId );

View File

@ -71,7 +71,8 @@ void SCH_EDIT_FRAME::OnFindDrcMarker( wxFindDialogEvent& event )
if( event.GetFlags() & FR_CURRENT_SHEET_ONLY )
{
sheetFoundIn = m_CurrentSheet;
lastMarker = (SCH_MARKER*) m_CurrentSheet->FindNextItem( SCH_MARKER_T, lastMarker, wrap );
lastMarker = (SCH_MARKER*) m_CurrentSheet->Last()->FindNextItem( SCH_MARKER_T,
lastMarker, wrap );
}
else
{

View File

@ -221,8 +221,8 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* aDC,
return NULL;
}
SCH_COMPONENT* component = new SCH_COMPONENT( *part, m_CurrentSheet, unit, convert,
GetCrossHairPosition(), true );
SCH_COMPONENT* component = new SCH_COMPONENT( *part, m_CurrentSheet->Last(), unit, convert,
GetCrossHairPosition(), true );
// Set the m_ChipName value, from component name in lib, for aliases
// Note if part is found, and if name is an alias of a component,
@ -237,7 +237,7 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* aDC,
MSG_PANEL_ITEMS items;
component->SetCurrentSheetPath( &GetCurrentSheet() );
component->SetCurrentSheet( GetCurrentSheet().Last() );
component->GetMsgPanelInfo( items );
SetMsgPanel( items );

View File

@ -130,10 +130,8 @@ BEGIN_EVENT_TABLE( LIB_EDIT_FRAME, EDA_DRAW_FRAME )
EVT_MENU( wxID_INDEX, EDA_DRAW_FRAME::GetKicadHelp )
EVT_MENU( wxID_ABOUT, EDA_BASE_FRAME::GetKicadAbout )
EVT_MENU( ID_COLORS_SETUP, LIB_EDIT_FRAME::OnColorConfig )
EVT_MENU( wxID_PREFERENCES, LIB_EDIT_FRAME::OnPreferencesOptions )
EVT_MENU( ID_CONFIG_REQ, LIB_EDIT_FRAME::InstallConfigFrame )
EVT_MENU( ID_COLORS_SETUP, LIB_EDIT_FRAME::Process_Config )
// Multiple item selection context menu commands.
EVT_MENU_RANGE( ID_SELECT_ITEM_START, ID_SELECT_ITEM_END, LIB_EDIT_FRAME::OnSelectItem )

View File

@ -193,7 +193,6 @@ public:
static void EnsureActiveLibExists();
void InstallConfigFrame( wxCommandEvent& event );
void OnColorConfig( wxCommandEvent& aEvent );
void OnPreferencesOptions( wxCommandEvent& event );
void Process_Config( wxCommandEvent& event );
@ -333,7 +332,7 @@ public:
bool OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition, EDA_ITEM* aItem = NULL );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 );
void LoadSettings( wxConfigBase* aCfg );
@ -607,7 +606,7 @@ public:
* returns the block command (BLOCK_MOVE, BLOCK_COPY...) corresponding to
* the \a aKey (ALT, SHIFT ALT ..)
*/
virtual int BlockCommand( int aKey );
virtual int BlockCommand( EDA_KEY aKey );
/**
* Function HandleBlockPlace

View File

@ -375,13 +375,6 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
_( "Configure component libraries and paths" ),
KiBitmap( library_xpm ) );
// Colors
AddMenuItem( preferencesMenu,
ID_COLORS_SETUP,
_( "Set &Colors Scheme" ),
_( "Set color preferences" ),
KiBitmap( palette_xpm ) );
// Options (Preferences on WXMAC)
#ifdef __WXMAC__

View File

@ -238,13 +238,6 @@ void LIB_EDIT_FRAME::ReCreateMenuBar()
_( "Set Component Editor default values and options" ),
KiBitmap( preference_xpm ) );
// Colors
AddMenuItem( preferencesMenu,
ID_COLORS_SETUP,
_( "Set &Colors Scheme" ),
_( "Set color preferences" ),
KiBitmap( palette_xpm ) );
// Language submenu
Pgm().AddMenuLanguageList( preferencesMenu );

View File

@ -118,22 +118,22 @@ SCH_COMPONENT::SCH_COMPONENT( const wxPoint& aPos, SCH_ITEM* aParent ) :
SCH_ITEM( aParent, SCH_COMPONENT_T )
{
Init( aPos );
m_currentSheetPath = NULL;
m_currentSheet = NULL;
m_fieldsAutoplaced = AUTOPLACED_NO;
}
SCH_COMPONENT::SCH_COMPONENT( LIB_PART& aPart, SCH_SHEET_PATH* sheet, int unit,
SCH_COMPONENT::SCH_COMPONENT( LIB_PART& aPart, SCH_SHEET* aSheet, int unit,
int convert, const wxPoint& pos, bool setNewItemFlag ) :
SCH_ITEM( NULL, SCH_COMPONENT_T )
{
Init( pos );
m_unit = unit;
m_convert = convert;
m_part_name = aPart.GetName();
m_part = aPart.SharedPtr();
m_currentSheetPath = NULL;
m_unit = unit;
m_convert = convert;
m_part_name = aPart.GetName();
m_part = aPart.SharedPtr();
m_currentSheet = aSheet;
m_fieldsAutoplaced = AUTOPLACED_NO;
SetTimeStamp( GetNewTimeStamp() );
@ -186,7 +186,7 @@ SCH_COMPONENT::SCH_COMPONENT( LIB_PART& aPart, SCH_SHEET_PATH* sheet, int unit,
// update the reference -- just the prefix for now.
msg += wxT( "?" );
SetRef( sheet->Last(), msg );
SetRef( aSheet, msg );
// Use the schematic component name instead of the library value field
// name.
@ -197,13 +197,13 @@ SCH_COMPONENT::SCH_COMPONENT( LIB_PART& aPart, SCH_SHEET_PATH* sheet, int unit,
SCH_COMPONENT::SCH_COMPONENT( const SCH_COMPONENT& aComponent ) :
SCH_ITEM( aComponent )
{
m_currentSheetPath = NULL;
m_Parent = aComponent.m_Parent;
m_Pos = aComponent.m_Pos;
m_unit = aComponent.m_unit;
m_convert = aComponent.m_convert;
m_part_name = aComponent.m_part_name;
m_part = aComponent.m_part;
m_currentSheet = NULL;
m_Parent = aComponent.m_Parent;
m_Pos = aComponent.m_Pos;
m_unit = aComponent.m_unit;
m_convert = aComponent.m_convert;
m_part_name = aComponent.m_part_name;
m_part = aComponent.m_part;
SetTimeStamp( aComponent.m_TimeStamp );
@ -1528,9 +1528,8 @@ void SCH_COMPONENT::GetMsgPanelInfo( MSG_PANEL_ITEMS& aList )
if( !alias )
return;
if( m_currentSheetPath )
aList.push_back( MSG_PANEL_ITEM( _( "Reference" ),
GetRef( m_currentSheetPath->Last() ),
if( m_currentSheet )
aList.push_back( MSG_PANEL_ITEM( _( "Reference" ), GetRef( m_currentSheet ),
DARKCYAN ) );
wxString msg = part->IsPower() ? _( "Power symbol" ) : _( "Value" );

View File

@ -89,12 +89,12 @@ private:
AUTOPLACED m_fieldsAutoplaced; ///< indicates status of field autoplacement
/**
* A temporary sheet path is required to generate the correct reference designator string
* A temporary sheet is required to generate the correct reference designator string
* in complex heirarchies. Hopefully this is only a temporary hack to decouple schematic
* objects from the drawing window until a better design for handling complex heirarchies
* can be implemented.
*/
const SCH_SHEET_PATH* m_currentSheetPath;
const SCH_SHEET* m_currentSheet;
/**
* Defines the hierarchical path and reference of the component. This allows support
@ -121,7 +121,7 @@ public:
* @param pos - Position to place new component.
* @param setNewItemFlag - Set the component IS_NEW and IS_MOVED flags.
*/
SCH_COMPONENT( LIB_PART& aPart, SCH_SHEET_PATH* aSheet,
SCH_COMPONENT( LIB_PART& aPart, SCH_SHEET* aSheet,
int unit = 0, int convert = 0,
const wxPoint& pos = wxPoint( 0, 0 ),
bool setNewItemFlag = false );
@ -404,9 +404,9 @@ public:
*/
static bool IsReferenceStringValid( const wxString& aReferenceString );
void SetCurrentSheetPath( const SCH_SHEET_PATH* aSheetPath )
void SetCurrentSheet( const SCH_SHEET* aSheet )
{
m_currentSheetPath = aSheetPath;
m_currentSheet = aSheet;
}
/**

View File

@ -35,12 +35,13 @@
#include <macros.h>
#include <class_libentry.h>
#include <sch_sheet.h>
#include <sch_component.h>
#include <sch_text.h>
#include <map>
class SCH_SHEET;
class SCH_COMPONENT;
class SCH_REFERENCE_LIST;
@ -90,8 +91,7 @@ public:
m_SheetNum = 0;
}
SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibComponent,
SCH_SHEET* aSheet );
SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibComponent, SCH_SHEET* aSheet );
SCH_COMPONENT* GetComp() const { return m_RootCmp; }
@ -152,25 +152,16 @@ public:
return m_Ref.compare( item.m_Ref );
}
int CompareLibName( const SCH_REFERENCE& item ) const
{
return Cmp_KEEPCASE( m_RootCmp->GetPartName(), item.m_RootCmp->GetPartName() );
}
int CompareLibName( const SCH_REFERENCE& item ) const;
/**
* Function IsSameInstance
* returns whether this reference refers to the same component instance
* (component and sheet) as another.
*/
bool IsSameInstance( const SCH_REFERENCE& other ) const
{
return GetComp() == other.GetComp() && GetSheet()->GetPath() == other.GetSheet()->GetPath();
}
bool IsSameInstance( const SCH_REFERENCE& other ) const;
bool IsUnitsLocked()
{
return m_Entry->UnitsLocked();
}
bool IsUnitsLocked() const;
};

View File

@ -1103,7 +1103,7 @@ SCH_TEXT* SCH_SCREEN::GetLabel( const wxPoint& aPosition, int aAccuracy )
}
bool SCH_SCREEN::SetComponentFootprint( SCH_SHEET_PATH* aSheetPath, const wxString& aReference,
bool SCH_SCREEN::SetComponentFootprint( SCH_SHEET* aSheet, const wxString& aReference,
const wxString& aFootPrint, bool aSetVisible )
{
SCH_COMPONENT* component;
@ -1116,7 +1116,7 @@ bool SCH_SCREEN::SetComponentFootprint( SCH_SHEET_PATH* aSheetPath, const wxStri
component = (SCH_COMPONENT*) item;
if( aReference.CmpNoCase( component->GetRef( aSheetPath->Last() ) ) == 0 )
if( aReference.CmpNoCase( component->GetRef( aSheet ) ) == 0 )
{
// Found: Init Footprint Field
@ -1125,6 +1125,7 @@ bool SCH_SCREEN::SetComponentFootprint( SCH_SHEET_PATH* aSheetPath, const wxStri
* it is probably not yet initialized
*/
SCH_FIELD * fpfield = component->GetField( FOOTPRINT );
if( fpfield->GetText().IsEmpty()
&& ( fpfield->GetTextPosition() == component->GetPosition() ) )
{

View File

@ -42,7 +42,6 @@
#include <sch_sheet_path.h>
#include <sch_component.h>
#include <class_netlist_object.h>
#include <sch_reference_list.h>
SCH_SHEET::SCH_SHEET( const wxPoint& pos ) :
@ -812,6 +811,11 @@ void SCH_SHEET::GetMsgPanelInfo( MSG_PANEL_ITEMS& aList )
aList.push_back( MSG_PANEL_ITEM( _( "File Name" ), m_fileName, BROWN ) );
aList.push_back( MSG_PANEL_ITEM( _( "Path" ), GetHumanReadablePath(), DARKMAGENTA ) );
if( IsRootSheet() )
aList.push_back( MSG_PANEL_ITEM( _( "Hierarchy Type" ),
IsComplexHierarchy() ? _( "Complex" ) : _( "Simple" ),
GREEN ) );
#if 1 // Set to 1 to display the sheet time stamp (mainly for test)
aList.push_back( MSG_PANEL_ITEM( _( "Time Stamp" ), GetPath(), BLUE ) );
#endif
@ -1162,6 +1166,27 @@ void SCH_SHEET::Plot( PLOTTER* aPlotter )
}
unsigned SCH_SHEET::GetSheets( std::vector<const SCH_SHEET*>& aSheetList ) const
{
// Sheet pointers must be unique.
wxASSERT( find( aSheetList.begin(), aSheetList.end(), this ) == aSheetList.end() );
aSheetList.push_back( this );
const SCH_ITEM* item = m_screen->GetDrawItems();
while( item )
{
if( item->Type() == SCH_SHEET_T )
( (SCH_SHEET*) item )->GetSheets( aSheetList );
item = item->Next();
}
return aSheetList.size();
}
SCH_SHEET* SCH_SHEET::GetRootSheet()
{
EDA_ITEM* parent = GetParent();
@ -1424,6 +1449,100 @@ SCH_ITEM& SCH_SHEET::operator=( const SCH_ITEM& aItem )
}
void SCH_SHEET::GetMultiUnitComponents( PART_LIBS* aLibs,
SCH_MULTI_UNIT_REFERENCE_MAP& aRefList,
bool aIncludePowerSymbols )
{
for( SCH_ITEM* item = m_screen->GetDrawItems(); item; item = item->Next() )
{
if( item->Type() == SCH_SHEET_T )
{
( (SCH_SHEET*) item )->GetMultiUnitComponents( aLibs, aRefList, aIncludePowerSymbols );
continue;
}
if( item->Type() != SCH_COMPONENT_T )
continue;
SCH_COMPONENT* component = (SCH_COMPONENT*) item;
// Skip pseudo components, which have a reference starting with #. This mainly
// affects power symbols.
if( !aIncludePowerSymbols && component->GetRef( this )[0] == wxT( '#' ) )
continue;
LIB_PART* part = aLibs->FindLibPart( component->GetPartName() );
if( part && part->GetUnitCount() > 1 )
{
SCH_REFERENCE reference = SCH_REFERENCE( component, part, this );
reference.SetSheetNumber( m_number );
wxString reference_str = reference.GetRef();
// Never lock unassigned references
if( reference_str[reference_str.Len() - 1] == '?' )
continue;
aRefList[reference_str].AddItem( reference );
}
}
}
bool SCH_SHEET::IsComplexHierarchy() const
{
std::set<wxString> fileNames;
std::vector< const SCH_SHEET* > sheets;
unsigned count = GetSheets( sheets );
for( unsigned i = 0; i < count; i++ )
{
if( fileNames.find( sheets[i]->m_fileName ) != fileNames.end() )
return true;
fileNames.insert( sheets[i]->m_fileName );
}
return false;
}
SCH_ITEM* SCH_SHEET::FindNextItem( KICAD_T aType, SCH_ITEM* aLastItem, bool aWrap ) const
{
wxCHECK( m_screen != NULL, NULL );
bool hasWrapped = false;
bool firstItemFound = false;
SCH_ITEM* drawItem = m_screen->GetDrawItems();
while( drawItem )
{
if( drawItem->Type() == aType )
{
if( !aLastItem || firstItemFound )
{
return drawItem;
}
else if( !firstItemFound && drawItem == aLastItem )
{
firstItemFound = true;
}
}
drawItem = drawItem->Next();
if( !drawItem && aLastItem && aWrap && !hasWrapped )
{
hasWrapped = true;
drawItem = m_screen->GetDrawItems();
}
}
return NULL;
}
bool SCH_SHEET::operator<( const SCH_SHEET& aRhs ) const
{
if( (*this - aRhs) < 0 )

View File

@ -33,6 +33,7 @@
#include <boost/ptr_container/ptr_vector.hpp>
#include <boost/foreach.hpp>
#include <sch_text.h>
#include <sch_reference_list.h>
class PART_LIBS;
@ -44,7 +45,6 @@ class SCH_SHEET_PATH;
class DANGLING_END_ITEM;
class SCH_EDIT_FRAME;
class NETLIST_OBJECT_LIST;
class SCH_REFERENCE_LIST;
#define MIN_SHEET_WIDTH 500
@ -589,6 +589,16 @@ public:
EDA_ITEM* Clone() const;
/**
* Function GetSheets
*
* add the point to #SCH_SHEET and all of it's sub-sheets to \a aSheetList.
*
* @param aSheetList is a reference to a set containing the #SCH_SHEET pointers.
* @return the number of #SCH_SHEET object pointers in \a aSheetList.
*/
unsigned GetSheets( std::vector<const SCH_SHEET*>& aSheetList ) const;
/**
* Function GetRootSheet
*
@ -700,6 +710,43 @@ public:
void GetComponents( PART_LIBS* aLibs, SCH_REFERENCE_LIST& aReferences,
bool aIncludePowerSymbols = true, bool aIncludeSubSheets = true );
/**
* Function GetMultiUnitComponents
* adds a SCH_REFERENCE_LIST object to \a aRefList for each component with multiple units
* that has the same reference designator for this sheet and all of it's sub-sheets. The
* map key for each element will be the reference designator.
*
* @param aLibs a pointer to the #PART_LIB to use.
* @param aRefList Map of reference designators to reference lists
* @param aIncludePowerSymbols : false to only get normal components.
*/
void GetMultiUnitComponents( PART_LIBS* aLibs, SCH_MULTI_UNIT_REFERENCE_MAP& aRefList,
bool aIncludePowerSymbols = true );
/**
* Function IsComplexHierarchy
* searches all of the sheets for duplicate files names which indicates a complex
* hierarchy.
*
* Typically this function would be called from the root sheet. However, it is possible
* to test only the sub-hierarchy from any #SCH_SHEET object.
*
* @return true if the #SCH_SHEET is a complex hierarchy.
*/
bool IsComplexHierarchy() const;
/**
* Find the next schematic item in this sheet object.
*
* @param aType - The type of schematic item object to search for.
* @param aLastItem - Start search from aLastItem. If no aLastItem, search from
* the beginning of the list.
* @param aWrap - Wrap around the end of the list to find the next item if aLastItem
* is defined.
* @return - The next schematic item if found. Otherwise, NULL is returned.
*/
SCH_ITEM* FindNextItem( KICAD_T aType, SCH_ITEM* aLastItem = NULL, bool aWrap = false ) const;
#if defined(DEBUG)
void Show( int nestLevel, std::ostream& os ) const; // override
#endif

View File

@ -227,80 +227,6 @@ wxString SCH_SHEET_PATH::PathHumanReadable() const
}
void SCH_SHEET_PATH::GetMultiUnitComponents( PART_LIBS* aLibs,
SCH_MULTI_UNIT_REFERENCE_MAP& aRefList,
bool aIncludePowerSymbols )
{
// Find sheet path number
int sheetnumber = 1; // 1 = root
SCH_SHEET_LIST sheetList;
for( SCH_SHEET_PATH* path = sheetList.GetFirst(); path; path = sheetList.GetNext(), sheetnumber++ )
{
if( Cmp( *path ) == 0 )
break;
}
for( SCH_ITEM* item = LastDrawList(); item; item = item->Next() )
{
if( item->Type() != SCH_COMPONENT_T ) continue;
SCH_COMPONENT* component = (SCH_COMPONENT*) item;
// Skip pseudo components, which have a reference starting with #. This mainly
// affects power symbols.
if( !aIncludePowerSymbols && component->GetRef( Last() )[0] == wxT( '#' ) )
continue;
LIB_PART* part = aLibs->FindLibPart( component->GetPartName() );
if( part && part->GetUnitCount() > 1 )
{
SCH_REFERENCE reference = SCH_REFERENCE( component, part, Last() );
reference.SetSheetNumber( sheetnumber );
wxString reference_str = reference.GetRef();
// Never lock unassigned references
if( reference_str[reference_str.Len() - 1] == '?' ) continue;
aRefList[reference_str].AddItem( reference );
}
}
}
SCH_ITEM* SCH_SHEET_PATH::FindNextItem( KICAD_T aType, SCH_ITEM* aLastItem, bool aWrap ) const
{
bool hasWrapped = false;
bool firstItemFound = false;
SCH_ITEM* drawItem = LastDrawList();
while( drawItem )
{
if( drawItem->Type() == aType )
{
if( !aLastItem || firstItemFound )
{
return drawItem;
}
else if( !firstItemFound && drawItem == aLastItem )
{
firstItemFound = true;
}
}
drawItem = drawItem->Next();
if( !drawItem && aLastItem && aWrap && !hasWrapped )
{
hasWrapped = true;
drawItem = LastDrawList();
}
}
return NULL;
}
SCH_ITEM* SCH_SHEET_PATH::FindPreviousItem( KICAD_T aType, SCH_ITEM* aLastItem, bool aWrap ) const
{
bool hasWrapped = false;
@ -334,18 +260,6 @@ SCH_ITEM* SCH_SHEET_PATH::FindPreviousItem( KICAD_T aType, SCH_ITEM* aLastItem,
}
bool SCH_SHEET_PATH::SetComponentFootprint( const wxString& aReference, const wxString& aFootPrint,
bool aSetVisible )
{
SCH_SCREEN* screen = LastScreen();
if( screen == NULL )
return false;
return screen->SetComponentFootprint( this, aReference, aFootPrint, aSetVisible );
}
SCH_SHEET_PATH& SCH_SHEET_PATH::operator=( const SCH_SHEET_PATH& d1 )
{
if( this == &d1 ) // Self assignment is bad!
@ -595,29 +509,6 @@ void SCH_SHEET_LIST::BuildSheetList( SCH_SHEET* aSheet )
}
void SCH_SHEET_LIST::GetMultiUnitComponents( PART_LIBS* aLibs,
SCH_MULTI_UNIT_REFERENCE_MAP& aRefList,
bool aIncludePowerSymbols )
{
for( SCH_SHEET_PATH* path = GetFirst(); path; path = GetNext() )
{
SCH_MULTI_UNIT_REFERENCE_MAP tempMap;
path->GetMultiUnitComponents( aLibs, tempMap );
BOOST_FOREACH( SCH_MULTI_UNIT_REFERENCE_MAP::value_type& pair, tempMap )
{
// Merge this list into the main one
unsigned n_refs = pair.second.GetCount();
for( unsigned thisRef = 0; thisRef < n_refs; ++thisRef )
{
aRefList[pair.first].AddItem( pair.second[thisRef] );
}
}
}
}
SCH_ITEM* SCH_SHEET_LIST::FindNextItem( KICAD_T aType, SCH_SHEET_PATH** aSheetFoundIn,
SCH_ITEM* aLastItem, bool aWrap )
{
@ -709,40 +600,6 @@ SCH_ITEM* SCH_SHEET_LIST::FindPreviousItem( KICAD_T aType, SCH_SHEET_PATH** aShe
}
bool SCH_SHEET_LIST::SetComponentFootprint( const wxString& aReference,
const wxString& aFootPrint, bool aSetVisible )
{
bool found = false;
for( SCH_SHEET_PATH* path = GetFirst(); path; path = GetNext() )
found = path->SetComponentFootprint( aReference, aFootPrint, aSetVisible );
return found;
}
bool SCH_SHEET_LIST::IsComplexHierarchy() const
{
wxString fileName;
for( int i = 0; i < m_count; i++ )
{
fileName = m_list[i].Last()->GetFileName();
for( int j = 0; j < m_count; j++ )
{
if( i == j )
continue;
if( fileName == m_list[j].Last()->GetFileName() )
return true;
}
}
return false;
}
bool SCH_SHEET_LIST::TestForRecursion( const SCH_SHEET_LIST& aSrcSheetHierarchy,
const wxString& aDestFileName ) const
{

View File

@ -33,7 +33,6 @@
#define CLASS_DRAWSHEET_PATH_H
#include <base_struct.h>
#include <sch_reference_list.h>
/** Info about complex hierarchies handling:
@ -81,10 +80,8 @@
class wxFindReplaceData;
class SCH_SCREEN;
class SCH_MARKER;
class SCH_SHEET;
class SCH_ITEM;
class PART_LIBS;
#define SHEET_NOT_FOUND -1
@ -211,43 +208,6 @@ public:
*/
bool BuildSheetPathInfoFromSheetPathValue( const wxString& aPath, bool aFound = false );
/**
* Function GetMultiUnitComponents
* adds a SCH_REFERENCE_LIST object to \a aRefList for each same-reference set of
* multi-unit parts in the sheet. The map key for each element will be the
* reference designator.
* @param aLibs the library list to use
* @param aRefList Map of reference designators to reference lists
* @param aIncludePowerSymbols : false to only get normal components.
*/
void GetMultiUnitComponents( PART_LIBS* aLibs, SCH_MULTI_UNIT_REFERENCE_MAP& aRefList,
bool aIncludePowerSymbols = true );
/**
* Function SetFootprintField
* searches last sheet in the path for a component with \a aReference and set the footprint
* field to \a aFootPrint if found.
*
* @param aReference The reference designator of the component.
* @param aFootPrint The value to set the footprint field.
* @param aSetVisible The value to set the field visibility flag.
* @return True if \a aReference was found otherwise false.
*/
bool SetComponentFootprint( const wxString& aReference, const wxString& aFootPrint,
bool aSetVisible );
/**
* Find the next schematic item in this sheet object.
*
* @param aType - The type of schematic item object to search for.
* @param aLastItem - Start search from aLastItem. If no aLastItem, search from
* the beginning of the list.
* @param aWrap - Wrap around the end of the list to find the next item if aLastItem
* is defined.
* @return - The next schematic item if found. Otherwise, NULL is returned.
*/
SCH_ITEM* FindNextItem( KICAD_T aType, SCH_ITEM* aLastItem = NULL, bool aWrap = false ) const;
/**
* Find the previous schematic item in this sheet path object.
*
@ -400,18 +360,6 @@ public:
*/
SCH_SHEET_PATH* GetSheetByPath( const wxString aPath, bool aHumanReadable = true );
/**
* Function GetMultiUnitComponents
* adds a SCH_REFERENCE_LIST object to \a aRefList for each same-reference set of
* multi-unit parts in the list of sheets. The map key for each element will be the
* reference designator.
* @param aLibs the library list to use
* @param aRefList Map of reference designators to reference lists
* @param aIncludePowerSymbols Set to false to only get normal components.
*/
void GetMultiUnitComponents( PART_LIBS* aLibs, SCH_MULTI_UNIT_REFERENCE_MAP& aRefList,
bool aIncludePowerSymbols = true );
/**
* Function FindNextItem
* searches the entire schematic for the next schematic object.
@ -440,28 +388,6 @@ public:
SCH_ITEM* FindPreviousItem( KICAD_T aType, SCH_SHEET_PATH** aSheetFound = NULL,
SCH_ITEM* aLastItem = NULL, bool aWrap = true );
/**
* Function SetFootprintField
* searches all the sheets for a component with \a aReference and set the footprint
* field to \a aFootPrint if found.
*
* @param aReference The reference designator of the component.
* @param aFootPrint The value to set the footprint field.
* @param aSetVisible The value to set the field visibility flag.
* @return True if \a aReference was found otherwise false.
*/
bool SetComponentFootprint( const wxString& aReference, const wxString& aFootPrint,
bool aSetVisible );
/**
* Function IsComplexHierarchy
* searches all of the sheets for duplicate files names which indicates a complex
* hierarchy.
*
* @return true if the #SCH_SHEET_LIST is a complex hierarchy.
*/
bool IsComplexHierarchy() const;
/**
* Function TestForRecursion
*

View File

@ -237,7 +237,6 @@ BEGIN_EVENT_TABLE( SCH_EDIT_FRAME, EDA_DRAW_FRAME )
EVT_MENU_RANGE( ID_PREFERENCES_HOTKEY_START, ID_PREFERENCES_HOTKEY_END,
SCH_EDIT_FRAME::Process_Config )
EVT_MENU( ID_COLORS_SETUP, SCH_EDIT_FRAME::OnColorConfig )
EVT_TOOL( wxID_PREFERENCES, SCH_EDIT_FRAME::OnPreferencesOptions )
EVT_TOOL( ID_RUN_LIBRARY, SCH_EDIT_FRAME::OnOpenLibraryEditor )

View File

@ -266,11 +266,10 @@ public:
void SetPlotDirectoryName( const wxString& aDirName ) { m_plotDirectoryName = aDirName; }
void Process_Special_Functions( wxCommandEvent& event );
void OnColorConfig( wxCommandEvent& aEvent );
void Process_Config( wxCommandEvent& event );
void OnSelectTool( wxCommandEvent& aEvent );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 );
/**
* Function GetProjectFileParametersList
@ -1229,7 +1228,7 @@ public:
* @param aKey = the key modifiers (Alt, Shift ...)
* @return the block command id (BLOCK_MOVE, BLOCK_COPY...)
*/
virtual int BlockCommand( int aKey );
virtual int BlockCommand( EDA_KEY aKey );
/**
* Function HandleBlockPlace

View File

@ -87,7 +87,7 @@ public:
void ClickOnCmpList( wxCommandEvent& event );
void OnSetRelativeOffset( wxCommandEvent& event );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 );
///> @copydoc EDA_DRAW_FRAME::GetHotKeyDescription()
EDA_HOTKEY* GetHotKeyDescription( int aCommand ) const;

View File

@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 2015 KiCad Developers, see CHANGELOG.TXT for contributors.
* Copyright (C) 2016 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
@ -31,10 +31,7 @@
#include <general.h>
#include <dialog_color_config.h>
#define ID_COLOR_SETUP 1800
#include "widget_eeschema_color_config.h"
// Specify the width and height of every (color-displaying / bitmap) button
const int BUTT_SIZE_X = 16;
@ -110,21 +107,21 @@ static BUTTONINDEX buttonGroups[] = {
static EDA_COLOR_T currentColors[ LAYERSCH_ID_COUNT ];
DIALOG_COLOR_CONFIG::DIALOG_COLOR_CONFIG( EDA_DRAW_FRAME* aParent ) :
DIALOG_COLOR_CONFIG_BASE( aParent )
WIDGET_EESCHEMA_COLOR_CONFIG::WIDGET_EESCHEMA_COLOR_CONFIG( wxWindow* aParent, EDA_DRAW_FRAME* aDrawFrame ) :
wxPanel( aParent ), m_drawFrame( aDrawFrame )
{
m_parent = aParent;
CreateControls();
GetSizer()->SetSizeHints( this );
}
void DIALOG_COLOR_CONFIG::CreateControls()
void WIDGET_EESCHEMA_COLOR_CONFIG::CreateControls()
{
wxStaticText* label;
int buttonId = 1800;
m_mainBoxSizer = new wxBoxSizer( wxHORIZONTAL );
SetSizer( m_mainBoxSizer );
BUTTONINDEX* groups = buttonGroups;
wxBoxSizer* columnBoxSizer = NULL;
@ -185,7 +182,7 @@ void DIALOG_COLOR_CONFIG::CreateControls()
}
Connect( 1800, buttonId - 1, wxEVT_COMMAND_BUTTON_CLICKED,
wxCommandEventHandler( DIALOG_COLOR_CONFIG::SetColor ) );
wxCommandEventHandler( WIDGET_EESCHEMA_COLOR_CONFIG::SetColor ) );
wxArrayString selBgColorStrings;
selBgColorStrings.Add( _( "White" ) );
@ -193,7 +190,7 @@ void DIALOG_COLOR_CONFIG::CreateControls()
m_SelBgColor = new wxRadioBox( this, wxID_ANY, _( "Background Color" ),
wxDefaultPosition, wxDefaultSize,
selBgColorStrings, 1, wxRA_SPECIFY_COLS );
m_SelBgColor->SetSelection( ( m_parent->GetDrawBgColor() == BLACK ) ? 1 : 0 );
m_SelBgColor->SetSelection( ( GetDrawFrame()->GetDrawBgColor() == BLACK ) ? 1 : 0 );
if( columnBoxSizer )
{
@ -202,13 +199,13 @@ void DIALOG_COLOR_CONFIG::CreateControls()
columnBoxSizer->Add( m_SelBgColor, 1, wxGROW | wxRIGHT | wxTOP | wxBOTTOM, 5 );
}
currentColors[ LAYER_BACKGROUND ] = m_parent->GetDrawBgColor();
currentColors[ LAYER_BACKGROUND ] = GetDrawFrame()->GetDrawBgColor();
// Dialog now needs to be resized, but the associated command is found elsewhere.
}
void DIALOG_COLOR_CONFIG::SetColor( wxCommandEvent& event )
void WIDGET_EESCHEMA_COLOR_CONFIG::SetColor( wxCommandEvent& event )
{
wxBitmapButton* button = (wxBitmapButton*) event.GetEventObject();
@ -246,7 +243,7 @@ void DIALOG_COLOR_CONFIG::SetColor( wxCommandEvent& event )
}
bool DIALOG_COLOR_CONFIG::TransferDataFromWindow()
bool WIDGET_EESCHEMA_COLOR_CONFIG::TransferDataFromControl()
{
bool warning = false;
@ -280,7 +277,7 @@ bool DIALOG_COLOR_CONFIG::TransferDataFromWindow()
}
// Update color of background
m_parent->SetDrawBgColor( bgcolor );
GetDrawFrame()->SetDrawBgColor( bgcolor );
currentColors[ LAYER_BACKGROUND ] = bgcolor;
@ -289,8 +286,17 @@ bool DIALOG_COLOR_CONFIG::TransferDataFromWindow()
SetLayerColor( currentColors[ clyr ], clyr );
}
m_parent->SetGridColor( GetLayerColor( LAYER_GRID ) );
m_parent->GetCanvas()->Refresh();
GetDrawFrame()->SetGridColor( GetLayerColor( LAYER_GRID ) );
GetDrawFrame()->GetCanvas()->Refresh();
return true;
}
void WIDGET_EESCHEMA_COLOR_CONFIG::InstallOnPanel( wxPanel* aPanel )
{
wxBoxSizer* sizer = new wxBoxSizer( wxVERTICAL );
sizer->Add( this, 1, wxALL | wxEXPAND, 0 );
aPanel->SetSizer( sizer );
}

View File

@ -2,7 +2,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2007 G. Harland
* Copyright (C) 1992-2015 KiCad Developers, see CHANGELOG.TXT for contributors.
* Copyright (C) 1992-2016 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
@ -22,11 +22,11 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef DIALOG_COLOR_CONFIG_H_
#define DIALOG_COLOR_CONFIG_H_
#include <dialog_color_config_base.h>
#ifndef WIDGET_EESCHEMA_COLOR_CONFIG_H_
#define WIDGET_EESCHEMA_COLOR_CONFIG_H_
#include <wx/panel.h>
#include <wx/sizer.h>
class wxBoxSizer;
class wxStaticLine;
@ -37,22 +37,33 @@ class wxStdDialogButtonSizer;
/* Derived class for the frame color settings. */
/***********************************************/
class DIALOG_COLOR_CONFIG : public DIALOG_COLOR_CONFIG_BASE
class WIDGET_EESCHEMA_COLOR_CONFIG : public wxPanel
{
private:
EDA_DRAW_FRAME* m_parent;
EDA_DRAW_FRAME* m_drawFrame;
wxRadioBox* m_SelBgColor;
wxBoxSizer* m_mainBoxSizer;
// Creates the controls and sizers
void CreateControls();
void SetColor( wxCommandEvent& aEvent );
virtual EDA_DRAW_FRAME* GetDrawFrame() { return m_drawFrame; }
public:
// Constructors and destructor
DIALOG_COLOR_CONFIG( EDA_DRAW_FRAME* aParent );
WIDGET_EESCHEMA_COLOR_CONFIG( wxWindow* aParent, EDA_DRAW_FRAME* aDrawFrame );
bool TransferDataFromWindow();
bool TransferDataFromControl();
/**
* Method InstallOnPanel
* Install this WIDGET_EESCHEMA_COLOR_CONFIG onto an empty panel. This is useful
* when combining with wxFormBuilder, as an empty panel can be left as a
* placeholder in the layout.
*/
void InstallOnPanel( wxPanel* aPanel );
};
#endif // DIALOG_COLOR_CONFIG_H_
#endif // WIDGET_EESCHEMA_COLOR_CONFIG_H_

View File

@ -47,7 +47,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
bool erase );
int GERBVIEW_FRAME::BlockCommand( int key )
int GERBVIEW_FRAME::BlockCommand( EDA_KEY key )
{
int cmd = 0;

View File

@ -130,6 +130,7 @@ void GERBER_LAYER_WIDGET::ReFillRender()
void GERBER_LAYER_WIDGET::installRightLayerClickHandler()
{
int rowCount = GetLayerRowCount();
for( int row=0; row<rowCount; ++row )
{
for( int col=0; col<LYR_COLUMN_COUNT; ++col )

View File

@ -33,7 +33,7 @@
#include <gerbview_frame.h>
bool GERBVIEW_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey )
bool GERBVIEW_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey )
{
bool eventHandled = true;

View File

@ -755,7 +755,7 @@ void GERBVIEW_FRAME::UpdateStatusBar()
dy = GetCrossHairPosition().y - screen->m_O_Curseur.y;
// atan2 in the 0,0 case returns 0
theta = RAD2DEG( atan2( -dy, dx ) );
theta = RAD2DEG( atan2( (double) -dy, (double) dx ) );
ro = hypot( dx, dy );
wxString formatter;

View File

@ -546,7 +546,7 @@ public:
* returns the block command (BLOCK_MOVE, BLOCK_COPY...) corresponding to
* the \a aKey (ALT, SHIFT ALT ..)
*/
virtual int BlockCommand( int key );
virtual int BlockCommand( EDA_KEY key );
/**
* Function HandleBlockPlace
@ -631,7 +631,7 @@ public:
bool LoadExcellonFiles( const wxString& aFileName );
bool Read_EXCELLON_File( const wxString& aFullFileName );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 );
/**
* Set Size Items (Lines, Flashes) from DCodes List

View File

@ -263,7 +263,7 @@ public:
*</p>
*/
void OnMouseWheel( wxMouseEvent& event );
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
void OnMagnify( wxMouseEvent& event );
#endif
void OnMouseEvent( wxMouseEvent& event );

View File

@ -4,7 +4,7 @@
* Copyright (C) 2014-2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 2007-2015 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
* Copyright (C) 2008-2015 Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 1992-2016 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
@ -33,6 +33,7 @@
#define INCLUDE__COMMON_H_
#include <vector>
#include <boost/cstdint.hpp>
#include <wx/wx.h>
#include <wx/confbase.h>
@ -49,17 +50,21 @@ class REPORTER;
// Flag for special keys
#define GR_KB_RIGHTSHIFT 0x10000000 /* Keybd states: right
* shift key depressed */
#define GR_KB_LEFTSHIFT 0x20000000 /* left shift key depressed
*/
#define GR_KB_CTRL 0x40000000 // CTRL depressed
#define GR_KB_ALT 0x80000000 // ALT depressed
#define GR_KB_SHIFT (GR_KB_LEFTSHIFT | GR_KB_RIGHTSHIFT)
#define GR_KB_SHIFTCTRL (GR_KB_SHIFT | GR_KB_CTRL)
#define MOUSE_MIDDLE 0x08000000 /* Middle button mouse
* flag for block commands
*/
// This type could be extended to 64 bits to add room for more flags.
// For compatibility with old code, keep flag bits out of the least
// significant nibble (0xF).
typedef uint32_t EDA_KEY;
#define EDA_KEY_C UINT32_C
#define GR_KB_RIGHTSHIFT ( EDA_KEY_C( 0x01000000 ) )
#define GR_KB_LEFTSHIFT ( EDA_KEY_C( 0x02000000 ) )
#define GR_KB_CTRL ( EDA_KEY_C( 0x04000000 ) )
#define GR_KB_ALT ( EDA_KEY_C( 0x08000000 ) )
#define GR_KB_SHIFT ( GR_KB_LEFTSHIFT | GR_KB_RIGHTSHIFT )
#define GR_KB_SHIFTCTRL ( GR_KB_SHIFT | GR_KB_CTRL )
#define MOUSE_MIDDLE ( EDA_KEY_C( 0x10000000 ) )
#define GR_KEY_INVALID ( EDA_KEY_C( 0x80000000 ) )
#define GR_KEY_NONE ( EDA_KEY_C( 0 ) )
/// default name for nameless projects
#define NAMELESS_PROJECT wxT( "noname" )

View File

@ -28,9 +28,10 @@
* @see common.h
*/
#ifndef __INCLUDE__CONFIRM_H__
#define __INCLUDE__CONFIRM_H__ 1
#define __INCLUDE__CONFIRM_H__
#include <wx/window.h>
/**
* Function DisplayExitDialog

View File

@ -516,7 +516,7 @@ public:
* @param aPosition The current cursor position in logical (drawing) units.
* @param aHotKey A key event used for application specific control if not zero.
*/
virtual bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 )
virtual bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 )
{
return false;
}
@ -642,7 +642,7 @@ public:
* initializes the block command including the command type, initial position,
* and other variables.
*/
virtual bool HandleBlockBegin( wxDC* aDC, int aKey, const wxPoint& aPosition );
virtual bool HandleBlockBegin( wxDC* aDC, EDA_KEY aKey, const wxPoint& aPosition );
/**
* Function BlockCommand
@ -653,7 +653,7 @@ public:
* @param aKey = the key modifiers (Alt, Shift ...)
* @return the block command id (BLOCK_MOVE, BLOCK_COPY...)
*/
virtual int BlockCommand( int aKey );
virtual int BlockCommand( EDA_KEY aKey );
/**
* Function HandleBlockPlace( )

View File

@ -112,10 +112,12 @@ public:
virtual void DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint );
/// @copydoc GAL::DrawPolyline()
virtual void DrawPolyline( std::deque<VECTOR2D>& aPointList );
virtual void DrawPolyline( const std::deque<VECTOR2D>& aPointList ) { drawPoly( aPointList ); }
virtual void DrawPolyline( const VECTOR2D aPointList[], int aListSize ) { drawPoly( aPointList, aListSize ); }
/// @copydoc GAL::DrawPolygon()
virtual void DrawPolygon( const std::deque<VECTOR2D>& aPointList );
virtual void DrawPolygon( const std::deque<VECTOR2D>& aPointList ) { drawPoly( aPointList ); }
virtual void DrawPolygon( const VECTOR2D aPointList[], int aListSize ) { drawPoly( aPointList, aListSize ); }
/// @copydoc GAL::DrawCurve()
virtual void DrawCurve( const VECTOR2D& startPoint, const VECTOR2D& controlPointA,
@ -381,6 +383,10 @@ private:
/// Prepare the compositor
void setCompositor();
/// Drawing polygons & polylines is the same in cairo, so here is the common code
void drawPoly( const std::deque<VECTOR2D>& aPointList );
void drawPoly( const VECTOR2D aPointList[], int aListSize );
/**
* @brief Returns a valid key that can be used as a new group number.
*

View File

@ -105,7 +105,8 @@ public:
*
* @param aPointList is a list of 2D-Vectors containing the polyline points.
*/
virtual void DrawPolyline( std::deque<VECTOR2D>& aPointList ) {};
virtual void DrawPolyline( const std::deque<VECTOR2D>& aPointList ) {};
virtual void DrawPolyline( const VECTOR2D aPointList[], int aListSize ) {};
/**
* @brief Draw a circle using world coordinates.
@ -140,6 +141,7 @@ public:
* @param aPointList is the list of the polygon points.
*/
virtual void DrawPolygon( const std::deque<VECTOR2D>& aPointList ) {};
virtual void DrawPolygon( const VECTOR2D aPointList[], int aListSize ) {};
/**
* @brief Draw a cubic bezier spline.

View File

@ -3,7 +3,7 @@
*
* Copyright (C) 2012 Torsten Hueter, torstenhtr <at> gmx.de
* Copyright (C) 2012 Kicad Developers, see change_log.txt for contributors.
* Copyright (C) 2013-2015 CERN
* Copyright (C) 2013-2016 CERN
* @author Maciej Suminski <maciej.suminski@cern.ch>
*
* Graphics Abstraction Layer (GAL) for OpenGL
@ -113,10 +113,12 @@ public:
virtual void DrawRectangle( const VECTOR2D& aStartPoint, const VECTOR2D& aEndPoint );
/// @copydoc GAL::DrawPolyline()
virtual void DrawPolyline( std::deque<VECTOR2D>& aPointList );
virtual void DrawPolyline( const std::deque<VECTOR2D>& aPointList );
virtual void DrawPolyline( const VECTOR2D aPointList[], int aListSize );
/// @copydoc GAL::DrawPolygon()
virtual void DrawPolygon( const std::deque<VECTOR2D>& aPointList );
virtual void DrawPolygon( const VECTOR2D aPointList[], int aListSize );
/// @copydoc GAL::DrawCurve()
virtual void DrawCurve( const VECTOR2D& startPoint, const VECTOR2D& controlPointA,

View File

@ -124,8 +124,6 @@ enum main_id
ID_NO_TOOL_SELECTED,
ID_SEL_BG_COLOR,
ID_COLORS_SETUP,
ID_REPEAT_BUTT,
ID_LANGUAGE_CHOICE,

View File

@ -298,7 +298,7 @@ typename VECTOR2<T>::extended_type VECTOR2<T>::SquaredEuclideanNorm() const
template <class T>
double VECTOR2<T>::Angle() const
{
return atan2( y, x );
return atan2( (double) y, (double) x );
}

View File

@ -54,7 +54,7 @@ public:
/// Handler functions
void onWheel( wxMouseEvent& aEvent );
void onMotion( wxMouseEvent& aEvent );
#ifdef USE_OSX_MAGNIFY_EVENT
#if wxCHECK_VERSION( 3, 1, 0 ) || defined( USE_OSX_MAGNIFY_EVENT )
void onMagnify( wxMouseEvent& aEvent );
#endif
void onButton( wxMouseEvent& aEvent );

View File

@ -59,8 +59,6 @@ class ZONE_SETTINGS;
class PCB_PLOT_PARAMS;
class FP_LIB_TABLE;
class FPID;
class TOOL_MANAGER;
class TOOL_DISPATCHER;
/**
* class PCB_BASE_FRAME

View File

@ -281,6 +281,11 @@ public:
void OnLayerColorChange( wxCommandEvent& aEvent );
void OnConfigurePaths( wxCommandEvent& aEvent );
/**
* called when the alt key is pressed during a mouse wheel action
*/
void OnAltWheel( wxCommandEvent& event );
/**
* Function RecordMacros.
* records sequence of hotkeys and cursor positions to a macro.
@ -620,7 +625,7 @@ public:
///> @copydoc EDA_DRAW_FRAME::UseGalCanvas()
void UseGalCanvas( bool aEnable );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 );
/**
* Function ShowDesignRulesEditor
@ -716,7 +721,7 @@ public:
* @param aKey = the key modifiers (Alt, Shift ...)
* @return the block command id (BLOCK_MOVE, BLOCK_COPY...)
*/
virtual int BlockCommand( int aKey );
virtual int BlockCommand( EDA_KEY aKey );
/**
* Function HandleBlockPlace()
@ -1683,44 +1688,6 @@ public:
void Begin_Self( wxDC* DC );
/**
* Function Genre_Self
* creates a self-shaped coil for microwave applications.
* - Length Mself.lng
* - Extremities Mself.m_Start and Mself.m_End
*
* We must determine:
* Mself.nbrin = number of segments perpendicular to the direction
* (The coil nbrin will demicercles + 1 + 2 1 / 4 circle)
* Mself.lbrin = length of a strand
* Mself.radius = radius of rounded parts of the coil
* Mself.delta = segments extremities connection between him and the coil even
*
* The equations are
* Mself.m_Size.x = 2 * Mself.radius + Mself.lbrin
* Mself.m_Size.y * Mself.delta = 2 + 2 * Mself.nbrin * Mself.radius
* Mself.lng = 2 * Mself.delta / / connections to the coil
+ (Mself.nbrin-2) * Mself.lbrin / / length of the strands except 1st and last
+ (Mself.nbrin 1) * (PI * Mself.radius) / / length of rounded
* Mself.lbrin + / 2 - Melf.radius * 2) / / length of 1st and last bit
*
* The constraints are:
* Nbrin >= 2
* Mself.radius < Mself.m_Size.x
* Mself.m_Size.y = Mself.radius * 4 + 2 * Mself.raccord
* Mself.lbrin> Mself.radius * 2
*
* The calculation is conducted in the following way:
* Initially:
* Nbrin = 2
* Radius = 4 * m_Size.x (arbitrarily fixed value)
* Then:
* Increasing the number of segments to the desired length
* (Radius decreases if necessary)
*
*/
MODULE* Genere_Self( wxDC* DC );
void ShowChangedLanguage(); // override EDA_BASE_FRAME virtual
/**

View File

@ -148,7 +148,7 @@ static EDA_HOTKEY HkRunGerbview( _HKI( "Run Gerbview" ), HK_RUN_GERBVIEW, 'G' +
static EDA_HOTKEY HkRunBm2Cmp( _HKI( "Run Bitmap2Component" ),
HK_RUN_BM2COMPONENT, 'B' + GR_KB_CTRL, 0 );
static EDA_HOTKEY HkRunPcbCalc( _HKI( "Run PcbCalculator" ),
HK_RUN_PCBCALCULATOR, 'C' + GR_KB_CTRL, 0 );
HK_RUN_PCBCALCULATOR, 'A' + GR_KB_CTRL, 0 );
static EDA_HOTKEY HkRunPleditor( _HKI( "Run PlEditor" ), HK_RUN_PLEDITOR, 'Y' + GR_KB_CTRL, 0 );
// List of hotkey descriptors

View File

@ -32,7 +32,7 @@
#include <pl_editor_frame.h>
bool PL_EDITOR_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey )
bool PL_EDITOR_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey )
{
bool eventHandled = true;

View File

@ -267,7 +267,7 @@ public:
void ToPrinter( wxCommandEvent& event );
void Files_io( wxCommandEvent& event );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
bool GeneralControl( wxDC* aDC, const wxPoint& aPosition, EDA_KEY aHotKey = 0 );
/** Virtual function PrintPage
* used to print a page

View File

@ -162,4 +162,35 @@ add_custom_target(
${CMAKE_CURRENT_SOURCE_DIR}/pcb_calculator_datafile_keywords.cpp
)
#
# Conversion of .html doc source files to .h files included in cpp sources
#
# Function html_doc2h : converts a single *.html text file to a *.h header
function( html_doc2h inputFile )
add_custom_command(
OUTPUT ${inputFile}.h
COMMAND ${CMAKE_COMMAND} -DinputFile=${inputFile}.html -DoutputFile=${inputFile}.h
-P ${CMAKE_MODULE_PATH}/Html2C.cmake
DEPENDS ${inputFile}.html ${CMAKE_MODULE_PATH}/Html2C.cmake
COMMENT "creating ${inputFile}.h from ${inputFile}.html"
)
endfunction()
html_doc2h( ${CMAKE_CURRENT_SOURCE_DIR}/attenuators/bridget_tee_formula )
html_doc2h( ${CMAKE_CURRENT_SOURCE_DIR}/attenuators/splitter_formula )
html_doc2h( ${CMAKE_CURRENT_SOURCE_DIR}/attenuators/pi_formula )
html_doc2h( ${CMAKE_CURRENT_SOURCE_DIR}/attenuators/tee_formula )
set( DOCS_LIST
${CMAKE_CURRENT_SOURCE_DIR}/attenuators/pi_formula.h
${CMAKE_CURRENT_SOURCE_DIR}/attenuators/tee_formula.h
${CMAKE_CURRENT_SOURCE_DIR}/attenuators/bridget_tee_formula.h
${CMAKE_CURRENT_SOURCE_DIR}/attenuators/splitter_formula.h
)
set_source_files_properties( attenuators/attenuator_classes.cpp
PROPERTIES OBJECT_DEPENDS "${DOCS_LIST}"
)
add_dependencies( pcb_calculator_kiface pcb_calculator_lexer_source_files )

View File

@ -30,6 +30,7 @@
#include <pcb_calculator.h>
#include <attenuator_classes.h>
extern double DoubleFromString( const wxString& TextValue );
// Called on a attenuator selection
@ -44,6 +45,7 @@ void PCB_CALCULATOR_FRAME::SetAttenuator( unsigned aIdx )
{
if( aIdx >=m_attenuator_list.size() )
aIdx = m_attenuator_list.size() - 1;
m_currAttenuator = m_attenuator_list[aIdx];
TransfAttenuatorDataToPanel();
m_Attenuator_Messages->SetPage( wxEmptyString );
@ -93,6 +95,11 @@ void PCB_CALCULATOR_FRAME::TransfAttenuatorDataToPanel()
msg.Printf( wxT( "%g" ), m_currAttenuator->m_Zout );
m_ZoutValueCtrl->SetValue( msg );
if( m_currAttenuator->m_FormulaName )
m_panelAttFormula->SetPage( *m_currAttenuator->m_FormulaName );
else
m_panelAttFormula->SetPage( wxEmptyString );
}
@ -148,19 +155,3 @@ void PCB_CALCULATOR_FRAME::OnPaintAttenuatorPanel( wxPaintEvent& event )
event.Skip();
}
void PCB_CALCULATOR_FRAME::OnPaintAttFormulaPanel( wxPaintEvent& event )
{
wxPaintDC dc( m_panelAttFormula );
if( m_currAttenuator && m_currAttenuator->m_FormulaBitMap )
{
wxSize size = m_panelAttFormula->GetSize();
size.x -= m_currAttenuator->m_FormulaBitMap->GetWidth();
size.y -= m_currAttenuator->m_FormulaBitMap->GetHeight();
dc.DrawBitmap( *m_currAttenuator->m_FormulaBitMap, size.x / 2, size.y / 2 );
}
event.Skip();
}

View File

@ -14,10 +14,25 @@
#include <att_tee.xpm>
#include <att_bridge.xpm>
#include <att_splitter.xpm>
#include <pi_formula.xpm>
#include <tee_formula.xpm>
#include <bridged_tee_formula.xpm>
#include <splitter_formula.xpm>
// Html texts showing the formulas
wxString pi_formula(
#include <pi_formula.h>
);
wxString tee_formula(
#include <tee_formula.h>
);
wxString bridget_tee_formula(
#include <bridget_tee_formula.h>
);
wxString splitter_formula(
#include <splitter_formula.h>
);
#ifndef NULL
#define NULL 0
@ -36,7 +51,7 @@ ATTENUATOR::ATTENUATOR( ATTENUATORS_TYPE aTopology )
m_Attenuation_Enable = true;
m_MinimumATT = 0.0; // dB
m_SchBitMap = NULL;
m_FormulaBitMap = NULL;
m_FormulaName = NULL;
// Initialize these variables mainly to avoid warnings from a static analyzer
m_R1 = 0.0;
@ -49,7 +64,6 @@ ATTENUATOR::ATTENUATOR( ATTENUATORS_TYPE aTopology )
ATTENUATOR::~ATTENUATOR()
{
delete m_SchBitMap;
delete m_FormulaBitMap;
}
@ -83,7 +97,7 @@ ATTENUATOR_PI::ATTENUATOR_PI() : ATTENUATOR( PI_TYPE )
{
m_Name = wxT("att_pi");
m_SchBitMap = new wxBitmap( att_pi_xpm );
m_FormulaBitMap = new wxBitmap( pi_formula_xpm );
m_FormulaName = &pi_formula;
}
@ -104,7 +118,7 @@ ATTENUATOR_TEE::ATTENUATOR_TEE() : ATTENUATOR( TEE_TYPE )
{
m_Name = wxT("att_tee");
m_SchBitMap = new wxBitmap( att_tee_xpm );
m_FormulaBitMap = new wxBitmap( tee_formula_xpm );
m_FormulaName = &tee_formula;
}
@ -127,7 +141,7 @@ ATTENUATOR_BRIDGE::ATTENUATOR_BRIDGE() : ATTENUATOR( BRIDGE_TYPE )
m_Zin_Enable = false;
m_ResultCount = 2;
m_SchBitMap = new wxBitmap( att_bridge_xpm );
m_FormulaBitMap = new wxBitmap( bridged_tee_formula_xpm );
m_FormulaName = &bridget_tee_formula;
}
@ -153,7 +167,7 @@ ATTENUATOR_SPLITTER::ATTENUATOR_SPLITTER() : ATTENUATOR( SPLITTER_TYPE )
m_MinimumATT = 6.0;
m_Zin_Enable = false;
m_SchBitMap = new wxBitmap( att_splitter_xpm );
m_FormulaBitMap = new wxBitmap( splitter_formula_xpm );
m_FormulaName = &splitter_formula;
}

View File

@ -40,7 +40,7 @@ public:
double m_R2; // value of R2
double m_R3; // value of R3 (if any)
wxBitmap* m_SchBitMap; // The schema of this attenuator
wxBitmap* m_FormulaBitMap; // The formula used to calcualte this attenuator
wxString* m_FormulaName; // The HTML text name of the formula used to calculate this attenuator
protected:
double Lmin, L, A; // internal variable for temporary use

View File

@ -0,0 +1,33 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252"/>
<title></title>
<meta name="generator" content="LibreOffice 5.0.3.2 (Windows)"/>
<meta name="created" content="00:00:00"/>
<meta name="changed" content="2016-01-16T13:33:30.802000000"/>
<meta name="created" content="00:00:00">
<meta name="changed" content="2016-01-16T10:18:56.932000000">
<meta name="created" content="2016-01-16T10:09:46.840000000">
<meta name="changed" content="2016-01-16T10:10:55.745000000">
</head>
<body lang="fr-FR" dir="ltr">
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font size="5" style="font-size: 18pt">Z<sub>in</sub>
desired input impedance in <b>&#8486;</b></font></font></p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font size="5" style="font-size: 18pt">Z<sub>out</sub>
desired output impedance <b>Z in = Z out</b></font></font></p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font size="5" style="font-size: 18pt"><i><b>a</b></i>
attenuation in dB</font></font></p>
<p style="margin-left: 1.25cm; margin-bottom: 0cm"><font face="Times New Roman, serif"><font size="5" style="font-size: 18pt"><b>L
= 10</b><sup><b>a/20</b></sup> (the loss)</font></font></p>
<p style="margin-bottom: 0cm"><br/>
</p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font size="5" style="font-size: 18pt"><b>Bridged
tee attenuator</b></font></font></p>
<p style="margin-left: 1.25cm; margin-bottom: 0cm"><font face="Times New Roman, serif"><font size="6" style="font-size: 24pt"><i><b>R1
= Z<sub>in</sub> * (L &minus; 1)</b></i></font></font></p>
<p style="margin-left: 1.25cm; margin-bottom: 0cm"><font face="Times New Roman, serif"><font size="6" style="font-size: 24pt"><i><b>R2
= Z<sub>in</sub>/(L &minus; 1)</b></i></font></font></p>
</body>
</html>

View File

@ -0,0 +1,44 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252"/>
<title></title>
<meta name="generator" content="LibreOffice 5.0.3.2 (Windows)"/>
<meta name="created" content="00:00:00"/>
<meta name="changed" content="2016-01-16T13:32:32.474000000"/>
<style type="text/css">
@page { margin: 2cm }
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { so-language: zxx }
</style>
</head>
<body lang="fr-FR" dir="ltr">
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt"><b>Z</b><sub><b>in</b></sub>
desired input impedance in &#8486;</font></font></p>
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt"><b>Z</b><sub><b>out</b></sub><sub>
</sub> desired output impedance in &#8486;</font></font></p>
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt">a
attenuation in dB</font></font></p>
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt">L
= 10<sup>a/10</sup> (the loss)</font></font></p>
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt">A
= (L + 1)/(L &minus; 1)</font></font></p>
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<br/>
</p>
<p style="margin-bottom: 0cm; font-style: normal; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><b>Pi
attenuator</b></font></font></p>
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><i><b>R2
= (L &minus; 1)/2 * &radic; ((Z<sub>in</sub> * Z<sub>out</sub>)/L)</b></i></font></font></p>
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><i><b>R1
= 1/( A/Z<sub>in</sub> &minus; 1/R2)</b></i></font></font></p>
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><i><b>R3
= 1/ (A/Z<sub>out</sub> &minus; 1/R2)</b></i></font></font></p>
</body>
</html>

View File

@ -0,0 +1,37 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252"/>
<title></title>
<meta name="generator" content="LibreOffice 5.0.3.2 (Windows)"/>
<meta name="created" content="00:00:00"/>
<meta name="changed" content="2016-01-16T13:35:05.776000000"/>
<meta name="created" content="2016-01-16T12:43:25.862000000">
<meta name="changed" content="2016-01-16T12:46:35.137000000">
<style type="text/css">
@page { margin: 2cm }
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { so-language: zxx }
</style>
</head>
<body lang="fr-FR" dir="ltr">
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="5" style="font-size: 18pt">Z<sub>in</sub>
desired input impedance in &#8486;</font></font></p>
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="5" style="font-size: 18pt">Z<sub>out</sub>
desired output impedance in &#8486;</font></font></p>
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><i><b>Z<sub>in</sub>
= Z<sub>out</sub></b></i></font></font></p>
<p style="margin-bottom: 0cm; line-height: 100%"><br/>
</p>
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 22pt"><b>Attenuation
is 6dB</b></font></font></p>
<p style="margin-bottom: 0cm; line-height: 100%"><br/>
</p>
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><b>Splitted
attenuator</b></font></font></p>
<p style="margin-bottom: 0cm; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><i><b>R1
= R2 = R3 = Z<sub>out</sub>/3</b></i></font></font></p>
</body>
</html>

View File

@ -0,0 +1,47 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252"/>
<title></title>
<meta name="generator" content="LibreOffice 5.0.3.2 (Windows)"/>
<meta name="created" content="00:00:00"/>
<meta name="changed" content="2016-01-16T13:25:20.291000000"/>
<style type="text/css">
@page { margin: 2cm }
p { margin-bottom: 0.25cm; line-height: 120% }
a:link { so-language: zxx }
</style>
</head>
<body lang="fr-FR" dir="ltr">
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt">Z<sub>in</sub>
desired input impedance in &#8486;</font></font></p>
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt">Z<sub>out</sub>
desired output impedance in &#8486;</font></font></p>
<p style="margin-bottom: 0cm; font-style: normal; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt">a
attenuation in dB</font></font></p>
<p style="margin-bottom: 0cm; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt"><i>L
= 10 <sup>a/10</sup> (the loss)</i></font></font></p>
<p style="margin-bottom: 0cm; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 22pt"><i>A
= (L + 1)/(L &minus; 1)</i></font></font></p>
<p style="margin-bottom: 0cm; font-weight: normal; line-height: 100%">
<br/>
</p>
<p style="margin-bottom: 0cm; font-style: normal; line-height: 100%"><font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><b>Tee
attenuator</b></font></font></p>
<p style="margin-left: 2cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><i>R2
= 2*&radic; (L * Z<sub>in</sub> * Z<sub>out</sub> )/(L &minus; 1)</i></font></font></p>
<p style="margin-left: 2cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><i>R1
= Z<sub>in</sub> * A &minus; R2</i></font></font></p>
<p style="margin-left: 2cm; margin-bottom: 0cm; font-weight: normal; line-height: 100%">
<font face="Times New Roman, serif"><font size="6" style="font-size: 28pt"><i>R3
= Z<sub>out</sub> * A &minus; R2</i></font></font></p>
</body>
</html>

View File

@ -1,216 +0,0 @@
/* XPM */
static const char *bridged_tee_formula_xpm[] = {
/* columns rows colors chars-per-pixel */
"255 193 17 1",
"X c Black",
"> c #D9D9D9",
"* c #E1E1E1",
"- c #F0F0F0",
" c #FFFFFF",
"o c #E9E9E9",
": c #BDBDBD",
"O c #4D4D4D",
"+ c #A7A7A7",
"# c #7C7C7C",
"& c #9A9A9A",
"@ c #C7C7C7",
". c #C0C0C0",
"= c #8C8C8C",
"; c #B2B2B2",
"% c #D0D0D0",
"$ c #686868",
/* pixels */
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" .............................................................. ",
" . . ",
" . X . ",
" . XX . ",
" . X X . ",
" . X X . ",
" . XXXX . ",
" . X X . ",
" . XXX XXX . ",
" . . ",
" . . ",
" . XXXXXXXXXXXX . ",
" . XX XX . ",
" . X X X X . ",
" . X X X . ",
" . X X X . ",
" . XXX X X XXX X X X . X X oO X X X XXXXXX ",
" . XX XXX XX X X X X X X . XX +X@ XX X X ",
" . X X X X X XXXX XX . X X #X$ X X X X X X ",
" . X X X X X . X X %@&X% X X X X X X ",
" . X *XXXXXXXXX= X X X . XXX XXX XXX X XXXX X XX #-*X= XXXXXXXXX XXX XXXXXXXX XXX X XX XX XX XXX XXXX X XX X XX X X XX XX X X X ",
" . X XXXX X X X . X X X XX X XX X o& #X* X X X X X X XXX X X X X X X XX X X XXX X XX XXX X X XX XXXXX ",
" . X X *XXXXXXXXX= X X X . X X X X X X X +% %X+ XX X X XXXXX X X X X XX X X X X X X X X X X X X X ",
" . X X X X X . X X X X X X X X OXXXXXX- XXXXXXXXX XX X X X X X X X X XX X X X X X X X X X X X X X X ",
" . X X X X X . X X X X X X X X @; ;X+ X X X X X X X X X X X X X X X X X X X X X X X X ",
" . XXXXX XXX XXX . XX XX X X X X X *O* -XX% X XX X X X X X X X X X XXX X XX X X X X X X X X X X X XXX X X ",
" . . X X XXX XX XXX XXX *XXX: *XXXX: XXX XX XX XX XXX XXX XXX XX X XXX XX XX XXX XX XXX XXX XXX XXX XXX XX X XXXXXXX ",
" . . ",
" . . ",
" .............................................................. ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" XXXXXXX& ## XXXXXXX& XXXXXXX& ",
" X$* oXO- ## X$* oXO- : X$* oXO- ",
" X> #X: X> #X: -O X> #X: ",
" : @X$ : @X$ #X : @X$ ",
" OX* XXX XXX%OX% XXXXXXXX OX* -+XX+- XXX XXX #XXXX XXXXXXXX OX* ",
" +X+ XX XX% XO +X+ OX%%XO XX XX XX +X+ ",
" *XO XX XX XX *XO XX XX XX XX XX *XO XX ",
" $X@ X XX XX XX XXXXXXXX $X@ X XX XX XX XX XX XXXXXXXX $X@ X XX X ",
" :X= %# XX XX XX :X= %# XX XX XX XX XX :X= %# XX X ",
" -OXo @O= XX XX XX -OXo @O= OX%%XO OX %XX XX>= -OXo @O= XX X ",
" &XXXXXXX= XXXX XXXX XXX &XXXXXXX= -+XX+- %OO:XXX %O$o &XXXXXXX= XX X ",
" XX X ",
" XX ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" XXXXXXXX+- ##XX XXXXXXX& :X: $ o= %$XO:-X ##XX =o ",
" -XX %XO XX X$* oXO- o#X+X#o X oO% ;X@ -+XX XX %O- ",
" XX XX XX X> #X: XX% %XX $XXX$ #= *X; &X XX == ",
" XX XX XX : @X$ XX XX -&&&- %X> &X* -X XX %X> ",
" XX %XO XX XXXXXXXX OX* XX XX O# #O &X- OX XX -X& ",
" XXXXXX+- XX +X+ XX XX $X XX XX X$ ",
" XX $X* XX *XO XX XX XX XX XXXX XX XX ",
" XX %X# XX XXXXXXXX $X@ X XX XX XX &Xo XX XXXXXXXX XX XX ",
" XX =X@ XX :X= %# XX% %XX $X *X: XX XX X$ ",
" -XX- *XOo -XX- -OXo @O= o#X+X#o &X- +X: -XO -XX- -X& ",
" XXXXXX =XXX XXXXXX &XXXXXXX= :X: >X% >#XX$; XXXXXX >X% ",
" == =# ",
" -O% %Oo ",
" o= =o ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" XXXXXXXX+- >$X& XXXXXXX& :X: -$ o= %$XO:-X ##XX =o ",
" -XX %XO -XXXX+ X$* oXO- o#X+X#o @; oO% ;X@ -+XX XX %O- ",
" XX XX ++ @XX X> #X: XX% %XX &> #= *X; &X XX == ",
" XX XX o XO : @X$ XX XX O %X> &X* -X XX %X> ",
" XX %XO X+ XXXXXXXX OX* XX XX *= &X- OX XX -X& ",
" XXXXXX+- *Xo +X+ XX XX :: $X XX XX X$ ",
" XX $X* +; *XO XX XX #o XX XX XXXX XX XX ",
" XX %X# *# XXXXXXXX $X@ X XX XX O XX &Xo XX XXXX XX XX ",
" XX =X@ -$- & :X= %# XX% %XX >& $X *X: XX XX X$ ",
" -XX- *XOo #XXXX@ -OXo @O= o#X+X#o +% &X- +X: -XO -XX- -X& ",
" XXXXXX =XXX&XXXXX- &XXXXXXX= :X: $- >X% >#XX$; XXXXXX >X% ",
" == =# ",
" -O% %Oo ",
" o= =o ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
};

View File

@ -1,301 +0,0 @@
/* XPM */
static const char *pi_formula_xpm[] = {
/* columns rows colors chars-per-pixel */
"259 278 17 1",
"X c Black",
"> c #D9D9D9",
"* c #E1E1E1",
"= c #F0F0F0",
" c #FFFFFF",
"o c #E9E9E9",
": c #BDBDBD",
"O c #4D4D4D",
"+ c #A7A7A7",
"# c #7C7C7C",
"& c #9A9A9A",
"@ c #C7C7C7",
". c #C0C0C0",
"- c #8C8C8C",
"; c #B2B2B2",
"% c #D0D0D0",
"$ c #686868",
/* pixels */
" ",
" ",
" ............................................................. ",
" . . ",
" . X . ",
" . XX . ",
" . X X . ",
" . X X . ",
" . XXX . ",
" . X X . ",
" . XXX XXX . ",
" . . ",
" . . ",
" . XXXXXXXXXXXX . ",
" . . ",
" . XX XX . ",
" . X X X X . ",
" . X X X . ",
" . XXXX X X XX X X X . X X oO X X X XXXXXX ",
" . XX XXX XXX X X X X X . XX +X@ XX X 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 XX . X X %@&X% X X X X X X ",
" . X *XXXXXXXXX X X X . XXX XXX XXX X XXXX X XX #=*X- XXXXXXXXX XXX XXXXXXXX XXX X XX XX XX XXX XXXX X XX X XX X X XX XX X X X ",
" . X XXXX X X X . X X X XX X XX X o& #X* X X X X X X XXX X X X X X X XX X X XXX X XX XXX X X XX XXXXX ",
" . X X X X X . X X X X X X X +% %X+ XX X X XXXXX X X X X XX X X X X X X X X X X X X X ",
" . X X *XXXXXXXXX X X X . X X X X X X X X OXXXXXX= XXXXXXXXX XX X X X X X X X X XX X X X X X X X X X X X X X X ",
" . X X X X X . X X X X X X X X @; ;X+ X X X X X X X X X X X X X X X X X X X X X X X X ",
" . X X X X X . XX XX X X X X X *O* =XX% X XX X X X X X X X X X XXX X XX X X X X X X X X X X X XXX X X ",
" . XXXXXX XXX XX . X X XXX XX XXX XXX *XXX: *XXXX: XXX XX XX XX XXX XXX XXX XX X XXX XX XX XXX XX XXX XXX XXX XXX XXX XX X XXXXXXX ",
" . . ",
" . . ",
" . . ",
" ............................................................. ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" XXXXXXX X X X X X X X ",
" X X XX XX XX ",
" X X X X X X ",
" X X X X X ",
" X X X XX XXXXXXXXX XX X XXX XXX X X XX XXX XX X X X XX X XX XX XX XXXX X X XX XX X XX XXX XX X XXX X XX XXX XXX ",
" X XX XXX X X XX X X X X XX XXX X X X XX XX XXX X XXX X X X X XX XXX XX X XXX X X X X XX X X XXX X X X X X ",
" X X X X X X XXXXX X X X XXXXX X X X X X X X X X X X X X X X X XXXXX X X XX X X X XXXXX ",
" X X X X XXXXXXXXX X X X XX X X X X X X X X X X X X X X X X X X X X X X XX X X X X X ",
" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
" X X X X X X XXX X X X X X X X X X XXX X X X XX X X XXX X X X X X X XX X X X X XXX X XX X X X X X X ",
" XXXXXXXX XXX XXX XXX XX X XXX XXX XXX XXX XXX XX X XXX XXX XXX X XX XX X XX XXX XXX XXX XXX X XX XXX XX X XXX XX XXX XXX XXX XXX ",
" X X ",
" X X ",
" XXX XXX ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" XXXXXXX X X X X X ",
" X X XX XX XX ",
" X X X X X X X X ",
" X X X X X X X ",
" X XX XX XX XXXX XXXXXXXXX XX X XXX XXX X X XX XXX XX X XX XX XX XXXX X XX XX XX XXXX X X XX XX X XX XXX XX X XXX X XX XXX XXX ",
" X X X X X X X XX X X X X XX XXX X X X XX X X X X X XXX X X X X XX XXX XX X XXX X X X X XX X X XXX X X X X X ",
" X X X X X X X X XXXXX X X X XXXXX X X X X X X X X X X X X X X X X X X XXXXX X X XX X X X XXXXX ",
" X X X X X X XXXXXXXXX X X X XX X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X ",
" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
" X X X X X XXX X X X XXX X X X X X X X X X XXX X X X XXX X X XX X X XXX X X X X X X XX X X X X XXX X XX X X X X X X ",
" XXXXXXXX XX XX X XX XX X XXX XXX XXX XXX XXX XX X XX XX X XX X XX XX X XX XXX XXX XXX XXX X XX XXX XX X XXX XX XXX XXX XXX XXX ",
" X X ",
" X X ",
" XXX XXX ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ................................................................................................................................................................................................... ",
" . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . ; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . - . ",
" . ; . ",
" . & . ",
" . & . ",
" . X : XXXXXXX XXXXXXX . ",
" . XXX *: X X X X X . ",
" . X *% X X X X X . ",
" . X @* X -* X X . ",
" . X :* X XXX XX XX =; &*o; X XXX XX X XXX . ",
" . X : X X X X X =+#&;$% X XX X X X X X . ",
" . X - X X XX X %O$= X X X X X X . ",
" . X & X X XX X o$;;%#+ X X X X X X . ",
" . X o% %o + X X X X X > -* > X X X X X XX X . ",
" . X + + - X X X X X X X ;o X X X XX X XX XX X . ",
" . XXXXX XXX XXX o; XXXX X X ;= + XXXXXXX XX X XX XXXXXXX XXX XXX XX XXX . ",
" . X X X X :% XX XXX XXX %@ *: . ",
" . X X X -* X X X *& *: . ",
" . X X X -* $ X X X # -* %* . ",
" . X X X *XXXXXXXXX =; &*o; X X X X =; &*o; :* . ",
" . XXXX X =+#&;$% X X XXXX X X =+#&;$% > :o . ",
" . X X X XXXXXXXXXXX %O$= X X X *XXXXXXXXX X X %O$= O - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . X X X *XXXXXXXXX o$;;%#+ X X X X X o$;;%#+ :$o - . ",
" . X X X > -* > # X X X $ > -* > ::> - . ",
" . X X X X ;o -* X X X *- ;o %: - . ",
" . XXXX XX XXXXX @% XXXXXX XXX %: *+ - . ",
" . XXX =; ;o - *: XXXX X . ",
" . X X + + O *: XX XXX . ",
" . X X o> >o - %@ X X . ",
" . X ;*:* X X . ",
" . X @@:* X . ",
" . X *:- X XXXX . ",
" . X =-- X X . ",
" . X $$ X X . ",
" . X -- X X . ",
" . X X +- X X . ",
" . XXXXXX :& XXXXXX . ",
" . >: . ",
" . . ",
" ................................................................................................................................................................................................... ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ......................................................................................................................................................................... ",
" . . ",
" . . ",
" . X . ",
" . XXX . ",
" . X . ",
" . X . ",
" . X . ",
" . X . ",
" . X . ",
" . X . ",
" . X . ",
" . XXXXX XX X . ",
" . X X X X XXX . ",
" . X X X . ",
" . X X X . ",
" . X X X *XXXXXXXXX . ",
" . XXXX XX . ",
" . X X X . ",
" . X X X *XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . X X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . X X X X . ",
" . XXXX XX XXX . ",
" . XXXX X X X . ",
" . XX XXX o XXX XXX . ",
" . X X - X X . ",
" . X X - X X . ",
" . X - X X . ",
" . X XXXX - X X . ",
" . X X o----O---- X X . ",
" . X X - X X . ",
" . X X - X X . ",
" . X X - X X . ",
" . XXXXXX - XXX XXX . ",
" . . ",
" . . ",
" . . ",
" . . ",
" . . ",
" . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX . ",
" . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX . ",
" . o% %o . ",
" . + + . ",
" . XXXXXXX o; XXXX X X ;= XXXXX XXX . ",
" . X X :% XX XXX XXX %@ X X X X . ",
" . X X X -* X X X *& X X X . ",
" . X X -* $ X X X # X X X . ",
" . X XXX XX X XXX =; &*o; X X X X X X X . ",
" . X XX X X X X X =+#&;$% X X XXXX X X XXXX X . ",
" . X X X X X X %O$= X X X *XXXXXXXXX X X X X X . ",
" . X X X X X X o$;;%#+ X X X X X X X X . ",
" . X X X X X XX X > -* > # X X X $ X X X . ",
" . X X X XX X XX XX X ;o -* X X X *- X X X X . ",
" . XXXXXXX XXX XXX XX XXX @% XXXXXX XXX %: XXXX XX XXXXX . ",
" . =; ;o . ",
" . + + . ",
" . o> >o . ",
" ......................................................................................................................................................................... ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ............................................................................................................................................................... ",
" . . ",
" . . ",
" . X . ",
" . XXX . ",
" . X . ",
" . X . ",
" . X . ",
" . X . ",
" . X . ",
" . X . ",
" . X . ",
" . XXXXX XX X . ",
" . X X X XXX . ",
" . X X X . ",
" . X X X . ",
" . X X X *XXXXXXXXX . ",
" . XXXX X . ",
" . X X X . ",
" . X X X *XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . X X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . X X X . ",
" . XXXX XX XXXX . ",
" . . ",
" . XXXX X X X . ",
" . XX XXX o XXX XXX . ",
" . X X - X X . ",
" . X X - X X . ",
" . X - X X . ",
" . X XXXX - X X . ",
" . X X o----O---- X X . ",
" . X X - X X . ",
" . X X - X X . ",
" . X X - X X . ",
" . XXXXXX - XXX XXX . ",
" . . ",
" . . ",
" . . ",
" . . ",
" . . ",
" . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX . ",
" . . ",
" . o% %o . ",
" . + + . ",
" . XXXXXXX o; XXXX X X ;= XXXXX XXX . ",
" . X X X :% XX XXX XXX %@ X X X X . ",
" . X X -* X X X *& X X X . ",
" . X -* $ X X X # X X X . ",
" . X XXX XX XX =; &*o; X X X X X X X . ",
" . X X X X X =+#&;$% X X XXXX X X XXXX X . ",
" . X X XX X %O$= X X X *XXXXXXXXX X X X X X . ",
" . X X XX X 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 -* X X X *- X X X X . ",
" . XXXXXXX XX X XX @% XXXXXX XXX %: XXXX XX XXXXX . ",
" . =; ;o . ",
" . + + . ",
" . o> >o . ",
" ............................................................................................................................................................... ",
" ",
" ",
" ",
" "
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,135 +0,0 @@
/* XPM */
static const char *splitter_formula_xpm[] = {
/* columns rows colors chars-per-pixel */
"230 112 17 1",
". c Black",
"& c #D9D9D9",
"+ c #E1E1E1",
"$ c #F0F0F0",
" c #FFFFFF",
"@ c #E9E9E9",
"% c #BDBDBD",
"# c #4D4D4D",
"- c #A7A7A7",
"o c #7C7C7C",
"X c #9A9A9A",
"* c #C7C7C7",
"> c #C0C0C0",
"; c #8C8C8C",
": c #B2B2B2",
"= c #D0D0D0",
"O c #686868",
/* pixels */
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" . . ... . ...... ",
" . . .. . . ",
" . . . . . . . . . ",
" . . . . . . . . . ",
" . . .... .... ... . .. .. .. ... .... . .. . .. ......... . .. .. . . . ",
" . . . . . . ... . . . . . . .. . . ... . .. . . .. ..... ",
" . . . . ..... . . . . .. . . . . . . . . . . . . ",
" ..... . . . . . . . .. . . . . . . . ......... . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . ... . .. . . . . . . . . . . ... . . ",
" .... .... .. .. ... ... ... .. . ... .. .. ... .. ... ... .. .. . ....... ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" .......X oo .......X ... oo ... oo ... ",
" .O+ @.#$ oo .O+ @.#$ % .. oo .. oo .. ",
" .& o.% .& o.% $# .. .. .. ",
" % *.O % *.O o. .. .. .. ",
" #.+ ... ...=#.= ........ #.+ $-..-$ ... ... o.... ........ $-.%.. $-..- =#... ... ...@Oo $-..- $-.%.. ... ...=#- =.-$ ...%.-$ $-..- $-.%.. $;..-$ ...=#.= X.#: $-..- ",
" -.- .. ..= .# -.- #.==.# .. .. .. #.==.. #.==.# #. *. .. ..&=o #.==.# #.==.. .. ..==.#.-.# ..+=.# #.==.# #.==.. O.$=.# ..= .# X.+:# #.==.# ",
" +.# .. .. .. +.# .. .. .. .. .. .. .. .. .. O.;$ .. .. .. .. .. .. .. .. ..= .. .. .. .. .. .. .. @.. .. .. #. .. .. ",
" O.* . .. .. .. ........ O.* . .. .. .. .. .. ........ .. .. ...... @o.#@ .. .. ...... .. .. .. .. .. .. .. .. ...... .. .. -.-.. .. .. .. ...... ",
" %.; =o .. .. .. %.; =o .. .. .. .. .. .. .. #. -.# .. .. #. .. .. .. .. .. .. .. .. #. .. .. :.= .. .. .. #o #. ",
" $#.@ *#; .. .. .. $#.@ *#; #.==.# #. =.. ..&; #.=*.. :.% =X .* .# .. .. :.% =X #.=*.. .. .. .. .. ..*=.# :.% =X #.=*.. #.==.. .. .. -#&+X :.% =X ",
" X.......; .... .... ... X.......; $-..-$ =##%... =#O@ $-.=... :..- .&O#= ........ :..- $-.=... .... .... ... ... ..:.-$ :..- $-.=... $Xo&o.: .... ... ;.;@ :..- ",
" .. ",
" .. ",
" .... ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ",
" > > ",
" > $ > ",
" > ..... .. ..... ... ..... .. ....... O .... > ",
" > . . . . . . . . . . . . . . &o . . > ",
" > . . . . . . . . . . . -% . > ",
" > . . . . . . . . . . O@ . > ",
" > . . . +......... . . . +......... . . . +......... . ... .. .. @# . > ",
" > .... . .... . .... .. . . . . . *X ... > ",
" > . . . . . . . . . . . .. . ;= . > ",
" > . . . +......... . . . +......... . . . +......... . . .. . .$ . > ",
" > . . . . . . . . . . . . . . &o . > ",
" > . . . . . . . . . . . . . . . . . . :: . > ",
" > .... .. .... .... .. ..... .... .. ... ....... .. . .. O+ .... > ",
" > > ",
" > > ",
" > > ",
" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -1,135 +0,0 @@
/* XPM */
static const char *splitter_formula_xpm[] = {
/* columns rows colors chars-per-pixel */
"230 112 17 1",
". c Black",
"& c #D9D9D9",
"+ c #E1E1E1",
"$ c #F0F0F0",
" c #FFFFFF",
"@ c #E9E9E9",
"% c #BDBDBD",
"# c #4D4D4D",
"- c #A7A7A7",
"o c #7C7C7C",
"X c #9A9A9A",
"* c #C7C7C7",
"> c #C0C0C0",
"; c #8C8C8C",
": c #B2B2B2",
"= c #D0D0D0",
"O c #686868",
/* pixels */
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" . . ... . ...... ",
" . . .. . . ",
" . . . . . . . . . ",
" . . . . . . . . . ",
" . . .... .... ... . .. .. .. ... .... . .. . .. ......... . .. .. . . . ",
" . . . . . . ... . . . . . . .. . . ... . .. . . .. ..... ",
" . . . . ..... . . . . .. . . . . . . . . . . . . ",
" ..... . . . . . . . .. . . . . . . . ......... . . . . . . ",
" . . . . . . . . . . . . . . . . . . . . . . . ",
" . . . . . . . . . . . ... . .. . . . . . . . . . . ... . . ",
" .... .... .. .. ... ... ... .. . ... .. .. ... .. ... ... .. .. . ....... ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" .......X oo .......X ... oo ... oo ... ",
" .O+ @.#$ oo .O+ @.#$ % .. oo .. oo .. ",
" .& o.% .& o.% $# .. .. .. ",
" % *.O % *.O o. .. .. .. ",
" #.+ ... ...=#.= ........ #.+ $-..-$ ... ... o.... ........ $-.%.. $-..- =#... ... ...@Oo $-..- $-.%.. ... ...=#- =.-$ ...%.-$ $-..- $-.%.. $;..-$ ...=#.= X.#: $-..- ",
" -.- .. ..= .# -.- #.==.# .. .. .. #.==.. #.==.# #. *. .. ..&=o #.==.# #.==.. .. ..==.#.-.# ..+=.# #.==.# #.==.. O.$=.# ..= .# X.+:# #.==.# ",
" +.# .. .. .. +.# .. .. .. .. .. .. .. .. .. O.;$ .. .. .. .. .. .. .. .. ..= .. .. .. .. .. .. .. @.. .. .. #. .. .. ",
" O.* . .. .. .. ........ O.* . .. .. .. .. .. ........ .. .. ...... @o.#@ .. .. ...... .. .. .. .. .. .. .. .. ...... .. .. -.-.. .. .. .. ...... ",
" %.; =o .. .. .. %.; =o .. .. .. .. .. .. .. #. -.# .. .. #. .. .. .. .. .. .. .. .. #. .. .. :.= .. .. .. #o #. ",
" $#.@ *#; .. .. .. $#.@ *#; #.==.# #. =.. ..&; #.=*.. :.% =X .* .# .. .. :.% =X #.=*.. .. .. .. .. ..*=.# :.% =X #.=*.. #.==.. .. .. -#&+X :.% =X ",
" X.......; .... .... ... X.......; $-..-$ =##%... =#O@ $-.=... :..- .&O#= ........ :..- $-.=... .... .... ... ... ..:.-$ :..- $-.=... $Xo&o.: .... ... ;.;@ :..- ",
" .. ",
" .. ",
" .... ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ",
" > > ",
" > $ > ",
" > ..... .. ..... ... ..... .. ....... O .... > ",
" > . . . . . . . . . . . . . . &o . . > ",
" > . . . . . . . . . . . -% . > ",
" > . . . . . . . . . . O@ . > ",
" > . . . +......... . . . +......... . . . +......... . ... .. .. @# . > ",
" > .... . .... . .... .. . . . . . *X ... > ",
" > . . . . . . . . . . . .. . ;= . > ",
" > . . . +......... . . . +......... . . . +......... . . .. . .$ . > ",
" > . . . . . . . . . . . . . . &o . > ",
" > . . . . . . . . . . . . . . . . . . :: . > ",
" > .... .. .... .... .. ..... .... .. ... ....... .. . .. O+ .... > ",
" > > ",
" > > ",
" > > ",
" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
};

View File

@ -1,271 +0,0 @@
/* XPM */
static const char *tee_formula_xpm[] = {
/* columns rows colors chars-per-pixel */
"255 248 17 1",
"X c Black",
"> c #D9D9D9",
"* c #E1E1E1",
"= c #F0F0F0",
" c #FFFFFF",
"o c #E9E9E9",
": c #BDBDBD",
"O c #4D4D4D",
"+ c #A7A7A7",
"# c #7C7C7C",
"& c #9A9A9A",
"@ c #C7C7C7",
". c #C0C0C0",
"- c #8C8C8C",
"; c #B2B2B2",
"% c #D0D0D0",
"$ c #686868",
/* pixels */
" ",
" ",
" .............................................................. ",
" . . ",
" . X . ",
" . XX . ",
" . X X . ",
" . X X . ",
" . XXX . ",
" . X X . ",
" . XXX XXX . ",
" . . ",
" . . ",
" . XXXXXXXXXXXX . ",
" . . ",
" . XX XX . ",
" . X X X X . ",
" . X X X . ",
" . XXXX X X XX X X X . X X oO X X X XXXXXX ",
" . XX XXX XXX X X X X X . XX +X@ XX X 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 XX . X X %@&X% X X X X X X ",
" . X *XXXXXXXXX X X X . XXX XXX XXX X XXXX X XX #=*X- XXXXXXXXX XXX XXXXXXXX XXX X XX XX XX XXX XXXX X XX X XX X X XX XX X X X ",
" . X XXXX X X X . X X X XX X XX X o& #X* X X X X X X XXX X X X X X X XX X X XXX X XX XXX X X XX XXXXX ",
" . X X X X X . X X X X X X X +% %X+ XX X X XXXXX X X X X XX X X X X X X X X X X X X X ",
" . X X *XXXXXXXXX X X X . X X X X X X X X OXXXXXX= XXXXXXXXX XX X X X X X X X X XX X X X X X X X X X X X X X X ",
" . X X X X X . X X X X X X X X @; ;X+ X X X X X X X X X X X X X X X X X X X X X X X X ",
" . X X X X X . XX XX X X X X X *O* =XX% X XX X X X X X X X X X XXX X XX X X X X X X X X X X X XXX X X ",
" . XXXXXX XXX XX . X X XXX XX XXX XXX *XXX: *XXXX: XXX XX XX XX XXX XXX XXX XX X XXX XX XX XXX XX XXX XXX XXX XXX XXX XX X XXXXXXX ",
" . . ",
" . . ",
" . . ",
" .............................................................. ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" XXXXXXX X X X X X X X ",
" X X XX XX XX ",
" X X X X X X ",
" X X X X X ",
" X X X XX XXXXXXXXX XX X XXX XXX X X XX XXX XX X X X XX X XX XX XX XXXX X X XX XX X XX XXX XX X XXX X XX XXX XXX ",
" X XX XXX X X XX X X X X XX XXX X X X XX XX XXX X XXX X X X X XX XXX XX X XXX X X X X XX X X XXX X X X X X ",
" X X X X X X XXXXX X X X XXXXX X X X X X X X X X X X X X X X X XXXXX X X XX X X X XXXXX ",
" X X X X XXXXXXXXX X X X XX X X X X X X X X X X X X X X X X X X X X X X XX X X X X X ",
" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
" X X X X X X XXX X X X X X X X X X XXX X X X XX X X XXX X X X X X X XX X X X X XXX X XX X X X X X X ",
" XXXXXXXX XXX XXX XXX XX X XXX XXX XXXXXX XXX XX X XXX XXX XXX X XX XX X XX XXX XXX XXX XXX X XX XXX XX X XXX XXXXX XXX XXX XXX ",
" X X ",
" X X ",
" XXX XXX ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" XXXXXXX X X X X X ",
" X X XX XX XX ",
" X X X X X X X X ",
" X X X X X X X ",
" X XX XX XX XXXX XXXXXXXXX XX X XXX XXX X X XX XXX XX X XX XX XX XXXX X XX XX XX XXXX X X XX XX X XX XXX XX X XXX X XX XXX XXX ",
" X X X X X X X XX X X X X XX XXX X X X XX X X X X X XXX X X X X XX XXX XX X XXX X X X X XX X X XXX X X X X X ",
" X X X X X X X X XXXXX X X X XXXXX X X X X X X X X X X X X X X X X X X XXXXX X X XX X X X XXXXX ",
" X X X X X X XXXXXXXXX X X X XX X X X X X X X X X X X X X X X X X X X X X X X X XX X X X X X ",
" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
" X X X X X XXX X X X XXX X X X X X X X X X XXX X X X XXX X X XX X X XXX X X X X X X XX X X X X XXX X XX X X X X X X ",
" XXXXXXXX XX XX X XX XX X XXX XXX XXXXXX XXX XX X XX XX X XX X XX XX X XX XXX XXX XXX XXX X XX XXX XX X XXX XXXXX XXX XXX XXX ",
" X X ",
" X X ",
" XXX XXX ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ................................................................................................................................................................ ",
" . ; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . ; . ",
" . ; . ",
" . *> . ",
" . XXX := XXXXXXX XXXXXXX XXXX X . ",
" . X X + X X X X X XX XXX . ",
" . X X + X X X X X X X . ",
" . X -* *@ X -* X X -* X X . ",
" . X =; &*o; > :o X XXX XX XX =; &*o; X XXX XX X XXX =; &*o; X . ",
" . X =+#&;$% @-o - X X X X X =+#&;$% X XX X X X X X =+#&;$% X XXXX . ",
" . X %O$= >+ - X X XX X %O$= X X X X X X %O$= X X . ",
" . X o$;;%#+ # o: X X XX X o$;;%#+ X X X X X X o$;;%#+ X X . ",
" . X > -* > ;>@> X X X X X > -* > X X X X X XX X > -* > X X . ",
" . XXXXX XXX X X ;o =&& X X X X X X X ;o X X X XX X XX X X X ;o X X . ",
" . X X X X XXXXXX #- XXXXXXX XX X XX XXXXXXX XXX XXX XX XXX XXXXXX . ",
" . X X X %+ . ",
" . X X X . ",
" . X X X *XXXXXXXXX . ",
" . XXXX X . ",
" . X X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . X X X *XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . ",
" . X X X . ",
" . X X X X o% %o . ",
" . XXXX XX XXXXX + + . ",
" . o; XXXX X X ;= . ",
" . :% XX XXX XXX %@ . ",
" . -* X X X *& . ",
" . $ X X X # . ",
" . X X X X . ",
" . X X XXXX X X . ",
" . X X X *XXXXXXXXX X X . ",
" . X X X X X . ",
" . # X X X $ . ",
" . -* X X X *- . ",
" . @% XXXXXX XXX %: . ",
" . =; ;o . ",
" . + + . ",
" . o> >o . ",
" ................................................................................................................................................................ ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ........................................................................................................................................................ ",
" . . ",
" . . ",
" . XXXX X X . ",
" . XX XXX o XXX . ",
" . X X - X . ",
" . X X - X . ",
" . X - X . ",
" . X XXXX - X . ",
" . X X o----O---- X . ",
" . X X - X . ",
" . X X - X . ",
" . XXXXX XX XXXXXXX X X - X XXXXX XXX . ",
" . X X X X X X XXXXXX - XXX X X X X . ",
" . X X X X X X X X X . ",
" . X X X X X -* X X X . ",
" . X X X *XXXXXXXXX X XXX XX X XXX =; &*o; X X X . ",
" . XXXX XX X XX X X X X X =+#&;$% XXXX X . ",
" . X X X X X X X X X %O$= *XXXXXXXXX X X X . ",
" . X X X *XXXXXXXXX X X X X X X o$;;%#+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X X . ",
" . X X X X X X X X XX X > -* > XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X X . ",
" . X X X X X X X XX X XX X X X ;o X X X X . ",
" . XXXX XX XXX XXXXXXX XXX XXX XX XXX XXXX XX XXXXX . ",
" . XXXX X X . ",
" . XX XXX XXX . ",
" . X X X . ",
" . X X X . ",
" . X X . ",
" . X XXXX X . ",
" . X X *XXXXXXXXX X . ",
" . X X X . ",
" . X X X . ",
" . X X X . ",
" . XXXXXX XXX . ",
" . . ",
" . . ",
" . . ",
" ........................................................................................................................................................ ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" .............................................................................................................................................. ",
" . . ",
" . . ",
" . XXXX X X . ",
" . XX XXX o XXX . ",
" . X X - X . ",
" . X X - X . ",
" . X - X . ",
" . X XXXX - X . ",
" . X X o----O---- X . ",
" . X X - X . ",
" . X X - X . ",
" . XXXXX XX XXXXXXX X X - X XXXXX XXX . ",
" . X X X X X X XXXXXX - XXX X X X X . ",
" . X X X X X X X X . ",
" . X X X X -* X X X . ",
" . X X X *XXXXXXXXX X XXX XX XX =; &*o; X X X . ",
" . XXXX X X X X X X =+#&;$% XXXX X . ",
" . X X X X X XX X %O$= *XXXXXXXXX X X X . ",
" . X X X *XXXXXXXXX X X XX X o$;;%#+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X X . ",
" . X X X X X X X X > -* > XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X X . ",
" . X X X X X X X X X X ;o X X X X . ",
" . XXXX XX XXXX XXXXXXX XX X XX XXXX XX XXXXX . ",
" . XXXX X X . ",
" . XX XXX XXX . ",
" . X X X . ",
" . X X X . ",
" . X X . ",
" . X XXXX X . ",
" . X X *XXXXXXXXX X . ",
" . X X X . ",
" . X X X . ",
" . X X X . ",
" . XXXXXX XXX . ",
" . . ",
" . . ",
" . . ",
" .............................................................................................................................................. ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
};

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
<FileVersion major="1" minor="11" />
<FileVersion major="1" minor="13" />
<object class="Project" expanded="1">
<property name="class_decoration"></property>
<property name="code_generation">C++</property>
@ -20,67 +20,35 @@
<property name="path">.</property>
<property name="precompiled_header"></property>
<property name="relative_path">1</property>
<property name="skip_lua_events">1</property>
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_managed">0</property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center">wxBOTH</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="event_handler">impl_virtual</property>
<property name="extra_style"></property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">DIALOG_EDITOR_DATA_BASE</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size">310,210</property>
<property name="size">292,200</property>
<property name="style">wxDEFAULT_DIALOG_STYLE</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title">Regulator Parameters</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
@ -195,10 +163,6 @@
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
@ -383,10 +347,6 @@
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
@ -561,10 +521,6 @@
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
@ -648,10 +604,6 @@
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
@ -833,10 +785,6 @@
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
@ -1011,10 +959,6 @@
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
@ -1046,6 +990,16 @@
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
@ -1099,10 +1053,6 @@
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
@ -1133,7 +1083,7 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="flag">wxEXPAND|wxALL</property>
<property name="proportion">0</property>
<object class="wxStdDialogButtonSizer" expanded="1">
<property name="Apply">0</property>
@ -1148,7 +1098,7 @@
<property name="name">m_sdbSizerButtons</property>
<property name="permission">protected</property>
<event name="OnApplyButtonClick"></event>
<event name="OnCancelButtonClick">OnCancelClick</event>
<event name="OnCancelButtonClick"></event>
<event name="OnContextHelpButtonClick"></event>
<event name="OnHelpButtonClick"></event>
<event name="OnNoButtonClick"></event>

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Mar 17 2012)
// C++ code generated with wxFormBuilder (version Jan 1 2016)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@ -71,6 +71,9 @@ DIALOG_EDITOR_DATA_BASE::DIALOG_EDITOR_DATA_BASE( wxWindow* parent, wxWindowID i
bSizerMain->Add( fgSizerPrms, 0, wxEXPAND, 5 );
bSizerMain->Add( 0, 0, 1, wxEXPAND, 5 );
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bSizerMain->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 );
@ -81,7 +84,7 @@ DIALOG_EDITOR_DATA_BASE::DIALOG_EDITOR_DATA_BASE( wxWindow* parent, wxWindowID i
m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel );
m_sdbSizerButtons->Realize();
bSizerMain->Add( m_sdbSizerButtons, 0, wxEXPAND, 5 );
bSizerMain->Add( m_sdbSizerButtons, 0, wxEXPAND|wxALL, 5 );
this->SetSizer( bSizerMain );
@ -91,7 +94,6 @@ DIALOG_EDITOR_DATA_BASE::DIALOG_EDITOR_DATA_BASE( wxWindow* parent, wxWindowID i
// 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 );
}
@ -99,7 +101,6 @@ 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 );
}

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Mar 17 2012)
// C++ code generated with wxFormBuilder (version Jan 1 2016)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@ -11,6 +11,8 @@
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/stattext.h>
@ -53,13 +55,12 @@ class DIALOG_EDITOR_DATA_BASE : public DIALOG_SHIM
// 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( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Regulator Parameters"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 292,200 ), long style = wxDEFAULT_DIALOG_STYLE );
~DIALOG_EDITOR_DATA_BASE();
};

View File

@ -518,7 +518,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
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 );
@ -1161,9 +1161,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
wxStaticBoxSizer* sbRightSizerFormula;
sbRightSizerFormula = new wxStaticBoxSizer( new wxStaticBox( sbSizerAtt->GetStaticBox(), wxID_ANY, _("Formula") ), wxVERTICAL );
m_panelAttFormula = new wxPanel( sbRightSizerFormula->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxSIMPLE_BORDER|wxTAB_TRAVERSAL );
m_panelAttFormula->SetMinSize( wxSize( 200,-1 ) );
m_panelAttFormula = new wxHtmlWindow( sbRightSizerFormula->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );
sbRightSizerFormula->Add( m_panelAttFormula, 1, wxALL|wxEXPAND, 5 );
@ -1173,7 +1171,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
m_panelAttenuators->SetSizer( sbSizerAtt );
m_panelAttenuators->Layout();
sbSizerAtt->Fit( m_panelAttenuators );
m_Notebook->AddPage( m_panelAttenuators, _("RF Attenuators"), false );
m_Notebook->AddPage( m_panelAttenuators, _("RF Attenuators"), true );
m_panelColorCode = new wxPanel( m_Notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxBoxSizer* bSizerPanelColorCode;
bSizerPanelColorCode = new wxBoxSizer( wxHORIZONTAL );
@ -1349,7 +1347,6 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
m_AttenuatorsSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAttenuatorSelection ), NULL, this );
m_panelDisplayAttenuator->Connect( wxEVT_PAINT, wxPaintEventHandler( PCB_CALCULATOR_FRAME_BASE::OnPaintAttenuatorPanel ), NULL, this );
m_buttonAlcAtt->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnCalculateAttenuator ), NULL, this );
m_panelAttFormula->Connect( wxEVT_PAINT, wxPaintEventHandler( PCB_CALCULATOR_FRAME_BASE::OnPaintAttFormulaPanel ), NULL, this );
m_rbToleranceSelection->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnToleranceSelection ), NULL, this );
m_BoardClassesUnitsSelector->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnBoardClassesUnitsSelection ), NULL, this );
}
@ -1390,7 +1387,6 @@ PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE()
m_AttenuatorsSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnAttenuatorSelection ), NULL, this );
m_panelDisplayAttenuator->Disconnect( wxEVT_PAINT, wxPaintEventHandler( PCB_CALCULATOR_FRAME_BASE::OnPaintAttenuatorPanel ), NULL, this );
m_buttonAlcAtt->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnCalculateAttenuator ), NULL, this );
m_panelAttFormula->Disconnect( wxEVT_PAINT, wxPaintEventHandler( PCB_CALCULATOR_FRAME_BASE::OnPaintAttFormulaPanel ), NULL, this );
m_rbToleranceSelection->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnToleranceSelection ), NULL, this );
m_BoardClassesUnitsSelector->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PCB_CALCULATOR_FRAME_BASE::OnBoardClassesUnitsSelection ), NULL, this );

View File

@ -3269,7 +3269,7 @@
<object class="notebookpage" expanded="1">
<property name="bitmap"></property>
<property name="label">Track Width</property>
<property name="select">1</property>
<property name="select">0</property>
<object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
@ -15262,7 +15262,7 @@
<object class="notebookpage" expanded="1">
<property name="bitmap"></property>
<property name="label">RF Attenuators</property>
<property name="select">0</property>
<property name="select">1</property>
<object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
@ -17506,11 +17506,11 @@
<property name="parent">1</property>
<property name="permission">none</property>
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="0">
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxPanel" expanded="0">
<object class="wxHtmlWindow" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -17543,7 +17543,7 @@
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size">200,-1</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_panelAttFormula</property>
<property name="pane_border">1</property>
@ -17554,16 +17554,20 @@
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size">-1,-1</property>
<property name="size"></property>
<property name="style">wxHW_SCROLLBAR_AUTO</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxSIMPLE_BORDER|wxTAB_TRAVERSAL</property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnHtmlCellClicked"></event>
<event name="OnHtmlCellHover"></event>
<event name="OnHtmlLinkClicked"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
@ -17577,7 +17581,7 @@
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint">OnPaintAttFormulaPanel</event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>

View File

@ -252,7 +252,7 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER
wxStaticText* m_attR3Unit;
wxStaticText* m_staticTextAttMsg;
wxHtmlWindow* m_Attenuator_Messages;
wxPanel* m_panelAttFormula;
wxHtmlWindow* m_panelAttFormula;
wxPanel* m_panelColorCode;
wxRadioBox* m_rbToleranceSelection;
wxStaticText* m_staticText31;
@ -298,7 +298,6 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER
virtual void OnAttenuatorSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void OnPaintAttenuatorPanel( wxPaintEvent& event ) { event.Skip(); }
virtual void OnCalculateAttenuator( wxCommandEvent& event ) { event.Skip(); }
virtual void OnPaintAttFormulaPanel( wxPaintEvent& event ) { event.Skip(); }
virtual void OnToleranceSelection( wxCommandEvent& event ) { event.Skip(); }
virtual void OnBoardClassesUnitsSelection( wxCommandEvent& event ) { event.Skip(); }

Some files were not shown because too many files have changed in this diff Show More