#include "Image.h"
#include "FloatRect.h"
#include "IntSize.h"
+#include "GraphicsContext.h"
+#include "FrameWin.h"
-using WebCore::Image;
+using namespace WebCore;
#ifdef _DEBUG
#define new DEBUG_NEW
ImageView::ImageView()
{
+ // Needed to make sure everything is properly initialized;
+ static FrameWin *dummyFrame = new FrameWin(0,0);
}
ImageView::~ImageView()
CAIRO_CONTENT_COLOR_ALPHA,
rect.right, rect.bottom);
- // Fill with white.
cairo_t* context = cairo_create(surface);
- cairo_rectangle(context, 0, 0, rect.right, rect.bottom);
- cairo_set_source_rgb(context, 1.0, 1.0, 1.0);
- cairo_fill(context);
+ GraphicsContext gc(context);
+ // Fill with white.
+ gc.fillRect(0, 0, rect.right, rect.bottom, Brush(Color::white));
// Comment in to test overlapping.
bool overlapping = false; // true;
FloatRect dstRect(FloatPoint(left, top), FloatSize(width, height));
FloatRect imageRect(srcPoint, image->size());
if (tile)
- image->tileInRect(dstRect, srcPoint, context);
+ gc.drawTiledImage(image, dstRect.x(), dstRect.y(), dstRect.width(), dstRect.height(), srcPoint.x(), srcPoint.y());
else {
- image->drawInRect(dstRect, imageRect, Image::CompositeSourceOver, (void*)context);
+ gc.drawFloatImage(image, dstRect.x(), dstRect.y(), dstRect.width(), dstRect.height(),
+ imageRect.x(), imageRect.y(), imageRect.width(), imageRect.height(), Image::CompositeSourceOver);
// if (overlapping)
// image->drawInRect(FloatRect(dstRect.x() + dstRect.width()/2, dstRect.y(), dstRect.width(), dstRect.height()),
// imageRect, Image::CompositeSourceOver, context);
}
- cairo_destroy(context);
context = cairo_create(finalSurface);
cairo_set_operator(context, CAIRO_OPERATOR_SOURCE);
#include "KWQComboBox.h"
#include "IntPoint.h"
#include "Widget.h"
-#include "KWQFontMetrics.h"
#include "GraphicsContext.h"
#include "KWQSlider.h"
#include "Cursor.h"
#include "BrowserExtensionWin.h"
#include "TransferJob.h"
#include "RenderThemeWin.h"
+#include "FontRenderer.h"
using namespace WebCore;
void QTextEdit::setLineHeight(int) { notImplemented(); }
void QScrollBar::setKnobProportion(int,int) { notImplemented(); }
KWQFileButton::KWQFileButton(Frame*) { notImplemented(); }
-IntRect QFontMetrics::boundingRect(int,int,int,int,int,QString const&,int,int) const { notImplemented(); return IntRect(); }
void QTextEdit::setSelectionStart(int) { notImplemented(); }
void GraphicsContext::beginTransparencyLayer(float) { notImplemented(); }
void QListBox::setSelected(int,bool) { notImplemented(); }
void QTextEdit::setSelectionRange(int,int) { notImplemented(); }
void ScrollView::scrollPointRecursively(int,int) { notImplemented(); }
IntSize QLineEdit::sizeForCharacterWidth(int) const { notImplemented(); return IntSize(); }
-IntRect QFontMetrics::selectionRectForText(int,int,int,int,int,QChar const*,int,int,int,int,bool,bool,int,int,bool) const { notImplemented(); return IntRect(); }
void QTextEdit::getCursorPosition(int*,int*) const { notImplemented(); }
bool FrameView::isFrameView() const { notImplemented(); return 0; }
void QScrollBar::setSteps(int,int) { notImplemented(); }
unsigned PlugInInfoStore::pluginCount() const { notImplemented(); return 0; }
void WebCore::refreshPlugins(bool) { notImplemented(); }
int WebCore::screenDepth(Widget*) { notImplemented(); return 96; }
-static QFontMetrics localFontMetrics;
IntRect WebCore::usableScreenRect(Widget*) { notImplemented(); return IntRect(0,0,800,600); }
Array<char> KWQServeSynchronousRequest(Loader*,DocLoader*,TransferJob*,KURL&,QString&) { notImplemented(); return 0; }
Widget* WebCore::FrameView::topLevelWidget() const { notImplemented(); return 0; }
bool FrameWin::canGoBackOrForward(int) const { notImplemented(); return 0; }
void FrameWin::issuePasteAndMatchStyleCommand() { notImplemented(); }
WebCore::Plugin * FrameWin::createPlugin(KURL const&,QStringList const&,QStringList const&,QString const&) { notImplemented(); return 0; }
-void BrowserExtensionWin::setTypedIconURL(KURL const&,QString const&) { notImplemented(); }
void BrowserExtensionWin::openURLRequest(KURL const&,struct WebCore::URLArgs const&) { notImplemented(); }
int BrowserExtensionWin::getHistoryLength() { notImplemented(); return 0; }
bool BrowserExtensionWin::canRunModal() { notImplemented(); return 0; }
GraphicsContext::GraphicsContext() { notImplemented(); }
void WebCore::TransferJob::retrieveCharset() const { notImplemented(); }
void WebCore::TransferJob::assembleResponseHeaders() const { notImplemented(); }
+IntRect Font::selectionRectForText(int, int, int, int, int, const QChar*, int, int, int, int, bool, bool, int, int) const { notImplemented(); return IntRect(); }
+void Font::drawHighlightForText(WebCore::GraphicsContext*, int, int, int, int, int, const QChar*, int, int, int, int, WebCore::TextDirection, bool, int, int, WebCore::Color) const { notImplemented(); }
// Completely empty stubs (mostly to allow DRT to run):
bool WebCore::historyContains(QString const&) { return false; }
QString resetButtonDefaultLabel() { return "Reset"; }
QString KLocale::language() { return "en"; }
-QFontMetrics::QFontMetrics() { }
-QFontMetrics::~QFontMetrics() { }
-QFontMetrics::QFontMetrics(QFontMetrics const&) { }
-QFontMetrics::QFontMetrics(WebCore::FontDescription const&) { }
-QFontMetrics& QFontMetrics::operator=(QFontMetrics const&) { return localFontMetrics; }
-float QFontMetrics::floatWidth(QChar const*,int,int,int len,int,int,int,int,bool) const { return len * 10; }
-int QFontMetrics::lineSpacing() const { return 10; }
-int QFontMetrics::height() const { return ascent() + descent(); }
-int QFontMetrics::width(QString const& str,int,int,int) const { return str.length() * 10; }
-float QFontMetrics::xHeight() const { return 10; }
-int QFontMetrics::ascent() const { return 12; }
-int QFontMetrics::descent() const { return 12; }
-void QFontMetrics::setFontDescription(WebCore::FontDescription const&) { }
-bool QFontMetrics::isFixedPitch() const { return false; }
-int QFontMetrics::checkSelectionPoint(QChar const*,int,int,int,int,int,int,int,int,bool,int,bool,bool,bool) const { return 0; }
-
void FrameWin::restoreDocumentState() { }
void FrameWin::partClearedInBegin() { }
void FrameWin::createEmptyDocument() { }
void FrameWin::urlSelected(KURL const&,struct WebCore::URLArgs const&) { }
BrowserExtensionWin::BrowserExtensionWin(WebCore::Frame*) { }
+void BrowserExtensionWin::setTypedIconURL(KURL const&,QString const&) { }
bool KWQCheckIfReloading(WebCore::DocLoader*) { return false; }
void KWQCheckCacheObjectStatus(DocLoader*, CachedObject*) { }
void ScrollView::viewportToContents(int x1, int y1, int& x2, int& y2) { x2 = x1; y2 = y1; }
void ScrollView::setStaticBackground(bool) { }
+float Font::floatWidth(QChar const*, int, int, int len, int, int) const { return len * 10; }
+int Font::descent() const { return 10; }
+float Font::xHeight() const { return 10; }
+int Font::ascent() const { return 10; }
+int Font::lineSpacing() const { return 10; }
+bool Font::isFixedPitch() const { return true; }
+void Font::drawText(WebCore::GraphicsContext *, int, int, int, int, const QChar*, int, int, int, int, WebCore::TextDirection, bool, int, int, WebCore::Color) const { }
+int Font::checkSelectionPoint(const QChar*, int, int, int, int, int, int, int, WebCore::TextDirection, bool, bool) const { return 0; }
+
+FontRenderer::FontRenderer() { }
+void FontRenderer::update(FontDescription const &) { }
+
Font const& GraphicsContext::font() const { return localFont; }
void GraphicsContext::setFont(Font const&) { }
void GraphicsContext::drawText(int,int,int,int,int,int,int,QString const&) { }
void GraphicsContext::drawText(int,int,int,int,QChar const*,int,int,int,int,Color const&,TextDirection,bool,int,int,bool) { }
void GraphicsContext::drawLineForText(int,int,int,int) { }
-QFontMetrics GraphicsContext::fontMetrics() const { return QFontMetrics(); }
bool RenderThemeWin::paintCheckbox(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { notImplemented(); return false; }
bool RenderThemeWin::paintRadio(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { notImplemented(); return false; }