#ifndef CSSImageValue_h
#define CSSImageValue_h
#include "CSSValue.h"
#include <wtf/RefPtr.h>
namespace WebCore {
class CachedResourceLoader;
class StyleCachedImage;
class StyleImage;
class CSSImageValue : public CSSValue {
public:
static PassRefPtr<CSSImageValue> create(const String& url) { return adoptRef(new CSSImageValue(url)); }
static PassRefPtr<CSSImageValue> create(const String& url, StyleImage* image) { return adoptRef(new CSSImageValue(url, image)); }
~CSSImageValue();
StyleCachedImage* cachedImage(CachedResourceLoader*);
StyleImage* cachedOrPendingImage();
const String& url() { return m_url; }
String customCssText() const;
PassRefPtr<CSSValue> cloneForCSSOM() const;
protected:
CSSImageValue(ClassType, const String& url);
StyleCachedImage* cachedImage(CachedResourceLoader*, const String& url);
String cachedImageURL();
void clearCachedImage();
private:
explicit CSSImageValue(const String& url);
CSSImageValue(const String& url, StyleImage*);
String m_url;
RefPtr<StyleImage> m_image;
bool m_accessedImage;
};
}
#endif // CSSImageValue_h