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

📄 html_formimpl.h

📁 khtml在gtk上的移植版本
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * This file is part of the DOM implementation for KDE. * * Copyright (C) 1999 Lars Knoll (knoll@kde.org) *           (C) 1999 Antti Koivisto (koivisto@kde.org) *           (C) 2000 Dirk Mueller (mueller@kde.org) * Copyright (C) 2004 Apple Computer, Inc. * * 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., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */#ifndef HTML_FORMIMPL_H#define HTML_FORMIMPL_H#include "html/html_elementimpl.h"#include "dom/html_element.h"#include <qvaluelist.h>#include <qptrlist.h>#include <qcstring.h>#include <qmemarray.h>class KHTMLView;class QTextCodec;namespace khtml{    class RenderFormElement;    class RenderTextArea;    class RenderSelect;    class RenderLineEdit;    class RenderRadioButton;    class RenderFileButton;#if APPLE_CHANGES && !KWIQ    class RenderSlider;#endif    typedef QValueList<QCString> encodingList;}namespace DOM {class HTMLFormElement;class DOMString;class HTMLGenericFormElementImpl;class HTMLOptionElementImpl;class HTMLImageLoader;class HTMLOptionsCollectionImpl;// -------------------------------------------------------------------------class HTMLFormElementImpl : public HTMLElementImpl{public:    HTMLFormElementImpl(DocumentPtr *doc);    virtual ~HTMLFormElementImpl();    virtual Id id() const;    virtual void attach();    virtual void detach();    long length() const;    QByteArray formData(bool& ok);    DOMString enctype() const { return m_enctype; }    void setEnctype( const DOMString & );    DOMString boundary() const { return m_boundary; }    void setBoundary( const DOMString & );    bool autoComplete() const { return m_autocomplete; }    virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);    void radioClicked( HTMLGenericFormElementImpl *caller );#if KWIQ    void updateRadioGroups();#endif        void registerFormElement(khtml::RenderFormElement *);    void removeFormElement(khtml::RenderFormElement *);    void registerFormElement(HTMLGenericFormElementImpl *);    void removeFormElement(HTMLGenericFormElementImpl *);    bool prepareSubmit();    void submit(bool activateSubmitButton);    void reset();    void setMalformed(bool malformed) { m_malformed = malformed; }    virtual bool isMalformed() { return m_malformed; }        virtual bool isURLAttribute(AttributeImpl *attr) const;    #if APPLE_CHANGES    void submitClick();    bool formWouldHaveSecureSubmission(const DOMString &url);#endif       static void i18nData();    friend class HTMLFormElement;    friend class HTMLFormCollectionImpl;    QPtrList<HTMLGenericFormElementImpl> formElements;    DOMString m_url;    DOMString m_target;    DOMString m_enctype;    DOMString m_boundary;    DOMString m_acceptcharset;    bool m_post : 1;    bool m_multipart : 1;    bool m_autocomplete : 1;    bool m_insubmit : 1;    bool m_doingsubmit : 1;    bool m_inreset : 1;    bool m_malformed : 1; private:    QString oldIdAttr;    QString oldNameAttr;};// -------------------------------------------------------------------------class HTMLGenericFormElementImpl : public HTMLElementImpl{    friend class HTMLFormElementImpl;    friend class khtml::RenderFormElement;public:    HTMLGenericFormElementImpl(DocumentPtr *doc, HTMLFormElementImpl *f = 0);    virtual ~HTMLGenericFormElementImpl();    HTMLFormElementImpl *form() { return m_form; }    virtual DOMString type() const = 0;    virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);    virtual void attach();    virtual void removedFromDocument();    virtual void reset() {}    void onSelect();    void onChange();    virtual bool disabled() const;    void setDisabled(bool _disabled);    virtual bool isFocusable() const;    virtual bool isKeyboardFocusable() const;    virtual bool isMouseFocusable() const;    virtual bool isEnumeratable() const { return false; }    bool readOnly() const { return m_readOnly; }    void setReadOnly(bool _readOnly) { m_readOnly = _readOnly; }    virtual void recalcStyle( StyleChange );    DOMString name() const;    void setName(const DOMString& name);    virtual bool isGenericFormElement() const { return true; }    /*     * override in derived classes to get the encoded name=value pair     * for submitting     * return true for a successful control (see HTML4-17.13.2)     */    virtual bool encoding(const QTextCodec*, khtml::encodingList&, bool) { return false; }    virtual void defaultEventHandler(EventImpl *evt);    virtual bool isEditable();    virtual QString state();    QString findMatchingState(QStringList &states);    virtual bool isSuccessfulSubmitButton() const { return false; }    virtual bool isActivatedSubmit() const { return false; }    virtual void setActivatedSubmit(bool flag) { }protected:    HTMLFormElementImpl *getForm() const;    DOMStringImpl* m_name;    HTMLFormElementImpl *m_form;    bool m_disabled, m_readOnly;    bool m_inited : 1;};// -------------------------------------------------------------------------class HTMLButtonElementImpl : public HTMLGenericFormElementImpl{public:    HTMLButtonElementImpl(DocumentPtr *doc, HTMLFormElementImpl *f = 0);    virtual ~HTMLButtonElementImpl();    enum typeEnum {        SUBMIT,        RESET,        BUTTON    };    virtual Id id() const;    DOMString type() const;    virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);    virtual void defaultEventHandler(EventImpl *evt);    virtual bool encoding(const QTextCodec*, khtml::encodingList&, bool);    virtual bool isSuccessfulSubmitButton() const;    virtual bool isActivatedSubmit() const;    virtual void setActivatedSubmit(bool flag);    virtual void click();    virtual void accessKeyAction();    protected:    DOMString m_value;    QString   m_currValue;    typeEnum  m_type : 2;    bool      m_dirty : 1;    bool      m_activeSubmit : 1;};// -------------------------------------------------------------------------class HTMLFieldSetElementImpl : public HTMLGenericFormElementImpl{public:    HTMLFieldSetElementImpl(DocumentPtr *doc, HTMLFormElementImpl *f = 0);    virtual ~HTMLFieldSetElementImpl();    virtual Id id() const;        virtual bool isFocusable() const;        virtual khtml::RenderObject *createRenderer(RenderArena *, khtml::RenderStyle *);    virtual DOMString type() const;};// -------------------------------------------------------------------------class HTMLInputElementImpl : public HTMLGenericFormElementImpl{    friend class khtml::RenderLineEdit;    friend class khtml::RenderRadioButton;    friend class khtml::RenderFileButton;#if APPLE_CHANGES && !KWIQ    friend class HTMLSelectElementImpl;    friend class khtml::RenderSlider;#endifpublic:    // do not change the order!    enum typeEnum {        TEXT,        PASSWORD,        ISINDEX,        CHECKBOX,        RADIO,        SUBMIT,        RESET,        FILE,        HIDDEN,        IMAGE,        BUTTON#if APPLE_CHANGES        ,SEARCH,        RANGE#endif    };    HTMLInputElementImpl(DocumentPtr *doc, HTMLFormElementImpl *f = 0);    virtual ~HTMLInputElementImpl();    virtual Id id() const;    virtual bool isEnumeratable() const { return inputType() != IMAGE; }    bool autoComplete() const { return m_autocomplete; }    bool checked() const { return m_checked; }    void setChecked(bool);    long maxLength() const { return m_maxLen; }    int size() const { return m_size; }    DOMString type() const;    void setType(const DOMString& t);    DOMString value() const;    void setValue(DOMString val);    void blur();    void focus();    virtual bool maintainsState() { return m_type != PASSWORD; }    virtual QString state();    virtual void restoreState(QStringList &);    void select();        virtual void click();    virtual void accessKeyAction();    virtual bool mapToEntry(NodeImpl::Id attr, MappedAttributeEntry& result) const;    virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);    virtual void attach();    virtual bool rendererIsNeeded(khtml::RenderStyle *);    virtual khtml::RenderObject *createRenderer(RenderArena *, khtml::RenderStyle *);    virtual bool encoding(const QTextCodec*, khtml::encodingList&, bool);    virtual bool isSuccessfulSubmitButton() const;    virtual bool isActivatedSubmit() const;    virtual void setActivatedSubmit(bool flag);    typeEnum inputType() const { return m_type; }    virtual void reset();

⌨️ 快捷键说明

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