From 77d038cef90843032c7149cac174545fcc7c2570 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Mon, 14 Jan 2019 21:11:12 +0100 Subject: [PATCH] Use transparency instead of rendering pins on top of transistor body --- diylc/diylc-library/lib/diylc-core.jar | Bin 242795 -> 242795 bytes .../semiconductors/TransistorTO1.java | 29 ++-- .../semiconductors/TransistorTO220.java | 143 +++++++++--------- .../semiconductors/TransistorTO3.java | 29 ++-- .../semiconductors/TransistorTO92.java | 24 +-- diylc/diylc-swing/library/main.jar | Bin 529962 -> 529934 bytes diylc/diylc-swing/update.xml | 4 + 7 files changed, 122 insertions(+), 107 deletions(-) diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 73b376720fb4b577324aed9de50f8458fa08abb9..1784711aa7d12d29a2ed2696f0c3c606d1358ee6 100644 GIT binary patch delta 4309 zcmYjUd038F8-LF^l_JTKLQ0m5Fv28zwn#?a#?EA4ib9k~w5YUcd&|>;ij)ZDZF*&y zjA6bsV@5Q?7-U>_-=Kz1i22Ta-_P}3-#>o8dtc5u&zt8@ES^8HFxO5KMy)j(Q;lX= zNt$^-?oyKG`bqw)b7egM<}*itNcIJQfeqxtN_3CdV34}-Q6SCX{XyEvT|tUuwz~Z{ z+O_##UTJFL1Hr>Vd=B7E5Gg377zxV1#aM_QYUB*C(rAEG>UBn`9I#KTZ;ip}q4@)V zAKSKo_OeAS1I)DSZ3K9xQ!L68JC|Y98=F8x-)`;#>?iDcpj_8Oj~Ls_1O2b|9*bz{ zxCT%c*0Z^LGM5NbwO-#>VZ*q1KvZC zt^+Td06rXg4b4?9)`-`Jc_H>3{tmJG$TV!CY;+!?x0^pUSv{eNV|D#vlcsrGqe(K- z6CNGX<{Xyt|0j? zKxE1_$TmCG8><{nUxsL&8QTW*8Tmc}r%O4TQdJ*jy+8^GYoW+>I)AWKUzrRpPy$*1WY ziqBYLlB#o4@zNMw_zsi(>rx}?PuJYR;@P!yNxZIHppKhe>_-*Jju#oHKep44uDeLb z)T~W69w9Hu8>X|oV5c8YKZ~`6%aii#pVQS+ze3lrtFvy&A7=W}U+WppzUXdUMwrlO zG_7>^c3DZAg}(eo5_aMCM=^Hs%Mp5vcN~Kw13X5mE<&G zYM4HcSGikKIe9>*{@Y}Zj%$h5f z!Ls9+EH(&TDsxyr%=hPh)*VRYK~{qYRjXI$-do9@p>JH3dc4Y6HWn-0sAi#5pms>> zN5WF0`P5D+Pml#Rf6uyM8r^j^(F}HT^ESJHL3{79G$ex_uxcc)94AtZvV{A&Kt9qmY=|@Eu6vy74MHyQUL6d!3SL^vZWR%tl$C zFWMLa?KutR(ux5K(sP= zea2mI!!b@g2rGUV$j{?!=LYc-)c6kNWk}?G$V5^;lE)$$F_s4)IXs>(!91-e@rkIJ zF@-Bgo_O-zNJ6~0D`qa6!7Y%S*K#8yKX~(f=(BP*cSBM%j|;rmM;GyBsA;#1yMeQ! zUC!%Z`Mp-~h>k!Gg>VNv&$ja#)Kr9XEow}nIQ|M4I!ALW z)C`Q}xkzf`_yr`%iTn@}mt@`vyO@^74VcGB$Ez%$dUXLWWAfL?5O|Q+b^|h|nty7K zq>eYCY4CO4ssm_7KIHE3F*HOz<_07qpYiTU=Kq_=BYE(G%ijt}*vJL^&KWkp<|e4w z@gKet$-`#;b}E?eP7o8!f%KdqOwifsD-nvMXtuay45omE;&+VlSR^(Zf#&=&p+(YR zwO9-tDw}-82w3iMUoj5wm9KCH?CB?l0WR=E>LAJ`=wZZ{}(6#cfC5fk1e7}}5kMkFvpilA_UXbCozwAV!U4R%3 z`mY1T9KebIu?Vo!I>MlJVlK#6)(I`3{d&T{^^C=2{@y{dZ)pz-qI^FE2@jAv z2aAn>3Bh6(;JsjqAF`SHh}cYVS5@p0LiUXz)L(T7)#62SOS;RpCSl=d}in^+EhRVvzriM1dnhEbh{FfjvU=k0`%+o``g z6&-d^y`UXpCiq?6Atpoq_Tgeapno{cT^TN>f}KT3yTqvx)PG(C#WzLJo;)LEpVD3$ zN#`Y^XwN=TH0RkUnOEAacM@*gNpt?JqEj@eDdaygl`tYzzEqj-aw_>*rBR$u8lBtWG^*dMqDMN-pPx=~PgNYEqx@TS zw6|Iv?aMxc@~u|!L;Er;Z+9Ljq?hxE?56t^Xp z>eu8_pVoV62}}0UVd?kM@J9P6kM};35A373rhODQem~`l-%oS@vY-0toJW4E@+j|# zJo0;+NA|J#)K{E}*YasUb_HZ#sbXmX)qkhT;|@@qTsj{1^#kPJ^&sh29HhDx2g&|X z)lVs;OORej`5FqTpT37^uiFmM_}0k0jnv<$ij(PbqKK%RNf0)l*!z3ZeZkcOdO# delta 4309 zcmYjTd0dWJ8-C9@6_I2~Atg%)BU!R%i!kywcBbqUg(#6|QEAim%2U#2DN87?@d!=E zFkhN6Bbs51ZT#%MK@Fb}^PT&?pFifGuIt{HbI$Yj;;H3}rtIQq}@v9^?(H3qC|$pN8H*7uGUJ+qerJJ?!0A%YrIr`U>BgEG7NuD$E|H?S(P94)O!-rh8J4Uq zZjbV-LsZ(XBnjn1$L?Zl2`6y##v{fO2A5{;H@^Y&Kh*%GdaGF4kXrr;=1e(5=TLms z3X_yqOfmtz$%XH55C6GThn=3Ox&z6K+12urNc6gLL0G!V+t4t`VR(`3*w-}UiM??| z%|%XXeTL~!c}d>u6&o=anO*!4?ttn*5t8Mjs64rMpddu>6&%{%ukr59sv2&8hR*RV=m0mlaT&2e%%XTbt>0C(M-db<9R}TEu$6 zlU2P}ummi5dnLPt!E2GMXvI4siD}EDkul zTV+jwXs!l1a2jk-S3aDoP3jaA5F(%MMy5oi$ZDBRJelEF>*mhBjlJbTIB_N2ncFJ* zLeWI^>d6P;hGU(1FjoB7m!HSkD*Ew5sPP-XOOeR?kcp&h7>`3TbQBLna&Qb^hAI9hwgGY=lsjUYs*T(k$(v2w0g3fyejPqO>hmqU3N0HG;CI(&(KT2w4AumNu&^}(> z5i}z!`R7(hYIr@G`d{ZwT7zcTBkq9-qn>aT$*||V6Oy_A@Onzz>Id zezDLaX}v-$fDV=QeqyM+$jUK4F&gl-pKt-};x7gR&hr=J0So-aNbtYsFUFvKrI-Tp znw0|npHfOziiv>I-%e?@O7sLl2H7dIR|!WD!dA)umSm59qLlFlddK33AmMnHT)mim8B0 z)`~9y%ht-yC4OE@d1nQQ)gb>6B>Vtf)`_nGV>Gbv@;eSx@$x>nVS?VA;2{ z2M1HWpMr%a$n8SJI>5vbF$3^^2*tZ@pgtluP~24wJBN~eT`2We8A^59Y@~Sqjlu`= zRB5vPCgBZo&?Yet@X99Hr`%hQFtHFYAx!uKz6qm!&DboKfM2=hgexx%2VS=zdug)Bjpcqw67W4Nq=O!oLlM}HJlnR=all^c-b%b$5Wg> zf#MD)(0)E7(EhvvW3q zNvCr=m`?Q@H1y1%^D4-oxMv!=8YurJ1KpQu1KkUUos@5dhR1i3U*cZ*F=(ABdP8yd zOll@Jla^DPNy9nrqNV~hEZ;@Vm@AajTcJyqqfpWZn%+5!;zP6OFn-LUOXrwPasJul zUz$yRpR(x@PT5Uz)^5uCU^nSqawu+N4%M&9p+0T)&=MBzp~Eunq2Wz(DUWw9$$N7t zu0EII#^h1Hggl!2mptmHT|W6O&!@b{^U3dBKG{bVP+##HUMrye*cXz0nT92WRR6su zkKRjha_M;3*Y}cthkc}9x{vCf+(-6LnttMbx&#^fDc`;QvLAV=dmNB^mALr;JUPF&E(r1-X-_OdZ?zj{3d}RLA6Y?HOyrapzjB=k+ Q-e9CXRvRg<<4K|aKOq<5kN^Mx diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java index 5216b118..3d961de0 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO1.java @@ -84,7 +84,8 @@ public class TransistorTO1 extends AbstractTransparentComponent { public TransistorTO1() { super(); - updateControlPoints(); + updateControlPoints(); + alpha = (byte) 100; } @EditableProperty @@ -214,7 +215,18 @@ public class TransistorTO1 extends AbstractTransparentComponent { 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 { 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 { } 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()); diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java index 6e918e37..53f689d1 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO220.java @@ -92,7 +92,8 @@ public class TransistorTO220 extends AbstractTransparentComponent { public TransistorTO220() { super(); - updateControlPoints(); + updateControlPoints(); + alpha = (byte) 100; } @EditableProperty @@ -263,7 +264,75 @@ public class TransistorTO220 extends AbstractTransparentComponent { 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 { 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 { 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 { 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; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java index 39c0f276..6865ab55 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO3.java @@ -87,7 +87,8 @@ public class TransistorTO3 extends AbstractTransparentComponent { public TransistorTO3() { super(); - updateControlPoints(); + updateControlPoints(); + alpha = (byte) 100; } @EditableProperty @@ -249,7 +250,18 @@ public class TransistorTO3 extends AbstractTransparentComponent { 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 { 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 { 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()); diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java index b95f0f0c..db8cd4ac 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorTO92.java @@ -82,7 +82,8 @@ public class TransistorTO92 extends AbstractTransparentComponent { public TransistorTO92() { super(); - updateControlPoints(); + updateControlPoints(); + alpha = (byte) 100; } @EditableProperty @@ -248,7 +249,17 @@ public class TransistorTO92 extends AbstractTransparentComponent { 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 { 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; diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 564f956a524ba5354c762115cec85a14d6137b92..6b06cff9ce4d93fef5cfff0653cb55b0d1adbfd7 100644 GIT binary patch delta 31599 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 diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index e787f88b..cacecde2 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2226,6 +2226,10 @@ IMPROVEMENT Use hardware acceleration for rendering to improve performance + + IMPROVEMENT + Use transparency instead of rendering pins on top of transistor body + IMPROVEMENT Leads and wires are rendered better, especially when zoomed in