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

0001 /*
0002  *  This file is part of the KDE libraries
0003  *  Copyright (C) 2000 Harri Porten (porten@kde.org)
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_NAVIGATOR_H_
0021 #define _KJS_NAVIGATOR_H_
0022 
0023 #include <kjs/object.h>
0024 #include "kjs_binding.h"
0025 
0026 class KHTMLPart;
0027 
0028 namespace KJS
0029 {
0030 
0031 class Navigator : public JSObject
0032 {
0033 public:
0034     Navigator(ExecState *exec, KHTMLPart *p);
0035     using KJS::JSObject::getOwnPropertySlot;
0036     bool getOwnPropertySlot(ExecState *exec, const Identifier &propertyName, PropertySlot &slot) override;
0037     JSValue *getValueProperty(ExecState *exec, int token) const;
0038     const ClassInfo *classInfo() const override
0039     {
0040         return &info;
0041     }
0042     static const ClassInfo info;
0043     enum { AppCodeName, AppName, AppVersion, Language, UserAgent, UserLanguage, Platform,
0044            _Plugins, _MimeTypes, Product,  ProductSub, Vendor, VendorSub, CookieEnabled, JavaEnabled,
0045            BrowserLanguage, CpuClass
0046          };
0047     KHTMLPart *part() const
0048     {
0049         return m_part;
0050     }
0051 private:
0052     KHTMLPart *m_part;
0053 };
0054 
0055 // Hashtable enums
0056 enum { Plugins_Refresh, Plugins_Length, Plugins_Item, Plugins_NamedItem };
0057 enum { MimeTypes_Length, MimeTypes_Item, MimeTypes_NamedItem };
0058 enum { Plugin_Name, Plugin_FileName, Plugin_Description, Plugin_Length, Plugin_Item, Plugin_NamedItem };
0059 enum { MimeType_Type, MimeType_Description, MimeType_EnabledPlugin, MimeType_Suffixes };
0060 
0061 } // namespace
0062 
0063 #endif