[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:40:18 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit d4e28277cab5eaf90a35ae7eee8ab4a03bbf6b66
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun May 4 22:17:37 2003 +0000

    	Add smallCaps boolean to the string drawing and measuring
    	routines.  WebCore should be done after this patch, with
    	the rest of the work being done entirely in WebKit.
    
            Reviewed by darin
    
            * khtml/rendering/font.cpp:
            (Font::drawText):
            (Font::floatWidth):
            (Font::floatCharacterWidths):
            (Font::width):
            * kwq/KWQFontMetrics.h:
            * kwq/KWQFontMetrics.mm:
            (QFontMetrics::width):
            (QFontMetrics::floatWidth):
            (QFontMetrics::floatCharacterWidths):
            * kwq/KWQPainter.h:
            * kwq/KWQPainter.mm:
            (QPainter::drawText):
            * kwq/WebCoreTextRenderer.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4272 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index e9c3530..d4b8bfd 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,28 @@
 2003-05-03  David Hyatt  <hyatt at apple.com>
 
+	Add smallCaps boolean to the string drawing and measuring
+	routines.  WebCore should be done after this patch, with
+	the rest of the work being done entirely in WebKit.
+	
+        Reviewed by darin
+
+        * khtml/rendering/font.cpp:
+        (Font::drawText):
+        (Font::floatWidth):
+        (Font::floatCharacterWidths):
+        (Font::width):
+        * kwq/KWQFontMetrics.h:
+        * kwq/KWQFontMetrics.mm:
+        (QFontMetrics::width):
+        (QFontMetrics::floatWidth):
+        (QFontMetrics::floatCharacterWidths):
+        * kwq/KWQPainter.h:
+        * kwq/KWQPainter.mm:
+        (QPainter::drawText):
+        * kwq/WebCoreTextRenderer.h:
+
+2003-05-03  David Hyatt  <hyatt at apple.com>
+
 	Rename layouted to needsLayout.  Add a layoutIfNeeded method
 	and start using it in places that do if (needsLayout()) layout();
 	
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index e9c3530..d4b8bfd 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,28 @@
 2003-05-03  David Hyatt  <hyatt at apple.com>
 
+	Add smallCaps boolean to the string drawing and measuring
+	routines.  WebCore should be done after this patch, with
+	the rest of the work being done entirely in WebKit.
+	
+        Reviewed by darin
+
+        * khtml/rendering/font.cpp:
+        (Font::drawText):
+        (Font::floatWidth):
+        (Font::floatCharacterWidths):
+        (Font::width):
+        * kwq/KWQFontMetrics.h:
+        * kwq/KWQFontMetrics.mm:
+        (QFontMetrics::width):
+        (QFontMetrics::floatWidth):
+        (QFontMetrics::floatCharacterWidths):
+        * kwq/KWQPainter.h:
+        * kwq/KWQPainter.mm:
+        (QPainter::drawText):
+        * kwq/WebCoreTextRenderer.h:
+
+2003-05-03  David Hyatt  <hyatt at apple.com>
+
 	Rename layouted to needsLayout.  Add a layoutIfNeeded method
 	and start using it in places that do if (needsLayout()) layout();
 	
diff --git a/WebCore/khtml/rendering/font.cpp b/WebCore/khtml/rendering/font.cpp
index 5d12bf1..3e600a7 100644
--- a/WebCore/khtml/rendering/font.cpp
+++ b/WebCore/khtml/rendering/font.cpp
@@ -43,7 +43,8 @@ void Font::drawText( QPainter *p, int x, int y, QChar *str, int slen, int pos, i
                      int toAdd, QPainter::TextDirection d, int from, int to, QColor bg ) const
 {
 #if APPLE_CHANGES
-    p->drawText(x, y, str + pos, std::min(slen - pos, len), from, to, toAdd, bg, d, letterSpacing, wordSpacing);
+    p->drawText(x, y, str + pos, std::min(slen - pos, len), from, to, toAdd, bg, d,
+                letterSpacing, wordSpacing, fontDef.smallCaps);
 #else
     QString qstr = QConstString(str, slen).string();
 
@@ -106,13 +107,13 @@ void Font::drawText( QPainter *p, int x, int y, QChar *str, int slen, int pos, i
 
 float Font::floatWidth( QChar *chs, int slen, int pos, int len ) const
 {
-    return fm.floatWidth(chs, slen, pos, len, letterSpacing, wordSpacing);
+    return fm.floatWidth(chs, slen, pos, len, letterSpacing, wordSpacing, fontDef.smallCaps);
 }
 
 
 void Font::floatCharacterWidths( QChar *str, int slen, int pos, int len, int toAdd, float *buffer) const
 {
-    fm.floatCharacterWidths(str, slen, pos, len, toAdd, buffer, letterSpacing, wordSpacing);
+    fm.floatCharacterWidths(str, slen, pos, len, toAdd, buffer, letterSpacing, wordSpacing, fontDef.smallCaps);
 }
 
 #endif
@@ -123,7 +124,7 @@ int Font::width( QChar *chs, int slen, int pos, int len ) const
 #ifndef ROUND_TO_INT
 #define ROUND_TO_INT(x) (unsigned int)((x)+.5)
 #endif
-    return ROUND_TO_INT(fm.floatWidth(chs+pos, slen-pos, 0, len, letterSpacing, wordSpacing));
+    return ROUND_TO_INT(fm.floatWidth(chs+pos, slen-pos, 0, len, letterSpacing, wordSpacing, fontDef.smallCaps));
 //    return fm.width(chs + pos, len);
 #else
     QString qstr = QConstString(chs+pos, len).string();
diff --git a/WebCore/kwq/KWQFontMetrics.h b/WebCore/kwq/KWQFontMetrics.h
index 09483d6..991509a 100644
--- a/WebCore/kwq/KWQFontMetrics.h
+++ b/WebCore/kwq/KWQFontMetrics.h
@@ -57,8 +57,10 @@ public:
     int width(const QString &, int len=-1) const;
     int charWidth(const QString &, int pos) const;
     int width(const QChar *, int len) const;
-    float floatWidth(const QChar *, int slen, int pos, int len, int letterSpacing, int wordSpacing) const;
-    float floatCharacterWidths(const QChar *, int slen, int pos, int len, int toAdd, float *buffer, int letterSpacing, int wordSpacing) const;
+    float floatWidth(const QChar *, int slen, int pos, int len,
+                     int letterSpacing, int wordSpacing, bool smallCaps) const;
+    float floatCharacterWidths(const QChar *, int slen, int pos, int len, int toAdd, float *buffer,
+                               int letterSpacing, int wordSpacing, bool smallCaps) const;
 
     QRect boundingRect(const QString &, int len=-1) const;
     QRect boundingRect(int, int, int, int, int, const QString &) const;
diff --git a/WebCore/kwq/KWQFontMetrics.mm b/WebCore/kwq/KWQFontMetrics.mm
index af061b2..247f9cc 100644
--- a/WebCore/kwq/KWQFontMetrics.mm
+++ b/WebCore/kwq/KWQFontMetrics.mm
@@ -162,8 +162,8 @@ int QFontMetrics::width(QChar qc) const
     UniChar c = qc.unicode();
 
     CREATE_FAMILY_ARRAY(data->font(), families);
-    
-    return ROUND_TO_INT([data->getRenderer() floatWidthForCharacters:&c stringLength:1 fromCharacterPosition:0 numberOfCharacters:1 withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths:0 letterSpacing:0 wordSpacing:0 fontFamilies: families]);
+
+    return ROUND_TO_INT([data->getRenderer() floatWidthForCharacters:&c stringLength:1 fromCharacterPosition:0 numberOfCharacters:1 withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths:0 letterSpacing:0 wordSpacing:0 smallCaps: false fontFamilies: families]);
 }
 
 int QFontMetrics::charWidth(const QString &s, int pos) const
@@ -182,7 +182,7 @@ int QFontMetrics::width(char c) const
 
     CREATE_FAMILY_ARRAY(data->font(), families);
 
-    return ROUND_TO_INT([data->getRenderer() floatWidthForCharacters:&ch stringLength:1 fromCharacterPosition:0 numberOfCharacters:1 withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths:0  letterSpacing:0 wordSpacing:0 fontFamilies: families]);
+    return ROUND_TO_INT([data->getRenderer() floatWidthForCharacters:&ch stringLength:1 fromCharacterPosition:0 numberOfCharacters:1 withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths:0  letterSpacing:0 wordSpacing:0 smallCaps: false fontFamilies: families]);
 }
 
 int QFontMetrics::width(const QString &qstring, int len) const
@@ -194,7 +194,7 @@ int QFontMetrics::width(const QString &qstring, int len) const
     
     CREATE_FAMILY_ARRAY(data->font(), families);
 
-    return ROUND_TO_INT([data->getRenderer() floatWidthForCharacters:(const UniChar *)qstring.unicode() stringLength:len fromCharacterPosition:0 numberOfCharacters:len withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths: 0 letterSpacing:0 wordSpacing:0 fontFamilies: families]);
+    return ROUND_TO_INT([data->getRenderer() floatWidthForCharacters:(const UniChar *)qstring.unicode() stringLength:len fromCharacterPosition:0 numberOfCharacters:len withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths: 0 letterSpacing:0 wordSpacing:0 smallCaps: false fontFamilies: families]);
 }
 
 int QFontMetrics::width(const QChar *uchars, int len) const
@@ -206,10 +206,11 @@ int QFontMetrics::width(const QChar *uchars, int len) const
     
     CREATE_FAMILY_ARRAY(data->font(), families);
 
-    return ROUND_TO_INT([data->getRenderer() floatWidthForCharacters:(const UniChar *)uchars stringLength:len fromCharacterPosition:0 numberOfCharacters:len withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths: 0 letterSpacing:0 wordSpacing:0 fontFamilies: families]);
+    return ROUND_TO_INT([data->getRenderer() floatWidthForCharacters:(const UniChar *)uchars stringLength:len fromCharacterPosition:0 numberOfCharacters:len withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths: 0 letterSpacing:0 wordSpacing:0 smallCaps: false fontFamilies: families]);
 }
 
-float QFontMetrics::floatWidth(const QChar *uchars, int slen, int pos, int len, int letterSpacing, int wordSpacing) const
+float QFontMetrics::floatWidth(const QChar *uchars, int slen, int pos, int len,
+                               int letterSpacing, int wordSpacing, bool smallCaps) const
 {
     if (data.isNull()) {
         ERROR("called floatWidth on an empty QFontMetrics");
@@ -218,10 +219,10 @@ float QFontMetrics::floatWidth(const QChar *uchars, int slen, int pos, int len,
     
     CREATE_FAMILY_ARRAY(data->font(), families);
 
-    return [data->getRenderer() floatWidthForCharacters:(const UniChar *)uchars stringLength:slen fromCharacterPosition:pos numberOfCharacters:len withPadding: 0 applyRounding: YES attemptFontSubstitution: YES widths: 0 letterSpacing:letterSpacing wordSpacing:wordSpacing fontFamilies: families];
+    return [data->getRenderer() floatWidthForCharacters:(const UniChar *)uchars stringLength:slen fromCharacterPosition:pos numberOfCharacters:len withPadding: 0 applyRounding: YES attemptFontSubstitution: YES widths: 0 letterSpacing:letterSpacing wordSpacing:wordSpacing smallCaps: smallCaps fontFamilies: families];
 }
 
-float QFontMetrics::floatCharacterWidths(const QChar *uchars, int slen, int pos, int len, int toAdd, float *buffer, int letterSpacing, int wordSpacing) const
+float QFontMetrics::floatCharacterWidths(const QChar *uchars, int slen, int pos, int len, int toAdd, float *buffer, int letterSpacing, int wordSpacing, bool smallCaps) const
 {
     if (data.isNull()) {
         ERROR("called floatCharacterWidths on an empty QFontMetrics");
@@ -229,8 +230,8 @@ float QFontMetrics::floatCharacterWidths(const QChar *uchars, int slen, int pos,
     }
     
     CREATE_FAMILY_ARRAY(data->font(), families);
-    
-    return [data->getRenderer() floatWidthForCharacters:(const UniChar *)uchars stringLength:slen fromCharacterPosition:pos numberOfCharacters:len withPadding: toAdd applyRounding: YES attemptFontSubstitution: YES widths: (float *)buffer letterSpacing:letterSpacing wordSpacing: wordSpacing fontFamilies: families];
+
+    return [data->getRenderer() floatWidthForCharacters:(const UniChar *)uchars stringLength:slen fromCharacterPosition:pos numberOfCharacters:len withPadding: toAdd applyRounding: YES attemptFontSubstitution: YES widths: (float *)buffer letterSpacing:letterSpacing wordSpacing: wordSpacing smallCaps: smallCaps fontFamilies: families];
 }
 
 QRect QFontMetrics::boundingRect(const QString &qstring, int len) const
diff --git a/WebCore/kwq/KWQPainter.h b/WebCore/kwq/KWQPainter.h
index 9590311..a82f4cb 100644
--- a/WebCore/kwq/KWQPainter.h
+++ b/WebCore/kwq/KWQPainter.h
@@ -95,7 +95,8 @@ public:
 
     void drawText(int x, int y, int, int, int alignmentFlags, const QString &);
     void drawText(int x, int y, const QChar *, int length, int from, int to, int toAdd,
-                  const QColor& backgroundColor, QPainter::TextDirection d, int letterSpacing, int wordSpacing);
+                  const QColor& backgroundColor, QPainter::TextDirection d,
+                  int letterSpacing, int wordSpacing, bool smallCaps);
     void drawLineForText(int x, int y, int yOffset, int width);
     static QColor selectedTextBackgroundColor();
     
diff --git a/WebCore/kwq/KWQPainter.mm b/WebCore/kwq/KWQPainter.mm
index b6182cd..88adf1d 100644
--- a/WebCore/kwq/KWQPainter.mm
+++ b/WebCore/kwq/KWQPainter.mm
@@ -473,7 +473,7 @@ void QPainter::drawText(int x, int y, int, int, int alignmentFlags, const QStrin
     
     const UniChar* str = (const UniChar*)qstring.unicode();
     if (alignmentFlags & Qt::AlignRight)
-        x -= ROUND_TO_INT([data->textRenderer floatWidthForCharacters:(const UniChar *)str stringLength:qstring.length() fromCharacterPosition:0 numberOfCharacters:qstring.length() withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths: 0 letterSpacing: 0 wordSpacing: 0 fontFamilies: families]);
+        x -= ROUND_TO_INT([data->textRenderer floatWidthForCharacters:(const UniChar *)str stringLength:qstring.length() fromCharacterPosition:0 numberOfCharacters:qstring.length() withPadding: 0 applyRounding:YES attemptFontSubstitution: YES widths: 0 letterSpacing: 0 wordSpacing: 0 smallCaps: false fontFamilies: families]);
      
     [data->textRenderer drawCharacters:str stringLength:qstring.length()
         fromCharacterPosition:0 
@@ -485,10 +485,11 @@ void QPainter::drawText(int x, int y, int, int, int alignmentFlags, const QStrin
         rightToLeft: false
         letterSpacing: 0
         wordSpacing: 0
+        smallCaps: false
         fontFamilies: families];
 }
 
-void QPainter::drawText(int x, int y, const QChar *str, int len, int from, int to, int toAdd, const QColor &backgroundColor, QPainter::TextDirection d, int letterSpacing, int wordSpacing)
+void QPainter::drawText(int x, int y, const QChar *str, int len, int from, int to, int toAdd, const QColor &backgroundColor, QPainter::TextDirection d, int letterSpacing, int wordSpacing, bool smallCaps)
 {
     if (data->state.paintingDisabled || len <= 0)
         return;
@@ -510,6 +511,7 @@ void QPainter::drawText(int x, int y, const QChar *str, int len, int from, int t
         rightToLeft: d == RTL ? true : false
         letterSpacing: letterSpacing
         wordSpacing: wordSpacing
+        smallCaps: smallCaps
         fontFamilies: families];
 }
 
diff --git a/WebCore/kwq/WebCoreTextRenderer.h b/WebCore/kwq/WebCoreTextRenderer.h
index 59c6854..f71985e 100644
--- a/WebCore/kwq/WebCoreTextRenderer.h
+++ b/WebCore/kwq/WebCoreTextRenderer.h
@@ -38,10 +38,11 @@
 - (float)xHeight;
 
 // horizontal metrics
-- (float)floatWidthForCharacters:(const unichar *)characters stringLength:(unsigned)length fromCharacterPosition:(int)pos numberOfCharacters:(int)len withPadding:(int)padding applyRounding:(BOOL)applyRounding attemptFontSubstitution:(BOOL)attemptFontSubstitution widths:(float *)buffer letterSpacing:(int)letterSpacing wordSpacing:(int)wordSpacing fontFamilies:(NSString **)families;
+- (float)floatWidthForCharacters:(const unichar *)characters stringLength:(unsigned)length fromCharacterPosition:(int)pos numberOfCharacters:(int)len withPadding:(int)padding applyRounding:(BOOL)applyRounding attemptFontSubstitution:(BOOL)attemptFontSubstitution widths:(float *)buffer letterSpacing:(int)letterSpacing wordSpacing:(int)wordSpacing smallCaps:(BOOL)smallCaps
+fontFamilies:(NSString **)families;
 
 // drawing
-- (void)drawCharacters:(const UniChar *)characters stringLength:(unsigned)length fromCharacterPosition:(int)from toCharacterPosition:(int)to atPoint:(NSPoint)point withPadding:(int)padding withTextColor:(NSColor *)textColor backgroundColor:(NSColor *)backgroundColor rightToLeft:(BOOL)rtl letterSpacing:(int)letterSpacing wordSpacing:(int)wordSpacing fontFamilies:(NSString **)families;
+- (void)drawCharacters:(const UniChar *)characters stringLength:(unsigned)length fromCharacterPosition:(int)from toCharacterPosition:(int)to atPoint:(NSPoint)point withPadding:(int)padding withTextColor:(NSColor *)textColor backgroundColor:(NSColor *)backgroundColor rightToLeft:(BOOL)rtl letterSpacing:(int)letterSpacing wordSpacing:(int)wordSpacing smallCaps:(BOOL)smallCaps fontFamilies:(NSString **)families;
 - (void)drawLineForCharacters:(NSPoint)point yOffset:(float)yOffset withWidth:(int)width withColor:(NSColor *)color;
 
 @end

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list