Reviewed by Adele.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Apr 2006 01:11:28 +0000 (01:11 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Apr 2006 01:11:28 +0000 (01:11 +0000)
commit708150d83f5d7cc2648fd05a2417c0436b6946b4
tree8a5eafa044eaa2836dbea528a1a1d48aaeaaa591
parentcb335b7c290423a3185be59389722a557f0c062e
    Reviewed by Adele.

        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8123
          focus ring on new text field doesn't look like the old one

        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7685
          Focus ring color should change to match graphite when system theme is graphite

        - some cleanup to how we parse user agent style sheets

        * css/CSSValueKeywords.in: Added -webkit-focus-ring-color.

        * css/cssstyleselector.cpp:
        (WebCore::parseUASheet): Parse an array of chars instead of UTF-16.
        Cuts the size of the style sheet in half.
        (WebCore::CSSStyleSelector::applyProperty): Allow negative value for
        outline-offset. Changed shadow parsing to use getColorFromPrimitiveValue
        instead of repeating the same logic.
        (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Added a case
        for the focus ring color.
        * rendering/render_style.h: (WebCore::RenderStyle::setOutlineOffset):
        Changed to allow negative values.

        * css/html4.css: Removed a lot of excess spaces. Changed color of focus
        to -webkit-focus-ring-color. Changed width of focus to 5px.
        Added an outline-offset for <input type=text> of -2px.

        * css/cssparser.cpp:
        (WebCore::CSSParser::parseValue): Added focus ring color as an outline color all
        the time, and as any other color when not in strict mode. I'm confused about what's
        best for this whole strict mode policy, and I may need advice on Hyatt to perfect
        this one later.
        (WebCore::CSSParser::parseColorFromValue): Removed code to pin r, g, and b because
        the functions in platform already take care of that. Kept the pinning of a, though
        because that's done in floating point before converting to an integer.
        (WebCore::CSSParser::parseShadow): Allow focus ring color when not in strict mode.

        * bridge/mac/FrameMac.h: Eliminated the virtual detachFromView function.
        * bridge/mac/FrameMac.mm:
        (WebCore::FrameMac::FrameMac): Eliminated code to maintain the frame instances list.
        (WebCore::FrameMac::~FrameMac): Ditto.
        (WebCore::Frame::setNeedsReapplyStyles): Added.

        * bridge/mac/WebCoreSettings.mm: (-[WebCoreSettings _updateAllViews]):
        * platform/mac/WebCoreTextRendererFactory.mm:
        (-[WebCoreTextRendererFactory clearCaches]):
        Changed to call the new Page::setNeedsReapplyStylesForSettingsChange instead of using the
        obsolete Frame::instances.

        * page/Frame.h: Removed instances, mutableInstances, and detachFromView.
        * page/Frame.cpp: Ditto.

        * page/FrameTree.cpp:
        (WebCore::FrameTree::~FrameTree): Call setView(0) instead of detachFromView().
        (WebCore::FrameTree::removeChild): Ditto.

        * page/Page.h:
        * page/Page.cpp:
        (WebCore::Page::init): Added a set of pages instead of a page count. Also
        register a function for when the focus ring color changes the first time this
        is called.
        (WebCore::Page::~Page): Call setView(0) instead of detachFromView. Also update
        to manager the set of pages.
        (WebCore::Page::setNeedsReapplyStyles): Call setNeedsReapplyStyles on all frames.
        (WebCore::Page::setNeedsReapplyStylesForSettingsChange): Call setNeedsReapplyStyles
        on all frames with the passed-in settings.

        * css/make-css-file-arrays.pl: Changed to run the C preprocessor on the
        input files and to generate an array of char instead of unsigned short.

        * platform/PlatformString.h: Added a constructor that takes a char* and
        a length.
        * platform/String.cpp: (WebCore::String::String): Ditto.

        * WebCore.xcodeproj/project.pbxproj: Just some tweaks; adding in a few files like
        the user agent style sheets.

        * platform/Color.h: Removed all use of DeprecatedString. Cleaned up a bit.
        Added focusRingColor and setFocusRingColorChangeFunction.
        * platform/Color.cpp:
        (WebCore::makeRGB): Rewrote using max and min.
        (WebCore::makeRGBA): Ditto.
        (WebCore::parseHexColor): Cleaned up a bit; changed partway to String instead of
        DeprecatedString.
        (WebCore::Color::Color): Changed to use String and to call setNamedColor to save code.
        (WebCore::Color::setNamedColor): Changed to use String in the interface.

        * platform/mac/ColorMac.mm:
        (WebCore::observeTheme): Added. Function used to start up the observer.
        (WebCore::setFocusRingColorChangeFunction): Added. Used to get a call back so we can
        update all the views when the color changes (including recomputing style to get the
        color change in).
        (WebCore::setFocusRingColorChangeFunction): Added. Returns one of the two focus
        ring colors. Both of these match what AppKit uses -- neither matches what we used
        to have in the html4.css file.
        (+[WebCoreControlTintObserver controlTintDidChange]): Added. Used to update when
        the appearance is changed from blue to graphite and back. We keep a global so we
        don't have to call over to AppKit every time; that's probably overkill but we need
        the obsever for the color change function anyway.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@13639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
23 files changed:
WebCore/ChangeLog
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bindings/scripts/CodeGeneratorJS.pm
WebCore/bridge/mac/FrameMac.h
WebCore/bridge/mac/FrameMac.mm
WebCore/bridge/mac/WebCoreSettings.mm
WebCore/css/CSSValueKeywords.in
WebCore/css/cssparser.cpp
WebCore/css/cssstyleselector.cpp
WebCore/css/html4.css
WebCore/css/make-css-file-arrays.pl
WebCore/page/Frame.cpp
WebCore/page/Frame.h
WebCore/page/FrameTree.cpp
WebCore/page/Page.cpp
WebCore/page/Page.h
WebCore/platform/Color.cpp
WebCore/platform/Color.h
WebCore/platform/PlatformString.h
WebCore/platform/String.cpp
WebCore/platform/mac/ColorMac.mm
WebCore/platform/mac/WebCoreTextRendererFactory.mm
WebCore/rendering/render_style.h