// Copyright 2010 Simon Edwards <simon@simonzone.com>

//                 Generated by twine2

// This program 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, or
// (at your option) any later version.

// This program 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 General Public License for more details

// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

namespace KParts
{
class HtmlExtension : QObject
{
%TypeHeaderCode
#include <kparts/htmlextension.h>
%End

public:
                            HtmlExtension (KParts::ReadOnlyPart* parent);
    ~HtmlExtension ();
    static KParts::HtmlExtension*  childObject (QObject* obj);
    virtual KUrl            baseUrl () const=0;
    virtual bool            hasSelection () const;
};
class SelectorInterface
{
%TypeHeaderCode
#include <kparts/htmlextension.h>
%End

public:
    enum QueryMethod
    {
        None,
        EntireContent,
        SelectedContent
    };
    typedef QFlags<KParts::SelectorInterface::QueryMethod> QueryMethods;
    virtual ~SelectorInterface ();
    virtual KParts::SelectorInterface::QueryMethods  supportedQueryMethods () const;
    virtual KParts::SelectorInterface::Element  querySelector (const QString& query, KParts::SelectorInterface::QueryMethod method) const=0;
    virtual QList<KParts::SelectorInterface::Element>  querySelectorAll (const QString& query, KParts::SelectorInterface::QueryMethod method) const=0;
    class Element
    {
%TypeHeaderCode
#include <kparts/htmlextension.h>
%End

    public:
                                Element ();
                                Element (const KParts::SelectorInterface::Element& other);
        ~Element ();
        bool                    isNull () const;
        void                    setTagName (const QString& tag);
        QString                 tagName () const;
        void                    setAttribute (const QString& name, const QString& value);
        QStringList             attributeNames () const;
        QString                 attribute (const QString& name, const QString& defaultValue = QString()) const;
        bool                    hasAttribute (const QString& name) const;
        void                    swap (KParts::SelectorInterface::Element& other);
    };
};
class HtmlSettingsInterface
{
%TypeHeaderCode
#include <kparts/htmlextension.h>
%End

public:
    enum HtmlSettingsType
    {
        AutoLoadImages,
        DnsPrefetchEnabled,
        JavaEnabled,
        JavascriptEnabled,
        MetaRefreshEnabled,
        PluginsEnabled,
        PrivateBrowsingEnabled,
        OfflineStorageDatabaseEnabled,
        OfflineWebApplicationCacheEnabled,
        LocalStorageEnabled,
        UserDefinedStyleSheetURL
    };
    enum JavaScriptAdvice
    {
        JavaScriptDunno,
        JavaScriptAccept,
        JavaScriptReject
    };
    enum JSWindowOpenPolicy
    {
        JSWindowOpenAllow,
        JSWindowOpenAsk,
        JSWindowOpenDeny,
        JSWindowOpenSmart
    };
    enum JSWindowStatusPolicy
    {
        JSWindowStatusAllow,
        JSWindowStatusIgnore
    };
    enum JSWindowMovePolicy
    {
        JSWindowMoveAllow,
        JSWindowMoveIgnore
    };
    enum JSWindowResizePolicy
    {
        JSWindowResizeAllow,
        JSWindowResizeIgnore
    };
    enum JSWindowFocusPolicy
    {
        JSWindowFocusAllow,
        JSWindowFocusIgnore
    };
    virtual ~HtmlSettingsInterface ();
    virtual QVariant        htmlSettingsProperty (KParts::HtmlSettingsInterface::HtmlSettingsType type) const=0;
    virtual bool            setHtmlSettingsProperty (KParts::HtmlSettingsInterface::HtmlSettingsType type, const QVariant& value)=0;
    static KParts::HtmlSettingsInterface::JavaScriptAdvice  textToJavascriptAdvice (const QString& text);
    static const char*      javascriptAdviceToText (KParts::HtmlSettingsInterface::JavaScriptAdvice advice);
    static void             splitDomainAdvice (const QString& text, QString& domain, KParts::HtmlSettingsInterface::JavaScriptAdvice& javaAdvice, KParts::HtmlSettingsInterface::JavaScriptAdvice& javaScriptAdvice);
};
};
void                    qSwap (KParts::SelectorInterface::Element& lhs, KParts::SelectorInterface::Element& rhs);
