[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.0/kdelibs/khtml
From:       Germain Garand <germain () ebooksfrance ! org>
Date:       2008-04-22 14:15:07
Message-ID: 1208873707.089458.12438.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 799845 by ggarand:

automatically merged revision 796958:
rework our form widgets' baselines to align
on the text content, rather than on the
widget boundaries. Iow:              _______
       _______                      |       |
      |       |                     | ipsum |
Lorem | ipsum |  rather than: Lorem |_______|
      |_______|

 M  +1 -0      css/html4.css  
 M  +38 -2     rendering/render_form.cpp  
 M  +3 -0      rendering/render_form.h  


--- branches/KDE/4.0/kdelibs/khtml/css/html4.css #799844:799845
@@ -332,6 +332,7 @@
         display: inline-block;
         border: 2px outset buttonface;
         background-color: buttonface;
+        font-size: small;
         -khtml-background-clip: padding;
         color: buttontext;
         padding: 2px 2px 2px 2px;
--- branches/KDE/4.0/kdelibs/khtml/rendering/render_form.cpp #799844:799845
@@ -444,7 +444,10 @@
 
 short RenderSubmitButton::baselinePosition( bool f ) const
 {
-    return RenderFormElement::baselinePosition( f );
+    int ret = (height()-paddingTop()-paddingBottom()+1)/2;
+    ret += marginTop() + paddingTop();
+    ret += ((fontMetrics( f ).ascent())/2)-2;
+    return ret;
 }
 
 
@@ -661,6 +664,17 @@
     setQWidget(edit);
 }
 
+short RenderLineEdit::baselinePosition( bool f ) const
+{
+    bool hasFrame = static_cast<LineEditWidget*>(widget())->hasFrame();
+    int bTop = hasFrame ? 0 : borderTop();
+    int bBottom = hasFrame ? 0 : borderBottom();
+    int ret = (height()-paddingTop()-paddingBottom()-bTop-bBottom+1)/2;
+    ret += marginTop() + paddingTop() + bTop;
+    ret += ((fontMetrics( f ).ascent())/2)-2;
+    return ret;
+}
+
 void RenderLineEdit::setStyle(RenderStyle* _style)
 {
     RenderFormElement::setStyle( _style );
@@ -1012,8 +1026,16 @@
     m_haveFocus = false;
 }
 
+short RenderFileButton::baselinePosition( bool f ) const
+{
+    int bTop = borderTop();
+    int bBottom = borderBottom();
+    int ret = (height()-paddingTop()-paddingBottom()-bTop-bBottom+1)/2;
+    ret += marginTop() + paddingTop() + bTop;
+    ret += ((fontMetrics( f ).ascent())/2)-2;
+    return ret;
+}
 
-
 void RenderFileButton::calcMinMaxWidth()
 {
     KHTMLAssert( !minMaxKnown() );
@@ -1333,6 +1355,20 @@
     RenderFormElement::updateFromElement();
 }
 
+short RenderSelect::baselinePosition( bool f ) const
+{
+    if (m_useListBox)
+        return RenderFormElement::baselinePosition(f);
+
+    bool hasFrame = static_cast<KComboBox*>(widget())->hasFrame();
+    int bTop = hasFrame ? 0 : borderTop();
+    int bBottom = hasFrame ? 0 : borderBottom();
+    int ret = (height()-paddingTop()-paddingBottom()-bTop-bBottom+1)/2;
+    ret += marginTop() + paddingTop() + bTop;
+    ret += ((fontMetrics( f ).ascent())/2)-2;
+    return ret;
+}
+
 void RenderSelect::calcMinMaxWidth()
 {
     KHTMLAssert( !minMaxKnown() );
--- branches/KDE/4.0/kdelibs/khtml/rendering/render_form.h #799844:799845
@@ -255,6 +255,7 @@
     virtual const char *renderName() const { return "RenderLineEdit"; }
     virtual void updateFromElement();
     virtual void setStyle(RenderStyle *style);
+    virtual short baselinePosition( bool ) const;
 
     void select();
 
@@ -351,6 +352,7 @@
     virtual const char *renderName() const { return "RenderFileButton"; }
     virtual void calcMinMaxWidth();
     virtual void updateFromElement();
+    virtual short baselinePosition( bool ) const;
     void select();
 
     KUrlRequester *widget() const { return static_cast<KUrlRequester*>(m_widget); }
@@ -445,6 +447,7 @@
     bool selectionChanged() { return m_selectionChanged; }
     void setSelectionChanged(bool _selectionChanged) { m_selectionChanged = _selectionChanged; }
     virtual void updateFromElement();
+    virtual short baselinePosition( bool ) const;
 
     void updateSelection();
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic