📄 render_form.h
字号:
/* * 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 A. Mueller (mueller@kde.org) * * 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. * * $Id: render_form.h,v 1.1.1.1 2002/01/16 10:39:56 ymwei Exp $ */#ifndef RENDER_FORM_H#define RENDER_FORM_H// TODO://// ### we need a generic event handling mechanism for elements replaced by widgets// ### this is just a hack and does only work for onclick :-(//// ### tabbing order// ### return == submit in some cases#include "render_replaced.h"#include "render_image.h"class QWidget;class QMultiLineEdit;class MGHTMLView;class QLineEdit;class QListboxItem;namespace DOM { class HTMLFormElementImpl; class HTMLInputElementImpl; class HTMLSelectElementImpl;};namespace khtml {class DocLoader;// -------------------------------------------------------------------------class RenderFormElement : public khtml::RenderWidget{public: RenderFormElement(MGHTMLView *view, HTMLGenericFormElementImpl *element); virtual ~RenderFormElement(); virtual const char *renderName() const { return "RenderForm"; } virtual bool isRendered() const { return true; } virtual void calcMinMaxWidth(); HTMLGenericFormElementImpl *element() { return m_element; } virtual void blur(); virtual void focus();public slots: virtual void slotBlurred(); virtual void slotFocused(); virtual void slotSelected(); virtual void slotClicked();protected: void applyLayout(int iWidth, int iHeight); HTMLGenericFormElementImpl *m_element;};// -------------------------------------------------------------------------// generic class for all buttonsclass RenderButton : public RenderFormElement{public: RenderButton(MGHTMLView *view, HTMLGenericFormElementImpl *element); virtual const char *renderName() const { return "RenderButton"; } virtual void layout();};// -------------------------------------------------------------------------hiddenclass RenderHiddenButton : public RenderButton{public: RenderHiddenButton(MGHTMLView *view, HTMLInputElementImpl *element); virtual const char *renderName() const { return "RenderHiddenButton"; }};// -------------------------------------------------------------------------class RenderCheckBox : public RenderButton{public: RenderCheckBox(MGHTMLView *view, HTMLInputElementImpl *element); virtual const char *renderName() const { return "RenderCheckBox"; } virtual void layout( );public slots: virtual void slotStateChanged(int state);};#if 0// -------------------------------------------------------------------------class CheckBoxWidget : public QCheckBox{public: CheckBoxWidget(QWidget *parent);protected: virtual void focusInEvent(QFocusEvent *); virtual void focusOutEvent(QFocusEvent *);signals: void focused(); void blurred();};#endif// -------------------------------------------------------------------------radioclass RenderRadioButton : public RenderButton{public: RenderRadioButton(MGHTMLView *view, HTMLInputElementImpl *element); virtual const char *renderName() const { return "RenderRadioButton"; } virtual void setChecked(bool); virtual void layout(); public slots: void slotClicked();};// -------------------------------------------------------------------------submitclass RenderSubmitButton : public RenderButton{public: RenderSubmitButton(MGHTMLView *view, HTMLInputElementImpl *element); virtual ~RenderSubmitButton(); virtual QString defaultLabel(); virtual void layout(); bool clicked() { return m_clicked; } void setClicked(bool _clicked) { m_clicked = _clicked; }protected:public: virtual void slotClicked(); bool m_clicked;};// -------------------------------------------------------------------------Resetclass RenderResetButton : public RenderSubmitButton{public: RenderResetButton(MGHTMLView *view, HTMLInputElementImpl *element); virtual ~RenderResetButton(); virtual QString defaultLabel(); virtual void slotClicked();};// -------------------------------------------------------------------------LineEditclass RenderLineEdit : public RenderFormElement{public: RenderLineEdit(MGHTMLView *view, HTMLInputElementImpl *element); virtual void layout(); virtual const char *renderName() const { return "RenderLineEdit"; } void select();public slots: void slotReturnPressed(); void slotTextChanged(const QString &string);};// -------------------------------------------------------------------------pushbutton// these define <Input type=button>, and can only work with scriptsclass RenderPushButton : public RenderSubmitButton{public: RenderPushButton(MGHTMLView *view, HTMLInputElementImpl *element); virtual ~RenderPushButton(); virtual QString defaultLabel(); virtual void slotClicked();};// -------------------------------------------------------------------------FileButtonclass RenderFileButton : public RenderFormElement{public: RenderFileButton(MGHTMLView *view, HTMLInputElementImpl *element); virtual ~RenderFileButton(); virtual const char *renderName() const { return "RenderFileButton"; } virtual void layout(); void select();public slots: virtual void slotClicked(); virtual void slotReturnPressed(); virtual void slotTextChanged(const QString &string); virtual void slotBlurred(); virtual void slotFocused();protected: bool m_clicked; bool m_haveFocus; MGWidgetEdit *m_edit; MGWidgetButton *m_button;};// ------------------------------------------------------------------------------------------------------Selectclass RenderSelect : public RenderFormElement{public: RenderSelect(MGHTMLView *view, HTMLSelectElementImpl *element); virtual const char *renderName() const { return "RenderSelect"; } virtual void layout(); virtual void close( ); virtual QString state(); virtual void restoreState(const QString &); void setOptionsChanged(bool _optionsChanged); bool selectionChanged() { return m_selectionChanged; } void setSelectionChanged(bool _selectionChanged) { m_selectionChanged = _selectionChanged; } void updateSelection();protected: unsigned m_size; bool m_multiple; bool m_listBox; bool m_selectionChanged; bool m_ignoreSelectEvents;public: void slotActivated(int index);};//-------------------------------------------------------------------------------------------------------RenderTextAreaclass RenderTextArea : public RenderFormElement{public: RenderTextArea(MGHTMLView *view, HTMLTextAreaElementImpl *element); virtual const char *renderName() const { return "RenderTextArea"; } virtual void layout(); virtual void close ( ); QString text(); // ### remove void select(); void slotTextChanged();};// -------------------------------------------------------------------------class RenderImageButton : public RenderImage{public: RenderImageButton(HTMLInputElementImpl *element); virtual ~RenderImageButton(); virtual const char *renderName() const { return "RenderImageButton"; } HTMLInputElementImpl *m_element;};}; //namespace#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -