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

📄 counter_tree.h

📁 konqueror3 embedded版本, KDE环境下的当家浏览器的嵌入式版本源码包.
💻 H
字号:
/* * This file is part of the HTML rendering engine for KDE. * * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) * * 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 _Counter_Tree_h_#define _Counter_Tree_h_#include "misc/shared.h"#include "rendering/render_object.h"namespace khtml {class CounterReset;// This file implements a counter-tree that is used for finding all parents in counters() lookup,// and for propagating count-changes when nodes are added or removed.// Please note that only counter-reset and root can be parents here, and that render-tree parents// are just counter-tree siblings// Implementation of counter-increment and counter-contentclass CounterNode{public:    CounterNode(RenderObject *o);    virtual ~CounterNode();    CounterReset* parent() const { return m_parent; }    CounterNode* previousSibling() const { return m_previous; }    CounterNode* nextSibling() const { return m_next; }    virtual CounterNode* firstChild() const { return 0; } ;    virtual CounterNode* lastChild() const { return 0; };    virtual void insertAfter ( CounterNode *newChild, CounterNode *refChild );    virtual void removeChild ( CounterNode *oldChild );    // Convenient self-refering version of the above    void remove();    int value() const { return m_value; };    void setValue(short v) { m_value = v; };    int count() const { return m_count; };    virtual bool isReset() { return false; };    virtual void recount( bool first = false );    virtual void setSelfDirty();    virtual void setParentDirty();    bool hasCounters() const { return m_hasCounters; };    bool isVisual() const { return m_isVisual; };    void setHasCounters();    void setIsVisual() { m_isVisual = true; };    bool isRoot() { return m_renderer && m_renderer->isRoot(); };    void setRenderer(RenderObject *o) { m_renderer = o; };    RenderObject* renderer() const { return m_renderer; };    friend class CounterReset;protected:    bool m_hasCounters : 1;    bool m_isVisual : 1;    short m_value;    short m_count;    CounterReset *m_parent;    CounterNode *m_previous;    CounterNode *m_next;    RenderObject *m_renderer;};// Implementation of counter-reset and rootclass CounterReset : public CounterNode{public:    CounterReset(RenderObject *o);    virtual ~CounterReset();    virtual CounterNode *firstChild() const { return m_first; };    virtual CounterNode *lastChild() const { return m_last; };    virtual void insertAfter ( CounterNode *newChild, CounterNode *refChild );    virtual void removeChild ( CounterNode *oldChild );    virtual bool isReset() { return true; };    virtual void recount( bool first = false );    virtual void setSelfDirty();    virtual void setParentDirty();    void updateTotal(int value);    // The highest value among children    int total() const { return m_total; };protected:    int m_total;    CounterNode *m_first;    CounterNode *m_last;};} // namespace#endif

⌨️ 快捷键说明

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