Reviewed by Geoff.

        - <rdar://problem/4885227>
          frame resizing is now live and no longer does direct drawing

        * html/HTMLFrameSetElement.h: Made frameBorder() and noResize() const.
        Added rowLengths() and colLengths() getters so that we don't have to
        have RenderFrameSet as a friend. Stopped using bit fields.

        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::defaultEventHandler): Removed now-uneeded
        check for contextmenu events. Look at return value from userResize to
        decide whether to mark the event as "default handled". In the case where
        the event is handled, don't call through to the base class.

        * rendering/RenderFrameSet.h: No longer mark HTMLFrameSetElement as a
        friend. Made positionFrames and canResize private, and changed canResize
        to take an IntPoint. Added isResizingRow, isResizingColumn, canResizeRow,
        and canResizeColumn functions to be used soon for cursor feedback.
        Removed override of non-virtual element() function and replaced it with
        a private frameSet() inline function. Grouped all the data members for
        each axis into a GridAxis class, and made one called m_cols and one called
        m_rows. Used vectors for the resizable bits of this instead of new/delete
        arrays. Added a constant named "noSplit" so we don't have to use -1
        everywhere explicitly for this purpose. Renamed setResizing to
        setIsResizing and made it private. Eliminated resizing() function.
        Added new private helper functions, layOutAxis, findNonResizableSplits,
        splitPosition, hitTestSplit, startResizing, and continueResizing.
        Renamed m_resizing to m_isResizing, and m_clientResizing to
        m_isChildResizing.

        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::RenderFrameSet): Removed now-unneeded initialization
        that is handled by the GridAxis and Vector constructors.
        (WebCore::RenderFrameSet::~RenderFrameSet): Ditto (for destructors).
        (WebCore::RenderFrameSet::GridAxis::GridAxis): Added.
        (WebCore::RenderFrameSet::frameSet): Added. Inline function so we don't have
        to cast the result of node() or element() everywhere.
        (WebCore::RenderFrameSet::nodeAtPoint): Updated for name changes.
        (WebCore::RenderFrameSet::GridAxis::resize): Added. Helper function to be used
        in the layout function.
        (WebCore::RenderFrameSet::layOutAxis): Added. Factored out the part of the
        layout function that used to be inside a for loop for the two axes.
        The algorithm is otherwise unchanged.
        (WebCore::RenderFrameSet::findNonResizableSplits): Added. Factored out the
        code that set up the "split variable" arrays from the layout function.
        (WebCore::RenderFrameSet::layout): Moved the bulk of this function into the
        new helpers. This allowed me to remove the use of goto.
        (WebCore::RenderFrameSet::positionFrames): Updated for change to data structures.
        Also added some more local variables for clarity.
        (WebCore::RenderFrameSet::startResizing): Added. Code factored out of the
        userResize function that handles mousedown events that might begin a resize.
        (WebCore::RenderFrameSet::continueResizing): Added. Code factored out of the
        userResize function that handles mouse events that continue a resize already
        in progress, including mouseup events that end the resizing. Uses the new
        splitPosition function so it can be used over and over again while resizing.
        (WebCore::RenderFrameSet::userResize): Restructured to use the new helper
        functions. Removed the direct drawing of a gray bar during mouse movement;
        instead we do the resizing live.
        (WebCore::RenderFrameSet::setIsResizing): Updated for name changes.
        (WebCore::RenderFrameSet::isResizingRow): Added.
        (WebCore::RenderFrameSet::isResizingColumn): Added.
        (WebCore::RenderFrameSet::canResize): Changed to use hitTestSplit for clarity.
        (WebCore::RenderFrameSet::canResizeRow): Added.
        (WebCore::RenderFrameSet::canResizeColumn): Added.
        (WebCore::RenderFrameSet::splitPosition): Added.
        (WebCore::RenderFrameSet::hitTestSplit): Added. Contains the guts of the code
        that was used both in canResize and userResize before -- now it's shared.
        (WebCore::RenderFrameSet::dump): Updated for name changes.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@18333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
5 files changed