mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-11 01:32:08 +10:00
Use transparency instead of rendering pins on top of transistor body
This commit is contained in:
Binary file not shown.
@@ -84,7 +84,8 @@ public class TransistorTO1 extends AbstractTransparentComponent<String> {
|
||||
|
||||
public TransistorTO1() {
|
||||
super();
|
||||
updateControlPoints();
|
||||
updateControlPoints();
|
||||
alpha = (byte) 100;
|
||||
}
|
||||
|
||||
@EditableProperty
|
||||
@@ -214,7 +215,18 @@ public class TransistorTO1 extends AbstractTransparentComponent<String> {
|
||||
if (checkPointsClipped(g2d.getClip())) {
|
||||
return;
|
||||
}
|
||||
int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2;
|
||||
int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2;
|
||||
Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
|
||||
|
||||
for (Point point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
|
||||
Area mainArea = getBody();
|
||||
Composite oldComposite = g2d.getComposite();
|
||||
if (alpha < MAX_ALPHA) {
|
||||
@@ -224,7 +236,7 @@ public class TransistorTO1 extends AbstractTransparentComponent<String> {
|
||||
g2d.fill(mainArea);
|
||||
g2d.setComposite(oldComposite);
|
||||
Color finalBorderColor;
|
||||
Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
|
||||
|
||||
if (outlineMode) {
|
||||
finalBorderColor =
|
||||
componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
@@ -236,16 +248,7 @@ public class TransistorTO1 extends AbstractTransparentComponent<String> {
|
||||
}
|
||||
g2d.setColor(finalBorderColor);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
|
||||
g2d.draw(mainArea);
|
||||
|
||||
for (Point point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
g2d.draw(mainArea);
|
||||
|
||||
// Draw label.
|
||||
g2d.setFont(project.getFont());
|
||||
|
||||
@@ -92,7 +92,8 @@ public class TransistorTO220 extends AbstractTransparentComponent<String> {
|
||||
|
||||
public TransistorTO220() {
|
||||
super();
|
||||
updateControlPoints();
|
||||
updateControlPoints();
|
||||
alpha = (byte) 100;
|
||||
}
|
||||
|
||||
@EditableProperty
|
||||
@@ -263,7 +264,75 @@ public class TransistorTO220 extends AbstractTransparentComponent<String> {
|
||||
if (checkPointsClipped(g2d.getClip())) {
|
||||
return;
|
||||
}
|
||||
int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2;
|
||||
int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2;
|
||||
|
||||
Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
|
||||
|
||||
// Draw pins.
|
||||
|
||||
if (folded) {
|
||||
int leadThickness = getClosestOdd(LEAD_THICKNESS.convertToPixels());
|
||||
int leadLength = (int) getLeadLength().convertToPixels();
|
||||
Color finalPinColor;
|
||||
Color finalPinBorderColor;
|
||||
if (outlineMode) {
|
||||
finalPinColor = new Color(0, 0, 0, 0);
|
||||
finalPinBorderColor =
|
||||
componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: theme.getOutlineColor();
|
||||
} else {
|
||||
finalPinColor = METAL_COLOR;
|
||||
finalPinBorderColor = METAL_COLOR.darker();
|
||||
}
|
||||
for (Point point : controlPoints) {
|
||||
switch (orientation) {
|
||||
case DEFAULT:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine(point.x, point.y, point.x + leadLength - leadThickness / 2, point.y);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine(point.x, point.y, point.x + leadLength - leadThickness / 2, point.y);
|
||||
break;
|
||||
case _90:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine(point.x, point.y, point.x, point.y + leadLength - leadThickness / 2);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine(point.x, point.y, point.x, point.y + leadLength - leadThickness / 2);
|
||||
break;
|
||||
case _180:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine(point.x, point.y, point.x - leadLength - leadThickness / 2, point.y);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine(point.x, point.y, point.x - leadLength - leadThickness / 2, point.y);
|
||||
break;
|
||||
case _270:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine(point.x, point.y, point.x, point.y - leadLength);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine(point.x, point.y, point.x, point.y - leadLength);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!outlineMode) {
|
||||
for (Point point : controlPoints) {
|
||||
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Shape mainArea = getBody()[0];
|
||||
Shape tabArea = getBody()[1];
|
||||
Composite oldComposite = g2d.getComposite();
|
||||
@@ -273,9 +342,7 @@ public class TransistorTO220 extends AbstractTransparentComponent<String> {
|
||||
g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : bodyColor);
|
||||
g2d.fill(mainArea);
|
||||
Color finalTabColor;
|
||||
if (outlineMode) {
|
||||
Theme theme =
|
||||
(Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
|
||||
if (outlineMode) {
|
||||
finalTabColor = theme.getOutlineColor();
|
||||
} else {
|
||||
finalTabColor = tabColor;
|
||||
@@ -289,7 +356,7 @@ public class TransistorTO220 extends AbstractTransparentComponent<String> {
|
||||
g2d.draw(tabArea);
|
||||
}
|
||||
Color finalBorderColor;
|
||||
Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
|
||||
|
||||
if (outlineMode) {
|
||||
finalBorderColor =
|
||||
componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
@@ -305,70 +372,6 @@ public class TransistorTO220 extends AbstractTransparentComponent<String> {
|
||||
g2d.draw(tabArea);
|
||||
}
|
||||
|
||||
// Draw pins.
|
||||
|
||||
if (folded) {
|
||||
int leadThickness = getClosestOdd(LEAD_THICKNESS.convertToPixels());
|
||||
int leadLength = (int) getLeadLength().convertToPixels();
|
||||
Color finalPinColor;
|
||||
Color finalPinBorderColor;
|
||||
if (outlineMode) {
|
||||
finalPinColor = new Color(0, 0, 0, 0);
|
||||
finalPinBorderColor =
|
||||
componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: theme.getOutlineColor();
|
||||
} else {
|
||||
finalPinColor = METAL_COLOR;
|
||||
finalPinBorderColor = METAL_COLOR.darker();
|
||||
}
|
||||
for (Point point : controlPoints) {
|
||||
switch (orientation) {
|
||||
case DEFAULT:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine(point.x, point.y, point.x + leadLength - leadThickness / 2, point.y);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine(point.x, point.y, point.x + leadLength - leadThickness / 2, point.y);
|
||||
break;
|
||||
case _90:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine(point.x, point.y, point.x, point.y + leadLength - leadThickness / 2);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine(point.x, point.y, point.x, point.y + leadLength - leadThickness / 2);
|
||||
break;
|
||||
case _180:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine(point.x, point.y, point.x - leadLength - leadThickness / 2, point.y);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine(point.x, point.y, point.x - leadLength - leadThickness / 2, point.y);
|
||||
break;
|
||||
case _270:
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||
g2d.setColor(finalPinBorderColor);
|
||||
g2d.drawLine(point.x, point.y, point.x, point.y - leadLength);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||
g2d.setColor(finalPinColor);
|
||||
g2d.drawLine(point.x, point.y, point.x, point.y - leadLength);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!outlineMode) {
|
||||
for (Point point : controlPoints) {
|
||||
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Draw label.
|
||||
g2d.setFont(project.getFont());
|
||||
Color finalLabelColor;
|
||||
|
||||
@@ -87,7 +87,8 @@ public class TransistorTO3 extends AbstractTransparentComponent<String> {
|
||||
|
||||
public TransistorTO3() {
|
||||
super();
|
||||
updateControlPoints();
|
||||
updateControlPoints();
|
||||
alpha = (byte) 100;
|
||||
}
|
||||
|
||||
@EditableProperty
|
||||
@@ -249,7 +250,18 @@ public class TransistorTO3 extends AbstractTransparentComponent<String> {
|
||||
if (checkPointsClipped(g2d.getClip())) {
|
||||
return;
|
||||
}
|
||||
int pinSize = (int) PIN_DIAMETER.convertToPixels() / 2 * 2;
|
||||
int pinSize = (int) PIN_DIAMETER.convertToPixels() / 2 * 2;
|
||||
Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
|
||||
|
||||
for (Point point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
|
||||
Area mainArea = getBody()[0];
|
||||
Area innerArea = getBody()[1];
|
||||
Composite oldComposite = g2d.getComposite();
|
||||
@@ -260,7 +272,7 @@ public class TransistorTO3 extends AbstractTransparentComponent<String> {
|
||||
g2d.fill(mainArea);
|
||||
g2d.setComposite(oldComposite);
|
||||
Color finalBorderColor;
|
||||
Theme theme = (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME);
|
||||
|
||||
if (outlineMode) {
|
||||
finalBorderColor =
|
||||
componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
@@ -273,16 +285,7 @@ public class TransistorTO3 extends AbstractTransparentComponent<String> {
|
||||
g2d.setColor(finalBorderColor);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
|
||||
g2d.draw(mainArea);
|
||||
g2d.draw(innerArea);
|
||||
|
||||
for (Point point : controlPoints) {
|
||||
if (!outlineMode) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
g2d.setColor(outlineMode ? theme.getOutlineColor() : PIN_BORDER_COLOR);
|
||||
g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
g2d.draw(innerArea);
|
||||
|
||||
// Draw label.
|
||||
g2d.setFont(project.getFont());
|
||||
|
||||
@@ -82,7 +82,8 @@ public class TransistorTO92 extends AbstractTransparentComponent<String> {
|
||||
|
||||
public TransistorTO92() {
|
||||
super();
|
||||
updateControlPoints();
|
||||
updateControlPoints();
|
||||
alpha = (byte) 100;
|
||||
}
|
||||
|
||||
@EditableProperty
|
||||
@@ -248,7 +249,17 @@ public class TransistorTO92 extends AbstractTransparentComponent<String> {
|
||||
if (checkPointsClipped(g2d.getClip())) {
|
||||
return;
|
||||
}
|
||||
int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2;
|
||||
int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2;
|
||||
|
||||
if (!outlineMode) {
|
||||
for (Point point : controlPoints) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
g2d.setColor(PIN_BORDER_COLOR);
|
||||
g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
}
|
||||
|
||||
Area mainArea = getBody();
|
||||
Composite oldComposite = g2d.getComposite();
|
||||
if (alpha < MAX_ALPHA) {
|
||||
@@ -273,15 +284,6 @@ public class TransistorTO92 extends AbstractTransparentComponent<String> {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
|
||||
g2d.draw(mainArea);
|
||||
|
||||
if (!outlineMode) {
|
||||
for (Point point : controlPoints) {
|
||||
g2d.setColor(PIN_COLOR);
|
||||
g2d.fillOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
g2d.setColor(PIN_BORDER_COLOR);
|
||||
g2d.drawOval(point.x - pinSize / 2, point.y - pinSize / 2, pinSize, pinSize);
|
||||
}
|
||||
}
|
||||
|
||||
// Draw label.
|
||||
g2d.setFont(project.getFont());
|
||||
Color finalLabelColor;
|
||||
|
||||
Reference in New Issue
Block a user