Changeset 13594 in webkit


Ignore:
Timestamp:
Mar 30, 2006 7:12:40 PM (18 years ago)
Author:
hyatt
Message:

Land focus ring bug fix and win theme improvements.

Location:
trunk/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/platform/cairo/GraphicsContextCairo.cpp

    r13470 r13594  
    443443    // FIXME: These rects should be rounded
    444444    cairo_rectangle(m_data->context, finalFocusRect.x(), finalFocusRect.y(), finalFocusRect.width(), finalFocusRect.height());
    445     setPen(color);
     445   
     446    // Force the alpha to 50%.  This matches what the Mac does with outline rings.
     447    Color ringColor(color.red(), color.green(), color.blue(), 127);
     448    setColor(m_data->context, ringColor);
    446449    cairo_stroke(m_data->context);
    447450}
  • trunk/WebCore/platform/win/TemporaryLinkStubs.cpp

    r13583 r13594  
    268268Path& Path::operator=(const Path&){ return*this; }
    269269
    270 bool RenderThemeWin::paintCheckbox(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return false; }
    271 bool RenderThemeWin::paintRadio(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return false; }
    272 bool RenderThemeWin::paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return false; }
    273 bool RenderThemeWin::paintTextField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return false; }
    274 
    275270QLineEdit::QLineEdit(QLineEdit::Type) { }
    276271QLineEdit::~QLineEdit() { }
  • trunk/WebCore/rendering/RenderTheme.cpp

    r13567 r13594  
    113113    }
    114114   
    115     return false;
     115    return true;
    116116}
    117117bool RenderTheme::shouldPaintBorder(RenderObject* o)
  • trunk/WebCore/rendering/RenderTheme.h

    r13393 r13594  
    101101    // Methods for each appearance value.
    102102    virtual void adjustCheckboxStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const;
    103     virtual bool paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) = 0;
     103    virtual bool paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) { return true; }
    104104    virtual void setCheckboxSize(RenderStyle* style) const {};
    105105   
    106106    virtual void adjustRadioStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const;
    107     virtual bool paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) = 0;
     107    virtual bool paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) { return true; }
    108108    virtual void setRadioSize(RenderStyle* style) const {};
    109109   
    110110    virtual void adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const;
    111     virtual bool paintButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) = 0;
     111    virtual bool paintButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) { return true; }
    112112    virtual void setButtonSize(RenderStyle* style) const {};
    113113
    114114    virtual void adjustTextFieldStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const;
    115     virtual bool paintTextField(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) = 0;
     115    virtual bool paintTextField(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r) { return true; }
    116116};
    117117
  • trunk/WebCore/rendering/RenderThemeWin.cpp

    r13123 r13594  
    3232}
    3333
     34void RenderThemeWin::addIntrinsicMargins(RenderStyle* style) const
     35{
     36    // Cut out the intrinsic margins completely if we end up using a small font size
     37    if (style->fontSize() < 11)
     38        return;
     39   
     40    // Intrinsic margin value.
     41    const int m = 2;
     42   
     43    // FIXME: Using width/height alone and not also dealing with min-width/max-width is flawed.
     44    if (style->width().isIntrinsicOrAuto()) {
     45        if (style->marginLeft().quirk())
     46            style->setMarginLeft(Length(m, Fixed));
     47        if (style->marginRight().quirk())
     48            style->setMarginRight(Length(m, Fixed));
     49    }
     50
     51    if (style->height().isAuto()) {
     52        if (style->marginTop().quirk())
     53            style->setMarginTop(Length(m, Fixed));
     54        if (style->marginBottom().quirk())
     55            style->setMarginBottom(Length(m, Fixed));
     56    }
    3457}
     58
     59void RenderThemeWin::adjustCheckboxStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const
     60{
     61    addIntrinsicMargins(style);
     62}
     63
     64void RenderThemeWin::adjustRadioStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const
     65{
     66    addIntrinsicMargins(style);
     67}
     68
     69void RenderThemeWin::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const
     70{
     71    addIntrinsicMargins(style);
     72}
     73
     74void RenderThemeWin::adjustTextFieldStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const
     75{
     76    addIntrinsicMargins(style);
     77}
     78
     79}
  • trunk/WebCore/rendering/RenderThemeWin.h

    r13393 r13594  
    2828namespace WebCore {
    2929
    30     class RenderThemeWin : public RenderTheme {
     30class RenderThemeWin : public RenderTheme {
     31public:
     32    virtual void adjustCheckboxStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const;
     33    virtual void adjustRadioStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const;
     34    virtual void adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const;
     35    virtual void adjustTextFieldStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const;
    3136
    32     protected:
    33         virtual bool paintCheckbox(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);   
    34         virtual bool paintRadio(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
    35         virtual bool paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
    36         virtual bool paintTextField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
    37     };
     37private:
     38    void addIntrinsicMargins(RenderStyle* style) const;
     39};
    3840
    3941};
Note: See TracChangeset for help on using the changeset viewer.