blob: 2ba9b18237d380e4efd9fa06bf7c5d2004ddace0 [file] [log] [blame]
/*
* Copyright 2010, The Android Open Source Project
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef CachedColor_h
#define CachedColor_h
#include "CachedDebug.h"
#include "Color.h"
#include "Length.h"
#include "SkColor.h"
using namespace WebCore;
namespace android {
class CachedColor {
public:
CachedColor() {
// Initiaized to 0 in its array, so nothing to do in the
// constructor
}
bool operator==(const CachedColor& o) const {
return memcmp(&o, this, sizeof(this)) == 0; }
SkColor fillColor() const { return mFillColor; }
void init();
int innerWidth() const { return mInnerWidth; }
int outerWidth() const { return mOuterWidth; }
int outset() const { return mOutset; }
SkColor pressedInnerColor() const { return mPressedInnerColor; }
SkColor pressedOuterColor() const { return mPressedOuterColor; }
int radius() const { return mRadius; }
SkColor selectedInnerColor() const { return mSelectedInnerColor; }
SkColor selectedOuterColor() const { return mSelectedOuterColor; }
void setFillColor(const Color& c) { mFillColor = c.rgb(); }
void setInnerWidth(Length l) { mInnerWidth = l.value(); }
void setOuterWidth(Length l) { mOuterWidth = l.value(); }
void setOutset(Length l) { mOutset = l.value(); }
void setPressedInnerColor(const Color& c) { mPressedInnerColor = c.rgb(); }
void setPressedOuterColor(const Color& c) { mPressedOuterColor = c.rgb(); }
void setRadius(Length l) { mRadius = l.value(); }
void setSelectedInnerColor(const Color& c) { mSelectedInnerColor = c.rgb(); }
void setSelectedOuterColor(const Color& c) { mSelectedOuterColor = c.rgb(); }
private:
SkColor mFillColor;
int mInnerWidth;
int mOuterWidth;
int mOutset;
SkColor mPressedInnerColor;
SkColor mPressedOuterColor;
int mRadius;
SkColor mSelectedInnerColor;
SkColor mSelectedOuterColor;
#if DUMP_NAV_CACHE
public:
class Debug {
public:
CachedColor* base() const;
void print() const;
} mDebug;
#endif
};
}
#endif