Added two pin shapes:

* reverted clock ( --<| ) as it is commonly used for inverted clock in x-USSR
* nonlogic       ( ---X ) for non-logic pins of logic ICs (commonly used for power and timing RC pins).
This commit is contained in:
Vovanium 2010-09-24 20:00:40 +04:00
parent 6d5ee76668
commit cd778c125e
6 changed files with 102 additions and 3 deletions

View File

@ -308,6 +308,8 @@ set(BITMAP_SRCS
pinshape_active_low_input.xpm
pinshape_clock_active_low.xpm
pinshape_active_low_output.xpm
pinshape_clock_fall.xpm
pinshape_nonlogic.xpm
pintype_input.xpm
pintype_output.xpm
pintype_bidi.xpm

View File

@ -0,0 +1,23 @@
/* XPM */
const char *pinshape_clock_fall_xpm[] = {
/* columns rows colors chars-per-pixel */
"15 15 2 1",
". c Black",
" c #FFFFFF",
/* pixels */
" ",
" ",
" . ",
" . ",
" . ",
" .. ",
" . . ",
" . ....... ",
" . . ",
" .. ",
" . ",
" . ",
" . ",
" ",
" "
};

View File

@ -0,0 +1,23 @@
/* XPM */
const char *pinshape_nonlogic_xpm[] = {
/* columns rows colors chars-per-pixel */
"15 15 2 1",
". c Black",
" c #FFFFFF",
/* pixels */
" ",
" ",
" . ",
" . ",
" . . . ",
" . . . ",
" ... ",
" .......... ",
" ... ",
" . . . ",
" . . . ",
" . ",
" . ",
" ",
" "
};

View File

@ -63,7 +63,9 @@ static const wxString pin_style_names[] =
_( "Inverted clock" ),
_( "Input low" ),
_( "Clock low" ),
_( "Output low" )
_( "Output low" ),
_( "Falling edge clock" ),
_( "NonLogic" )
};
// bitmaps to show pins shapes in dialog editor
@ -77,6 +79,8 @@ static const char ** s_icons_Pins_Shapes[] =
pinshape_active_low_input_xpm,
pinshape_clock_active_low_xpm,
pinshape_active_low_output_xpm,
pinshape_clock_fall_xpm,
pinshape_nonlogic_xpm
};
@ -91,7 +95,9 @@ static const int pin_style_codes[] =
CLOCK | INVERT,
LOWLEVEL_IN,
LOWLEVEL_IN | CLOCK,
LOWLEVEL_OUT
LOWLEVEL_OUT,
CLOCK_FALL,
NONLOGIC
};
@ -885,6 +891,26 @@ void LIB_PIN::DrawPinSymbol( WinEDA_DrawPanel* aPanel,
MapY1 * INVERT_PIN_RADIUS * 2 + y1 );
GRLineTo( &aPanel->m_ClipBox, aDC, posX, posY, width, color );
}
else if( m_PinShape & CLOCK_FALL ) /* an alternative for Inverted Clock */
{
GRMoveTo( x1 + MapY1 * CLOCK_PIN_DIM,
y1 - MapX1 * CLOCK_PIN_DIM );
GRLineTo( &aPanel->m_ClipBox,
aDC,
x1 + MapX1 * CLOCK_PIN_DIM,
y1 + MapY1 * CLOCK_PIN_DIM,
width,
color );
GRLineTo( &aPanel->m_ClipBox,
aDC,
x1 - MapY1 * CLOCK_PIN_DIM,
y1 + MapX1 * CLOCK_PIN_DIM,
width,
color );
GRMoveTo( MapX1 * CLOCK_PIN_DIM + x1,
MapY1 * CLOCK_PIN_DIM + y1 );
GRLineTo( &aPanel->m_ClipBox, aDC, posX, posY, width, color );
}
else
{
GRMoveTo( x1, y1 );
@ -974,6 +1000,26 @@ void LIB_PIN::DrawPinSymbol( WinEDA_DrawPanel* aPanel,
}
}
else if( m_PinShape & NONLOGIC ) /* NonLogic pin symbol */
{
GRMoveTo( x1 - (MapX1 + MapY1) * NONLOGIC_PIN_DIM,
y1 - (MapY1 - MapX1) * NONLOGIC_PIN_DIM );
GRLineTo( &aPanel->m_ClipBox,
aDC,
x1 + (MapX1 + MapY1) * NONLOGIC_PIN_DIM,
y1 + (MapY1 - MapX1) * NONLOGIC_PIN_DIM,
width,
color );
GRMoveTo( x1 - (MapX1 - MapY1) * NONLOGIC_PIN_DIM,
y1 - (MapY1 + MapX1) * NONLOGIC_PIN_DIM );
GRLineTo( &aPanel->m_ClipBox,
aDC,
x1 + (MapX1 - MapY1) * NONLOGIC_PIN_DIM,
y1 + (MapY1 + MapX1) * NONLOGIC_PIN_DIM,
width,
color );
}
/* Draw the pin end target (active end of the pin)
* Draw but do not print the pin end target 1 pixel width
*/

View File

@ -26,6 +26,7 @@
#define CLOCK_PIN_DIM 40 /* Dim of clock pin symbol. */
#define IEEE_SYMBOL_PIN_DIM 40 /* Dim of special pin symbol. */
#define NONLOGIC_PIN_DIM 30 /* Dim of nonlogic pin symbol (X). */
/**
* The component library pin object electrical types used in ERC tests.
@ -60,7 +61,9 @@ enum DrawPinShape {
INVERT = 1,
CLOCK = 2,
LOWLEVEL_IN = 4,
LOWLEVEL_OUT = 8
LOWLEVEL_OUT = 8,
CLOCK_FALL = 0x10, /* this is common form for inverted clock in Eastern Block */
NONLOGIC = 0x20,
};

View File

@ -294,8 +294,10 @@ extern const char* pinorient_right_xpm[];
extern const char* pinorient_left_xpm[];
extern const char* pinorient_up_xpm[];
extern const char* pinorient_down_xpm[];
extern const char* pinshape_nonlogic_xpm[];
extern const char* pinshape_normal_xpm[];
extern const char* pinshape_invert_xpm[];
extern const char* pinshape_clock_fall_xpm[];
extern const char* pinshape_clock_normal_xpm[];
extern const char* pinshape_clock_invert_xpm[];
extern const char* pinshape_active_low_input_xpm[];