⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 renderselectioninfo.h

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 H
字号:
/* * Copyright (C) 2000 Lars Knoll (knoll@kde.org) *           (C) 2000 Antti Koivisto (koivisto@kde.org) *           (C) 2000 Dirk Mueller (mueller@kde.org) *           (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB.  If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * */#ifndef SelectionInfo_h#define SelectionInfo_h#include "IntRect.h"#include "RenderBox.h"namespace WebCore {class RenderSelectionInfoBase {public:    RenderSelectionInfoBase()        : m_object(0)        , m_repaintContainer(0)        , m_state(RenderObject::SelectionNone)    {    }    RenderSelectionInfoBase(RenderObject* o)        : m_object(o)        , m_repaintContainer(o->containerForRepaint())        , m_state(o->selectionState())    {    }        RenderObject* object() const { return m_object; }    RenderBoxModelObject* repaintContainer() const { return m_repaintContainer; }    RenderObject::SelectionState state() const { return m_state; }protected:    RenderObject* m_object;    RenderBoxModelObject* m_repaintContainer;    RenderObject::SelectionState m_state;};// This struct is used when the selection changes to cache the old and new state of the selection for each RenderObject.class RenderSelectionInfo : public RenderSelectionInfoBase {public:    RenderSelectionInfo(RenderObject* o, bool clipToVisibleContent)        : RenderSelectionInfoBase(o)        , m_rect(o->needsLayout() ? IntRect() : o->selectionRectForRepaint(m_repaintContainer, clipToVisibleContent))    {    }        void repaint()    {        m_object->repaintUsingContainer(m_repaintContainer, m_rect);    }    IntRect rect() const { return m_rect; }private:    IntRect m_rect; // relative to repaint container};// This struct is used when the selection changes to cache the old and new state of the selection for each RenderBlock.class RenderBlockSelectionInfo : public RenderSelectionInfoBase {public:    RenderBlockSelectionInfo(RenderBlock* b)        : RenderSelectionInfoBase(b)        , m_rects(b->needsLayout() ? GapRects() : block()->selectionGapRectsForRepaint(m_repaintContainer))    {     }    void repaint()    {        m_object->repaintUsingContainer(m_repaintContainer, m_rects);    }        RenderBlock* block() const { return toRenderBlock(m_object); }    GapRects rects() const { return m_rects; }private:    GapRects m_rects; // relative to repaint container};} // namespace WebCore#endif // SelectionInfo_h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -