StyleCachedImage.h [plain text]
#ifndef StyleCachedImage_h
#define StyleCachedImage_h
#include "CachedImageClient.h"
#include "CachedResourceHandle.h"
#include "StyleImage.h"
namespace WebCore {
class CachedImage;
class StyleCachedImage final : public StyleImage, private CachedImageClient {
WTF_MAKE_FAST_ALLOCATED;
public:
static PassRefPtr<StyleCachedImage> create(CachedImage* image) { return adoptRef(new StyleCachedImage(image)); }
virtual ~StyleCachedImage();
virtual CachedImage* cachedImage() const override { return m_image.get(); }
private:
virtual WrappedImagePtr data() const override { return m_image.get(); }
virtual PassRefPtr<CSSValue> cssValue() const override;
virtual bool canRender(const RenderObject*, float multiplier) const override;
virtual bool isLoaded() const override;
virtual bool errorOccurred() const override;
virtual FloatSize imageSize(const RenderElement*, float multiplier) const override;
virtual bool imageHasRelativeWidth() const override;
virtual bool imageHasRelativeHeight() const override;
virtual void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) override;
virtual bool usesImageContainerSize() const override;
virtual void setContainerSizeForRenderer(const RenderElement*, const FloatSize&, float) override;
virtual void addClient(RenderElement*) override;
virtual void removeClient(RenderElement*) override;
virtual PassRefPtr<Image> image(RenderElement*, const FloatSize&) const override;
virtual bool knownToBeOpaque(const RenderElement*) const override;
explicit StyleCachedImage(CachedImage*);
CachedResourceHandle<CachedImage> m_image;
};
STYLE_IMAGE_TYPE_CASTS(StyleCachedImage, StyleImage, isCachedImage)
}
#endif