khtml Library API Documentation

khtml_ext.h

00001 /* This file is part of the KDE project 00002 * 00003 * Copyright (C) 2000-2003 Simon Hausmann <hausmann@kde.org> 00004 * 2001-2003 George Staikos <staikos@kde.org> 00005 * 2001-2003 Laurent Montel <montel@kde.org> 00006 * 2001-2003 Dirk Mueller <mueller@kde.org> 00007 * 2001-2003 Waldo Bastian <bastian@kde.org> 00008 * 2001-2003 David Faure <faure@kde.org> 00009 * 2001-2003 Daniel Naber <dnaber@kde.org> 00010 * 00011 * This library is free software; you can redistribute it and/or 00012 * modify it under the terms of the GNU Library General Public 00013 * License as published by the Free Software Foundation; either 00014 * version 2 of the License, or (at your option) any later version. 00015 * 00016 * This library is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 * Library General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU Library General Public License 00022 * along with this library; see the file COPYING.LIB. If not, write to 00023 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00024 * Boston, MA 02111-1307, USA. 00025 */ 00026 00027 #ifndef __khtml_ext_h__ 00028 #define __khtml_ext_h__ 00029 00030 #include "khtml_part.h" 00031 00032 #include <qguardedptr.h> 00033 00034 #include <kaction.h> 00035 #include <kio/global.h> 00036 00041 class KHTMLPartBrowserExtension : public KParts::BrowserExtension 00042 { 00043 Q_OBJECT 00044 friend class KHTMLPart; 00045 friend class KHTMLView; 00046 public: 00047 KHTMLPartBrowserExtension( KHTMLPart *parent, const char *name = 0L ); 00048 00049 virtual int xOffset(); 00050 virtual int yOffset(); 00051 00052 virtual void saveState( QDataStream &stream ); 00053 virtual void restoreState( QDataStream &stream ); 00054 00055 // internal 00056 void editableWidgetFocused( QWidget *widget ); 00057 void editableWidgetBlurred( QWidget *widget ); 00058 00059 void setExtensionProxy( KParts::BrowserExtension *proxyExtension ); 00060 00061 public slots: 00062 void cut(); 00063 void copy(); 00064 void paste(); 00065 void searchProvider(); 00066 void openSelection(); 00067 void reparseConfiguration(); 00068 void print(); 00069 00070 // internal . updates the state of the cut/copt/paste action based 00071 // on whether data is available in the clipboard 00072 void updateEditActions(); 00073 00074 private slots: 00075 // connected to a frame's browserextensions enableAction signal 00076 void extensionProxyActionEnabled( const char *action, bool enable ); 00077 void extensionProxyEditableWidgetFocused(); 00078 void extensionProxyEditableWidgetBlurred(); 00079 00080 signals: 00081 void editableWidgetFocused(); 00082 void editableWidgetBlurred(); 00083 private: 00084 void callExtensionProxyMethod( const char *method ); 00085 00086 KHTMLPart *m_part; 00087 QGuardedPtr<QWidget> m_editableFormWidget; 00088 QGuardedPtr<KParts::BrowserExtension> m_extensionProxy; 00089 bool m_connectedToClipboard; 00090 }; 00091 00092 class KHTMLPartBrowserHostExtension : public KParts::BrowserHostExtension 00093 { 00094 public: 00095 KHTMLPartBrowserHostExtension( KHTMLPart *part ); 00096 virtual ~KHTMLPartBrowserHostExtension(); 00097 00098 virtual QStringList frameNames() const; 00099 00100 virtual const QPtrList<KParts::ReadOnlyPart> frames() const; 00101 00102 virtual bool openURLInFrame( const KURL &url, const KParts::URLArgs &urlArgs ); 00103 00104 protected: 00105 virtual void virtual_hook( int id, void* data ); 00106 private: 00107 KHTMLPart *m_part; 00108 }; 00109 00114 class KHTMLPopupGUIClient : public QObject, public KXMLGUIClient 00115 { 00116 Q_OBJECT 00117 public: 00118 KHTMLPopupGUIClient( KHTMLPart *khtml, const QString &doc, const KURL &url ); 00119 virtual ~KHTMLPopupGUIClient(); 00120 00121 static void saveURL( QWidget *parent, const QString &caption, const KURL &url, 00122 const QMap<QString, QString> &metaData = KIO::MetaData(), 00123 const QString &filter = QString::null, long cacheId = 0, 00124 const QString &suggestedFilename = QString::null ); 00125 00126 static void saveURL( const KURL &url, const KURL &destination, 00127 const QMap<QString, QString> &metaData = KIO::MetaData(), 00128 long cacheId = 0 ); 00129 private slots: 00130 void slotSaveLinkAs(); 00131 void slotSaveImageAs(); 00132 void slotCopyLinkLocation(); 00133 void slotSendImage(); 00134 void slotStopAnimations(); 00135 void slotCopyImageLocation(); 00136 void slotCopyImage(); 00137 void slotViewImage(); 00138 void slotReloadFrame(); 00139 void slotFrameInWindow(); 00140 void slotFrameInTop(); 00141 void slotFrameInTab(); 00142 private: 00143 class KHTMLPopupGUIClientPrivate; 00144 KHTMLPopupGUIClientPrivate *d; 00145 }; 00146 00147 class KHTMLZoomFactorAction : public KAction 00148 { 00149 Q_OBJECT 00150 public: 00151 //BCI: remove in KDE 4 00152 KHTMLZoomFactorAction( KHTMLPart *part, bool direction, const QString &text, const QString &icon, const QObject *receiver, const char *slot, QObject *parent, const char *name ); 00153 KHTMLZoomFactorAction( KHTMLPart *part, bool direction, const QString &text, 00154 const QString &icon, const KShortcut& cut, const QObject *receiver, 00155 const char *slot, QObject *parent, const char *name ); 00156 virtual ~KHTMLZoomFactorAction(); 00157 00158 virtual int plug( QWidget *w, int index ); 00159 00160 private slots: 00161 void slotActivated( int ); 00162 protected slots: 00163 void slotActivated() { KAction::slotActivated(); } 00164 private: 00165 void init(KHTMLPart *part, bool direction); 00166 private: 00167 QPopupMenu *m_popup; 00168 bool m_direction; 00169 KHTMLPart *m_part; 00170 }; 00171 00172 #endif
KDE Logo
This file is part of the documentation for khtml Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 14 00:38:29 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003