26 #ifndef __tdehtml_part_h__
27 #define __tdehtml_part_h__
29 #include "dom/html_document.h"
30 #include "dom/dom2_range.h"
32 #include <tdeparts/part.h>
33 #include <tdeparts/browserextension.h>
34 #include <kdemacros.h>
35 #include <kfinddialog.h>
39 class TDEHTMLPartPrivate;
44 class KJavaAppletContext;
50 class HTMLDocumentImpl;
52 class HTMLTitleElementImpl;
53 class HTMLElementImpl;
54 class HTMLFrameElementImpl;
55 class HTMLIFrameElementImpl;
56 class HTMLObjectElementImpl;
57 class HTMLFormElementImpl;
58 class HTMLAnchorElementImpl;
59 class HTMLMetaElementImpl;
62 class HTMLEventListener;
75 class RenderPartObject;
78 class MousePressEvent;
79 class MouseDoubleClickEvent;
81 class MouseReleaseEvent;
82 class DrawContentsEvent;
85 class CSSStyleSelector;
95 class JSEventListener;
96 class JSLazyEventListener;
100 class ScheduledAction;
106 class LiveConnectExtension;
188 friend class DOM::HTMLTitleElementImpl;
189 friend class DOM::HTMLFrameElementImpl;
190 friend class DOM::HTMLIFrameElementImpl;
191 friend class DOM::HTMLObjectElementImpl;
192 friend class DOM::HTMLAnchorElementImpl;
193 friend class DOM::HTMLMetaElementImpl;
194 friend class DOM::NodeImpl;
195 friend class TDEHTMLRun;
196 friend class DOM::HTMLFormElementImpl;
197 friend class tdehtml::RenderPartObject;
198 friend class KJS::Window;
199 friend class KJS::ScheduledAction;
200 friend class KJS::JSNodeFilter;
201 friend class KJS::WindowFunc;
202 friend class KJS::ExternalFunc;
203 friend class KJS::JSEventListener;
204 friend class KJS::JSLazyEventListener;
205 friend class KJS::DOMDocument;
206 friend class KJS::SourceFile;
207 friend class KJSProxy;
209 friend class DOM::DocumentImpl;
210 friend class DOM::HTMLDocumentImpl;
211 friend class TDEHTMLPartBrowserHostExtension;
212 friend class tdehtml::HTMLTokenizer;
213 friend class tdehtml::XMLTokenizer;
214 friend class tdehtml::RenderWidget;
215 friend class tdehtml::CSSStyleSelector;
217 friend class TDEHTMLPartFunction;
218 friend class TDEHTMLPopupGUIClient;
220 TQ_PROPERTY(
bool javaScriptEnabled READ jScriptEnabled WRITE setJScriptEnabled )
221 TQ_PROPERTY(
bool javaEnabled READ javaEnabled WRITE setJavaEnabled )
222 TQ_PROPERTY(
bool autoloadImages READ autoloadImages WRITE setAutoloadImages )
223 TQ_PROPERTY(
bool dndEnabled READ dndEnabled WRITE setDNDEnabled )
224 TQ_PROPERTY(
bool pluginsEnabled READ pluginsEnabled WRITE setPluginsEnabled )
231 TQ_PROPERTY( TQCString dcopObjectId READ dcopObjectId )
232 TQ_PROPERTY(
bool modified READ isModified )
235 enum GUIProfile { DefaultGUI, BrowserViewGUI };
249 TDEHTMLPart( TQWidget *parentWidget = 0,
const char *widgetname = 0,
250 TQObject *parent = 0,
const char *name = 0, GUIProfile prof = DefaultGUI );
252 TDEHTMLPart(
TDEHTMLView *view, TQObject *parent = 0,
const char *name = 0, GUIProfile prof = DefaultGUI );
277 virtual void showError( TDEIO::Job* job );
293 TQString documentSource()
const;
318 void setJScriptEnabled(
bool enable );
324 bool jScriptEnabled()
const;
343 KJS::Interpreter *jScriptInterpreter();
356 void setStatusMessagesEnabled(
bool enable );
361 bool statusMessagesEnabled()
const;
366 void setMetaRefreshEnabled(
bool enable );
371 bool metaRefreshEnabled()
const;
377 TQVariant executeScript(
const DOM::Node &n,
const TQString &script );
383 void setDNDEnabled(
bool b );
388 bool dndEnabled()
const;
396 void setJavaEnabled(
bool enable );
401 bool javaEnabled()
const;
406 KJavaAppletContext *javaContext();
412 KJavaAppletContext *createJavaContext();
417 void setPluginsEnabled(
bool enable );
422 bool pluginsEnabled()
const;
430 void setAutoloadImages(
bool enable );
437 bool autoloadImages()
const;
455 void setOnlyLocalReferences(
bool enable );
461 bool onlyLocalReferences()
const;
466 bool isCaretMode()
const;
472 bool isEditable()
const;
487 void setCaretPosition(
DOM::Node node,
long offset,
bool extendSelection =
false);
497 CaretVisible, CaretInvisible, CaretBlink
504 CaretDisplayPolicy caretDisplayPolicyNonFocused()
const;
516 void setCaretDisplayPolicyNonFocused(CaretDisplayPolicy policy);
518 #ifndef KDE_NO_COMPAT
519 void enableJScript(
bool e ) { setJScriptEnabled(e); }
520 void enableJava(
bool e ) { setJavaEnabled(e); }
521 void enablePlugins(
bool e ) { setPluginsEnabled(e); }
522 void autoloadImages(
bool e ) { setAutoloadImages(e); }
523 void enableMetaRefresh(
bool e ) { setMetaRefreshEnabled(e); }
524 bool setCharset(
const TQString &,
bool ) {
return true; }
526 KURL baseURL()
const;
527 TQString baseTarget()
const;
533 KURL backgroundURL()
const;
538 void scheduleRedirection(
int delay,
const TQString &url,
bool lockHistory =
true );
562 virtual void begin(
const KURL &url =
KURL(),
int xOffset = 0,
int yOffset = 0 );
584 virtual void write(
const char *str,
int len = -1 );
593 virtual void write(
const TQString &str );
610 void paint( TQPainter *,
const TQRect &,
int = 0,
bool * = 0 );
618 bool setEncoding(
const TQString &name,
bool override =
false );
625 TQString encoding()
const;
636 void setUserStyleSheet(
const KURL &url );
647 void setUserStyleSheet(
const TQString &styleSheet );
656 void setStandardFont(
const TQString &name );
664 void setFixedFont(
const TQString &name );
673 bool gotoAnchor(
const TQString &name );
692 void setURLCursor(
const TQCursor &c );
697 TQCursor urlCursor()
const;
705 FindLinksOnly = 1 * KFindDialog::MinimumUserOption,
706 FindNoPopups = 2 * KFindDialog::MinimumUserOption
725 void findText(
const TQString &str,
long options, TQWidget *parent = 0,
726 KFindDialog *findDialog = 0 );
731 void findTextBegin();
738 bool findTextNext(
const TQString &str,
bool forward,
bool caseSensitive,
bool isRegExp );
754 bool findTextNext(
bool reverse );
766 void setZoomFactor(
int percent);
771 int zoomFactor()
const;
776 virtual TQString selectedText()
const;
786 TQString selectedTextAsHTML()
const;
791 DOM::Range selection()
const;
804 void selection(
DOM::Node &startNode,
long &startOffset,
805 DOM::Node &endNode,
long &endOffset)
const;
810 void setSelection(
const DOM::Range & );
820 bool hasSelection()
const;
854 virtual void saveState( TQDataStream &stream );
864 virtual void restoreState( TQDataStream &stream );
882 DOM::Node nonSharedNodeUnderMouse()
const;
902 TQStringList frameNames()
const;
904 TQPtrList<KParts::ReadOnlyPart> frames()
const;
934 bool frameExists(
const TQString &frameName );
950 void setJSStatusBarText(
const TQString &text );
957 void setJSDefaultStatusBarText(
const TQString &text );
964 TQString jsStatusBarText()
const;
971 TQString jsDefaultStatusBarText()
const;
976 TQString referrer()
const;
981 TQString pageReferrer()
const;
986 TQString lastModified()
const;
991 void preloadStyleSheet(
const TQString &url,
const TQString &stylesheet );
996 void preloadScript(
const TQString &url,
const TQString &script );
1001 bool restored()
const;
1004 enum FormNotification { NoNotification = 0, Before, Only, Unused=255 };
1011 void setFormNotification(FormNotification fn);
1019 FormNotification formNotification()
const;
1036 bool isModified()
const;
1043 void setSuppressedPopupIndicator(
bool enable );
1049 void setSuppressedPopupIndicator(
bool enable,
TDEHTMLPart *originPart );
1055 bool inProgress()
const;
1061 void onURL(
const TQString &url );
1066 void popupMenu(
const TQString &url,
const TQPoint &point );
1071 void selectionChanged();
1080 void nodeActivated(
const DOM::Node & );
1097 void caretPositionChanged(
const DOM::Node &node,
long offset);
1106 void formSubmitNotification(
const char *action,
const TQString& url,
1107 const TQByteArray& formData,
const TQString& target,
1108 const TQString& contentType,
const TQString& boundary);
1117 KURL completeURL(
const TQString &url );
1125 void htmlError(
int errorCode,
const TQString& text,
const KURL& reqUrl );
1132 virtual void tdehtmlMousePressEvent( tdehtml::MousePressEvent *event );
1136 virtual void tdehtmlMouseDoubleClickEvent( tdehtml::MouseDoubleClickEvent * );
1140 virtual void tdehtmlMouseMoveEvent( tdehtml::MouseMoveEvent *event );
1144 virtual void tdehtmlMouseReleaseEvent( tdehtml::MouseReleaseEvent *event );
1148 virtual void tdehtmlDrawContentsEvent( tdehtml::DrawContentsEvent * );
1160 virtual void urlSelected(
const TQString &url,
int button,
int state,
1172 TQObject *parent,
const char *name,
1173 const TQString &mimetype, TQString &serviceName,
1174 TQStringList &serviceTypes,
const TQStringList ¶ms);
1178 bool pluginPageQuestionAsked(
const TQString& mimetype )
const;
1179 void setPluginPageQuestionAsked(
const TQString& mimetype );
1181 enum PageSecurity { NotCrypted, Encrypted, Mixed };
1182 void setPageSecurity( PageSecurity sec );
1187 virtual bool doOpenStream(
const TQString& mimeType );
1192 virtual bool doWriteStream(
const TQByteArray& data );
1197 virtual bool doCloseStream();
1210 void setActiveNode(
const DOM::Node &node );
1215 void stopAnimations();
1217 TQCString dcopObjectId()
const;
1226 TQVariant executeScript(
const TQString &script );
1238 void setCaretMode(
bool enable);
1251 void setEditable(
bool enable);
1269 void setCaretVisible(
bool show);
1275 void submitFormProxy(
const char *action,
const TQString &url,
1276 const TQByteArray &formData,
1277 const TQString &target,
1278 const TQString& contentType = TQString::null,
1279 const TQString& boundary = TQString::null );
1286 void reparseConfiguration();
1291 void slotData( TDEIO::Job*,
const TQByteArray &data );
1295 void slotInfoMessage( TDEIO::Job*,
const TQString& msg );
1299 void slotRestoreData(
const TQByteArray &data );
1303 void slotFinished( TDEIO::Job* );
1307 void slotFinishedParsing();
1311 void slotRedirect();
1315 void slotRedirection( TDEIO::Job*,
const KURL& );
1319 void slotDebugScript();
1323 void slotDebugDOMTree();
1327 void slotDebugRenderTree();
1331 void slotStopAnimations();
1335 virtual void slotViewDocumentSource();
1339 virtual void slotViewFrameSource();
1343 void slotViewPageInfo();
1347 virtual void slotSaveBackground();
1351 virtual void slotSaveDocument();
1355 virtual void slotSaveFrame();
1359 virtual void slotSecurity();
1363 virtual void slotSetEncoding();
1368 virtual void slotUseStylesheet();
1370 virtual void slotFind();
1371 virtual void slotFindDone();
1372 virtual void slotFindDialogDestroyed();
1373 void slotFindNext();
1374 void slotFindPrev();
1375 void slotFindAheadText();
1376 void slotFindAheadLink();
1380 void slotIncZoomFast();
1381 void slotDecZoomFast();
1383 void slotLoadImages();
1384 void slotWalletClosed();
1385 void launchWalletManager();
1391 void submitFormAgain();
1396 void updateActions();
1408 void slotChildStarted( TDEIO::Job *job );
1412 void slotChildCompleted();
1416 void slotChildCompleted(
bool );
1420 void slotParentCompleted();
1428 void slotChildDocCreated();
1433 void slotLoaderRequestStarted( tdehtml::DocLoader*, tdehtml::CachedObject* obj);
1434 void slotLoaderRequestDone( tdehtml::DocLoader*, tdehtml::CachedObject *obj );
1435 void checkCompleted();
1440 void slotAutoScroll();
1442 void slotPrintFrame();
1444 void slotSelectAll();
1449 void slotProgressUpdate();
1454 void slotJobPercent( TDEIO::Job*,
unsigned long );
1459 void slotJobDone( TDEIO::Job* );
1464 void slotUserSheetStatDone( TDEIO::Job* );
1469 void slotJobSpeed( TDEIO::Job*,
unsigned long );
1474 void slotClearSelection();
1479 void slotZoomView(
int );
1484 void slotHighlight(
const TQString &,
int index,
int length );
1489 void slotAutomaticDetectionLanguage(
int _id );
1494 void slotToggleCaretMode();
1499 void suppressedPopupMenu();
1504 void togglePopupPassivePopup();
1509 void showSuppressedPopups();
1514 void launchJSConfigDialog();
1519 void launchJSErrorDialog();
1524 void removeJSErrorExtension();
1529 void disableJSErrorExtension();
1534 void jsErrorDialogContextMenu();
1541 void restoreScrollPosition();
1543 void walletOpened(TDEWallet::Wallet*);
1547 KJSErrorDlg *jsErrorExtension();
1549 enum StatusBarPriority { BarDefaultText, BarHoverText, BarOverrideText };
1552 bool restoreURL(
const KURL &url );
1553 void resetFromScript();
1554 void emitSelectionChanged();
1556 bool checkFrameAccess(
TDEHTMLPart *callingHtmlPart);
1558 bool urlSelectedIntern(
const TQString &url,
int button,
int state,
1560 void startAutoScroll();
1561 void stopAutoScroll();
1562 void overURL(
const TQString &url,
const TQString &target,
bool shiftPressed =
false );
1563 void resetHoverText();
1565 bool processObjectRequest( tdehtml::ChildFrame *child,
const KURL &url,
const TQString &mimetype );
1567 TDEWallet::Wallet* wallet();
1569 void openWallet(DOM::HTMLFormElementImpl*);
1570 void saveToWallet(
const TQString& key,
const TQMap<TQString,TQString>& data);
1571 void dequeueWallet(DOM::HTMLFormElementImpl*);
1573 void enableFindAheadActions(
bool);
1585 void submitForm(
const char *action,
const TQString &url,
const TQByteArray &formData,
1586 const TQString &target,
const TQString& contentType = TQString::null,
1587 const TQString& boundary = TQString::null );
1589 void popupMenu(
const TQString &url );
1596 bool scheduleScript(
const DOM::Node &n,
const TQString& script);
1598 TQVariant crossFrameExecuteScript(
const TQString& target,
const TQString& script);
1599 TQVariant executeScheduledScript();
1601 bool requestFrame( tdehtml::RenderPart *frame,
const TQString &url,
const TQString &frameName,
1602 const TQStringList &args = TQStringList(),
bool isIFrame =
false );
1611 TQString requestFrameName();
1613 bool requestObject( tdehtml::RenderPart *frame,
const TQString &url,
const TQString &serviceType,
1614 const TQStringList &args = TQStringList() );
1618 DOM::EventListener *createHTMLEventListener( TQString code, TQString name, DOM::NodeImpl *node );
1620 DOM::HTMLDocumentImpl *docImpl()
const;
1621 DOM::DocumentImpl *xmlDocImpl()
const;
1622 tdehtml::ChildFrame *frame(
const TQObject *obj );
1624 tdehtml::ChildFrame *recursiveFrameRequest(
TDEHTMLPart *callingHtmlPart,
const KURL &url,
const KParts::URLArgs &args,
bool callParent =
true );
1626 bool checkLinkSecurity(
const KURL &linkURL,
const TQString &message = TQString::null,
const TQString &button = TQString::null );
1627 TQVariant executeScript(
const TQString& filename,
int baseLine,
const DOM::Node &n,
const TQString& script );
1629 KJSProxy *jScript();
1632 long cacheId()
const;
1635 void setOpenedByJS(
bool _openedByJS );
1637 void checkEmitLoadEvent();
1638 void emitLoadEvent();
1640 bool initFindNode(
bool selection,
bool reverse,
bool fromCursor );
1642 void extendSelection( DOM::NodeImpl* node,
long offset,
DOM::Node& selectionNode,
long& selectionOffset,
bool right,
bool paragraph );
1652 void extendSelectionTo(
int x,
int y,
int absX,
int absY,
const DOM::Node &innerNode);
1656 bool isExtendingSelection()
const;
1657 tdehtml::Decoder *createDecoder();
1658 TQString defaultEncoding()
const;
1661 TQString defaultExtension()
const;
1666 void zoomIn(
const int stepping[],
int count);
1670 void zoomOut(
const int stepping[],
int count);
1672 void emitCaretPositionChanged(
const DOM::Node &node,
long offset);
1674 void setDebugScript(
bool enable );
1678 TDEHTMLPartPrivate *d;
1679 friend class TDEHTMLPartPrivate;