File indexing completed on 2024-04-28 15:23:17

0001 /*
0002  *  This file is part of the KDE libraries
0003  *  Copyright (C) 2001 Peter Kelly (pmk@post.com)
0004  *
0005  *  This library is free software; you can redistribute it and/or
0006  *  modify it under the terms of the GNU Library General Public
0007  *  License as published by the Free Software Foundation; either
0008  *  version 2 of the License, or (at your option) any later version.
0009  *
0010  *  This library is distributed in the hope that it will be useful,
0011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013  *  Library General Public License for more details.
0014  *
0015  *  You should have received a copy of the GNU Library General Public
0016  *  License along with this library; if not, write to the Free Software
0017  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0018  */
0019 
0020 #ifndef _KJS_VIEWS_H_
0021 #define _KJS_VIEWS_H_
0022 
0023 #include "ecma/kjs_dom.h"
0024 #include "xml/dom2_viewsimpl.h"
0025 
0026 namespace KJS
0027 {
0028 
0029 class DOMAbstractView : public DOMObject
0030 {
0031 public:
0032     DOMAbstractView(ExecState *, DOM::AbstractViewImpl *av);
0033     ~DOMAbstractView();
0034 
0035     JSValue *getValueProperty(ExecState *exec, int token);
0036     using KJS::JSObject::getOwnPropertySlot;
0037     bool getOwnPropertySlot(ExecState *exec, const Identifier &propertyName, PropertySlot &slot) override;
0038 
0039     // no put - all read-only
0040     const ClassInfo *classInfo() const override
0041     {
0042         return &info;
0043     }
0044     static const ClassInfo info;
0045     virtual DOM::AbstractViewImpl *impl() const
0046     {
0047         return m_impl.get();
0048     }
0049     enum { Document, GetComputedStyle };
0050 protected:
0051     SharedPtr<DOM::AbstractViewImpl> m_impl;
0052 };
0053 
0054 JSValue *getDOMAbstractView(ExecState *exec, DOM::AbstractViewImpl *av);
0055 
0056 /**
0057  * Convert an object to an AbstractView. Returns a null Node if not possible.
0058  */
0059 DOM::AbstractViewImpl *toAbstractView(JSValue *);
0060 
0061 } // namespace
0062 
0063 #endif