diff --git a/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java b/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java index 843ba7e3..a463616a 100644 --- a/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java +++ b/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java @@ -80,6 +80,18 @@ public abstract class AbstractComponent implements IDIYComponent { return ((int) x / 2) * 2 + 1; } + /** + * Returns darker color if possible, or lighter if it's already dark + * + * @param color + * @return + */ + protected Color darkerOrLighter(Color color) { + float[] hsb = new float[3]; + Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), hsb); + return new Color(Color.HSBtoRGB(hsb[0], hsb[1], hsb[2] > 0.5 ? hsb[2] - 0.25f : hsb[2] + 0.25f)); + } + /** * @param clip * @return true if none of the control points lie in the clip rectangle. diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 4e85d603..92b6a30c 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java index 5c15ac85..884b2df5 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java @@ -117,7 +117,7 @@ public class SingleCoilPickup extends AbstractTransparentComponent { } else { finalBorderColor = componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : getBaseColor().darker(); + : darkerOrLighter(getBaseColor()); } g2d.setColor(finalBorderColor); @@ -132,7 +132,7 @@ public class SingleCoilPickup extends AbstractTransparentComponent { } else { finalBorderColor = componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR - : color.darker(); + : darkerOrLighter(color); } g2d.setColor(finalBorderColor); @@ -141,10 +141,10 @@ public class SingleCoilPickup extends AbstractTransparentComponent { g2d.draw(body[3]); if (componentState != ComponentState.DRAGGING && !outlineMode) { - g2d.setColor(getPoleColor().darker()); - g2d.draw(body[2]); g2d.setColor(getPoleColor()); g2d.fill(body[2]); + g2d.setColor(darkerOrLighter(getPoleColor())); + g2d.draw(body[2]); } Color finalLabelColor; diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 4e85d603..92b6a30c 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ