[webkit-changes] cvs commit: WebKit/WebCoreSupport.subproj
WebImageRenderer.h WebImageRenderer.m
Darin
darin at opensource.apple.com
Thu Dec 8 00:40:34 PST 2005
darin 05/12/08 00:40:33
Modified: . ChangeLog
khtml khtmlview.cpp
khtml/css css_computedstyle.cpp cssparser.cpp
cssstyleselector.cpp
khtml/html html_inlineimpl.cpp
kwq KWQClipboard.mm KWQCursor.mm KWQKHTMLPart.mm
KWQPainter.mm KWQPixmap.h KWQPixmap.mm KWQWidget.mm
WebCoreBridge.mm WebCoreImageRenderer.h
. ChangeLog
Misc.subproj WebNSPasteboardExtras.m WebNSViewExtras.m
WebCoreSupport.subproj WebImageRenderer.h WebImageRenderer.m
Log:
WebCore:
Reviewed by Eric.
- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5689
add support for CSS "custom cursors" (cursor images)
* khtml/css/css_computedstyle.cpp:
(DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Added code to the
CSS_PROP_CURSOR case to handle cursor images.
* khtml/css/cssparser.cpp: (CSSParser::parseValue): Allow and parse a URL for the
cursor for the image case.
* khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty): Do
the appropriate inherit and initial for CSS_PROP_CURSOR, and allow either an
identifier or a URL for the value.
* khtml/html/html_inlineimpl.cpp: (DOM::HTMLAnchorElementImpl::defaultEventHandler):
Removed inappropriate call to resetCursor. We don't change the cursor shape just
because we're following a link.
* khtml/khtmlview.cpp:
(selectCursor): Added. New function that chooses the appropriate cursor.
Includes new logic to handle image cursors.
(KHTMLView::viewportMouseMoveEvent): Refactored to use selectCursor to choose
the appropriate cursor.
* kwq/KWQClipboard.mm: (KWQClipboard::dragNSImage): Call the function to get an
image renderer by its new name, imageRenderer().
* kwq/KWQCursor.mm:
(createCustomCursor): Added.
(QCursor::QCursor): Changed constructor that takes a QPixmap to call createCustomCursor.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPart::khtmlMouseMoveEvent): Replaced a call to resetCursor with a call to
setCursor(QCursor()).
(KWQKHTMLPart::fileWrapperForElement): Fixed code that assumed the render object is always
a RenderImage. Call TIFFRepresentation on the image renderer instead of incorrectly assuming
it's always an NSImage.
* kwq/KWQPainter.mm:
(QPainter::drawFloatPixmap): Call imageRenderer function instead of getting right at the
data member.
(QPainter::drawTiledPixmap): Ditto.
(QPainter::drawScaledAndTiledPixmap): Ditto.
* kwq/KWQPixmap.h: Removed convertToImage(), renamed image() to imageRenderer().
* kwq/KWQPixmap.mm: Similar name changes.
* kwq/KWQWidget.mm: (QWidget::setCursor): To workaround extra work done by AppKit when you set
the cursor to the same one, check if the cursor is already set before calling setDocumentCursor.
* kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Call the image method on the image
renderer instead of incorrectly assuming the renderer itself is an image.
* kwq/WebCoreImageRenderer.h: Added a TIFFRepresentation method to this protocol.
WebKit:
Reviewed by Eric.
- fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5689
add support for CSS "custom cursors" (cursor images)
* WebCoreSupport.subproj/WebImageRenderer.h: Remove declaration of TIFFRepresentation and
image methods since both are required by the WebCoreImageRenderer protocol now and we don't
have to re-declare them.
* Misc.subproj/WebNSPasteboardExtras.m: Add an import of the WebCoreImageRenderer.h file
since we need to use methods inherited from that protocol.
* Misc.subproj/WebNSViewExtras.m: Ditto.
* WebCoreSupport.subproj/WebImageRenderer.m: Ditto. (Use and implement.)
Revision Changes Path
1.489 +48 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.488
retrieving revision 1.489
diff -u -r1.488 -r1.489
--- ChangeLog 7 Dec 2005 23:19:13 -0000 1.488
+++ ChangeLog 8 Dec 2005 08:40:22 -0000 1.489
@@ -1,3 +1,51 @@
+2005-12-08 Darin Adler <darin at apple.com>
+
+ Reviewed by Eric.
+
+ - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5689
+ add support for CSS "custom cursors" (cursor images)
+
+ * khtml/css/css_computedstyle.cpp:
+ (DOM::CSSComputedStyleDeclarationImpl::getPropertyCSSValue): Added code to the
+ CSS_PROP_CURSOR case to handle cursor images.
+ * khtml/css/cssparser.cpp: (CSSParser::parseValue): Allow and parse a URL for the
+ cursor for the image case.
+ * khtml/css/cssstyleselector.cpp: (khtml::CSSStyleSelector::applyProperty): Do
+ the appropriate inherit and initial for CSS_PROP_CURSOR, and allow either an
+ identifier or a URL for the value.
+ * khtml/html/html_inlineimpl.cpp: (DOM::HTMLAnchorElementImpl::defaultEventHandler):
+ Removed inappropriate call to resetCursor. We don't change the cursor shape just
+ because we're following a link.
+ * khtml/khtmlview.cpp:
+ (selectCursor): Added. New function that chooses the appropriate cursor.
+ Includes new logic to handle image cursors.
+ (KHTMLView::viewportMouseMoveEvent): Refactored to use selectCursor to choose
+ the appropriate cursor.
+ * kwq/KWQClipboard.mm: (KWQClipboard::dragNSImage): Call the function to get an
+ image renderer by its new name, imageRenderer().
+ * kwq/KWQCursor.mm:
+ (createCustomCursor): Added.
+ (QCursor::QCursor): Changed constructor that takes a QPixmap to call createCustomCursor.
+ * kwq/KWQKHTMLPart.mm:
+ (KWQKHTMLPart::khtmlMouseMoveEvent): Replaced a call to resetCursor with a call to
+ setCursor(QCursor()).
+ (KWQKHTMLPart::fileWrapperForElement): Fixed code that assumed the render object is always
+ a RenderImage. Call TIFFRepresentation on the image renderer instead of incorrectly assuming
+ it's always an NSImage.
+ * kwq/KWQPainter.mm:
+ (QPainter::drawFloatPixmap): Call imageRenderer function instead of getting right at the
+ data member.
+ (QPainter::drawTiledPixmap): Ditto.
+ (QPainter::drawScaledAndTiledPixmap): Ditto.
+ * kwq/KWQPixmap.h: Removed convertToImage(), renamed image() to imageRenderer().
+ * kwq/KWQPixmap.mm: Similar name changes.
+ * kwq/KWQWidget.mm: (QWidget::setCursor): To workaround extra work done by AppKit when you set
+ the cursor to the same one, check if the cursor is already set before calling setDocumentCursor.
+ * kwq/WebCoreBridge.mm: (-[WebCoreBridge elementAtPoint:]): Call the image method on the image
+ renderer instead of incorrectly assuming the renderer itself is an image.
+
+ * kwq/WebCoreImageRenderer.h: Added a TIFFRepresentation method to this protocol.
+
2005-12-07 David Hyatt <hyatt at apple.com>
Fix for Radar bug #4333923, typing tab character into empty
1.158 +89 -119 WebCore/khtml/khtmlview.cpp
Index: khtmlview.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/khtmlview.cpp,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -r1.157 -r1.158
--- khtmlview.cpp 6 Dec 2005 01:10:37 -0000 1.157
+++ khtmlview.cpp 8 Dec 2005 08:40:24 -0000 1.158
@@ -209,10 +209,10 @@
void KHTMLToolTip::maybeTip(const QPoint& /*p*/)
{
- DOM::NodeImpl *node = m_viewprivate->underMouse;
+ NodeImpl *node = m_viewprivate->underMouse;
while ( node ) {
if ( node->isElementNode() ) {
- AtomicString s = static_cast<DOM::ElementImpl*>( node )->getAttribute(ATTR_TITLE);
+ AtomicString s = static_cast<ElementImpl*>( node )->getAttribute(ATTR_TITLE);
if (!s.isEmpty()) {
QRect r( m_view->contentsToViewport( node->getRect().topLeft() ), node->getRect().size() );
tip( r, s.qstring() );
@@ -264,7 +264,7 @@
{
//WABA: Is this Ok? Do I need to deref it as well?
//Does this need to be done somewhere else?
- DOM::DocumentImpl *doc = m_part->xmlDocImpl();
+ DocumentImpl *doc = m_part->xmlDocImpl();
if (doc)
doc->detach();
@@ -376,9 +376,9 @@
void KHTMLView::adjustViewSize()
{
if( m_part->xmlDocImpl() ) {
- DOM::DocumentImpl *document = m_part->xmlDocImpl();
+ DocumentImpl *document = m_part->xmlDocImpl();
- khtml::RenderCanvas* root = static_cast<khtml::RenderCanvas *>(document->renderer());
+ RenderCanvas* root = static_cast<RenderCanvas *>(document->renderer());
if ( !root )
return;
@@ -389,7 +389,7 @@
}
}
-void KHTMLView::applyOverflowToViewport(khtml::RenderObject* o, ScrollBarMode& hMode, ScrollBarMode& vMode)
+void KHTMLView::applyOverflowToViewport(RenderObject* o, ScrollBarMode& hMode, ScrollBarMode& vMode)
{
// Handle the overflow:hidden/scroll case for the body/html elements. WinIE treats
// overflow:hidden and overflow:scroll on <body> as applying to the document's
@@ -452,7 +452,7 @@
return;
}
- DOM::DocumentImpl* document = m_part->xmlDocImpl();
+ DocumentImpl* document = m_part->xmlDocImpl();
if (!document) {
// FIXME: Should we set _height here too?
_width = visibleWidth();
@@ -466,7 +466,7 @@
if (document->hasChangedChild())
document->recalcStyle();
- khtml::RenderCanvas* root = static_cast<khtml::RenderCanvas*>(document->renderer());
+ RenderCanvas* root = static_cast<RenderCanvas*>(document->renderer());
if (!root) {
// FIXME: Do we need to set _width or _height here?
d->layoutSchedulingEnabled = true;
@@ -596,7 +596,7 @@
void KHTMLView::updateDashboardRegions()
{
- DOM::DocumentImpl* document = m_part->xmlDocImpl();
+ DocumentImpl* document = m_part->xmlDocImpl();
if (document->hasDashboardRegions()) {
QValueList<DashboardRegionValue> newRegions = document->renderer()->computeDashboardRegions();
QValueList<DashboardRegionValue> currentRegions = document->dashboardRegions();
@@ -623,7 +623,7 @@
d->mousePressed = true;
- DOM::NodeImpl::MouseEvent mev( _mouse->stateAfter(), DOM::NodeImpl::MousePress );
+ NodeImpl::MouseEvent mev( _mouse->stateAfter(), NodeImpl::MousePress );
m_part->xmlDocImpl()->prepareMouseEvent( false, xm, ym, &mev );
if (KWQ(m_part)->passSubframeEventToSubframe(mev)) {
@@ -639,10 +639,10 @@
d->clickNode->ref();
bool swallowEvent = dispatchMouseEvent(mousedownEvent,mev.innerNode.get(),true,
- d->clickCount,_mouse,true,DOM::NodeImpl::MousePress);
+ d->clickCount,_mouse,true,NodeImpl::MousePress);
if (!swallowEvent) {
- khtml::MousePressEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
+ MousePressEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
QApplication::sendEvent( m_part, &event );
// Many AK widgets run their own event loops and consume events while the mouse is down.
// When they finish, currentEvent is the mouseUp that they exited on. We need to update
@@ -669,7 +669,7 @@
// We get this instead of a second mouse-up
d->mousePressed = false;
- DOM::NodeImpl::MouseEvent mev( _mouse->stateAfter(), DOM::NodeImpl::MouseDblClick );
+ NodeImpl::MouseEvent mev( _mouse->stateAfter(), NodeImpl::MouseDblClick );
m_part->xmlDocImpl()->prepareMouseEvent( false, xm, ym, &mev );
if (KWQ(m_part)->passSubframeEventToSubframe(mev))
@@ -677,29 +677,83 @@
d->clickCount = _mouse->clickCount();
bool swallowEvent = dispatchMouseEvent(mouseupEvent,mev.innerNode.get(),true,
- d->clickCount,_mouse,false,DOM::NodeImpl::MouseRelease);
+ d->clickCount,_mouse,false,NodeImpl::MouseRelease);
if (mev.innerNode == d->clickNode)
dispatchMouseEvent(clickEvent,mev.innerNode.get(),true,
- d->clickCount,_mouse,true,DOM::NodeImpl::MouseRelease);
+ d->clickCount,_mouse,true,NodeImpl::MouseRelease);
// Qt delivers a release event AND a double click event.
if (!swallowEvent) {
- khtml::MouseReleaseEvent event1( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
+ MouseReleaseEvent event1( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
QApplication::sendEvent( m_part, &event1 );
- khtml::MouseDoubleClickEvent event2( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
+ MouseDoubleClickEvent event2( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
QApplication::sendEvent( m_part, &event2 );
}
invalidateClick();
}
-static bool isSubmitImage(DOM::NodeImpl *node)
+static bool isSubmitImage(NodeImpl *node)
{
return node && node->hasTagName(inputTag) && static_cast<HTMLInputElementImpl*>(node)->inputType() == HTMLInputElementImpl::IMAGE;
}
+static QCursor selectCursor(const NodeImpl::MouseEvent &event, KHTMLPart *part, bool mousePressed)
+{
+ // During selection, use an I-beam no matter what we're over
+ if (mousePressed && part->hasSelection())
+ return KCursor::ibeamCursor();
+
+ NodeImpl *node = event.innerNode.get();
+ RenderObject *renderer = node ? node->renderer() : 0;
+ RenderStyle *style = renderer ? renderer->style() : 0;
+
+ if (style && style->cursorImage() && !style->cursorImage()->pixmap().isNull())
+ return QCursor(style->cursorImage()->pixmap());
+
+ switch (style ? style->cursor() : CURSOR_AUTO) {
+ case CURSOR_AUTO:
+ if (!event.url.isNull() || isSubmitImage(node))
+ return part->urlCursor();
+ if ((node && node->isContentEditable()) || (renderer && renderer->isText() && renderer->canSelect()))
+ return KCursor::ibeamCursor();
+ break;
+ case CURSOR_CROSS:
+ return KCursor::crossCursor();
+ case CURSOR_POINTER:
+ return part->urlCursor();
+ case CURSOR_MOVE:
+ return KCursor::sizeAllCursor();
+ case CURSOR_E_RESIZE:
+ return KCursor::eastResizeCursor();
+ case CURSOR_W_RESIZE:
+ return KCursor::westResizeCursor();
+ case CURSOR_N_RESIZE:
+ return KCursor::northResizeCursor();
+ case CURSOR_S_RESIZE:
+ return KCursor::southResizeCursor();
+ case CURSOR_NE_RESIZE:
+ return KCursor::northEastResizeCursor();
+ case CURSOR_SW_RESIZE:
+ return KCursor::southWestResizeCursor();
+ case CURSOR_NW_RESIZE:
+ return KCursor::northWestResizeCursor();
+ case CURSOR_SE_RESIZE:
+ return KCursor::southEastResizeCursor();
+ case CURSOR_TEXT:
+ return KCursor::ibeamCursor();
+ case CURSOR_WAIT:
+ return KCursor::waitCursor();
+ case CURSOR_HELP:
+ return KCursor::whatsThisCursor();
+ case CURSOR_DEFAULT:
+ break;
+ }
+ return QCursor();
+}
+
void KHTMLView::viewportMouseMoveEvent( QMouseEvent * _mouse )
{
// in Radar 3703768 we saw frequent crashes apparently due to the
@@ -716,112 +770,29 @@
// if we are allowed to select.
// This means that :hover and :active freeze in the state they were in when the mouse
// was pressed, rather than updating for nodes the mouse moves over as you hold the mouse down.
- DOM::NodeImpl::MouseEvent mev( _mouse->stateAfter(), DOM::NodeImpl::MouseMove );
+ NodeImpl::MouseEvent mev( _mouse->stateAfter(), NodeImpl::MouseMove );
m_part->xmlDocImpl()->prepareMouseEvent(d->mousePressed && m_part->mouseDownMayStartSelect(), d->mousePressed, xm, ym, &mev );
if (KWQ(m_part)->passSubframeEventToSubframe(mev))
return;
bool swallowEvent = dispatchMouseEvent(mousemoveEvent,mev.innerNode.get(),false,
- 0,_mouse,true,DOM::NodeImpl::MouseMove);
+ 0,_mouse,true,NodeImpl::MouseMove);
// execute the scheduled script. This is to make sure the mouseover events come after the mouseout events
m_part->executeScheduledScript();
- NodeImpl *node = mev.innerNode.get();
- RenderObject *renderer = node ? node->renderer() : 0;
- RenderStyle *style = renderer ? renderer->style() : 0;
+ viewport()->setCursor(selectCursor(mev, m_part, d->mousePressed));
- QCursor c;
- if (style && style->cursor() == CURSOR_AUTO && style->cursorImage()
- && !(style->cursorImage()->pixmap().isNull())) {
- /* First of all it works: Check out http://www.iam.unibe.ch/~schlpbch/cursor.html
- *
- * But, I don't know what exactly we have to do here: rescale to 32*32, change to monochrome..
- */
- //kdDebug( 6000 ) << "using custom cursor" << endl;
- const QPixmap p = style->cursorImage()->pixmap();
- // ### fix
- c = QCursor(p);
- }
-
- switch ( style ? style->cursor() : CURSOR_AUTO ) {
- case CURSOR_AUTO:
- if ( d->mousePressed && m_part->hasSelection() )
- // during selection, use an IBeam no matter what we're over
- c = KCursor::ibeamCursor();
- else if ( (!mev.url.isNull() || isSubmitImage(node)) && m_part->settings()->changeCursor() )
- c = m_part->urlCursor();
- else if ( (node && node->isContentEditable()) || (renderer && renderer->isText() && renderer->canSelect()) )
- c = KCursor::ibeamCursor();
- break;
- case CURSOR_CROSS:
- c = KCursor::crossCursor();
- break;
- case CURSOR_POINTER:
- c = m_part->urlCursor();
- break;
- case CURSOR_MOVE:
- c = KCursor::sizeAllCursor();
- break;
- case CURSOR_E_RESIZE:
- c = KCursor::eastResizeCursor();
- break;
- case CURSOR_W_RESIZE:
- c = KCursor::westResizeCursor();
- break;
- case CURSOR_N_RESIZE:
- c = KCursor::northResizeCursor();
- break;
- case CURSOR_S_RESIZE:
- c = KCursor::southResizeCursor();
- break;
- case CURSOR_NE_RESIZE:
- c = KCursor::northEastResizeCursor();
- break;
- case CURSOR_SW_RESIZE:
- c = KCursor::southWestResizeCursor();
- break;
- case CURSOR_NW_RESIZE:
- c = KCursor::northWestResizeCursor();
- break;
- case CURSOR_SE_RESIZE:
- c = KCursor::southEastResizeCursor();
- break;
- case CURSOR_TEXT:
- c = KCursor::ibeamCursor();
- break;
- case CURSOR_WAIT:
- c = KCursor::waitCursor();
- break;
- case CURSOR_HELP:
- c = KCursor::whatsThisCursor();
- break;
- case CURSOR_DEFAULT:
- break;
- }
-
- QWidget *vp = viewport();
- if ( vp->cursor().handle() != c.handle() ) {
- if( c.handle() == KCursor::arrowCursor().handle())
- vp->unsetCursor();
- else
- vp->setCursor( c );
- }
d->prevMouseX = xm;
d->prevMouseY = ym;
if (!swallowEvent) {
- khtml::MouseMoveEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
- QApplication::sendEvent( m_part, &event );
+ MouseMoveEvent event(_mouse, xm, ym, mev.url, mev.target, mev.innerNode.get());
+ QApplication::sendEvent(m_part, &event);
}
}
-void KHTMLView::resetCursor()
-{
- viewport()->unsetCursor();
-}
-
void KHTMLView::invalidateClick()
{
d->clickCount = 0;
@@ -844,22 +815,22 @@
//kdDebug( 6000 ) << "\nmouseReleaseEvent: x=" << xm << ", y=" << ym << endl;
- DOM::NodeImpl::MouseEvent mev( _mouse->stateAfter(), DOM::NodeImpl::MouseRelease );
+ NodeImpl::MouseEvent mev( _mouse->stateAfter(), NodeImpl::MouseRelease );
m_part->xmlDocImpl()->prepareMouseEvent( false, xm, ym, &mev );
if (KWQ(m_part)->passSubframeEventToSubframe(mev))
return;
bool swallowEvent = dispatchMouseEvent(mouseupEvent,mev.innerNode.get(),true,
- d->clickCount,_mouse,false,DOM::NodeImpl::MouseRelease);
+ d->clickCount,_mouse,false,NodeImpl::MouseRelease);
if (d->clickCount > 0 && mev.innerNode == d->clickNode
)
dispatchMouseEvent(clickEvent,mev.innerNode.get(),true,
- d->clickCount,_mouse,true,DOM::NodeImpl::MouseRelease);
+ d->clickCount,_mouse,true,NodeImpl::MouseRelease);
if (!swallowEvent) {
- khtml::MouseReleaseEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
+ MouseReleaseEvent event( _mouse, xm, ym, mev.url, mev.target, mev.innerNode.get() );
QApplication::sendEvent( m_part, &event );
}
@@ -898,7 +869,7 @@
// ### what kind of c*** is that ?
}
-bool KHTMLView::dispatchDragEvent(const AtomicString &eventType, DOM::NodeImpl *dragTarget, const QPoint &loc, DOM::ClipboardImpl *clipboard)
+bool KHTMLView::dispatchDragEvent(const AtomicString &eventType, NodeImpl *dragTarget, const QPoint &loc, ClipboardImpl *clipboard)
{
int clientX, clientY;
viewportToContents(loc.x(), loc.y(), clientX, clientY);
@@ -923,12 +894,12 @@
return accept;
}
-bool KHTMLView::updateDragAndDrop(const QPoint &loc, DOM::ClipboardImpl *clipboard)
+bool KHTMLView::updateDragAndDrop(const QPoint &loc, ClipboardImpl *clipboard)
{
bool accept = false;
int xm, ym;
viewportToContents(loc.x(), loc.y(), xm, ym);
- DOM::NodeImpl::MouseEvent mev(0, DOM::NodeImpl::MouseMove);
+ NodeImpl::MouseEvent mev(0, NodeImpl::MouseMove);
m_part->xmlDocImpl()->prepareMouseEvent(true, xm, ym, &mev);
NodeImpl *newTarget = mev.innerNode.get();
@@ -953,7 +924,7 @@
return accept;
}
-void KHTMLView::cancelDragAndDrop(const QPoint &loc, DOM::ClipboardImpl *clipboard)
+void KHTMLView::cancelDragAndDrop(const QPoint &loc, ClipboardImpl *clipboard)
{
if (d->dragTarget) {
dispatchDragEvent(dragleaveEvent, d->dragTarget.get(), loc, clipboard);
@@ -961,7 +932,7 @@
d->dragTarget = 0;
}
-bool KHTMLView::performDragAndDrop(const QPoint &loc, DOM::ClipboardImpl *clipboard)
+bool KHTMLView::performDragAndDrop(const QPoint &loc, ClipboardImpl *clipboard)
{
bool accept = false;
if (d->dragTarget) {
@@ -972,7 +943,7 @@
}
-DOM::NodeImpl *KHTMLView::nodeUnderMouse() const
+NodeImpl *KHTMLView::nodeUnderMouse() const
{
return d->underMouse;
}
@@ -1195,7 +1166,7 @@
}
-bool KHTMLView::dispatchMouseEvent(const AtomicString &eventType, DOM::NodeImpl *targetNode, bool cancelable,
+bool KHTMLView::dispatchMouseEvent(const AtomicString &eventType, NodeImpl *targetNode, bool cancelable,
int detail,QMouseEvent *_mouse, bool setUnder,
int mouseEventType)
{
@@ -1246,7 +1217,7 @@
// Blur current focus node when a link/button is clicked; this
// is expected by some sites that rely on onChange handlers running
// from form fields before the button click is processed.
- DOM::NodeImpl* node = targetNode;
+ NodeImpl* node = targetNode;
for ( ; node && !node->isFocusable(); node = node->parentNode());
// If focus shift is blocked, we eat the event. Note we should never clear swallowEvent
// if the page already set it (e.g., by canceling default behavior).
@@ -1392,4 +1363,3 @@
{
d->isTransparent = isTransparent;
}
-
1.41 +197 -207 WebCore/khtml/css/css_computedstyle.cpp
Index: css_computedstyle.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/css/css_computedstyle.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- css_computedstyle.cpp 21 Nov 2005 01:19:51 -0000 1.40
+++ css_computedstyle.cpp 8 Dec 2005 08:40:24 -0000 1.41
@@ -2,7 +2,7 @@
* css_computedstyle.cpp
*
* Copyright (C) 2004 Zack Rusin <zack at kde.org>
- * Copyright (C) 2004 Apple Computer, Inc.
+ * Copyright (C) 2004, 2005 Apple Computer, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,20 +35,8 @@
#include "rendering/render_object.h"
#import <kxmlcore/Assertions.h>
-#import "KWQFontFamily.h"
-#import "KWQLogging.h"
-using khtml::EBackgroundBox;
-using khtml::EBorderStyle;
-using khtml::ETextAlign;
-using khtml::Font;
-using khtml::FontDef;
-using khtml::Length;
-using khtml::LengthBox;
-using khtml::RenderObject;
-using khtml::RenderStyle;
-using khtml::ShadowData;
-using khtml::StyleDashboardRegion;
+using namespace khtml;
extern DOM::DOMString getPropertyName(unsigned short id);
@@ -164,7 +152,7 @@
static CSSValueImpl* valueForLength(const Length &length)
{
switch (length.type) {
- case khtml::Percent:
+ case Percent:
return new CSSPrimitiveValueImpl(length.length(), CSSPrimitiveValue::CSS_PERCENTAGE);
case khtml::Fixed:
return new CSSPrimitiveValueImpl(length.length(), CSSPrimitiveValue::CSS_PX);
@@ -176,25 +164,25 @@
static CSSValueImpl *valueForBorderStyle(EBorderStyle style)
{
switch (style) {
- case khtml::BNONE:
+ case BNONE:
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
- case khtml::BHIDDEN:
+ case BHIDDEN:
return new CSSPrimitiveValueImpl(CSS_VAL_HIDDEN);
- case khtml::INSET:
+ case INSET:
return new CSSPrimitiveValueImpl(CSS_VAL_INSET);
- case khtml::GROOVE:
+ case GROOVE:
return new CSSPrimitiveValueImpl(CSS_VAL_GROOVE);
- case khtml::RIDGE:
+ case RIDGE:
return new CSSPrimitiveValueImpl(CSS_VAL_RIDGE);
- case khtml::OUTSET:
+ case OUTSET:
return new CSSPrimitiveValueImpl(CSS_VAL_OUTSET);
- case khtml::DOTTED:
+ case DOTTED:
return new CSSPrimitiveValueImpl(CSS_VAL_DOTTED);
- case khtml::DASHED:
+ case DASHED:
return new CSSPrimitiveValueImpl(CSS_VAL_DASHED);
- case khtml::SOLID:
+ case SOLID:
return new CSSPrimitiveValueImpl(CSS_VAL_SOLID);
- case khtml::DOUBLE:
+ case DOUBLE:
return new CSSPrimitiveValueImpl(CSS_VAL_DOUBLE);
}
ASSERT_NOT_REACHED();
@@ -204,21 +192,21 @@
static CSSValueImpl *valueForTextAlign(ETextAlign align)
{
switch (align) {
- case khtml::TAAUTO:
+ case TAAUTO:
return new CSSPrimitiveValueImpl(CSS_VAL_AUTO);
- case khtml::LEFT:
+ case LEFT:
return new CSSPrimitiveValueImpl(CSS_VAL_LEFT);
- case khtml::RIGHT:
+ case RIGHT:
return new CSSPrimitiveValueImpl(CSS_VAL_RIGHT);
- case khtml::CENTER:
+ case CENTER:
return new CSSPrimitiveValueImpl(CSS_VAL_CENTER);
- case khtml::JUSTIFY:
+ case JUSTIFY:
return new CSSPrimitiveValueImpl(CSS_VAL_JUSTIFY);
- case khtml::KHTML_LEFT:
+ case KHTML_LEFT:
return new CSSPrimitiveValueImpl(CSS_VAL__KHTML_LEFT);
- case khtml::KHTML_RIGHT:
+ case KHTML_RIGHT:
return new CSSPrimitiveValueImpl(CSS_VAL__KHTML_RIGHT);
- case khtml::KHTML_CENTER:
+ case KHTML_CENTER:
return new CSSPrimitiveValueImpl(CSS_VAL__KHTML_CENTER);
}
ASSERT_NOT_REACHED();
@@ -349,13 +337,13 @@
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
case CSS_PROP_BACKGROUND_REPEAT:
switch (style->backgroundRepeat()) {
- case khtml::REPEAT:
+ case REPEAT:
return new CSSPrimitiveValueImpl(CSS_VAL_REPEAT);
- case khtml::REPEAT_X:
+ case REPEAT_X:
return new CSSPrimitiveValueImpl(CSS_VAL_REPEAT_X);
- case khtml::REPEAT_Y:
+ case REPEAT_Y:
return new CSSPrimitiveValueImpl(CSS_VAL_REPEAT_Y);
- case khtml::NO_REPEAT:
+ case NO_REPEAT:
return new CSSPrimitiveValueImpl(CSS_VAL_NO_REPEAT);
}
ASSERT_NOT_REACHED();
@@ -367,9 +355,9 @@
case CSS_PROP_BACKGROUND_CLIP:
case CSS_PROP_BACKGROUND_ORIGIN: {
EBackgroundBox box = (propertyID == CSS_PROP_BACKGROUND_CLIP ? style->backgroundClip() : style->backgroundOrigin());
- if (box == khtml::BGBORDER)
+ if (box == BGBORDER)
return new CSSPrimitiveValueImpl(CSS_VAL_BORDER);
- if (box == khtml::BGPADDING)
+ if (box == BGPADDING)
return new CSSPrimitiveValueImpl(CSS_VAL_PADDING);
return new CSSPrimitiveValueImpl(CSS_VAL_CONTENT);
}
@@ -443,26 +431,26 @@
return getPositionOffsetValue(renderer, CSS_PROP_BOTTOM);
case CSS_PROP__KHTML_BOX_ALIGN:
switch (style->boxAlign()) {
- case khtml::BSTRETCH:
+ case BSTRETCH:
return new CSSPrimitiveValueImpl(CSS_VAL_STRETCH);
- case khtml::BSTART:
+ case BSTART:
return new CSSPrimitiveValueImpl(CSS_VAL_START);
- case khtml::BCENTER:
+ case BCENTER:
return new CSSPrimitiveValueImpl(CSS_VAL_CENTER);
- case khtml::BEND:
+ case BEND:
return new CSSPrimitiveValueImpl(CSS_VAL_END);
- case khtml::BBASELINE:
+ case BBASELINE:
return new CSSPrimitiveValueImpl(CSS_VAL_BASELINE);
- case khtml::BJUSTIFY:
+ case BJUSTIFY:
break; // not allowed
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP__KHTML_BOX_DIRECTION:
switch (style->boxDirection()) {
- case khtml::BNORMAL:
+ case BNORMAL:
return new CSSPrimitiveValueImpl(CSS_VAL_NORMAL);
- case khtml::BREVERSE:
+ case BREVERSE:
return new CSSPrimitiveValueImpl(CSS_VAL_REVERSE);
}
ASSERT_NOT_REACHED();
@@ -473,9 +461,9 @@
return new CSSPrimitiveValueImpl(style->boxFlexGroup(), CSSPrimitiveValue::CSS_NUMBER);
case CSS_PROP__KHTML_BOX_LINES:
switch (style->boxLines()) {
- case khtml::SINGLE:
+ case SINGLE:
return new CSSPrimitiveValueImpl(CSS_VAL_SINGLE);
- case khtml::MULTIPLE:
+ case MULTIPLE:
return new CSSPrimitiveValueImpl(CSS_VAL_MULTIPLE);
}
ASSERT_NOT_REACHED();
@@ -484,51 +472,51 @@
return new CSSPrimitiveValueImpl(style->boxOrdinalGroup(), CSSPrimitiveValue::CSS_NUMBER);
case CSS_PROP__KHTML_BOX_ORIENT:
switch (style->boxOrient()) {
- case khtml::HORIZONTAL:
+ case HORIZONTAL:
return new CSSPrimitiveValueImpl(CSS_VAL_HORIZONTAL);
- case khtml::VERTICAL:
+ case VERTICAL:
return new CSSPrimitiveValueImpl(CSS_VAL_VERTICAL);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP__KHTML_BOX_PACK:
switch (style->boxPack()) {
- case khtml::BSTART:
+ case BSTART:
return new CSSPrimitiveValueImpl(CSS_VAL_START);
- case khtml::BEND:
+ case BEND:
return new CSSPrimitiveValueImpl(CSS_VAL_END);
- case khtml::BCENTER:
+ case BCENTER:
return new CSSPrimitiveValueImpl(CSS_VAL_CENTER);
- case khtml::BJUSTIFY:
+ case BJUSTIFY:
return new CSSPrimitiveValueImpl(CSS_VAL_JUSTIFY);
- case khtml::BSTRETCH:
- case khtml::BBASELINE:
+ case BSTRETCH:
+ case BBASELINE:
break; // not allowed
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_CAPTION_SIDE:
switch (style->captionSide()) {
- case khtml::CAPLEFT:
+ case CAPLEFT:
return new CSSPrimitiveValueImpl(CSS_VAL_LEFT);
- case khtml::CAPRIGHT:
+ case CAPRIGHT:
return new CSSPrimitiveValueImpl(CSS_VAL_RIGHT);
- case khtml::CAPTOP:
+ case CAPTOP:
return new CSSPrimitiveValueImpl(CSS_VAL_TOP);
- case khtml::CAPBOTTOM:
+ case CAPBOTTOM:
return new CSSPrimitiveValueImpl(CSS_VAL_BOTTOM);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_CLEAR:
switch (style->clear()) {
- case khtml::CNONE:
+ case CNONE:
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
- case khtml::CLEFT:
+ case CLEFT:
return new CSSPrimitiveValueImpl(CSS_VAL_LEFT);
- case khtml::CRIGHT:
+ case CRIGHT:
return new CSSPrimitiveValueImpl(CSS_VAL_RIGHT);
- case khtml::CBOTH:
+ case CBOTH:
return new CSSPrimitiveValueImpl(CSS_VAL_BOTH);
}
ASSERT_NOT_REACHED();
@@ -548,110 +536,112 @@
// FIXME: unimplemented
break;
case CSS_PROP_CURSOR:
+ if (style->cursorImage())
+ return new CSSPrimitiveValueImpl(style->cursorImage()->url(), CSSPrimitiveValue::CSS_URI);
switch (style->cursor()) {
- case khtml::CURSOR_AUTO:
+ case CURSOR_AUTO:
return new CSSPrimitiveValueImpl(CSS_VAL_AUTO);
- case khtml::CURSOR_CROSS:
+ case CURSOR_CROSS:
return new CSSPrimitiveValueImpl(CSS_VAL_CROSSHAIR);
- case khtml::CURSOR_DEFAULT:
+ case CURSOR_DEFAULT:
return new CSSPrimitiveValueImpl(CSS_VAL_DEFAULT);
- case khtml::CURSOR_POINTER:
+ case CURSOR_POINTER:
return new CSSPrimitiveValueImpl(CSS_VAL_POINTER);
- case khtml::CURSOR_MOVE:
+ case CURSOR_MOVE:
return new CSSPrimitiveValueImpl(CSS_VAL_MOVE);
- case khtml::CURSOR_E_RESIZE:
+ case CURSOR_E_RESIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_E_RESIZE);
- case khtml::CURSOR_NE_RESIZE:
+ case CURSOR_NE_RESIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_NE_RESIZE);
- case khtml::CURSOR_NW_RESIZE:
+ case CURSOR_NW_RESIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_NW_RESIZE);
- case khtml::CURSOR_N_RESIZE:
+ case CURSOR_N_RESIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_N_RESIZE);
- case khtml::CURSOR_SE_RESIZE:
+ case CURSOR_SE_RESIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_SE_RESIZE);
- case khtml::CURSOR_SW_RESIZE:
+ case CURSOR_SW_RESIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_SW_RESIZE);
- case khtml::CURSOR_S_RESIZE:
+ case CURSOR_S_RESIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_S_RESIZE);
- case khtml::CURSOR_W_RESIZE:
+ case CURSOR_W_RESIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_W_RESIZE);
- case khtml::CURSOR_TEXT:
+ case CURSOR_TEXT:
return new CSSPrimitiveValueImpl(CSS_VAL_TEXT);
- case khtml::CURSOR_WAIT:
+ case CURSOR_WAIT:
return new CSSPrimitiveValueImpl(CSS_VAL_WAIT);
- case khtml::CURSOR_HELP:
+ case CURSOR_HELP:
return new CSSPrimitiveValueImpl(CSS_VAL_HELP);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_DIRECTION:
switch (style->direction()) {
- case khtml::LTR:
+ case LTR:
return new CSSPrimitiveValueImpl(CSS_VAL_LTR);
- case khtml::RTL:
+ case RTL:
return new CSSPrimitiveValueImpl(CSS_VAL_RTL);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_DISPLAY:
switch (style->display()) {
- case khtml::INLINE:
+ case INLINE:
return new CSSPrimitiveValueImpl(CSS_VAL_INLINE);
- case khtml::BLOCK:
+ case BLOCK:
return new CSSPrimitiveValueImpl(CSS_VAL_BLOCK);
- case khtml::LIST_ITEM:
+ case LIST_ITEM:
return new CSSPrimitiveValueImpl(CSS_VAL_LIST_ITEM);
- case khtml::RUN_IN:
+ case RUN_IN:
return new CSSPrimitiveValueImpl(CSS_VAL_RUN_IN);
- case khtml::COMPACT:
+ case COMPACT:
return new CSSPrimitiveValueImpl(CSS_VAL_COMPACT);
- case khtml::INLINE_BLOCK:
+ case INLINE_BLOCK:
return new CSSPrimitiveValueImpl(CSS_VAL_INLINE_BLOCK);
- case khtml::TABLE:
+ case TABLE:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE);
- case khtml::INLINE_TABLE:
+ case INLINE_TABLE:
return new CSSPrimitiveValueImpl(CSS_VAL_INLINE_TABLE);
- case khtml::TABLE_ROW_GROUP:
+ case TABLE_ROW_GROUP:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE_ROW_GROUP);
- case khtml::TABLE_HEADER_GROUP:
+ case TABLE_HEADER_GROUP:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE_HEADER_GROUP);
- case khtml::TABLE_FOOTER_GROUP:
+ case TABLE_FOOTER_GROUP:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE_FOOTER_GROUP);
- case khtml::TABLE_ROW:
+ case TABLE_ROW:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE_ROW);
- case khtml::TABLE_COLUMN_GROUP:
+ case TABLE_COLUMN_GROUP:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE_COLUMN_GROUP);
- case khtml::TABLE_COLUMN:
+ case TABLE_COLUMN:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE_COLUMN);
- case khtml::TABLE_CELL:
+ case TABLE_CELL:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE_CELL);
- case khtml::TABLE_CAPTION:
+ case TABLE_CAPTION:
return new CSSPrimitiveValueImpl(CSS_VAL_TABLE_CAPTION);
- case khtml::BOX:
+ case BOX:
return new CSSPrimitiveValueImpl(CSS_VAL__KHTML_BOX);
- case khtml::INLINE_BOX:
+ case INLINE_BOX:
return new CSSPrimitiveValueImpl(CSS_VAL__KHTML_INLINE_BOX);
- case khtml::NONE:
+ case NONE:
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_EMPTY_CELLS:
switch (style->emptyCells()) {
- case khtml::SHOW:
+ case SHOW:
return new CSSPrimitiveValueImpl(CSS_VAL_SHOW);
- case khtml::HIDE:
+ case HIDE:
return new CSSPrimitiveValueImpl(CSS_VAL_HIDE);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_FLOAT:
switch (style->floating()) {
- case khtml::FNONE:
+ case FNONE:
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
- case khtml::FLEFT:
+ case FLEFT:
return new CSSPrimitiveValueImpl(CSS_VAL_LEFT);
- case khtml::FRIGHT:
+ case FRIGHT:
return new CSSPrimitiveValueImpl(CSS_VAL_RIGHT);
}
ASSERT_NOT_REACHED();
@@ -728,56 +718,56 @@
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
case CSS_PROP_LIST_STYLE_POSITION:
switch (style->listStylePosition()) {
- case khtml::OUTSIDE:
+ case OUTSIDE:
return new CSSPrimitiveValueImpl(CSS_VAL_OUTSIDE);
- case khtml::INSIDE:
+ case INSIDE:
return new CSSPrimitiveValueImpl(CSS_VAL_INSIDE);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_LIST_STYLE_TYPE:
switch (style->listStyleType()) {
- case khtml::LNONE:
+ case LNONE:
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
- case khtml::DISC:
+ case DISC:
return new CSSPrimitiveValueImpl(CSS_VAL_DISC);
- case khtml::CIRCLE:
+ case CIRCLE:
return new CSSPrimitiveValueImpl(CSS_VAL_CIRCLE);
- case khtml::SQUARE:
+ case SQUARE:
return new CSSPrimitiveValueImpl(CSS_VAL_SQUARE);
- case khtml::LDECIMAL:
+ case LDECIMAL:
return new CSSPrimitiveValueImpl(CSS_VAL_DECIMAL);
- case khtml::DECIMAL_LEADING_ZERO:
+ case DECIMAL_LEADING_ZERO:
return new CSSPrimitiveValueImpl(CSS_VAL_DECIMAL_LEADING_ZERO);
- case khtml::LOWER_ROMAN:
+ case LOWER_ROMAN:
return new CSSPrimitiveValueImpl(CSS_VAL_LOWER_ROMAN);
- case khtml::UPPER_ROMAN:
+ case UPPER_ROMAN:
return new CSSPrimitiveValueImpl(CSS_VAL_UPPER_ROMAN);
- case khtml::LOWER_GREEK:
+ case LOWER_GREEK:
return new CSSPrimitiveValueImpl(CSS_VAL_LOWER_GREEK);
- case khtml::LOWER_ALPHA:
+ case LOWER_ALPHA:
return new CSSPrimitiveValueImpl(CSS_VAL_LOWER_ALPHA);
- case khtml::LOWER_LATIN:
+ case LOWER_LATIN:
return new CSSPrimitiveValueImpl(CSS_VAL_LOWER_LATIN);
- case khtml::UPPER_ALPHA:
+ case UPPER_ALPHA:
return new CSSPrimitiveValueImpl(CSS_VAL_UPPER_ALPHA);
- case khtml::UPPER_LATIN:
+ case UPPER_LATIN:
return new CSSPrimitiveValueImpl(CSS_VAL_UPPER_LATIN);
- case khtml::HEBREW:
+ case HEBREW:
return new CSSPrimitiveValueImpl(CSS_VAL_HEBREW);
- case khtml::ARMENIAN:
+ case ARMENIAN:
return new CSSPrimitiveValueImpl(CSS_VAL_ARMENIAN);
- case khtml::GEORGIAN:
+ case GEORGIAN:
return new CSSPrimitiveValueImpl(CSS_VAL_GEORGIAN);
- case khtml::CJK_IDEOGRAPHIC:
+ case CJK_IDEOGRAPHIC:
return new CSSPrimitiveValueImpl(CSS_VAL_CJK_IDEOGRAPHIC);
- case khtml::HIRAGANA:
+ case HIRAGANA:
return new CSSPrimitiveValueImpl(CSS_VAL_HIRAGANA);
- case khtml::KATAKANA:
+ case KATAKANA:
return new CSSPrimitiveValueImpl(CSS_VAL_KATAKANA);
- case khtml::HIRAGANA_IROHA:
+ case HIRAGANA_IROHA:
return new CSSPrimitiveValueImpl(CSS_VAL_HIRAGANA_IROHA);
- case khtml::KATAKANA_IROHA:
+ case KATAKANA_IROHA:
return new CSSPrimitiveValueImpl(CSS_VAL_KATAKANA_IROHA);
}
ASSERT_NOT_REACHED();
@@ -795,19 +785,19 @@
break;
case CSS_PROP__KHTML_MARQUEE_DIRECTION:
switch (style->marqueeDirection()) {
- case khtml::MFORWARD:
+ case MFORWARD:
return new CSSPrimitiveValueImpl(CSS_VAL_FORWARDS);
- case khtml::MBACKWARD:
+ case MBACKWARD:
return new CSSPrimitiveValueImpl(CSS_VAL_BACKWARDS);
- case khtml::MAUTO:
+ case MAUTO:
return new CSSPrimitiveValueImpl(CSS_VAL_AUTO);
- case khtml::MUP:
+ case MUP:
return new CSSPrimitiveValueImpl(CSS_VAL_UP);
- case khtml::MDOWN:
+ case MDOWN:
return new CSSPrimitiveValueImpl(CSS_VAL_DOWN);
- case khtml::MLEFT:
+ case MLEFT:
return new CSSPrimitiveValueImpl(CSS_VAL_LEFT);
- case khtml::MRIGHT:
+ case MRIGHT:
return new CSSPrimitiveValueImpl(CSS_VAL_RIGHT);
}
ASSERT_NOT_REACHED();
@@ -823,24 +813,24 @@
break;
case CSS_PROP__KHTML_MARQUEE_STYLE:
switch (style->marqueeBehavior()) {
- case khtml::MNONE:
+ case MNONE:
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
- case khtml::MSCROLL:
+ case MSCROLL:
return new CSSPrimitiveValueImpl(CSS_VAL_SCROLL);
- case khtml::MSLIDE:
+ case MSLIDE:
return new CSSPrimitiveValueImpl(CSS_VAL_SLIDE);
- case khtml::MALTERNATE:
+ case MALTERNATE:
return new CSSPrimitiveValueImpl(CSS_VAL_ALTERNATE);
- case khtml::MUNFURL:
+ case MUNFURL:
return new CSSPrimitiveValueImpl(CSS_VAL_UNFURL);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP__KHTML_USER_MODIFY:
switch (style->userModify()) {
- case khtml::READ_ONLY:
+ case READ_ONLY:
return new CSSPrimitiveValueImpl(CSS_VAL_READ_ONLY);
- case khtml::READ_WRITE:
+ case READ_WRITE:
return new CSSPrimitiveValueImpl(CSS_VAL_READ_WRITE);
}
ASSERT_NOT_REACHED();
@@ -872,17 +862,17 @@
break;
case CSS_PROP_OVERFLOW:
switch (style->overflow()) {
- case khtml::OVISIBLE:
+ case OVISIBLE:
return new CSSPrimitiveValueImpl(CSS_VAL_VISIBLE);
- case khtml::OHIDDEN:
+ case OHIDDEN:
return new CSSPrimitiveValueImpl(CSS_VAL_HIDDEN);
- case khtml::OSCROLL:
+ case OSCROLL:
return new CSSPrimitiveValueImpl(CSS_VAL_SCROLL);
- case khtml::OAUTO:
+ case OAUTO:
return new CSSPrimitiveValueImpl(CSS_VAL_AUTO);
- case khtml::OMARQUEE:
+ case OMARQUEE:
return new CSSPrimitiveValueImpl(CSS_VAL_MARQUEE);
- case khtml::OOVERLAY:
+ case OOVERLAY:
return new CSSPrimitiveValueImpl(CSS_VAL_OVERLAY);
}
ASSERT_NOT_REACHED();
@@ -900,46 +890,46 @@
break;
case CSS_PROP_PAGE_BREAK_AFTER:
switch (style->pageBreakAfter()) {
- case khtml::PBAUTO:
+ case PBAUTO:
return new CSSPrimitiveValueImpl(CSS_VAL_AUTO);
- case khtml::PBALWAYS:
+ case PBALWAYS:
return new CSSPrimitiveValueImpl(CSS_VAL_ALWAYS);
- case khtml::PBAVOID:
+ case PBAVOID:
return new CSSPrimitiveValueImpl(CSS_VAL_AVOID);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_PAGE_BREAK_BEFORE:
switch (style->pageBreakBefore()) {
- case khtml::PBAUTO:
+ case PBAUTO:
return new CSSPrimitiveValueImpl(CSS_VAL_AUTO);
- case khtml::PBALWAYS:
+ case PBALWAYS:
return new CSSPrimitiveValueImpl(CSS_VAL_ALWAYS);
- case khtml::PBAVOID:
+ case PBAVOID:
return new CSSPrimitiveValueImpl(CSS_VAL_AVOID);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_PAGE_BREAK_INSIDE:
switch (style->pageBreakInside()) {
- case khtml::PBAUTO:
+ case PBAUTO:
return new CSSPrimitiveValueImpl(CSS_VAL_AUTO);
- case khtml::PBAVOID:
+ case PBAVOID:
return new CSSPrimitiveValueImpl(CSS_VAL_AVOID);
- case khtml::PBALWAYS:
+ case PBALWAYS:
break; // not allowed
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_POSITION:
switch (style->position()) {
- case khtml::STATIC:
+ case STATIC:
return new CSSPrimitiveValueImpl(CSS_VAL_STATIC);
- case khtml::RELATIVE:
+ case RELATIVE:
return new CSSPrimitiveValueImpl(CSS_VAL_RELATIVE);
- case khtml::ABSOLUTE:
+ case ABSOLUTE:
return new CSSPrimitiveValueImpl(CSS_VAL_ABSOLUTE);
- case khtml::FIXED:
+ case FIXED:
return new CSSPrimitiveValueImpl(CSS_VAL_FIXED);
}
ASSERT_NOT_REACHED();
@@ -954,9 +944,9 @@
break;
case CSS_PROP_TABLE_LAYOUT:
switch (style->tableLayout()) {
- case khtml::TAUTO:
+ case TAUTO:
return new CSSPrimitiveValueImpl(CSS_VAL_AUTO);
- case khtml::TFIXED:
+ case TFIXED:
return new CSSPrimitiveValueImpl(CSS_VAL_FIXED);
}
ASSERT_NOT_REACHED();
@@ -966,19 +956,19 @@
case CSS_PROP_TEXT_DECORATION:
{
QString string;
- if (style->textDecoration() & khtml::UNDERLINE)
+ if (style->textDecoration() & UNDERLINE)
string += "underline";
- if (style->textDecoration() & khtml::OVERLINE) {
+ if (style->textDecoration() & OVERLINE) {
if (string.length() > 0)
string += " ";
string += "overline";
}
- if (style->textDecoration() & khtml::LINE_THROUGH) {
+ if (style->textDecoration() & LINE_THROUGH) {
if (string.length() > 0)
string += " ";
string += "line-through";
}
- if (style->textDecoration() & khtml::BLINK) {
+ if (style->textDecoration() & BLINK) {
if (string.length() > 0)
string += " ";
string += "blink";
@@ -990,19 +980,19 @@
case CSS_PROP__KHTML_TEXT_DECORATIONS_IN_EFFECT:
{
QString string;
- if (style->textDecorationsInEffect() & khtml::UNDERLINE)
+ if (style->textDecorationsInEffect() & UNDERLINE)
string += "underline";
- if (style->textDecorationsInEffect() & khtml::OVERLINE) {
+ if (style->textDecorationsInEffect() & OVERLINE) {
if (string.length() > 0)
string += " ";
string += "overline";
}
- if (style->textDecorationsInEffect() & khtml::LINE_THROUGH) {
+ if (style->textDecorationsInEffect() & LINE_THROUGH) {
if (string.length() > 0)
string += " ";
string += "line-through";
}
- if (style->textDecorationsInEffect() & khtml::BLINK) {
+ if (style->textDecorationsInEffect() & BLINK) {
if (string.length() > 0)
string += " ";
string += "blink";
@@ -1022,13 +1012,13 @@
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
case CSS_PROP_TEXT_TRANSFORM:
switch (style->textTransform()) {
- case khtml::CAPITALIZE:
+ case CAPITALIZE:
return new CSSPrimitiveValueImpl(CSS_VAL_CAPITALIZE);
- case khtml::UPPERCASE:
+ case UPPERCASE:
return new CSSPrimitiveValueImpl(CSS_VAL_UPPERCASE);
- case khtml::LOWERCASE:
+ case LOWERCASE:
return new CSSPrimitiveValueImpl(CSS_VAL_LOWERCASE);
- case khtml::TTNONE:
+ case TTNONE:
return new CSSPrimitiveValueImpl(CSS_VAL_NONE);
}
ASSERT_NOT_REACHED();
@@ -1037,64 +1027,64 @@
return getPositionOffsetValue(renderer, CSS_PROP_TOP);
case CSS_PROP_UNICODE_BIDI:
switch (style->unicodeBidi()) {
- case khtml::UBNormal:
+ case UBNormal:
return new CSSPrimitiveValueImpl(CSS_VAL_NORMAL);
- case khtml::Embed:
+ case Embed:
return new CSSPrimitiveValueImpl(CSS_VAL_EMBED);
- case khtml::Override:
+ case Override:
return new CSSPrimitiveValueImpl(CSS_VAL_BIDI_OVERRIDE);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_VERTICAL_ALIGN:
switch (style->verticalAlign()) {
- case khtml::BASELINE:
+ case BASELINE:
return new CSSPrimitiveValueImpl(CSS_VAL_BASELINE);
- case khtml::MIDDLE:
+ case MIDDLE:
return new CSSPrimitiveValueImpl(CSS_VAL_MIDDLE);
- case khtml::SUB:
+ case SUB:
return new CSSPrimitiveValueImpl(CSS_VAL_SUB);
- case khtml::SUPER:
+ case SUPER:
return new CSSPrimitiveValueImpl(CSS_VAL_SUPER);
- case khtml::TEXT_TOP:
+ case TEXT_TOP:
return new CSSPrimitiveValueImpl(CSS_VAL_TEXT_TOP);
- case khtml::TEXT_BOTTOM:
+ case TEXT_BOTTOM:
return new CSSPrimitiveValueImpl(CSS_VAL_TEXT_BOTTOM);
- case khtml::TOP:
+ case TOP:
return new CSSPrimitiveValueImpl(CSS_VAL_TOP);
- case khtml::BOTTOM:
+ case BOTTOM:
return new CSSPrimitiveValueImpl(CSS_VAL_BOTTOM);
- case khtml::BASELINE_MIDDLE:
+ case BASELINE_MIDDLE:
return new CSSPrimitiveValueImpl(CSS_VAL__KHTML_BASELINE_MIDDLE);
- case khtml::LENGTH:
+ case LENGTH:
return valueForLength(style->verticalAlignLength());
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_VISIBILITY:
switch (style->visibility()) {
- case khtml::VISIBLE:
+ case VISIBLE:
return new CSSPrimitiveValueImpl(CSS_VAL_VISIBLE);
- case khtml::HIDDEN:
+ case HIDDEN:
return new CSSPrimitiveValueImpl(CSS_VAL_HIDDEN);
- case khtml::COLLAPSE:
+ case COLLAPSE:
return new CSSPrimitiveValueImpl(CSS_VAL_COLLAPSE);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP_WHITE_SPACE:
switch (style->whiteSpace()) {
- case khtml::NORMAL:
+ case NORMAL:
return new CSSPrimitiveValueImpl(CSS_VAL_NORMAL);
- case khtml::PRE:
+ case PRE:
return new CSSPrimitiveValueImpl(CSS_VAL_PRE);
- case khtml::PRE_WRAP:
+ case PRE_WRAP:
return new CSSPrimitiveValueImpl(CSS_VAL_PRE_WRAP);
- case khtml::PRE_LINE:
+ case PRE_LINE:
return new CSSPrimitiveValueImpl(CSS_VAL_PRE_LINE);
- case khtml::NOWRAP:
+ case NOWRAP:
return new CSSPrimitiveValueImpl(CSS_VAL_NOWRAP);
- case khtml::KHTML_NOWRAP:
+ case KHTML_NOWRAP:
return new CSSPrimitiveValueImpl(CSS_VAL__KHTML_NOWRAP);
}
ASSERT_NOT_REACHED();
@@ -1107,36 +1097,36 @@
return new CSSPrimitiveValueImpl(style->wordSpacing(), CSSPrimitiveValue::CSS_PX);
case CSS_PROP_WORD_WRAP:
switch (style->wordWrap()) {
- case khtml::WBNORMAL:
+ case WBNORMAL:
return new CSSPrimitiveValueImpl(CSS_VAL_NORMAL);
- case khtml::BREAK_WORD:
+ case BREAK_WORD:
return new CSSPrimitiveValueImpl(CSS_VAL_BREAK_WORD);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP__KHTML_LINE_BREAK:
switch (style->khtmlLineBreak()) {
- case khtml::LBNORMAL:
+ case LBNORMAL:
return new CSSPrimitiveValueImpl(CSS_VAL_NORMAL);
- case khtml::AFTER_WHITE_SPACE:
+ case AFTER_WHITE_SPACE:
return new CSSPrimitiveValueImpl(CSS_VAL_AFTER_WHITE_SPACE);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP__KHTML_NBSP_MODE:
switch (style->nbspMode()) {
- case khtml::NBNORMAL:
+ case NBNORMAL:
return new CSSPrimitiveValueImpl(CSS_VAL_NORMAL);
- case khtml::SPACE:
+ case SPACE:
return new CSSPrimitiveValueImpl(CSS_VAL_SPACE);
}
ASSERT_NOT_REACHED();
return 0;
case CSS_PROP__KHTML_MATCH_NEAREST_MAIL_BLOCKQUOTE_COLOR:
switch (style->matchNearestMailBlockquoteColor()) {
- case khtml::BCNORMAL:
+ case BCNORMAL:
return new CSSPrimitiveValueImpl(CSS_VAL_NORMAL);
- case khtml::MATCH:
+ case MATCH:
return new CSSPrimitiveValueImpl(CSS_VAL_MATCH);
}
ASSERT_NOT_REACHED();
1.115 +26 -21 WebCore/khtml/css/cssparser.cpp
Index: cssparser.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/css/cssparser.cpp,v
retrieving revision 1.114
retrieving revision 1.115
diff -u -r1.114 -r1.115
--- cssparser.cpp 7 Dec 2005 01:12:36 -0000 1.114
+++ cssparser.cpp 8 Dec 2005 08:40:25 -0000 1.115
@@ -45,8 +45,7 @@
#include "SVGPaintImpl.h"
#endif
-void qFatal ( const char * msg ) {}
-
+using namespace khtml;
using namespace DOM;
ValueList::ValueList()
@@ -185,7 +184,7 @@
rule = 0;
}
-CSSRuleImpl *CSSParser::parseRule( DOM::CSSStyleSheetImpl *sheet, const DOM::DOMString &string )
+CSSRuleImpl *CSSParser::parseRule(CSSStyleSheetImpl *sheet, const DOMString &string)
{
styleElement = sheet;
@@ -235,14 +234,14 @@
return ok;
}
-QRgb CSSParser::parseColor( const DOM::DOMString &string )
+QRgb CSSParser::parseColor(const DOMString &string)
{
QRgb color = 0;
CSSMutableStyleDeclarationImpl *dummyStyleDeclaration = new CSSMutableStyleDeclarationImpl;
dummyStyleDeclaration->ref();
- DOM::CSSParser parser(true);
+ CSSParser parser(true);
// First try creating a color specified by name or the "#" syntax.
if (!parser.parseColor(string.qstring(), color)) {
@@ -251,8 +250,8 @@
bool ok = parser.parseColor(dummyStyleDeclaration, string);
if ( ok ) {
CSSValueImpl *value = parser.parsedProperties[0]->value();
- if (value->cssValueType() == DOM::CSSValue::CSS_PRIMITIVE_VALUE) {
- DOM::CSSPrimitiveValueImpl *primitiveValue = static_cast<DOM::CSSPrimitiveValueImpl *>(value);
+ if (value->cssValueType() == CSSValue::CSS_PRIMITIVE_VALUE) {
+ CSSPrimitiveValueImpl *primitiveValue = static_cast<CSSPrimitiveValueImpl *>(value);
color = primitiveValue->getRGBColorValue();
}
}
@@ -340,7 +339,7 @@
numParsedProperties = 0;
}
-DOM::DocumentImpl *CSSParser::document() const
+DocumentImpl *CSSParser::document() const
{
StyleBaseImpl *root = styleElement;
DocumentImpl *doc = 0;
@@ -687,12 +686,18 @@
// [ auto | crosshair | default | pointer | progress | move | e-resize | ne-resize |
// nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text |
// wait | help ] ] | inherit
- // MSIE 5 compatibility :/
- if ( !strict && id == CSS_VAL_HAND ) {
+ if (!strict && id == CSS_VAL_HAND) { // MSIE 5 compatibility :/
id = CSS_VAL_POINTER;
valid_primitive = true;
- } else if ( id >= CSS_VAL_AUTO && id <= CSS_VAL_HELP )
+ } else if (id >= CSS_VAL_AUTO && id <= CSS_VAL_HELP)
valid_primitive = true;
+ else if (value->unit == CSSPrimitiveValue::CSS_URI) {
+ DOMString uri = parseURL(domString(value->string));
+ if (!uri.isEmpty()) {
+ parsedValue = new CSSImageValueImpl(DOMString(KURL(styleElement->baseURL().qstring(), uri.qstring()).url()), styleElement);
+ valueList->next();
+ }
+ }
break;
case CSS_PROP_BACKGROUND_ATTACHMENT:
@@ -720,7 +725,7 @@
}
else if (value->unit == CSSPrimitiveValue::CSS_URI) {
// ### allow string in non strict mode?
- DOMString uri = khtml::parseURL( domString( value->string ) );
+ DOMString uri = parseURL( domString( value->string ) );
if (!uri.isEmpty()) {
parsedValue = new CSSImageValueImpl(
DOMString(KURL( styleElement->baseURL().qstring(), uri.qstring()).url()),
@@ -928,7 +933,7 @@
CSSValueImpl* parsedValue = 0;
while ((val = valueList->current())) {
if (val->unit == CSSPrimitiveValue::CSS_URI) {
- DOMString value = khtml::parseURL(domString(val->string));
+ DOMString value = parseURL(domString(val->string));
parsedValue = new CSSPrimitiveValueImpl(
DOMString(KURL(styleElement->baseURL().qstring(), value.qstring()).url()),
CSSPrimitiveValue::CSS_URI);
@@ -1508,7 +1513,7 @@
while ( (val = valueList->current()) ) {
if ( val->unit == CSSPrimitiveValue::CSS_URI ) {
// url
- DOMString value = khtml::parseURL(domString(val->string));
+ DOMString value = parseURL(domString(val->string));
parsedValue = new CSSImageValueImpl(
DOMString(KURL( styleElement->baseURL().qstring(), value.qstring()).url() ), styleElement );
#ifdef CSS_DEBUG
@@ -1564,7 +1569,7 @@
if (valueList->current()->id == CSS_VAL_NONE)
return new CSSImageValueImpl();
if (valueList->current()->unit == CSSPrimitiveValue::CSS_URI) {
- DOMString uri = khtml::parseURL(domString(valueList->current()->string));
+ DOMString uri = parseURL(domString(valueList->current()->string));
if (!uri.isEmpty())
return new CSSImageValueImpl(DOMString(KURL(styleElement->baseURL().qstring(), uri.qstring()).url()),
styleElement);
@@ -2217,7 +2222,7 @@
CSSPrimitiveValueImpl *CSSParser::parseColorFromValue(Value* value)
{
- QRgb c = khtml::transparentColor;
+ QRgb c = transparentColor;
if ( !strict && value->unit == CSSPrimitiveValue::CSS_NUMBER &&
value->fValue >= 0. && value->fValue < 1000000. ) {
QString str;
@@ -2578,7 +2583,7 @@
if (val->unit != CSSPrimitiveValue::CSS_URI)
return context.failed();
- DOMString uri = khtml::parseURL(domString(val->string));
+ DOMString uri = parseURL(domString(val->string));
if (uri.isEmpty())
return context.failed();
@@ -2623,7 +2628,7 @@
#include "parser.h"
-int DOM::CSSParser::lex( void *_yylval ) {
+int CSSParser::lex( void *_yylval ) {
YYSTYPE *yylval = (YYSTYPE *)_yylval;
int token = lex();
int length;
@@ -2704,7 +2709,7 @@
return 0;
}
-unsigned short *DOM::CSSParser::text(int *length)
+unsigned short *CSSParser::text(int *length)
{
unsigned short *start = yytext;
int l = yyleng;
@@ -2846,12 +2851,12 @@
*yy_cp = 0; \
yy_c_buf_p = yy_cp;
#define YY_BREAK break;
-#define ECHO qDebug( "%s", QString( (QChar *)yytext, yyleng ).latin1() )
+#define ECHO
#define YY_RULE_SETUP
#define INITIAL 0
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
#define yyterminate() yyTok = END_TOKEN; return yyTok
-#define YY_FATAL_ERROR(a) qFatal(a)
+#define YY_FATAL_ERROR(a)
#include "tokenizer.cpp"
1.227 +38 -26 WebCore/khtml/css/cssstyleselector.cpp
Index: cssstyleselector.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/css/cssstyleselector.cpp,v
retrieving revision 1.226
retrieving revision 1.227
diff -u -r1.226 -r1.227
--- cssstyleselector.cpp 7 Dec 2005 01:12:36 -0000 1.226
+++ cssstyleselector.cpp 8 Dec 2005 08:40:25 -0000 1.227
@@ -75,24 +75,21 @@
// #define STYLE_SHARING_STATS 1
#define HANDLE_INHERIT(prop, Prop) \
-if (isInherit) \
-{\
- style->set##Prop(parentStyle->prop());\
- return;\
+if (isInherit) { \
+ style->set##Prop(parentStyle->prop()); \
+ return; \
}
#define HANDLE_INHERIT_AND_INITIAL(prop, Prop) \
HANDLE_INHERIT(prop, Prop) \
-else if (isInitial) \
-{\
- style->set##Prop(RenderStyle::initial##Prop());\
- return;\
+if (isInitial) { \
+ style->set##Prop(RenderStyle::initial##Prop()); \
+ return; \
}
#define HANDLE_INHERIT_AND_INITIAL_WITH_VALUE(prop, Prop, Value) \
HANDLE_INHERIT(prop, Prop) \
-else if (isInitial) \
-{\
+if (isInitial) { \
style->set##Prop(RenderStyle::initial##Value());\
return;\
}
@@ -160,24 +157,21 @@
} }
#define HANDLE_INHERIT_COND(propID, prop, Prop) \
-if (id == propID) \
-{\
- style->set##Prop(parentStyle->prop());\
- return;\
+if (id == propID) { \
+ style->set##Prop(parentStyle->prop()); \
+ return; \
}
#define HANDLE_INITIAL_COND(propID, Prop) \
-if (id == propID) \
-{\
- style->set##Prop(RenderStyle::initial##Prop());\
- return;\
+if (id == propID) { \
+ style->set##Prop(RenderStyle::initial##Prop()); \
+ return; \
}
#define HANDLE_INITIAL_COND_WITH_VALUE(propID, Prop, Value) \
-if (id == propID) \
-{\
- style->set##Prop(RenderStyle::initial##Value());\
- return;\
+if (id == propID) { \
+ style->set##Prop(RenderStyle::initial##Value()); \
+ return; \
}
namespace khtml {
@@ -2398,10 +2392,28 @@
break;
}
case CSS_PROP_CURSOR:
- HANDLE_INHERIT_AND_INITIAL(cursor, Cursor)
- if (primitiveValue)
- style->setCursor( (ECursor) (primitiveValue->getIdent() - CSS_VAL_AUTO) );
- break;
+ if (isInherit) {
+ style->setCursor(parentStyle->cursor());
+ style->setCursorImage(parentStyle->cursorImage());
+ return;
+ }
+ if (isInitial) {
+ style->setCursor(RenderStyle::initialCursor());
+ style->setCursorImage(0);
+ return;
+ }
+ if (primitiveValue) {
+ int type = primitiveValue->primitiveType();
+ if (type == CSSPrimitiveValue::CSS_IDENT) {
+ style->setCursor((ECursor)(primitiveValue->getIdent() - CSS_VAL_AUTO));
+ style->setCursorImage(0);
+ } else if (type == CSSPrimitiveValue::CSS_URI) {
+ CSSImageValueImpl *image = static_cast<CSSImageValueImpl *>(primitiveValue);
+ style->setCursor(CURSOR_AUTO);
+ style->setCursorImage(image->image(element->getDocument()->docLoader()));
+ }
+ }
+ break;
// colors || inherit
case CSS_PROP_BACKGROUND_COLOR:
case CSS_PROP_BORDER_TOP_COLOR:
1.55 +0 -1 WebCore/khtml/html/html_inlineimpl.cpp
Index: html_inlineimpl.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/html/html_inlineimpl.cpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- html_inlineimpl.cpp 21 Nov 2005 01:20:13 -0000 1.54
+++ html_inlineimpl.cpp 8 Dec 2005 08:40:26 -0000 1.55
@@ -204,7 +204,6 @@
}
if (getDocument() && getDocument()->view() && getDocument()->part()) {
- getDocument()->view()->resetCursor();
getDocument()->part()->
urlSelected( url, button, state, utarget );
}
1.22 +2 -2 WebCore/kwq/KWQClipboard.mm
Index: KWQClipboard.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQClipboard.mm,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- KWQClipboard.mm 2 Dec 2005 03:48:12 -0000 1.21
+++ KWQClipboard.mm 8 Dec 2005 08:40:26 -0000 1.22
@@ -345,9 +345,9 @@
}
}
} else {
- result = [m_dragImage.image() image];
+ result = [m_dragImage.imageRenderer() image];
if (loc) {
- *loc = NSPoint(m_dragLoc);
+ *loc = m_dragLoc;
loc->y = [result size].height - loc->y;
}
}
1.24 +14 -9 WebCore/kwq/KWQCursor.mm
Index: KWQCursor.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQCursor.mm,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- KWQCursor.mm 3 Oct 2005 21:13:02 -0000 1.23
+++ KWQCursor.mm 8 Dec 2005 08:40:26 -0000 1.24
@@ -23,26 +23,31 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "config.h"
+#import "config.h"
#import "KWQCursor.h"
-#import "KWQLogging.h"
+
#import "KWQFoundationExtras.h"
+#import "WebCoreImageRenderer.h"
-// The NSCursor cocoa calls here can't fail, so no need to block Cocoa exceptions
+static NSCursor *createCustomCursor(const QPixmap& pixmap)
+{
+ NSImage *image = [pixmap.imageRenderer() image];
+ if (!image)
+ return nil;
+ return [[NSCursor alloc] initWithImage:image hotSpot:NSZeroPoint];
+}
QCursor::QCursor()
: cursor(nil)
{
}
-QCursor::QCursor(const QPixmap &pixmap)
- : cursor(nil)
+QCursor::QCursor(const QPixmap& pixmap)
+ : cursor(createCustomCursor(pixmap))
{
- // Needed for custom cursors.
- ERROR("not yet implemented");
}
-QCursor::QCursor(const QCursor &other)
+QCursor::QCursor(const QCursor& other)
: cursor(KWQRetain(other.cursor))
{
}
@@ -59,7 +64,7 @@
return q;
}
-QCursor &QCursor::operator=(const QCursor &other)
+QCursor& QCursor::operator=(const QCursor& other)
{
KWQRetain(other.cursor);
KWQRelease(cursor);
1.697 +9 -9 WebCore/kwq/KWQKHTMLPart.mm
Index: KWQKHTMLPart.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQKHTMLPart.mm,v
retrieving revision 1.696
retrieving revision 1.697
diff -u -r1.696 -r1.697
--- KWQKHTMLPart.mm 6 Dec 2005 00:23:46 -0000 1.696
+++ KWQKHTMLPart.mm 8 Dec 2005 08:40:26 -0000 1.697
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2004, 2005 Apple Computer, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -2338,7 +2338,7 @@
if (_mouseDownMayStartDrag) {
// We are starting a text/image/url drag, so the cursor should be an arrow
- d->m_view->resetCursor();
+ d->m_view->viewport()->setCursor(QCursor());
NSPoint dragLocation = [_currentEvent locationInWindow];
if (dragHysteresisExceeded(dragLocation.x, dragLocation.y)) {
@@ -2912,22 +2912,22 @@
NSFileWrapper *wrapper = nil;
- AtomicString attr = e->getAttribute(srcAttr);
+ const AtomicString& attr = e->getAttribute(srcAttr);
if (!attr.isEmpty()) {
NSURL *URL = completeURL(attr.qstring()).getNSURL();
wrapper = [_bridge fileWrapperForURL:URL];
}
if (!wrapper) {
RenderImage *renderer = static_cast<RenderImage *>(e->renderer());
- NSImage * image = (NSImage *)(renderer->pixmap().image());
- NSData *tiffData = [image TIFFRepresentationUsingCompression:NSTIFFCompressionLZW factor:0.0];
- wrapper = [[NSFileWrapper alloc] initRegularFileWithContents:tiffData];
- [wrapper setPreferredFilename:@"image.tiff"];
- [wrapper autorelease];
+ if (renderer->isImage()) {
+ wrapper = [[NSFileWrapper alloc] initRegularFileWithContents:[renderer->pixmap().imageRenderer() TIFFRepresentation]];
+ [wrapper setPreferredFilename:@"image.tiff"];
+ [wrapper autorelease];
+ }
}
return wrapper;
-
+
KWQ_UNBLOCK_EXCEPTIONS;
return nil;
1.149 +5 -5 WebCore/kwq/KWQPainter.mm
Index: KWQPainter.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQPainter.mm,v
retrieving revision 1.148
retrieving revision 1.149
diff -u -r1.148 -r1.149
--- KWQPainter.mm 27 Nov 2005 11:02:35 -0000 1.148
+++ KWQPainter.mm 8 Dec 2005 08:40:27 -0000 1.149
@@ -560,8 +560,8 @@
NSRect inRect = NSMakeRect(x, y, tw, th);
NSRect fromRect = NSMakeRect(sx, sy, tsw, tsh);
- [pixmap.imageRenderer drawImageInRect:inRect
- fromRect:fromRect compositeOperator:(NSCompositingOperation)compositeOperator context:context];
+ [pixmap.imageRenderer() drawImageInRect:inRect fromRect:fromRect compositeOperator:(NSCompositingOperation)compositeOperator context:context];
+
KWQ_UNBLOCK_EXCEPTIONS;
}
@@ -574,7 +574,7 @@
KWQ_BLOCK_EXCEPTIONS;
NSRect tempRect = { {x, y}, {w, h} }; // workaround for 4213314
NSPoint tempPoint = { sx, sy };
- [pixmap.imageRenderer tileInRect:tempRect fromPoint:tempPoint context:context];
+ [pixmap.imageRenderer() tileInRect:tempRect fromPoint:tempPoint context:context];
KWQ_UNBLOCK_EXCEPTIONS;
}
@@ -589,8 +589,8 @@
return drawPixmap(x, y, w, h, pixmap, sx, sy, sw, sh, -1, context);
KWQ_BLOCK_EXCEPTIONS;
- [pixmap.imageRenderer scaleAndTileInRect:NSMakeRect(x, y, w, h) fromRect:NSMakeRect(sx, sy, sw, sh)
- withHorizontalTileRule:(WebImageTileRule)hRule withVerticalTileRule:(WebImageTileRule)vRule context:context];
+ [pixmap.imageRenderer() scaleAndTileInRect:NSMakeRect(x, y, w, h) fromRect:NSMakeRect(sx, sy, sw, sh)
+ withHorizontalTileRule:(WebImageTileRule)hRule withVerticalTileRule:(WebImageTileRule)vRule context:context];
KWQ_UNBLOCK_EXCEPTIONS;
}
1.44 +10 -17 WebCore/kwq/KWQPixmap.h
Index: KWQPixmap.h
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQPixmap.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- KWQPixmap.h 30 Aug 2005 09:30:24 -0000 1.43
+++ KWQPixmap.h 8 Dec 2005 08:40:27 -0000 1.44
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2004, 2005 Apple Computer, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,13 +26,9 @@
#ifndef QPIXMAP_H_
#define QPIXMAP_H_
+#include "KWQNamespace.h"
#include "KWQPaintDevice.h"
-#include "KWQColor.h"
#include "KWQString.h"
-#include "KWQNamespace.h"
-#include "KWQImage.h"
-#include "KWQSize.h"
-#include "KWQRect.h"
#include <ApplicationServices/ApplicationServices.h>
@@ -49,9 +45,10 @@
class QWMatrix;
class QPainter;
class QPixmap;
+class QRect;
+class QSize;
-namespace khtml
-{
+namespace khtml {
class CachedImageCallback;
}
@@ -80,7 +77,6 @@
void resize(int, int);
QPixmap xForm(const QWMatrix &) const;
- QImage convertToImage() const { return QImage(); }
bool mask() const;
@@ -89,14 +85,14 @@
bool receivedData(const QByteArray &bytes, bool isComplete, khtml::CachedImageCallback *decoderCallback);
void stopAnimations();
- WebCoreImageRendererPtr image() { return imageRenderer; };
+ WebCoreImageRendererPtr imageRenderer() const { return m_imageRenderer; }
void increaseUseCount() const;
void decreaseUseCount() const;
void flushRasterCache();
- CGImageRef imageRef();
+ CGImageRef imageRef() const;
static bool shouldUseThreadedDecoding();
@@ -104,12 +100,9 @@
void setAnimationRect(const QRect&) const;
private:
-
- WebCoreImageRendererPtr imageRenderer;
-
- mutable bool needCopyOnWrite;
-
- NSString *MIMEType;
+ WebCoreImageRendererPtr m_imageRenderer;
+ mutable bool m_needCopyOnWrite;
+ NSString *m_MIMEType;
friend class QPainter;
1.52 +75 -89 WebCore/kwq/KWQPixmap.mm
Index: KWQPixmap.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQPixmap.mm,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- KWQPixmap.mm 3 Oct 2005 21:13:07 -0000 1.51
+++ KWQPixmap.mm 8 Dec 2005 08:40:27 -0000 1.52
@@ -22,108 +22,109 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "config.h"
-#import "loader.h"
+#include "config.h"
#import "KWQPixmap.h"
-#import "KWQFoundationExtras.h"
+#import "loader.h"
+#import "KWQFoundationExtras.h"
#import "WebCoreImageRenderer.h"
#import "WebCoreImageRendererFactory.h"
+using namespace khtml;
+
QPixmap *KWQLoadPixmap(const char *name)
{
QPixmap *p = new QPixmap([[WebCoreImageRendererFactory sharedFactory] imageRendererWithName:[NSString stringWithCString:name]]);
return p;
}
-bool canRenderImageType(const QString &type)
+bool canRenderImageType(const QString& type)
{
return [[[WebCoreImageRendererFactory sharedFactory] supportedMIMETypes] containsObject:type.getNSString()];
}
QPixmap::QPixmap()
{
- imageRenderer = nil;
- MIMEType = nil;
- needCopyOnWrite = false;
+ m_imageRenderer = nil;
+ m_MIMEType = nil;
+ m_needCopyOnWrite = false;
}
QPixmap::QPixmap(WebCoreImageRendererPtr r)
{
- imageRenderer = KWQRetain(r);
- MIMEType = nil;
- needCopyOnWrite = false;
+ m_imageRenderer = KWQRetain(r);
+ m_MIMEType = nil;
+ m_needCopyOnWrite = false;
}
QPixmap::QPixmap(void *MIME)
{
- imageRenderer = nil;
- MIMEType = KWQRetainNSRelease([(NSString *)MIME copy]);
- needCopyOnWrite = false;
+ m_imageRenderer = nil;
+ m_MIMEType = KWQRetainNSRelease([(NSString *)MIME copy]);
+ m_needCopyOnWrite = false;
}
-QPixmap::QPixmap(const QSize &sz)
+QPixmap::QPixmap(const QSize& sz)
{
- imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithSize:NSMakeSize(sz.width(), sz.height())]);
- MIMEType = nil;
- needCopyOnWrite = false;
+ m_imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithSize:sz]);
+ m_MIMEType = nil;
+ m_needCopyOnWrite = false;
}
-QPixmap::QPixmap(const QByteArray &bytes)
+QPixmap::QPixmap(const QByteArray& bytes)
{
- imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithBytes:bytes.data() length:bytes.size()]);
- MIMEType = nil;
- needCopyOnWrite = false;
+ m_imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithBytes:bytes.data() length:bytes.size()]);
+ m_MIMEType = nil;
+ m_needCopyOnWrite = false;
}
-QPixmap::QPixmap(const QByteArray &bytes, NSString *MIME)
+QPixmap::QPixmap(const QByteArray& bytes, NSString *MIME)
{
- MIMEType = KWQRetainNSRelease([MIME copy]);
- imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithBytes:bytes.data() length:bytes.size() MIMEType:MIMEType]);
- needCopyOnWrite = false;
+ m_MIMEType = KWQRetainNSRelease([MIME copy]);
+ m_imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithBytes:bytes.data() length:bytes.size() MIMEType:m_MIMEType]);
+ m_needCopyOnWrite = false;
}
QPixmap::QPixmap(int w, int h)
{
- imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithSize:NSMakeSize(w, h)]);
- MIMEType = nil;
- needCopyOnWrite = false;
+ m_imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithSize:NSMakeSize(w, h)]);
+ m_MIMEType = nil;
+ m_needCopyOnWrite = false;
}
-QPixmap::QPixmap(const QPixmap ©From) : QPaintDevice(copyFrom)
+QPixmap::QPixmap(const QPixmap& copyFrom) : QPaintDevice(copyFrom)
{
- imageRenderer = KWQRetainNSRelease([copyFrom.imageRenderer copyWithZone:NULL]);;
- needCopyOnWrite = false;
- MIMEType = KWQRetainNSRelease([copyFrom.MIMEType copy]);
+ m_imageRenderer = KWQRetainNSRelease([copyFrom.m_imageRenderer copyWithZone:NULL]);;
+ m_needCopyOnWrite = false;
+ m_MIMEType = KWQRetainNSRelease([copyFrom.m_MIMEType copy]);
}
QPixmap::~QPixmap()
{
- KWQRelease(MIMEType);
- KWQRelease(imageRenderer);
+ KWQRelease(m_MIMEType);
+ KWQRelease(m_imageRenderer);
}
-CGImageRef QPixmap::imageRef()
+CGImageRef QPixmap::imageRef() const
{
- return [imageRenderer imageRef];
+ return [m_imageRenderer imageRef];
}
void QPixmap::resetAnimation()
{
- if (imageRenderer) {
- [imageRenderer resetAnimation];
- }
+ if (m_imageRenderer)
+ [m_imageRenderer resetAnimation];
}
void QPixmap::setAnimationRect(const QRect& rect) const
{
- [imageRenderer setAnimationRect:NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height())];
+ [m_imageRenderer setAnimationRect:NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height())];
}
@interface WebImageCallback : NSObject
{
- khtml::CachedImageCallback *callback;
+ CachedImageCallback *callback;
CGImageSourceStatus status;
}
- (void)notify;
@@ -132,7 +133,7 @@
@end
@implementation WebImageCallback
-- initWithCallback:(khtml::CachedImageCallback *)c
+- initWithCallback:(CachedImageCallback *)c
{
self = [super init];
callback = c;
@@ -161,12 +162,10 @@
{
if (status < kCGImageStatusReadingHeader)
callback->notifyDecodingError();
- else if (status == kCGImageStatusIncomplete) {
+ else if (status == kCGImageStatusIncomplete)
callback->notifyUpdate();
- }
- else if (status == kCGImageStatusComplete) {
+ else if (status == kCGImageStatusComplete)
callback->notifyFinished();
- }
}
- (void)setImageSourceStatus:(CGImageSourceStatus)s
@@ -186,17 +185,16 @@
return [WebCoreImageRendererFactory shouldUseThreadedDecoding] ? true : false;
}
-bool QPixmap::receivedData(const QByteArray &bytes, bool isComplete, khtml::CachedImageCallback *decoderCallback)
+bool QPixmap::receivedData(const QByteArray& bytes, bool isComplete, CachedImageCallback *decoderCallback)
{
- if (imageRenderer == nil) {
- imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithMIMEType:MIMEType]);
- }
+ if (!m_imageRenderer)
+ m_imageRenderer = KWQRetain([[WebCoreImageRendererFactory sharedFactory] imageRendererWithMIMEType:m_MIMEType]);
WebImageCallback *callbackWrapper = nil;
if (decoderCallback)
callbackWrapper = [[WebImageCallback alloc] initWithCallback:decoderCallback];
- bool result = [imageRenderer incrementalLoadWithBytes:bytes.data() length:bytes.size() complete:isComplete callback:callbackWrapper];
+ bool result = [m_imageRenderer incrementalLoadWithBytes:bytes.data() length:bytes.size() complete:isComplete callback:callbackWrapper];
[callbackWrapper release];
@@ -210,60 +208,48 @@
bool QPixmap::isNull() const
{
- return imageRenderer == nil || [imageRenderer isNull];
+ return !m_imageRenderer || [m_imageRenderer isNull];
}
QSize QPixmap::size() const
{
- if (imageRenderer == nil) {
+ if (!m_imageRenderer)
return QSize(0, 0);
- }
- NSSize sz = [imageRenderer size];
- return QSize((int)sz.width, (int)sz.height);
+ return QSize([m_imageRenderer size]);
}
QRect QPixmap::rect() const
{
- if (imageRenderer == nil) {
- return QRect(0, 0, 0, 0);
- }
- NSSize sz = [imageRenderer size];
- return QRect(0, 0, (int)sz.width, (int)sz.height);
+ return QRect(QPoint(0, 0), size());
}
int QPixmap::width() const
{
- if (imageRenderer == nil) {
- return 0;
- }
- return (int)[imageRenderer size].width;
+ return size().width();
}
int QPixmap::height() const
{
- if (imageRenderer == nil) {
- return 0;
- }
- return (int)[imageRenderer size].height;
+ return size().height();
}
-void QPixmap::resize(const QSize &sz)
+void QPixmap::resize(const QSize& sz)
{
resize(sz.width(), sz.height());
}
void QPixmap::resize(int w, int h)
{
- if (needCopyOnWrite) {
- id <WebCoreImageRenderer> newImageRenderer = KWQRetainNSRelease([imageRenderer copyWithZone:NULL]);
- KWQRelease(imageRenderer);
- imageRenderer = newImageRenderer;
- needCopyOnWrite = false;
+ if (m_needCopyOnWrite) {
+ id <WebCoreImageRenderer> newImageRenderer = KWQRetainNSRelease([m_imageRenderer copyWithZone:NULL]);
+ KWQRelease(m_imageRenderer);
+ m_imageRenderer = newImageRenderer;
+ m_needCopyOnWrite = false;
}
- [imageRenderer resize:NSMakeSize(w, h)];
+ [m_imageRenderer resize:NSMakeSize(w, h)];
}
-QPixmap QPixmap::xForm(const QWMatrix &xmatrix) const
+QPixmap QPixmap::xForm(const QWMatrix& xmatrix) const
{
// This function is only called when an image needs to be scaled.
// We can depend on render_image.cpp to call resize AFTER
@@ -274,35 +260,35 @@
return *this;
}
-QPixmap &QPixmap::operator=(const QPixmap &assignFrom)
+QPixmap& QPixmap::operator=(const QPixmap& assignFrom)
{
- id <WebCoreImageRenderer> oldImageRenderer = imageRenderer;
- imageRenderer = KWQRetainNSRelease([assignFrom.imageRenderer retainOrCopyIfNeeded]);
+ id <WebCoreImageRenderer> oldImageRenderer = m_imageRenderer;
+ m_imageRenderer = KWQRetainNSRelease([assignFrom.m_imageRenderer retainOrCopyIfNeeded]);
KWQRelease(oldImageRenderer);
- NSString *newMIMEType = KWQRetainNSRelease([assignFrom.MIMEType copy]);
- KWQRelease(MIMEType);
- MIMEType = newMIMEType;
- assignFrom.needCopyOnWrite = true;
- needCopyOnWrite = true;
+ NSString *newMIMEType = KWQRetainNSRelease([assignFrom.m_MIMEType copy]);
+ KWQRelease(m_MIMEType);
+ m_MIMEType = newMIMEType;
+ assignFrom.m_needCopyOnWrite = true;
+ m_needCopyOnWrite = true;
return *this;
}
void QPixmap::increaseUseCount() const
{
- [imageRenderer increaseUseCount];
+ [m_imageRenderer increaseUseCount];
}
void QPixmap::decreaseUseCount() const
{
- [imageRenderer decreaseUseCount];
+ [m_imageRenderer decreaseUseCount];
}
void QPixmap::stopAnimations()
{
- [imageRenderer stopAnimation];
+ [m_imageRenderer stopAnimation];
}
void QPixmap::flushRasterCache()
{
- [imageRenderer flushRasterCache];
+ [m_imageRenderer flushRasterCache];
}
1.115 +3 -28 WebCore/kwq/KWQWidget.mm
Index: KWQWidget.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/KWQWidget.mm,v
retrieving revision 1.114
retrieving revision 1.115
diff -u -r1.114 -r1.115
--- KWQWidget.mm 30 Nov 2005 00:57:56 -0000 1.114
+++ KWQWidget.mm 8 Dec 2005 08:40:27 -0000 1.115
@@ -361,40 +361,15 @@
void QWidget::setCursor(const QCursor &cur)
{
KWQ_BLOCK_EXCEPTIONS;
- id view = data->view;
- while (view) {
+ for (id view = data->view; view; view = [view superview]) {
if ([view respondsToSelector:@selector(setDocumentCursor:)]) {
+ if ([view respondsToSelector:@selector(documentCursor)] && cur.handle() == [view documentCursor])
+ break;
[view setDocumentCursor:cur.handle()];
break;
}
- view = [view superview];
- }
- KWQ_UNBLOCK_EXCEPTIONS;
-}
-
-QCursor QWidget::cursor()
-{
- KWQ_BLOCK_EXCEPTIONS;
- QCursor cursor;
-
- id view = data->view;
- while (view) {
- if ([view respondsToSelector:@selector(documentCursor)]) {
- cursor = QCursor::makeWithNSCursor([view documentCursor]);
- break;
- }
- view = [view superview];
}
-
- return cursor;
KWQ_UNBLOCK_EXCEPTIONS;
-
- return QCursor();
-}
-
-void QWidget::unsetCursor()
-{
- setCursor(QCursor());
}
bool QWidget::event(QEvent *)
1.439 +8 -6 WebCore/kwq/WebCoreBridge.mm
Index: WebCoreBridge.mm
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreBridge.mm,v
retrieving revision 1.438
retrieving revision 1.439
diff -u -r1.438 -r1.439
--- WebCoreBridge.mm 5 Dec 2005 22:01:30 -0000 1.438
+++ WebCoreBridge.mm 8 Dec 2005 08:40:27 -0000 1.439
@@ -1110,20 +1110,22 @@
if (node) {
[element setObject:[DOMNode _nodeWithImpl:node] forKey:WebCoreElementDOMNodeKey];
+ // Only return image information if there is an image.
if (node->renderer() && node->renderer()->isImage()) {
RenderImage *r = static_cast<RenderImage *>(node->renderer());
- NSImage * image = (NSImage *)(r->pixmap().image());
- // Only return image information if there is an image.
- if (image && !r->isDisplayingError()) {
- [element setObject:r->pixmap().image() forKey:WebCoreElementImageKey];
+ if (!r->isDisplayingError()) {
+ QPixmap p = r->pixmap();
+ NSImage *image = [p.imageRenderer() image];
+ if (image)
+ [element setObject:image forKey:WebCoreElementImageKey];
}
-
+
int x, y;
if (r->absolutePosition(x, y)) {
NSValue *rect = [NSValue valueWithRect:NSMakeRect(x, y, r->contentWidth(), r->contentHeight())];
[element setObject:rect forKey:WebCoreElementImageRectKey];
}
-
+
ElementImpl *i = static_cast<ElementImpl*>(node);
// FIXME: Code copied from RenderImage::updateFromElement; should share.
1.18 +6 -3 WebCore/kwq/WebCoreImageRenderer.h
Index: WebCoreImageRenderer.h
===================================================================
RCS file: /cvs/root/WebCore/kwq/WebCoreImageRenderer.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- WebCoreImageRenderer.h 6 Nov 2005 21:47:28 -0000 1.17
+++ WebCoreImageRenderer.h 8 Dec 2005 08:40:27 -0000 1.18
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2003, 2005 Apple Computer, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -47,8 +47,11 @@
- (void)increaseUseCount;
- (void)decreaseUseCount;
- (void)flushRasterCache;
-- (CGImageRef)imageRef;
-- (NSImage *)image;
- (void)resetAnimation;
- (void)setAnimationRect:(NSRect)r;
+
+- (CGImageRef)imageRef;
+- (NSImage *)image;
+- (NSData *)TIFFRepresentation;
+
@end
1.3388 +16 -0 WebKit/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebKit/ChangeLog,v
retrieving revision 1.3387
retrieving revision 1.3388
diff -u -r1.3387 -r1.3388
--- ChangeLog 8 Dec 2005 07:41:08 -0000 1.3387
+++ ChangeLog 8 Dec 2005 08:40:29 -0000 1.3388
@@ -1,3 +1,19 @@
+2005-12-08 Darin Adler <darin at apple.com>
+
+ Reviewed by Eric.
+
+ - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5689
+ add support for CSS "custom cursors" (cursor images)
+
+ * WebCoreSupport.subproj/WebImageRenderer.h: Remove declaration of TIFFRepresentation and
+ image methods since both are required by the WebCoreImageRenderer protocol now and we don't
+ have to re-declare them.
+
+ * Misc.subproj/WebNSPasteboardExtras.m: Add an import of the WebCoreImageRenderer.h file
+ since we need to use methods inherited from that protocol.
+ * Misc.subproj/WebNSViewExtras.m: Ditto.
+ * WebCoreSupport.subproj/WebImageRenderer.m: Ditto. (Use and implement.)
+
2005-12-07 Mitz Pettel <opendarwin.org at mitzpettel.com>
Reviewed by Maciej, landed by Darin.
1.50 +1 -0 WebKit/Misc.subproj/WebNSPasteboardExtras.m
Index: WebNSPasteboardExtras.m
===================================================================
RCS file: /cvs/root/WebKit/Misc.subproj/WebNSPasteboardExtras.m,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- WebNSPasteboardExtras.m 14 Oct 2005 20:31:46 -0000 1.49
+++ WebNSPasteboardExtras.m 8 Dec 2005 08:40:32 -0000 1.50
@@ -28,6 +28,7 @@
#import <WebKit/WebNSPasteboardExtras.h>
+#import <WebCore/WebCoreImageRenderer.h>
#import <WebKit/WebArchive.h>
#import <WebKit/WebAssertions.h>
#import <WebKit/WebImageRenderer.h>
1.62 +3 -3 WebKit/Misc.subproj/WebNSViewExtras.m
Index: WebNSViewExtras.m
===================================================================
RCS file: /cvs/root/WebKit/Misc.subproj/WebNSViewExtras.m,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- WebNSViewExtras.m 6 Jun 2005 00:15:08 -0000 1.61
+++ WebNSViewExtras.m 8 Dec 2005 08:40:32 -0000 1.62
@@ -28,6 +28,7 @@
#import <WebKit/WebNSViewExtras.h>
+#import <WebCore/WebCoreImageRenderer.h>
#import <WebKit/WebDataSource.h>
#import <WebKit/WebFramePrivate.h>
#import <WebKit/WebFrameViewInternal.h>
@@ -209,9 +210,8 @@
NSPoint mouseDownPoint = [self convertPoint:[event locationInWindow] fromView:nil];
NSImage *dragImage;
NSPoint origin;
- NSImage *image;
-
- image = [wir image];
+
+ NSImage *image = [wir image];
if (image != nil && [image size].height * [image size].width <= WebMaxOriginalImageArea) {
NSSize originalSize = rect.size;
origin = rect.origin;
1.34 +0 -2 WebKit/WebCoreSupport.subproj/WebImageRenderer.h
Index: WebImageRenderer.h
===================================================================
RCS file: /cvs/root/WebKit/WebCoreSupport.subproj/WebImageRenderer.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- WebImageRenderer.h 16 Aug 2005 17:36:37 -0000 1.33
+++ WebImageRenderer.h 8 Dec 2005 08:40:33 -0000 1.34
@@ -56,8 +56,6 @@
- (NSRect)targetAnimationRect;
- (void)resize:(NSSize)s;
- (NSSize)size;
-- (NSData *)TIFFRepresentation;
-- (NSImage *)image;
@end
1.109 +3 -5 WebKit/WebCoreSupport.subproj/WebImageRenderer.m
Index: WebImageRenderer.m
===================================================================
RCS file: /cvs/root/WebKit/WebCoreSupport.subproj/WebImageRenderer.m,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -r1.108 -r1.109
--- WebImageRenderer.m 10 Sep 2005 17:36:09 -0000 1.108
+++ WebImageRenderer.m 8 Dec 2005 08:40:33 -0000 1.109
@@ -28,18 +28,16 @@
#import <WebKit/WebImageRenderer.h>
+#import <WebCore/WebCoreImageRenderer.h>
#import <WebKit/WebAssertions.h>
-#import <WebKit/WebImageRendererFactory.h>
#import <WebKit/WebGraphicsBridge.h>
#import <WebKit/WebHTMLView.h>
+#import <WebKit/WebImageData.h>
+#import <WebKit/WebImageRendererFactory.h>
#import <WebKit/WebImageView.h>
#import <WebKit/WebNSObjectExtras.h>
#import <WebKitSystemInterface.h>
-#import <WebCore/WebCoreImageRenderer.h>
-
-#import <WebKit/WebImageData.h>
-
// Forward declarations of internal methods.
@interface WebImageRenderer (WebInternal)
- (void)_startOrContinueAnimationIfNecessary;
More information about the webkit-changes
mailing list