Bug #: 3829
authoreseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Jul 2005 08:03:26 +0000 (08:03 +0000)
committereseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 7 Jul 2005 08:03:26 +0000 (08:03 +0000)
Submitted by: eseidel
Reviewed by: mjs
        * kwq/DOM-CSS.mm:
        (-[DOMRGBColor _color]): changed to nsColor()
        * kwq/KWQAccObject.mm:
        (AXAttributeStringSetStyle): changed to nsColor()
        * kwq/KWQColor.h: Added defs for KDOM.
        * kwq/KWQColor.mm:
        (qRed): like qAlpha, kcanvas required.
        (qGreen): like qAlpha, kcanvas required.
        (qBlue): like qAlpha, kcanvas required.
        (parseHexColor): copied from khtml/css/cssparser.h
        (QColor::QColor): QColor(QString), will lookup by hex code.
        (nsColor): now plain function, instead of member function. (mjs)
        (CGColorFromNSColor): stolen from QPalette.mm
        (cgColor): added to support CGColor, like nsColor()
        (QColor::getRgbaF): new, for KCanvas, from Qt 4.
        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::attributedString): changed to nsColor()
        (KWQKHTMLPart::fontAttributesForSelectionStart): nsColor()
        (KWQKHTMLPart::bodyBackgroundColor): changed to nsColor()
        * kwq/KWQLineEdit.mm:
        (QLineEdit::setPalette): changed to nsColor()
        * kwq/KWQPainter.mm:
        (QPainter::_setColorFromBrush): changed to nsColor()
        (QPainter::_setColorFromPen): changed to nsColor()
        (QPainter::drawText): changed to nsColor()
        (QPainter::drawHighlightForText): changed to nsColor()
        (QPainter::drawLineForText): changed to nsColor()
        (QPainter::_fillRect): changed to nsColor()
        (QPainter::setShadow): changed to cgColor()
        (QPainter::drawFocusRing): changed to nsColor()
        * kwq/KWQTextEdit.mm:
        (QTextEdit::setPalette): changed to nsColor()
        * kwq/WebCoreBridge.mm:
        (-[WebCoreBridge selectionColor]): changed to nsColor()
        This patch ended up larger than intended after discussing
        with mjs about adding getCGColor() and getCIColor()
        We decided that having separate nsColor(), cgColor() and
        ciColor() defined elsewhere, was cleanest.
        The rest of the patch is QColor additions for kdom/ksvg/kcanvas.
        http://bugzilla.opendarwin.org/show_bug.cgi?id=3829

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9611 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/kwq/DOM-CSS.mm
WebCore/kwq/KWQAccObject.mm
WebCore/kwq/KWQColor.h
WebCore/kwq/KWQColor.mm
WebCore/kwq/KWQKHTMLPart.mm
WebCore/kwq/KWQLineEdit.mm
WebCore/kwq/KWQPainter.mm
WebCore/kwq/KWQTextEdit.mm
WebCore/kwq/WebCoreBridge.mm

index a09b19cb1e79ff3c62372bf2ac97b47d15c1165b..fc1335bdce02a1cc697da48ba63329509794c07b 100644 (file)
@@ -1,3 +1,48 @@
+2005-07-07  Eric Seidel  <eseidel@apple.com>
+
+        Reviewed by mjs.
+
+        * kwq/DOM-CSS.mm:
+        (-[DOMRGBColor _color]): changed to nsColor()
+        * kwq/KWQAccObject.mm:
+        (AXAttributeStringSetStyle): changed to nsColor()
+        * kwq/KWQColor.h: Added defs for KDOM.
+        * kwq/KWQColor.mm: 
+        (qRed): like qAlpha, kcanvas required.
+        (qGreen): like qAlpha, kcanvas required.
+        (qBlue): like qAlpha, kcanvas required.
+        (parseHexColor): copied from khtml/css/cssparser.h
+        (QColor::QColor): QColor(QString), will lookup by hex code.
+        (nsColor): now plain function, instead of member function. (mjs)
+        (CGColorFromNSColor): stolen from QPalette.mm
+        (cgColor): added to support CGColor, like nsColor()
+        (QColor::getRgbaF): new, for KCanvas, from Qt 4.
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::attributedString): changed to nsColor()
+        (KWQKHTMLPart::fontAttributesForSelectionStart): nsColor()
+        (KWQKHTMLPart::bodyBackgroundColor): changed to nsColor()
+        * kwq/KWQLineEdit.mm:
+        (QLineEdit::setPalette): changed to nsColor()
+        * kwq/KWQPainter.mm:
+        (QPainter::_setColorFromBrush): changed to nsColor()
+        (QPainter::_setColorFromPen): changed to nsColor()
+        (QPainter::drawText): changed to nsColor()
+        (QPainter::drawHighlightForText): changed to nsColor()
+        (QPainter::drawLineForText): changed to nsColor()
+        (QPainter::_fillRect): changed to nsColor()
+        (QPainter::setShadow): changed to cgColor()
+        (QPainter::drawFocusRing): changed to nsColor()
+        * kwq/KWQTextEdit.mm:
+        (QTextEdit::setPalette): changed to nsColor()
+        * kwq/WebCoreBridge.mm:
+        (-[WebCoreBridge selectionColor]): changed to nsColor()
+        This patch ended up larger than intended after discussing
+        with mjs about adding getCGColor() and getCIColor()
+        We decided that having separate nsColor(), cgColor() and 
+        ciColor() defined elsewhere, was cleanest.
+        The rest of the patch is QColor additions for kdom/ksvg/kcanvas.
+        http://bugzilla.opendarwin.org/show_bug.cgi?id=3829
+
 2005-07-07  Eric Seidel  <eseidel@apple.com>
 
         Reviewed by mjs.
index 2a0d6315138e4798132d80876f449bee8877c49f..51b70b1386279ca7b14a10218191cd314f568c9a 100644 (file)
@@ -1126,7 +1126,7 @@ void removeWrapperForRGB(QRgb value)
 - (NSColor *)_color
 {
     QRgb rgb = reinterpret_cast<QRgb>(_internal);
-    return QColor(rgb).getNSColor();
+    return nsColor(QColor(rgb));
 }
 
 @end
index 79b994b614cf17939f63441a2e09f8af0eb6d6f2..41b8f7dd5886f7ed398b57040f4b8ee7414b30d5 100644 (file)
@@ -1242,8 +1242,8 @@ static void AXAttributeStringSetStyle(NSMutableAttributedString *attrString, Ren
     AXAttributeStringSetFont(attrString, NSAccessibilityFontTextAttribute, style->font().getNSFont(), range);
 
     // set basic colors
-    AXAttributeStringSetColor(attrString, NSAccessibilityForegroundColorTextAttribute, style->color().getNSColor(), range);
-    AXAttributeStringSetColor(attrString, NSAccessibilityBackgroundColorTextAttribute, style->backgroundColor().getNSColor(), range);
+    AXAttributeStringSetColor(attrString, NSAccessibilityForegroundColorTextAttribute, nsColor(style->color()), range);
+    AXAttributeStringSetColor(attrString, NSAccessibilityBackgroundColorTextAttribute, nsColor(style->backgroundColor()), range);
 
     // set super/sub scripting
     EVerticalAlign alignment = style->verticalAlign();
@@ -1280,12 +1280,12 @@ static void AXAttributeStringSetStyle(NSMutableAttributedString *attrString, Ren
         
         if ((decor & khtml::UNDERLINE) != 0) {
             AXAttributeStringSetNumber(attrString, NSAccessibilityUnderlineTextAttribute, [NSNumber numberWithBool:YES], range);
-            AXAttributeStringSetColor(attrString, NSAccessibilityUnderlineColorTextAttribute, underline.getNSColor(), range);
+            AXAttributeStringSetColor(attrString, NSAccessibilityUnderlineColorTextAttribute, nsColor(underline), range);
         }
 
         if ((decor & khtml::LINE_THROUGH) != 0) {
             AXAttributeStringSetNumber(attrString, NSAccessibilityStrikethroughTextAttribute, [NSNumber numberWithBool:YES], range);
-            AXAttributeStringSetColor(attrString, NSAccessibilityStrikethroughColorTextAttribute, linethrough.getNSColor(), range);
+            AXAttributeStringSetColor(attrString, NSAccessibilityStrikethroughColorTextAttribute, nsColor(linethrough), range);
         }
     }
 }
index b9364dc4ec588418fb78637a0938db5b5ae3e4f9..0f07451832f900508722cd3881c7bd8b0f62ce35 100644 (file)
 class NSColor;
 #endif
 
+typedef struct CGColor *CGColorRef;
+
 typedef unsigned int QRgb;                     // RGBA quadruplet
 
 QRgb qRgb(int r, int g, int b);
 QRgb qRgba(int r, int g, int b, int a);
 int qAlpha(QRgb rgba);
+int qRed(QRgb rgba);
+int qGreen(QRgb rgba);
+int qBlue(QRgb rgba);
 
 class QColor {
 public:
     QColor() : color(0), valid(false) { }
     QColor(QRgb col) : color(col), valid(true) { }
     QColor(int r, int g, int b) : color(qRgb(r, g, b)), valid(true) { }
+    explicit QColor(const QString &);
     explicit QColor(const char *);
     
     QString name() const;
@@ -59,6 +65,7 @@ public:
     QRgb rgb() const { return color & 0xFFFFFFFF; } // Preserve the alpha.
     void setRgb(int r, int g, int b) { color = qRgb(r, g, b); valid = true; }
     void setRgb(int rgb) { color = rgb; valid = true; /* Alpha may be set. Preserve it. */ }
+    void getRgbaF(float *, float *, float *, float *) const;
 
     void hsv(int *, int *, int *) const;
     void setHsv(int h, int s, int v);
@@ -69,8 +76,6 @@ public:
     friend bool operator==(const QColor &a, const QColor &b);
     friend bool operator!=(const QColor &a, const QColor &b);
 
-    NSColor *getNSColor() const;
-
 private:
     QRgb color;
     bool valid : 1;
@@ -86,4 +91,7 @@ inline bool operator!=(const QColor &a, const QColor &b)
     return a.color != b.color || a.valid != b.valid;
 }
 
+NSColor *nsColor(const QColor &);
+CGColorRef cgColor(const QColor &);
+
 #endif
index f3a6071f3b0ea59ed2bf1155d6982b4b9ca2d0f3..2262da0635cb8a84081b2ac4253c3576cdbd9e04 100644 (file)
@@ -28,6 +28,7 @@
 #import "KWQNamespace.h"
 #import "KWQString.h"
 #import "KWQAssertions.h"
+#import "KWQPainter.h"
 
 // NSColor calls don't throw, so no need to block Cocoa exceptions in this file
 
@@ -59,12 +60,71 @@ int qAlpha(QRgb rgba)
     return (rgba >> 24) & 0xFF; 
 }
 
+int qRed(QRgb rgba)
+{
+    return (rgba >> 16) & 0xFF; 
+}
+
+int qGreen(QRgb rgba)
+{
+    return (rgba >> 8) & 0xFF; 
+}
+
+int qBlue(QRgb rgba)
+{
+    return rgba & 0xFF; 
+}
+
+// copied from khtml/css/cssparser.h
+static inline bool parseHexColor(const QString &name, QRgb &rgb)
+{
+    int len = name.length();
+    
+    if ( !len )
+        return false;
+    bool ok;
+    
+    if ( len == 3 || len == 6 ) {
+        int val = name.toInt(&ok, 16);
+        if ( ok ) {
+            if (len == 6) {
+                rgb =  (0xff << 24) | val;
+                return true;
+            }
+            else if ( len == 3 ) {
+                // #abc converts to #aabbcc according to the specs
+                rgb = (0xff << 24) |
+                (val&0xf00)<<12 | (val&0xf00)<<8 |
+                (val&0xf0)<<8 | (val&0xf0)<<4 |
+                (val&0xf)<<4 | (val&0xf);
+                return true;
+            }
+        }
+    }
+    return false;
+}
+
+QColor::QColor(const QString &name) {
+    if(name.startsWith("#")) {
+        valid = parseHexColor(name.mid(1), color);
+    } else {
+        const Color *foundColor = findColor(name.ascii(), name.length());
+        color = foundColor ? foundColor->RGBValue : 0;
+        color |= 0xFF000000;
+        valid = foundColor;
+    }
+}
+
 QColor::QColor(const char *name)
 {
-    const Color *foundColor = findColor(name, strlen(name));
-    color = foundColor ? foundColor->RGBValue : 0;
-    color |= 0xFF000000;
-    valid = foundColor;
+    if(name[0] == '#') {
+        valid = parseHexColor(QString(name).mid(1), color);
+    } else {
+        const Color *foundColor = findColor(name, strlen(name));
+        color = foundColor ? foundColor->RGBValue : 0;
+        color |= 0xFF000000;
+        valid = foundColor;
+    }
 }
 
 QString QColor::name() const
@@ -217,9 +277,9 @@ QColor QColor::dark(int factor) const
     return result;
 }
 
-NSColor *QColor::getNSColor() const
+NSColor *nsColor(const QColor &color)
 {
-    unsigned c = color & 0xFFFFFFFF;
+    unsigned c = color.rgb();
     switch (c) {
         case 0: {
             // Need this to avoid returning nil because cachedRGBAValues will default to 0.
@@ -246,15 +306,15 @@ NSColor *QColor::getNSColor() const
             }
 
 #if COLORMATCH_EVERYTHING
-            NSColor *result = [NSColor colorWithCalibratedRed:red() / 255.0
-                                                        green:green() / 255.0
-                                                         blue:blue() / 255.0
-                                                        alpha:qAlpha(color)/255.0];
+            NSColor *result = [NSColor colorWithCalibratedRed:qRed(c) / 255.0
+                                                        green:qGreen(c) / 255.0
+                                                         blue:qBlue(c) / 255.0
+                                                        alpha:qAlpha(c/255.0];
 #else
-            NSColor *result = [NSColor colorWithDeviceRed:red() / 255.0
-                                                    green:green() / 255.0
-                                                     blue:blue() / 255.0
-                                                    alpha:qAlpha(color)/255.0];
+            NSColor *result = [NSColor colorWithDeviceRed:qRed(c) / 255.0
+                                                    green:qGreen(c) / 255.0
+                                                     blue:qBlue(c) / 255.0
+                                                    alpha:qAlpha(c/255.0];
 #endif
 
             static int cursor;
@@ -269,3 +329,36 @@ NSColor *QColor::getNSColor() const
         }
     }
 }
+
+static CGColorRef CGColorFromNSColor(NSColor *color)
+{
+    // this needs to always use device colorspace so it can de-calibrate the color for
+    // CGColor to possibly recalibrate it
+    NSColor* deviceColor = [color colorUsingColorSpaceName:NSDeviceRGBColorSpace];
+    float red = [deviceColor redComponent];
+    float green = [deviceColor greenComponent];
+    float blue = [deviceColor blueComponent];
+    float alpha = [deviceColor alphaComponent];
+    const float components[] = { red, green, blue, alpha };
+    
+    CGColorSpaceRef colorSpace = QPainter::rgbColorSpace();
+    CGColorRef cgColor = CGColorCreate(colorSpace, components);
+    CGColorSpaceRelease(colorSpace);
+    return cgColor;
+}
+
+CGColorRef cgColor(const QColor &c)
+{
+    // We could directly create a CGColor here, but that would
+    // skip any rgb caching the nsColor method does.  A direct 
+    // creation should be investigated for a possible performance win.
+    return CGColorFromNSColor(nsColor(c));
+}
+
+void QColor::getRgbaF(float *r, float *g, float *b, float *a) const
+{
+    *r = (float)red() / 255.0;
+    *g = (float)green() / 255.0;
+    *b = (float)blue() / 255.0;
+    *a = (float)alpha() / 255.0;
+}
index d782e6127c15073ca416f1a871e767fb916848d4..8a4405ef3ea57acbd8f0dbba0fa759851caa1cfb 100644 (file)
@@ -3001,9 +3001,9 @@ NSAttributedString *KWQKHTMLPart::attributedString(NodeImpl *_start, int startOf
                     NSMutableDictionary *attrs = [[NSMutableDictionary alloc] init];
                     [attrs setObject:font forKey:NSFontAttributeName];
                     if (style && style->color().isValid() && qAlpha(style->color().rgb()) != 0)
-                        [attrs setObject:style->color().getNSColor() forKey:NSForegroundColorAttributeName];
+                        [attrs setObject:nsColor(style->color()) forKey:NSForegroundColorAttributeName];
                     if (style && style->backgroundColor().isValid() && qAlpha(style->backgroundColor().rgb()) != 0)
-                        [attrs setObject:style->backgroundColor().getNSColor() forKey:NSBackgroundColorAttributeName];
+                        [attrs setObject:nsColor(style->backgroundColor()) forKey:NSBackgroundColorAttributeName];
 
                     if (text.length() > 0) {
                         hasParagraphBreak = false;
@@ -3085,9 +3085,9 @@ NSAttributedString *KWQKHTMLPart::attributedString(NodeImpl *_start, int startOf
                                 attrs = [[NSMutableDictionary alloc] init];
                                 [attrs setObject:font forKey:NSFontAttributeName];
                                 if (style && style->color().isValid())
-                                    [attrs setObject:style->color().getNSColor() forKey:NSForegroundColorAttributeName];
+                                    [attrs setObject:nsColor(style->color()) forKey:NSForegroundColorAttributeName];
                                 if (style && style->backgroundColor().isValid())
-                                    [attrs setObject:style->backgroundColor().getNSColor() forKey:NSBackgroundColorAttributeName];
+                                    [attrs setObject:nsColor(style->backgroundColor()) forKey:NSBackgroundColorAttributeName];
             
                                 NSAttributedString *partialString = [[NSAttributedString alloc] initWithString:listText.getNSString() attributes:attrs];
                                 [attrs release];
@@ -3557,20 +3557,20 @@ NSDictionary *KWQKHTMLPart::fontAttributesForSelectionStart() const
     NSMutableDictionary *result = [NSMutableDictionary dictionary];
 
     if (style->backgroundColor().isValid() && style->backgroundColor().alpha() != 0)
-        [result setObject:style->backgroundColor().getNSColor() forKey:NSBackgroundColorAttributeName];
+        [result setObject:nsColor(style->backgroundColor()) forKey:NSBackgroundColorAttributeName];
 
     if (style->font().getNSFont())
         [result setObject:style->font().getNSFont() forKey:NSFontAttributeName];
 
     if (style->color().isValid() && style->color() != black)
-        [result setObject:style->color().getNSColor() forKey:NSForegroundColorAttributeName];
+        [result setObject:nsColor(style->color()) forKey:NSForegroundColorAttributeName];
 
     ShadowData *shadow = style->textShadow();
     if (shadow) {
         NSShadow *s = [[NSShadow alloc] init];
         [s setShadowOffset:NSMakeSize(shadow->x, shadow->y)];
         [s setShadowBlurRadius:shadow->blur];
-        [s setShadowColor:shadow->color.getNSColor()];
+        [s setShadowColor:nsColor(shadow->color)];
         [result setObject:s forKey:NSShadowAttributeName];
     }
 
@@ -3782,7 +3782,7 @@ NSColor *KWQKHTMLPart::bodyBackgroundColor() const
     if (xmlDocImpl() && xmlDocImpl()->body() && xmlDocImpl()->body()->renderer()) {
         QColor bgColor = xmlDocImpl()->body()->renderer()->style()->backgroundColor();
         if (bgColor.isValid()) {
-            return bgColor.getNSColor();
+            return nsColor(bgColor);
         }
     }
     return nil;
index f7f7acd43bbb29d5925c504823fd49063fd3f26b..bde54e6b0b034900619d8cb185d56c263fc7a8b6 100644 (file)
@@ -121,12 +121,12 @@ void QLineEdit::setPalette(const QPalette &palette)
     // backgrounds on some text fields as described in <rdar://problem/3854383>.  Text fields will still not be able to display
     // transparent and translucent backgrounds, which will need to be fixed in the future.  See  <rdar://problem/3865114>.
         
-    [textField setTextColor:palette.foreground().getNSColor()];
+    [textField setTextColor:nsColor(palette.foreground())];
 
     QColor background = palette.background();
     if (!background.isValid() || background.alpha() == 0)
         background = Qt::white;
-    [textField setBackgroundColor:background.getNSColor()];
+    [textField setBackgroundColor:nsColor(background)];
 
     KWQ_UNBLOCK_EXCEPTIONS;
 }
index 546105eb24bb39412fc0c408e92d2101985de78c..1e8348a41fa519e13abf76094e78f2fca3a5b332 100644 (file)
@@ -70,24 +70,6 @@ struct QPainterPrivate {
     QColor focusRingColor;
 };
 
-
-static CGColorRef CGColorFromNSColor(NSColor *color)
-{
-    // this needs to always use device colorspace so it can de-calibrate the color for
-    // CGColor to possibly recalibrate it
-    NSColor* deviceColor = [color colorUsingColorSpaceName:NSDeviceRGBColorSpace];
-    float red = [deviceColor redComponent];
-    float green = [deviceColor greenComponent];
-    float blue = [deviceColor blueComponent];
-    float alpha = [deviceColor alphaComponent];
-    const float components[] = { red, green, blue, alpha };
-    
-    CGColorSpaceRef colorSpace = QPainter::rgbColorSpace();
-    CGColorRef cgColor = CGColorCreate(colorSpace, components);
-    CGColorSpaceRelease(colorSpace);
-    return cgColor;
-}
-
 QPainter::QPainter() : data(new QPainterPrivate), _isForPrinting(false), _usesInactiveTextBackgroundColor(false), _drawsFocusRing(true)
 {
 }
@@ -212,12 +194,12 @@ void QPainter::drawRect(int x, int y, int w, int h)
 
 void QPainter::_setColorFromBrush()
 {
-    [data->state.brush.color().getNSColor() set];
+    [nsColor(data->state.brush.color()) set];
 }
 
 void QPainter::_setColorFromPen()
 {
-    [data->state.pen.color().getNSColor() set];
+    [nsColor(data->state.pen.color()) set];
 }
 
 // This is only used to draw borders.
@@ -615,7 +597,7 @@ void QPainter::drawText(int x, int y, int, int, int alignmentFlags, const QStrin
     
     WebCoreTextStyle style;
     WebCoreInitializeEmptyTextStyle(&style);
-    style.textColor = data->state.pen.color().getNSColor();
+    style.textColor = nsColor(data->state.pen.color());
     style.families = families;
     
     if (alignmentFlags & Qt::AlignRight)
@@ -648,8 +630,8 @@ void QPainter::drawText(int x, int y, const QChar *str, int len, int from, int t
     WebCoreInitializeTextRun(&run, (const UniChar *)str, len, from, to);    
     WebCoreTextStyle style;
     WebCoreInitializeEmptyTextStyle(&style);
-    style.textColor = data->state.pen.color().getNSColor();
-    style.backgroundColor = backgroundColor.isValid() ? backgroundColor.getNSColor() : nil;
+    style.textColor = nsColor(data->state.pen.color());
+    style.backgroundColor = backgroundColor.isValid() ? nsColor(backgroundColor) : nil;
     style.rtl = d == RTL ? true : false;
     style.visuallyOrdered = visuallyOrdered;
     style.letterSpacing = letterSpacing;
@@ -686,8 +668,8 @@ void QPainter::drawHighlightForText(int x, int y, int h,
     WebCoreInitializeTextRun(&run, (const UniChar *)str, len, from, to);    
     WebCoreTextStyle style;
     WebCoreInitializeEmptyTextStyle(&style);
-    style.textColor = data->state.pen.color().getNSColor();
-    style.backgroundColor = backgroundColor.isValid() ? backgroundColor.getNSColor() : nil;
+    style.textColor = nsColor(data->state.pen.color());
+    style.backgroundColor = backgroundColor.isValid() ? nsColor(backgroundColor) : nil;
     style.rtl = d == RTL ? true : false;
     style.visuallyOrdered = visuallyOrdered;
     style.letterSpacing = letterSpacing;
@@ -713,7 +695,7 @@ void QPainter::drawLineForText(int x, int y, int yOffset, int width)
         drawLineForCharacters: NSMakePoint(x, y)
                yOffset:(float)yOffset
                  width: width
-                 color:data->state.pen.color().getNSColor()
+                 color:nsColor(data->state.pen.color())
              thickness:data->state.pen.width()];
 }
 
@@ -762,7 +744,7 @@ QColor QPainter::selectedTextBackgroundColor() const
 // A fillRect designed to work around buggy behavior in NSRectFill.
 void QPainter::_fillRect(float x, float y, float w, float h, const QColor& col)
 {
-    [col.getNSColor() set];
+    [nsColor(col) set];
     NSRectFillUsingOperation(NSMakeRect(x,y,w,h), NSCompositeSourceOver);
 }
 
@@ -832,12 +814,12 @@ void QPainter::setShadow(int x, int y, int blur, const QColor& color)
     if (!color.isValid()) {
         CGContextSetShadow(context, CGSizeMake(x,-y), blur); // y is flipped.
     } else {
-       CGColorRef cgColor = CGColorFromNSColor(color.getNSColor());
+       CGColorRef colorCG = cgColor(color);
         CGContextSetShadowWithColor(context,
                                     CGSizeMake(x,-y), // y is flipped.
                                     blur, 
-                                    cgColor);
-        CGColorRelease(cgColor);
+                                    colorCG);
+        CGColorRelease(colorCG);
     }
 }
 
@@ -899,7 +881,7 @@ void QPainter::drawFocusRing()
     NSRect bounds = [data->focusRingPath bounds];
     if (!NSIsEmptyRect(bounds)) {
         int radius = (data->focusRingWidth-1)/2;
-        NSColor *color = data->hasFocusRingColor ? data->focusRingColor.getNSColor() : nil;
+        NSColor *color = data->hasFocusRingColor ? nsColor(data->focusRingColor) : nil;
         [NSGraphicsContext saveGraphicsState];
         [[WebCoreGraphicsBridge sharedBridge] setFocusRingStyle:NSFocusRingOnly radius:radius color:color];
         [data->focusRingPath fill];
index 2f7b536eeb40e75d6deea9bcc58ee404fcd5cf2d..3b421e2c7cb7f4ddd903bbbb8c79f42210c191b0 100644 (file)
@@ -396,12 +396,12 @@ void QTextEdit::setPalette(const QPalette &palette)
     // as described in <rdar://problem/3854383>.  We now call setDrawsBackground:NO when the background color is completely 
     // transparent.  This does not solve the problem for translucent background colors for textareas <rdar://problem/3865161>.
 
-    [textArea setTextColor:palette.foreground().getNSColor()];
+    [textArea setTextColor:nsColor(palette.foreground())];
 
     QColor background = palette.background();
     if (!background.isValid())
         background = Qt::white;
-    [textArea setBackgroundColor:background.getNSColor()];
+    [textArea setBackgroundColor:nsColor(background)];
     [textArea setDrawsBackground:background.alpha() != 0];
 
     KWQ_UNBLOCK_EXCEPTIONS;
index 79c3af0646a6e53503a3adaf53508e20a673b8af..c3bf7f6b791baa76974bdb5ce176afd44351979e 100644 (file)
@@ -1440,7 +1440,7 @@ static HTMLFormElementImpl *formElementFromDOMElement(DOMElement *element)
     if (root) {
         RenderStyle *pseudoStyle = root->getPseudoStyle(RenderStyle::SELECTION);
         if (pseudoStyle && pseudoStyle->backgroundColor().isValid()) {
-            return pseudoStyle->backgroundColor().getNSColor();
+            return nsColor(pseudoStyle->backgroundColor());
         }
     }
     return _part->displaysWithFocusAttributes() ? [NSColor selectedTextBackgroundColor] : [NSColor secondarySelectedControlColor];