SelectionOverlay.h [plain text]
#ifndef SelectionOverlay_h
#define SelectionOverlay_h
#include "BlackBerryGlobal.h"
#if USE(ACCELERATED_COMPOSITING)
#include "Color.h"
#include "FloatQuad.h"
#include "GraphicsLayerClient.h"
#include "IntRect.h"
#include <BlackBerryPlatformIntRectRegion.h>
#include <wtf/HashMap.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/Vector.h>
namespace BlackBerry {
namespace WebKit {
class WebPagePrivate;
class SelectionOverlay : public WebCore::GraphicsLayerClient {
public:
typedef HashMap<WebCore::GraphicsLayer*, Vector<WebCore::FloatQuad> > Selection;
static PassOwnPtr<SelectionOverlay> create(WebPagePrivate* page)
{
return adoptPtr(new SelectionOverlay(page));
}
~SelectionOverlay();
void draw(const Selection&);
void hide();
virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double) { }
virtual void notifyFlushRequired(const WebCore::GraphicsLayer*);
virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect&);
private:
SelectionOverlay(WebPagePrivate*);
WebPagePrivate* m_page;
Selection m_selection;
Vector<OwnPtr<WebCore::GraphicsLayer> > m_layers;
};
} }
#endif // USE(ACCELERATED_COMPOSITING)
#endif // SelectionOverlay_h