controlp5/src/controlP5/CColor.java

207 lines
5.8 KiB
Java
Executable File

package controlP5;
/**
* controlP5 is a processing gui library.
*
* 2006-2015 by Andreas Schlegel
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version. This library is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
* General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* @author Andreas Schlegel (http://www.sojamo.de)
* @modified ##date##
* @version ##version##
*
*/
import java.io.Serializable;
/**
* A CColor instance contains the colors of a controller including the foreground-, background-,
* active-, captionlabel- and valuelabel-colors.
*/
@SuppressWarnings( "serial" )
public class CColor implements Serializable {
private int colorBackground = 0xff003652;
private int colorForeground = 0xff00698c;
private int colorActive = 0xff08a2cf; // 0699C4;
private int colorCaptionLabel = 0xffffffff;
private int colorValueLabel = 0xffffffff;
private int colorBackgroundAlpha = 0xff;
private int colorForegroundAlpha = 0xff;
private int colorActiveAlpha = 0xff; // 0699C4;
private int colorCaptionLabelAlpha = 0xff;
private int colorValueLabelAlpha = 0xff;
private int alpha = 0xff;
private int maskA = 0x00ffffff;
int maskR = 0xff00ffff;
int maskG = 0xffff00ff;
int maskB = 0xffffff00;
protected CColor set( CColor theColor ) {
colorBackground = theColor.colorBackground;
colorForeground = theColor.colorForeground;
colorActive = theColor.colorActive;
colorCaptionLabel = theColor.colorCaptionLabel;
colorValueLabel = theColor.colorValueLabel;
colorBackgroundAlpha = theColor.colorBackgroundAlpha;
colorForegroundAlpha = theColor.colorForegroundAlpha;
colorActiveAlpha = theColor.colorActiveAlpha;
colorCaptionLabelAlpha = theColor.colorCaptionLabelAlpha;
colorValueLabelAlpha = theColor.colorValueLabelAlpha;
return this;
}
protected CColor copyTo( ControllerInterface< ? > theControl ) {
theControl.setColorBackground( colorBackground );
theControl.setColorForeground( colorForeground );
theControl.setColorActive( colorActive );
theControl.setColorLabel( colorCaptionLabel );
return this;
}
/**
* @exclude {@inheritDoc}
*/
public String toString( ) {
return ( "bg (" + ( colorBackground >> 16 & 0xff ) + "," + ( colorBackground >> 8 & 0xff ) + "," + ( colorBackground >> 0 & 0xff ) + "), " + "fg (" + ( colorForeground >> 16 & 0xff ) + "," + ( colorForeground >> 8 & 0xff ) + ","
+ ( colorForeground >> 0 & 0xff ) + "), " + "active (" + ( colorActive >> 16 & 0xff ) + "," + ( colorActive >> 8 & 0xff ) + "," + ( colorActive >> 0 & 0xff ) + "), " + "captionlabel (" + ( colorCaptionLabel >> 16 & 0xff ) + ","
+ ( colorCaptionLabel >> 8 & 0xff ) + "," + ( colorCaptionLabel >> 0 & 0xff ) + "), " + "valuelabel (" + ( colorValueLabel >> 16 & 0xff ) + "," + ( colorValueLabel >> 8 & 0xff ) + "," + ( colorValueLabel >> 0 & 0xff ) + ")" );
}
public CColor( ) {
set( ControlP5.getColor( ) );
}
public CColor( int cfg , int cbg , int cactive , int ccl , int cvl ) {
setForeground( cfg );
setBackground( cbg );
setActive( cactive );
setCaptionLabel( ccl );
setValueLabel( cvl );
}
public CColor( CColor theColor ) {
set( theColor );
}
/**
* @exclude
* @param theAlpha
*/
public CColor setAlpha( int theAlpha ) {
System.out.println( "controlP5.CColor.setAlpha: setting alpha values disabled for this version of controlP5." );
return this;
}
public CColor setForeground( int theColor ) {
if ( ( theColor & 0xff000000 ) == 0 ) {
colorForeground = 0xff000000;
} else {
colorForeground = theColor;
}
return this;
}
public CColor setBackground( int theColor ) {
if ( ( theColor & 0xff000000 ) == 0 ) {
colorBackground = 0xff000000;
} else {
colorBackground = theColor;
}
return this;
}
public CColor setActive( int theColor ) {
if ( ( theColor & 0xff000000 ) == 0 ) {
colorActive = 0xff000000;
} else {
colorActive = theColor;
}
return this;
}
public CColor setCaptionLabel( int theColor ) {
if ( ( theColor & 0xff000000 ) == 0 ) {
colorCaptionLabel = 0xff000000;
} else {
colorCaptionLabel = theColor;
}
return this;
}
public CColor setValueLabel( int theColor ) {
if ( ( theColor & 0xff000000 ) == 0 ) {
colorValueLabel = 0xff000000;
} else {
colorValueLabel = theColor;
}
return this;
}
public int getAlpha( ) {
return alpha;
}
public int getForeground( ) {
return colorForeground;
}
public int getBackground( ) {
return colorBackground;
}
public int getActive( ) {
return colorActive;
}
public int getCaptionLabel( ) {
return colorCaptionLabel;
}
public int getValueLabel( ) {
return colorValueLabel;
}
/**
* @exclude {@inheritDoc}
*/
public int hashCode( ) {
int result = 23;
result = 37 * result + colorBackground;
result = 37 * result + colorForeground;
result = 37 * result + colorActive;
return result;
}
/**
* @exclude {@inheritDoc}
*/
public boolean equals( Object o ) {
if ( this == o ) {
return true;
}
if ( o == null || getClass( ) != o.getClass( ) ) {
return false;
}
CColor cc = ( CColor ) o;
if ( colorBackground != cc.colorBackground || colorForeground != cc.colorForeground || colorActive != cc.colorActive || colorCaptionLabel != cc.colorCaptionLabel || colorValueLabel != cc.colorValueLabel ) {
return false;
}
return true;
}
}