Sophie

Sophie

distrib > CentOS > 5 > x86_64 > by-pkgid > f89abdeb016114b348a5c554d8214329 > files > 6890

kdelibs-apidocs-3.5.4-30.el5.centos.x86_64.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">

<head>
  <title>khtml: kjs_window.cpp Source File (khtml)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../.."><img id="nav_header_logo" alt="Home" align="left" src="../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>

  <div id="nav_header_title" align="left">KDE API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_right" style="text-align: left;">
/ <a href="../..">API Reference</a>
 / <a href=".">khtml</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <a name="content"></a>


<!-- Generated by Doxygen 1.4.7 -->
<h1>kjs_window.cpp</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// -*- c-basic-offset: 2 -*-</span>
<a name="l00002"></a>00002 <span class="comment">/*</span>
<a name="l00003"></a>00003 <span class="comment"> *  This file is part of the KDE libraries</span>
<a name="l00004"></a>00004 <span class="comment"> *  Copyright (C) 2000-2003 Harri Porten (porten@kde.org)</span>
<a name="l00005"></a>00005 <span class="comment"> *  Copyright (C) 2001-2003 David Faure (faure@kde.org)</span>
<a name="l00006"></a>00006 <span class="comment"> *  Copyright (C) 2003 Apple Computer, Inc.</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> *  This library is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment"> *  modify it under the terms of the GNU Library General Public</span>
<a name="l00010"></a>00010 <span class="comment"> *  License as published by the Free Software Foundation; either</span>
<a name="l00011"></a>00011 <span class="comment"> *  version 2 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"> *</span>
<a name="l00013"></a>00013 <span class="comment"> *  This library is distributed in the hope that it will be useful,</span>
<a name="l00014"></a>00014 <span class="comment"> *  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00015"></a>00015 <span class="comment"> *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00016"></a>00016 <span class="comment"> *  Library General Public License for more details.</span>
<a name="l00017"></a>00017 <span class="comment"> *</span>
<a name="l00018"></a>00018 <span class="comment"> *  You should have received a copy of the GNU Library General Public</span>
<a name="l00019"></a>00019 <span class="comment"> *  License along with this library; if not, write to the Free Software</span>
<a name="l00020"></a>00020 <span class="comment"> *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA</span>
<a name="l00021"></a>00021 <span class="comment"> */</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include "config.h"</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#include "khtmlview.h"</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "khtml_part.h"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "khtmlpart_p.h"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "khtml_settings.h"</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "xml/dom2_eventsimpl.h"</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include "xml/dom_docimpl.h"</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include "misc/htmltags.h"</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include "html/html_documentimpl.h"</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "rendering/render_frames.h"</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;qstylesheet.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;qtimer.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;qpaintdevicemetrics.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;qapplication.h&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;kdebug.h&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;kmessagebox.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;kinputdialog.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/klocale_8h.html">klocale.h</a>&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;kmdcodec.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;kparts/browserinterface.h&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;kwin.h&gt;</span>
<a name="l00045"></a>00045 
<a name="l00046"></a>00046 <span class="preprocessor">#if defined Q_WS_X11 &amp;&amp; ! defined K_WS_QTONLY</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#include &lt;kwinmodule.h&gt;</span> <span class="comment">// schroder</span>
<a name="l00048"></a>00048 <span class="preprocessor">#endif</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>
<a name="l00050"></a>00050 <span class="preprocessor">#ifndef KONQ_EMBEDDED</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#include &lt;kbookmarkmanager.h&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#include &lt;kglobalsettings.h&gt;</span>
<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;assert.h&gt;</span>
<a name="l00055"></a>00055 <span class="preprocessor">#include &lt;qstyle.h&gt;</span>
<a name="l00056"></a>00056 <span class="preprocessor">#include &lt;qobjectlist.h&gt;</span>
<a name="l00057"></a>00057 <span class="preprocessor">#include &lt;kstringhandler.h&gt;</span>
<a name="l00058"></a>00058 
<a name="l00059"></a>00059 <span class="preprocessor">#include "kjs_proxy.h"</span>
<a name="l00060"></a>00060 <span class="preprocessor">#include "kjs_window.h"</span>
<a name="l00061"></a>00061 <span class="preprocessor">#include "kjs_navigator.h"</span>
<a name="l00062"></a>00062 <span class="preprocessor">#include "kjs_mozilla.h"</span>
<a name="l00063"></a>00063 <span class="preprocessor">#include "kjs_html.h"</span>
<a name="l00064"></a>00064 <span class="preprocessor">#include "kjs_range.h"</span>
<a name="l00065"></a>00065 <span class="preprocessor">#include "kjs_traversal.h"</span>
<a name="l00066"></a>00066 <span class="preprocessor">#include "kjs_css.h"</span>
<a name="l00067"></a>00067 <span class="preprocessor">#include "kjs_events.h"</span>
<a name="l00068"></a>00068 <span class="preprocessor">#include "kjs_views.h"</span>
<a name="l00069"></a>00069 <span class="preprocessor">#include "xmlhttprequest.h"</span>
<a name="l00070"></a>00070 <span class="preprocessor">#include "xmlserializer.h"</span>
<a name="l00071"></a>00071 <span class="preprocessor">#include "domparser.h"</span>
<a name="l00072"></a>00072 
<a name="l00073"></a>00073 <span class="keyword">using namespace </span>KJS;
<a name="l00074"></a>00074 
<a name="l00075"></a>00075 <span class="keyword">namespace </span>KJS {
<a name="l00076"></a>00076 
<a name="l00077"></a>00077   <span class="keyword">class </span>History : <span class="keyword">public</span> ObjectImp {
<a name="l00078"></a>00078     <span class="keyword">friend</span> <span class="keyword">class </span>HistoryFunc;
<a name="l00079"></a>00079   <span class="keyword">public</span>:
<a name="l00080"></a>00080     History(ExecState *exec, <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *p)
<a name="l00081"></a>00081       : ObjectImp(exec-&gt;interpreter()-&gt;builtinObjectPrototype()), part(p) { }
<a name="l00082"></a>00082     <span class="keyword">virtual</span> Value get(ExecState *exec, <span class="keyword">const</span> Identifier &amp;propertyName) <span class="keyword">const</span>;
<a name="l00083"></a>00083     Value getValueProperty(ExecState *exec, <span class="keywordtype">int</span> token) <span class="keyword">const</span>;
<a name="l00084"></a>00084     <span class="keyword">virtual</span> <span class="keyword">const</span> ClassInfo* classInfo()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> &amp;info; }
<a name="l00085"></a>00085     <span class="keyword">static</span> <span class="keyword">const</span> ClassInfo info;
<a name="l00086"></a>00086     <span class="keyword">enum</span> { Back, Forward, Go, Length };
<a name="l00087"></a>00087   <span class="keyword">private</span>:
<a name="l00088"></a>00088     <a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html">QGuardedPtr&lt;KHTMLPart&gt;</a> part;
<a name="l00089"></a>00089   };
<a name="l00090"></a>00090 
<a name="l00091"></a>00091   <span class="keyword">class </span>External : <span class="keyword">public</span> ObjectImp {
<a name="l00092"></a>00092     <span class="keyword">friend</span> <span class="keyword">class </span>ExternalFunc;
<a name="l00093"></a>00093   <span class="keyword">public</span>:
<a name="l00094"></a>00094     External(ExecState *exec, <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *p)
<a name="l00095"></a>00095       : ObjectImp(exec-&gt;interpreter()-&gt;builtinObjectPrototype()), part(p) { }
<a name="l00096"></a>00096     <span class="keyword">virtual</span> Value get(ExecState *exec, <span class="keyword">const</span> Identifier &amp;propertyName) <span class="keyword">const</span>;
<a name="l00097"></a>00097     <span class="keyword">virtual</span> <span class="keyword">const</span> ClassInfo* classInfo()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> &amp;info; }
<a name="l00098"></a>00098     <span class="keyword">static</span> <span class="keyword">const</span> ClassInfo info;
<a name="l00099"></a>00099     <span class="keyword">enum</span> { AddFavorite };
<a name="l00100"></a>00100   <span class="keyword">private</span>:
<a name="l00101"></a>00101     <a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html">QGuardedPtr&lt;KHTMLPart&gt;</a> part;
<a name="l00102"></a>00102   };
<a name="l00103"></a>00103 
<a name="l00104"></a>00104   <span class="keyword">class </span>FrameArray : <span class="keyword">public</span> ObjectImp {
<a name="l00105"></a>00105   <span class="keyword">public</span>:
<a name="l00106"></a>00106     FrameArray(ExecState *exec, <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *p)
<a name="l00107"></a>00107       : ObjectImp(exec-&gt;interpreter()-&gt;builtinObjectPrototype()), part(p) { }
<a name="l00108"></a>00108     <span class="keyword">virtual</span> Value get(ExecState *exec, <span class="keyword">const</span> Identifier &amp;propertyName) <span class="keyword">const</span>;
<a name="l00109"></a>00109     <span class="keyword">virtual</span> Value call(ExecState *exec, Object &amp;thisObj, <span class="keyword">const</span> List &amp;args);
<a name="l00110"></a>00110     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> implementsCall()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }
<a name="l00111"></a>00111   <span class="keyword">private</span>:
<a name="l00112"></a>00112     <a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html">QGuardedPtr&lt;KHTMLPart&gt;</a> part;
<a name="l00113"></a>00113   };
<a name="l00114"></a>00114 
<a name="l00115"></a>00115 <span class="preprocessor">#ifdef Q_WS_QWS</span>
<a name="l00116"></a>00116 <span class="preprocessor"></span>  <span class="keyword">class </span>KonquerorFunc : <span class="keyword">public</span> <a class="code" href="classKJS_1_1DOMFunction.html">DOMFunction</a> {
<a name="l00117"></a>00117   <span class="keyword">public</span>:
<a name="l00118"></a>00118     KonquerorFunc(ExecState *exec, <span class="keyword">const</span> Konqueror* k, <span class="keyword">const</span> <span class="keywordtype">char</span>* name)
<a name="l00119"></a>00119       : <a class="code" href="classKJS_1_1DOMFunction.html">DOMFunction</a>(exec), konqueror(k), m_name(name) { }
<a name="l00120"></a>00120     <span class="keyword">virtual</span> Value tryCall(ExecState *exec, Object &amp;thisObj, <span class="keyword">const</span> List &amp;args);
<a name="l00121"></a>00121 
<a name="l00122"></a>00122   <span class="keyword">private</span>:
<a name="l00123"></a>00123     <span class="keyword">const</span> Konqueror* konqueror;
<a name="l00124"></a>00124     <a class="codeRef" doxygen="qt.tag:" href="qcstring.html">QCString</a> m_name;
<a name="l00125"></a>00125   };
<a name="l00126"></a>00126 <span class="preprocessor">#endif</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span>} <span class="comment">// namespace KJS</span>
<a name="l00128"></a>00128 
<a name="l00129"></a>00129 <span class="preprocessor">#include "kjs_window.lut.h"</span>
<a name="l00130"></a>00130 <span class="preprocessor">#include "rendering/render_replaced.h"</span>
<a name="l00131"></a>00131 
<a name="l00133"></a>00133 
<a name="l00134"></a>00134 <span class="comment">// table for screen object</span>
<a name="l00135"></a>00135 <span class="comment">/*</span>
<a name="l00136"></a>00136 <span class="comment">@begin ScreenTable 7</span>
<a name="l00137"></a>00137 <span class="comment">  height        Screen::Height      DontEnum|ReadOnly</span>
<a name="l00138"></a>00138 <span class="comment">  width         Screen::Width       DontEnum|ReadOnly</span>
<a name="l00139"></a>00139 <span class="comment">  colorDepth    Screen::ColorDepth  DontEnum|ReadOnly</span>
<a name="l00140"></a>00140 <span class="comment">  pixelDepth    Screen::PixelDepth  DontEnum|ReadOnly</span>
<a name="l00141"></a>00141 <span class="comment">  availLeft     Screen::AvailLeft   DontEnum|ReadOnly</span>
<a name="l00142"></a>00142 <span class="comment">  availTop      Screen::AvailTop    DontEnum|ReadOnly</span>
<a name="l00143"></a>00143 <span class="comment">  availHeight   Screen::AvailHeight DontEnum|ReadOnly</span>
<a name="l00144"></a>00144 <span class="comment">  availWidth    Screen::AvailWidth  DontEnum|ReadOnly</span>
<a name="l00145"></a>00145 <span class="comment">@end</span>
<a name="l00146"></a>00146 <span class="comment">*/</span>
<a name="l00147"></a>00147 
<a name="l00148"></a>00148 <span class="keyword">const</span> ClassInfo Screen::info = { <span class="stringliteral">"Screen"</span>, 0, &amp;<a class="code" href="namespaceKJS.html#b51a328f0641b83602dcf9b1a59b8a69">ScreenTable</a>, 0 };
<a name="l00149"></a>00149 
<a name="l00150"></a>00150 <span class="comment">// We set the object prototype so that toString is implemented</span>
<a name="l00151"></a><a class="code" href="classKJS_1_1Screen.html#bd91cda3cf72f4453c6be44ccf56c7b8">00151</a> Screen::Screen(ExecState *exec)
<a name="l00152"></a>00152   : ObjectImp(exec-&gt;interpreter()-&gt;builtinObjectPrototype()) {}
<a name="l00153"></a>00153 
<a name="l00154"></a><a class="code" href="classKJS_1_1Screen.html#3df14f5bef19dc279ccf9105b27146c3">00154</a> Value <a class="code" href="classKJS_1_1Screen.html#3df14f5bef19dc279ccf9105b27146c3">Screen::get</a>(ExecState *exec, <span class="keyword">const</span> Identifier &amp;p)<span class="keyword"> const</span>
<a name="l00155"></a>00155 <span class="keyword"></span>{
<a name="l00156"></a>00156 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l00157"></a>00157 <span class="preprocessor"></span>  <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Screen::get "</span> &lt;&lt; p.qstring() &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00158"></a>00158 <span class="preprocessor">#endif</span>
<a name="l00159"></a>00159 <span class="preprocessor"></span>  <span class="keywordflow">return</span> lookupGetValue&lt;Screen,ObjectImp&gt;(exec,p,&amp;<a class="code" href="namespaceKJS.html#b51a328f0641b83602dcf9b1a59b8a69">ScreenTable</a>,<span class="keyword">this</span>);
<a name="l00160"></a>00160 }
<a name="l00161"></a>00161 
<a name="l00162"></a><a class="code" href="classKJS_1_1Screen.html#c04e25e13c1045550f2cdd61e8b98972">00162</a> Value <a class="code" href="classKJS_1_1Screen.html#c04e25e13c1045550f2cdd61e8b98972">Screen::getValueProperty</a>(ExecState *exec, <span class="keywordtype">int</span> token)<span class="keyword"> const</span>
<a name="l00163"></a>00163 <span class="keyword"></span>{
<a name="l00164"></a>00164 <span class="preprocessor">#if defined Q_WS_X11 &amp;&amp; ! defined K_WS_QTONLY</span>
<a name="l00165"></a>00165 <span class="preprocessor"></span>  <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWinModule.html">KWinModule</a> info(0, <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWinModule.html#e9921b08695860d62ebdd8859a843c8d45040e3315dd4e811fe8304079731f8f">KWinModule::INFO_DESKTOP</a>);
<a name="l00166"></a>00166 <span class="preprocessor">#endif</span>
<a name="l00167"></a>00167 <span class="preprocessor"></span>  <a class="codeRef" doxygen="qt.tag:" href="qwidget.html">QWidget</a> *thisWidget = <a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">Window::retrieveActive</a>(exec)-&gt;<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>()-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1Part.html#2d2efd56fe23904104c48dc56371c03d">widget</a>();
<a name="l00168"></a>00168   <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> sg = <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKGlobalSettings.html#63f7c20327cdb7972e2aff9b765b8985">KGlobalSettings::desktopGeometry</a>(thisWidget);
<a name="l00169"></a>00169 
<a name="l00170"></a>00170   <span class="keywordflow">switch</span>( token ) {
<a name="l00171"></a>00171   <span class="keywordflow">case</span> Height:
<a name="l00172"></a>00172     <span class="keywordflow">return</span> Number(sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>());
<a name="l00173"></a>00173   <span class="keywordflow">case</span> Width:
<a name="l00174"></a>00174     <span class="keywordflow">return</span> Number(sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>());
<a name="l00175"></a>00175   <span class="keywordflow">case</span> ColorDepth:
<a name="l00176"></a>00176   <span class="keywordflow">case</span> PixelDepth: {
<a name="l00177"></a>00177     <a class="codeRef" doxygen="qt.tag:" href="qpaintdevicemetrics.html">QPaintDeviceMetrics</a> m(<a class="codeRef" doxygen="qt.tag:" href="qapplication.html#desktop">QApplication::desktop</a>());
<a name="l00178"></a>00178     <span class="keywordflow">return</span> Number(m.<a class="codeRef" doxygen="qt.tag:" href="qpaintdevicemetrics.html#depth">depth</a>());
<a name="l00179"></a>00179   }
<a name="l00180"></a>00180   <span class="keywordflow">case</span> AvailLeft: {
<a name="l00181"></a>00181 <span class="preprocessor">#if defined Q_WS_X11 &amp;&amp; ! defined K_WS_QTONLY</span>
<a name="l00182"></a>00182 <span class="preprocessor"></span>    <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> clipped = info.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWinModule.html#4fef713d2fa88161fe9a091b4ce0c652">workArea</a>().<a class="codeRef" doxygen="qt.tag:" href="qrect.html#intersect">intersect</a>(sg);
<a name="l00183"></a>00183     <span class="keywordflow">return</span> Number(clipped.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>()-sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>());
<a name="l00184"></a>00184 <span class="preprocessor">#else</span>
<a name="l00185"></a>00185 <span class="preprocessor"></span>    <span class="keywordflow">return</span> Number(10);
<a name="l00186"></a>00186 <span class="preprocessor">#endif</span>
<a name="l00187"></a>00187 <span class="preprocessor"></span>  }
<a name="l00188"></a>00188   <span class="keywordflow">case</span> AvailTop: {
<a name="l00189"></a>00189 <span class="preprocessor">#if defined Q_WS_X11 &amp;&amp; ! defined K_WS_QTONLY</span>
<a name="l00190"></a>00190 <span class="preprocessor"></span>    <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> clipped = info.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWinModule.html#4fef713d2fa88161fe9a091b4ce0c652">workArea</a>().<a class="codeRef" doxygen="qt.tag:" href="qrect.html#intersect">intersect</a>(sg);
<a name="l00191"></a>00191     <span class="keywordflow">return</span> Number(clipped.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>()-sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>());
<a name="l00192"></a>00192 <span class="preprocessor">#else</span>
<a name="l00193"></a>00193 <span class="preprocessor"></span>    <span class="keywordflow">return</span> Number(10);
<a name="l00194"></a>00194 <span class="preprocessor">#endif</span>
<a name="l00195"></a>00195 <span class="preprocessor"></span>  }
<a name="l00196"></a>00196   <span class="keywordflow">case</span> AvailHeight: {
<a name="l00197"></a>00197 <span class="preprocessor">#if defined Q_WS_X11 &amp;&amp; ! defined K_WS_QTONLY</span>
<a name="l00198"></a>00198 <span class="preprocessor"></span>    <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> clipped = info.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWinModule.html#4fef713d2fa88161fe9a091b4ce0c652">workArea</a>().<a class="codeRef" doxygen="qt.tag:" href="qrect.html#intersect">intersect</a>(sg);
<a name="l00199"></a>00199     <span class="keywordflow">return</span> Number(clipped.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>());
<a name="l00200"></a>00200 <span class="preprocessor">#else</span>
<a name="l00201"></a>00201 <span class="preprocessor"></span>    <span class="keywordflow">return</span> Number(100);
<a name="l00202"></a>00202 <span class="preprocessor">#endif</span>
<a name="l00203"></a>00203 <span class="preprocessor"></span>  }
<a name="l00204"></a>00204   <span class="keywordflow">case</span> AvailWidth: {
<a name="l00205"></a>00205 <span class="preprocessor">#if defined Q_WS_X11 &amp;&amp; ! defined K_WS_QTONLY</span>
<a name="l00206"></a>00206 <span class="preprocessor"></span>    <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> clipped = info.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWinModule.html#4fef713d2fa88161fe9a091b4ce0c652">workArea</a>().<a class="codeRef" doxygen="qt.tag:" href="qrect.html#intersect">intersect</a>(sg);
<a name="l00207"></a>00207     <span class="keywordflow">return</span> Number(clipped.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>());
<a name="l00208"></a>00208 <span class="preprocessor">#else</span>
<a name="l00209"></a>00209 <span class="preprocessor"></span>    <span class="keywordflow">return</span> Number(100);
<a name="l00210"></a>00210 <span class="preprocessor">#endif</span>
<a name="l00211"></a>00211 <span class="preprocessor"></span>  }
<a name="l00212"></a>00212   <span class="keywordflow">default</span>:
<a name="l00213"></a>00213     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"WARNING: Screen::getValueProperty unhandled token "</span> &lt;&lt; token &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00214"></a>00214     <span class="keywordflow">return</span> Undefined();
<a name="l00215"></a>00215   }
<a name="l00216"></a>00216 }
<a name="l00217"></a>00217 
<a name="l00219"></a>00219 
<a name="l00220"></a>00220 <span class="keyword">const</span> ClassInfo <a class="code" href="classKJS_1_1Window.html#6c924fbabb5a750666d50defe2cdd47b">Window::info</a> = { <span class="stringliteral">"Window"</span>, &amp;<a class="code" href="classKJS_1_1DOMAbstractView.html#7a20f6cb844146b0f4e7a293de8901b4">DOMAbstractView::info</a>, &amp;<a class="code" href="namespaceKJS.html#722ab173bd6b7a0dcdc9cfcd18e1922e">WindowTable</a>, 0 };
<a name="l00221"></a>00221 
<a name="l00222"></a>00222 <span class="comment">/*</span>
<a name="l00223"></a>00223 <span class="comment">@begin WindowTable 89</span>
<a name="l00224"></a>00224 <span class="comment">  atob      Window::AToB        DontDelete|Function 1</span>
<a name="l00225"></a>00225 <span class="comment">  btoa      Window::BToA        DontDelete|Function 1</span>
<a name="l00226"></a>00226 <span class="comment">  closed    Window::Closed      DontDelete|ReadOnly</span>
<a name="l00227"></a>00227 <span class="comment">  crypto    Window::Crypto      DontDelete|ReadOnly</span>
<a name="l00228"></a>00228 <span class="comment">  defaultStatus Window::DefaultStatus   DontDelete</span>
<a name="l00229"></a>00229 <span class="comment">  defaultstatus Window::DefaultStatus   DontDelete</span>
<a name="l00230"></a>00230 <span class="comment">  status    Window::Status      DontDelete</span>
<a name="l00231"></a>00231 <span class="comment">  document  Window::Document    DontDelete|ReadOnly</span>
<a name="l00232"></a>00232 <span class="comment">  frameElement      Window::FrameElement        DontDelete|ReadOnly</span>
<a name="l00233"></a>00233 <span class="comment">  frames    Window::Frames      DontDelete|ReadOnly</span>
<a name="l00234"></a>00234 <span class="comment">  history   Window::_History    DontDelete|ReadOnly</span>
<a name="l00235"></a>00235 <span class="comment">  external  Window::_External   DontDelete|ReadOnly</span>
<a name="l00236"></a>00236 <span class="comment">  event     Window::Event       DontDelete|ReadOnly</span>
<a name="l00237"></a>00237 <span class="comment">  innerHeight   Window::InnerHeight DontDelete|ReadOnly</span>
<a name="l00238"></a>00238 <span class="comment">  innerWidth    Window::InnerWidth  DontDelete|ReadOnly</span>
<a name="l00239"></a>00239 <span class="comment">  length    Window::Length      DontDelete|ReadOnly</span>
<a name="l00240"></a>00240 <span class="comment">  location  Window::_Location   DontDelete</span>
<a name="l00241"></a>00241 <span class="comment">  name      Window::Name        DontDelete</span>
<a name="l00242"></a>00242 <span class="comment">  navigator Window::_Navigator  DontDelete|ReadOnly</span>
<a name="l00243"></a>00243 <span class="comment">  clientInformation Window::ClientInformation   DontDelete|ReadOnly</span>
<a name="l00244"></a>00244 <span class="comment">  konqueror Window::_Konqueror  DontDelete|ReadOnly</span>
<a name="l00245"></a>00245 <span class="comment">  offscreenBuffering    Window::OffscreenBuffering  DontDelete|ReadOnly</span>
<a name="l00246"></a>00246 <span class="comment">  opener    Window::Opener      DontDelete|ReadOnly</span>
<a name="l00247"></a>00247 <span class="comment">  outerHeight   Window::OuterHeight DontDelete|ReadOnly</span>
<a name="l00248"></a>00248 <span class="comment">  outerWidth    Window::OuterWidth  DontDelete|ReadOnly</span>
<a name="l00249"></a>00249 <span class="comment">  pageXOffset   Window::PageXOffset DontDelete|ReadOnly</span>
<a name="l00250"></a>00250 <span class="comment">  pageYOffset   Window::PageYOffset DontDelete|ReadOnly</span>
<a name="l00251"></a>00251 <span class="comment">  parent    Window::Parent      DontDelete|ReadOnly</span>
<a name="l00252"></a>00252 <span class="comment">  personalbar   Window::Personalbar DontDelete|ReadOnly</span>
<a name="l00253"></a>00253 <span class="comment">  screenX   Window::ScreenX     DontDelete|ReadOnly</span>
<a name="l00254"></a>00254 <span class="comment">  screenY   Window::ScreenY     DontDelete|ReadOnly</span>
<a name="l00255"></a>00255 <span class="comment">  scrollbars    Window::Scrollbars  DontDelete|ReadOnly</span>
<a name="l00256"></a>00256 <span class="comment">  scroll    Window::Scroll      DontDelete|Function 2</span>
<a name="l00257"></a>00257 <span class="comment">  scrollBy  Window::ScrollBy    DontDelete|Function 2</span>
<a name="l00258"></a>00258 <span class="comment">  scrollTo  Window::ScrollTo    DontDelete|Function 2</span>
<a name="l00259"></a>00259 <span class="comment">  scrollX       Window::ScrollX         DontDelete|ReadOnly</span>
<a name="l00260"></a>00260 <span class="comment">  scrollY       Window::ScrollY         DontDelete|ReadOnly</span>
<a name="l00261"></a>00261 <span class="comment">  moveBy    Window::MoveBy      DontDelete|Function 2</span>
<a name="l00262"></a>00262 <span class="comment">  moveTo    Window::MoveTo      DontDelete|Function 2</span>
<a name="l00263"></a>00263 <span class="comment">  resizeBy  Window::ResizeBy    DontDelete|Function 2</span>
<a name="l00264"></a>00264 <span class="comment">  resizeTo  Window::ResizeTo    DontDelete|Function 2</span>
<a name="l00265"></a>00265 <span class="comment">  self      Window::Self        DontDelete|ReadOnly</span>
<a name="l00266"></a>00266 <span class="comment">  window    Window::_Window     DontDelete|ReadOnly</span>
<a name="l00267"></a>00267 <span class="comment">  top       Window::Top     DontDelete|ReadOnly</span>
<a name="l00268"></a>00268 <span class="comment">  screen    Window::_Screen     DontDelete|ReadOnly</span>
<a name="l00269"></a>00269 <span class="comment">  alert     Window::Alert       DontDelete|Function 1</span>
<a name="l00270"></a>00270 <span class="comment">  confirm   Window::Confirm     DontDelete|Function 1</span>
<a name="l00271"></a>00271 <span class="comment">  prompt    Window::Prompt      DontDelete|Function 2</span>
<a name="l00272"></a>00272 <span class="comment">  open      Window::Open        DontDelete|Function 3</span>
<a name="l00273"></a>00273 <span class="comment">  setTimeout    Window::SetTimeout  DontDelete|Function 2</span>
<a name="l00274"></a>00274 <span class="comment">  clearTimeout  Window::ClearTimeout    DontDelete|Function 1</span>
<a name="l00275"></a>00275 <span class="comment">  focus     Window::Focus       DontDelete|Function 0</span>
<a name="l00276"></a>00276 <span class="comment">  blur      Window::Blur        DontDelete|Function 0</span>
<a name="l00277"></a>00277 <span class="comment">  close     Window::Close       DontDelete|Function 0</span>
<a name="l00278"></a>00278 <span class="comment">  setInterval   Window::SetInterval DontDelete|Function 2</span>
<a name="l00279"></a>00279 <span class="comment">  clearInterval Window::ClearInterval   DontDelete|Function 1</span>
<a name="l00280"></a>00280 <span class="comment">  captureEvents Window::CaptureEvents   DontDelete|Function 0</span>
<a name="l00281"></a>00281 <span class="comment">  releaseEvents Window::ReleaseEvents   DontDelete|Function 0</span>
<a name="l00282"></a>00282 <span class="comment">  print     Window::Print       DontDelete|Function 0</span>
<a name="l00283"></a>00283 <span class="comment">  addEventListener  Window::AddEventListener    DontDelete|Function 3</span>
<a name="l00284"></a>00284 <span class="comment">  removeEventListener   Window::RemoveEventListener DontDelete|Function 3</span>
<a name="l00285"></a>00285 <span class="comment"># IE extension</span>
<a name="l00286"></a>00286 <span class="comment">  navigate  Window::Navigate    DontDelete|Function 1</span>
<a name="l00287"></a>00287 <span class="comment"># Mozilla extension</span>
<a name="l00288"></a>00288 <span class="comment">  sidebar   Window::SideBar     DontDelete|ReadOnly</span>
<a name="l00289"></a>00289 <span class="comment">  getComputedStyle  Window::GetComputedStyle    DontDelete|Function 2</span>
<a name="l00290"></a>00290 <span class="comment"></span>
<a name="l00291"></a>00291 <span class="comment"># Warning, when adding a function to this object you need to add a case in Window::get</span>
<a name="l00292"></a>00292 <span class="comment"></span>
<a name="l00293"></a>00293 <span class="comment"># Event handlers</span>
<a name="l00294"></a>00294 <span class="comment"># IE also has: onactivate, onbefore/afterprint, onbeforedeactivate/unload, oncontrolselect,</span>
<a name="l00295"></a>00295 <span class="comment"># ondeactivate, onhelp, onmovestart/end, onresizestart/end, onscroll.</span>
<a name="l00296"></a>00296 <span class="comment"># It doesn't have onabort, onchange, ondragdrop (but NS has that last one).</span>
<a name="l00297"></a>00297 <span class="comment">  onabort   Window::Onabort     DontDelete</span>
<a name="l00298"></a>00298 <span class="comment">  onblur    Window::Onblur      DontDelete</span>
<a name="l00299"></a>00299 <span class="comment">  onchange  Window::Onchange    DontDelete</span>
<a name="l00300"></a>00300 <span class="comment">  onclick   Window::Onclick     DontDelete</span>
<a name="l00301"></a>00301 <span class="comment">  ondblclick    Window::Ondblclick  DontDelete</span>
<a name="l00302"></a>00302 <span class="comment">  ondragdrop    Window::Ondragdrop  DontDelete</span>
<a name="l00303"></a>00303 <span class="comment">  onerror   Window::Onerror     DontDelete</span>
<a name="l00304"></a>00304 <span class="comment">  onfocus   Window::Onfocus     DontDelete</span>
<a name="l00305"></a>00305 <span class="comment">  onkeydown Window::Onkeydown   DontDelete</span>
<a name="l00306"></a>00306 <span class="comment">  onkeypress    Window::Onkeypress  DontDelete</span>
<a name="l00307"></a>00307 <span class="comment">  onkeyup   Window::Onkeyup     DontDelete</span>
<a name="l00308"></a>00308 <span class="comment">  onload    Window::Onload      DontDelete</span>
<a name="l00309"></a>00309 <span class="comment">  onmousedown   Window::Onmousedown DontDelete</span>
<a name="l00310"></a>00310 <span class="comment">  onmousemove   Window::Onmousemove DontDelete</span>
<a name="l00311"></a>00311 <span class="comment">  onmouseout    Window::Onmouseout  DontDelete</span>
<a name="l00312"></a>00312 <span class="comment">  onmouseover   Window::Onmouseover DontDelete</span>
<a name="l00313"></a>00313 <span class="comment">  onmouseup Window::Onmouseup   DontDelete</span>
<a name="l00314"></a>00314 <span class="comment">  onmove    Window::Onmove      DontDelete</span>
<a name="l00315"></a>00315 <span class="comment">  onreset   Window::Onreset     DontDelete</span>
<a name="l00316"></a>00316 <span class="comment">  onresize  Window::Onresize    DontDelete</span>
<a name="l00317"></a>00317 <span class="comment">  onselect  Window::Onselect    DontDelete</span>
<a name="l00318"></a>00318 <span class="comment">  onsubmit  Window::Onsubmit    DontDelete</span>
<a name="l00319"></a>00319 <span class="comment">  onunload  Window::Onunload    DontDelete</span>
<a name="l00320"></a>00320 <span class="comment"></span>
<a name="l00321"></a>00321 <span class="comment"># Constructors/constant tables</span>
<a name="l00322"></a>00322 <span class="comment">  Node      Window::Node        DontDelete</span>
<a name="l00323"></a>00323 <span class="comment">  Event     Window::EventCtor   DontDelete</span>
<a name="l00324"></a>00324 <span class="comment">  Range     Window::Range       DontDelete</span>
<a name="l00325"></a>00325 <span class="comment">  NodeFilter    Window::NodeFilter  DontDelete</span>
<a name="l00326"></a>00326 <span class="comment">  DOMException  Window::DOMException    DontDelete</span>
<a name="l00327"></a>00327 <span class="comment">  CSSRule   Window::CSSRule     DontDelete</span>
<a name="l00328"></a>00328 <span class="comment">  MutationEvent Window::MutationEventCtor   DontDelete</span>
<a name="l00329"></a>00329 <span class="comment">  KeyboardEvent Window::KeyboardEventCtor   DontDelete</span>
<a name="l00330"></a>00330 <span class="comment">  EventException Window::EventExceptionCtor DontDelete</span>
<a name="l00331"></a>00331 <span class="comment">  Image     Window::Image       DontDelete|ReadOnly</span>
<a name="l00332"></a>00332 <span class="comment">  Option    Window::Option      DontDelete|ReadOnly</span>
<a name="l00333"></a>00333 <span class="comment">  XMLHttpRequest Window::XMLHttpRequest DontDelete|ReadOnly</span>
<a name="l00334"></a>00334 <span class="comment">  XMLSerializer Window::XMLSerializer   DontDelete|ReadOnly</span>
<a name="l00335"></a>00335 <span class="comment">  DOMParser Window::DOMParser   DontDelete|ReadOnly</span>
<a name="l00336"></a>00336 <span class="comment"></span>
<a name="l00337"></a>00337 <span class="comment"># Mozilla dom emulation ones.</span>
<a name="l00338"></a>00338 <span class="comment">  Element   Window::ElementCtor DontDelete</span>
<a name="l00339"></a>00339 <span class="comment">  Document  Window::DocumentCtor DontDelete</span>
<a name="l00340"></a>00340 <span class="comment">  #this one is an alias since we don't have a separate XMLDocument</span>
<a name="l00341"></a>00341 <span class="comment">  XMLDocument Window::DocumentCtor DontDelete</span>
<a name="l00342"></a>00342 <span class="comment">  HTMLElement  Window::HTMLElementCtor DontDelete</span>
<a name="l00343"></a>00343 <span class="comment">  HTMLDocument Window::HTMLDocumentCtor DontDelete</span>
<a name="l00344"></a>00344 <span class="comment">  CSSStyleDeclaration Window::CSSStyleDeclarationCtor DontDelete</span>
<a name="l00345"></a>00345 <span class="comment">@end</span>
<a name="l00346"></a>00346 <span class="comment">*/</span>
<a name="l00347"></a>00347 IMPLEMENT_PROTOFUNC_DOM(WindowFunc)
<a name="l00348"></a>00348 
<a name="l00349"></a><a class="code" href="classKJS_1_1Window.html#3d968cf2db157942a5dcf64526249058">00349</a> <a class="code" href="classKJS_1_1Window.html">Window</a>::<a class="code" href="classKJS_1_1Window.html">Window</a>(khtml::ChildFrame *p)
<a name="l00350"></a>00350   : ObjectImp(<span class="comment">/*no proto*/</span>), m_frame(p), screen(0), history(0), external(0), m_frames(0), loc(0), m_evt(0)
<a name="l00351"></a>00351 {
<a name="l00352"></a>00352   winq = <span class="keyword">new</span> <a class="code" href="classKJS_1_1WindowQObject.html">WindowQObject</a>(<span class="keyword">this</span>);
<a name="l00353"></a>00353   <span class="comment">//kdDebug(6070) &lt;&lt; "Window::Window this=" &lt;&lt; this &lt;&lt; " part=" &lt;&lt; m_part &lt;&lt; " " &lt;&lt; m_part-&gt;name() &lt;&lt; endl;</span>
<a name="l00354"></a>00354 }
<a name="l00355"></a>00355 
<a name="l00356"></a><a class="code" href="classKJS_1_1Window.html#245d821e6016fa1f6970ccbbedd635f6">00356</a> <a class="code" href="classKJS_1_1Window.html#245d821e6016fa1f6970ccbbedd635f6">Window::~Window</a>()
<a name="l00357"></a>00357 {
<a name="l00358"></a>00358   <span class="keyword">delete</span> <a class="code" href="classKJS_1_1Window.html#6639d4792e2335e0d5e85eb73fbdd8b3">winq</a>;
<a name="l00359"></a>00359 }
<a name="l00360"></a>00360 
<a name="l00361"></a><a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">00361</a> <a class="code" href="classKJS_1_1Window.html">Window</a> *<a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *p)
<a name="l00362"></a>00362 {
<a name="l00363"></a>00363   Object obj = Object::dynamicCast( <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">retrieve</a>( p ) );
<a name="l00364"></a>00364 <span class="preprocessor">#ifndef NDEBUG</span>
<a name="l00365"></a>00365 <span class="preprocessor"></span>  <span class="comment">// obj should never be null, except when javascript has been disabled in that part.</span>
<a name="l00366"></a>00366   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(p);
<a name="l00367"></a>00367   <span class="keywordflow">if</span> ( <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;jScriptEnabled() )
<a name="l00368"></a>00368   {
<a name="l00369"></a>00369     assert( obj.isValid() );
<a name="l00370"></a>00370 <span class="preprocessor">#ifndef QWS</span>
<a name="l00371"></a>00371 <span class="preprocessor"></span>    assert( dynamic_cast&lt;KJS::Window*&gt;(obj.imp()) ); <span class="comment">// type checking</span>
<a name="l00372"></a>00372 <span class="preprocessor">#endif</span>
<a name="l00373"></a>00373 <span class="preprocessor"></span>  }
<a name="l00374"></a>00374 <span class="preprocessor">#endif</span>
<a name="l00375"></a>00375 <span class="preprocessor"></span>  <span class="keywordflow">if</span> ( !obj.isValid() ) <span class="comment">// JS disabled</span>
<a name="l00376"></a>00376     <span class="keywordflow">return</span> 0;
<a name="l00377"></a>00377   <span class="keywordflow">return</span> static_cast&lt;KJS::Window*&gt;(obj.imp());
<a name="l00378"></a>00378 }
<a name="l00379"></a>00379 
<a name="l00380"></a><a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">00380</a> <a class="code" href="classKJS_1_1Window.html">Window</a> *<a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">Window::retrieveActive</a>(ExecState *exec)
<a name="l00381"></a>00381 {
<a name="l00382"></a>00382   ValueImp *imp = exec-&gt;interpreter()-&gt;globalObject().imp();
<a name="l00383"></a>00383   assert( imp );
<a name="l00384"></a>00384 <span class="preprocessor">#ifndef QWS</span>
<a name="l00385"></a>00385 <span class="preprocessor"></span>  assert( dynamic_cast&lt;KJS::Window*&gt;(imp) );
<a name="l00386"></a>00386 <span class="preprocessor">#endif</span>
<a name="l00387"></a>00387 <span class="preprocessor"></span>  <span class="keywordflow">return</span> static_cast&lt;KJS::Window*&gt;(imp);
<a name="l00388"></a>00388 }
<a name="l00389"></a>00389 
<a name="l00390"></a><a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">00390</a> Value <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>(<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *p)
<a name="l00391"></a>00391 {
<a name="l00392"></a>00392   assert(p);
<a name="l00393"></a>00393   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> * <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(p);
<a name="l00394"></a>00394   <a class="code" href="classKJSProxy.html">KJSProxy</a> *proxy = 0L;
<a name="l00395"></a>00395   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>) {
<a name="l00396"></a>00396     <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(p-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#parent">parent</a>());
<a name="l00397"></a>00397     <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l00398"></a>00398       proxy = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;framejScript(p);
<a name="l00399"></a>00399   } <span class="keywordflow">else</span>
<a name="l00400"></a>00400     proxy = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;jScript();
<a name="l00401"></a>00401   <span class="keywordflow">if</span> (proxy) {
<a name="l00402"></a>00402 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l00403"></a>00403 <span class="preprocessor"></span>    <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::retrieve part="</span> &lt;&lt; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> &lt;&lt; <span class="stringliteral">" '"</span> &lt;&lt; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#name">name</a>() &lt;&lt; <span class="stringliteral">"' interpreter="</span> &lt;&lt; proxy-&gt;interpreter() &lt;&lt; <span class="stringliteral">" window="</span> &lt;&lt; proxy-&gt;interpreter()-&gt;globalObject().imp() &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00404"></a>00404 <span class="preprocessor">#endif</span>
<a name="l00405"></a>00405 <span class="preprocessor"></span>    <span class="keywordflow">return</span> proxy-&gt;interpreter()-&gt;globalObject(); <span class="comment">// the Global object is the "window"</span>
<a name="l00406"></a>00406   } <span class="keywordflow">else</span> {
<a name="l00407"></a>00407 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l00408"></a>00408 <span class="preprocessor"></span>    <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::retrieve part="</span> &lt;&lt; p &lt;&lt; <span class="stringliteral">" '"</span> &lt;&lt; p-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#name">name</a>() &lt;&lt; <span class="stringliteral">"' no jsproxy."</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00409"></a>00409 <span class="preprocessor">#endif</span>
<a name="l00410"></a>00410 <span class="preprocessor"></span>    <span class="keywordflow">return</span> Undefined(); <span class="comment">// This can happen with JS disabled on the domain of that window</span>
<a name="l00411"></a>00411   }
<a name="l00412"></a>00412 }
<a name="l00413"></a>00413 
<a name="l00414"></a><a class="code" href="classKJS_1_1Window.html#8d7aaa4b0b821a30186ebc64c62b1806">00414</a> <a class="code" href="classKJS_1_1Location.html">Location</a> *<a class="code" href="classKJS_1_1Window.html#8d7aaa4b0b821a30186ebc64c62b1806">Window::location</a>()<span class="keyword"> const</span>
<a name="l00415"></a>00415 <span class="keyword"></span>{
<a name="l00416"></a>00416   <span class="keywordflow">if</span> (!loc)
<a name="l00417"></a>00417     const_cast&lt;Window*&gt;(<span class="keyword">this</span>)-&gt;loc = <span class="keyword">new</span> <a class="code" href="classKJS_1_1Window.html#1c46ed5f0dbf3bed2e42c3f754816fce">Location</a>(m_frame);
<a name="l00418"></a>00418   <span class="keywordflow">return</span> loc;
<a name="l00419"></a>00419 }
<a name="l00420"></a>00420 
<a name="l00421"></a><a class="code" href="classKJS_1_1Window.html#d2c3f73d70162a29b5e9f26e967983ac">00421</a> ObjectImp* <a class="code" href="classKJS_1_1Window.html#d2c3f73d70162a29b5e9f26e967983ac">Window::frames</a>( ExecState* exec )<span class="keyword"> const</span>
<a name="l00422"></a>00422 <span class="keyword"></span>{
<a name="l00423"></a>00423   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l00424"></a>00424   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l00425"></a>00425     <span class="keywordflow">return</span> m_frames ? m_frames :
<a name="l00426"></a>00426       (const_cast&lt;Window*&gt;(<span class="keyword">this</span>)-&gt;m_frames = <span class="keyword">new</span> FrameArray(exec, <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>));
<a name="l00427"></a>00427   <span class="keywordflow">return</span> 0L;
<a name="l00428"></a>00428 }
<a name="l00429"></a>00429 
<a name="l00430"></a>00430 <span class="comment">// reference our special objects during garbage collection</span>
<a name="l00431"></a><a class="code" href="classKJS_1_1Window.html#f335501a1feede9cdc6ceb16ef7df379">00431</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#f335501a1feede9cdc6ceb16ef7df379">Window::mark</a>()
<a name="l00432"></a>00432 {
<a name="l00433"></a>00433   ObjectImp::mark();
<a name="l00434"></a>00434   <span class="keywordflow">if</span> (screen &amp;&amp; !screen-&gt;marked())
<a name="l00435"></a>00435     screen-&gt;mark();
<a name="l00436"></a>00436   <span class="keywordflow">if</span> (history &amp;&amp; !history-&gt;marked())
<a name="l00437"></a>00437     history-&gt;mark();
<a name="l00438"></a>00438   <span class="keywordflow">if</span> (external &amp;&amp; !external-&gt;marked())
<a name="l00439"></a>00439     external-&gt;mark();
<a name="l00440"></a>00440   <span class="keywordflow">if</span> (m_frames &amp;&amp; !m_frames-&gt;marked())
<a name="l00441"></a>00441     m_frames-&gt;mark();
<a name="l00442"></a>00442   <span class="comment">//kdDebug(6070) &lt;&lt; "Window::mark " &lt;&lt; this &lt;&lt; " marking loc=" &lt;&lt; loc &lt;&lt; endl;</span>
<a name="l00443"></a>00443   <span class="keywordflow">if</span> (loc &amp;&amp; !loc-&gt;marked())
<a name="l00444"></a>00444     loc-&gt;mark();
<a name="l00445"></a>00445   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#6639d4792e2335e0d5e85eb73fbdd8b3">winq</a>)
<a name="l00446"></a>00446     <a class="code" href="classKJS_1_1Window.html#6639d4792e2335e0d5e85eb73fbdd8b3">winq</a>-&gt;<a class="code" href="classKJS_1_1WindowQObject.html#4ab57ed8691e6084692c15201b58bcbf">mark</a>();
<a name="l00447"></a>00447 }
<a name="l00448"></a>00448 
<a name="l00449"></a><a class="code" href="classKJS_1_1Window.html#328f0552e7e6d1fa8e15ed0b1be16b75">00449</a> <span class="keywordtype">bool</span> <a class="code" href="classKJS_1_1Window.html#328f0552e7e6d1fa8e15ed0b1be16b75">Window::hasProperty</a>(ExecState *exec, <span class="keyword">const</span> Identifier &amp;p)<span class="keyword"> const</span>
<a name="l00450"></a>00450 <span class="keyword"></span>{
<a name="l00451"></a>00451   <span class="comment">// we don't want any operations on a closed window</span>
<a name="l00452"></a>00452   <span class="keywordflow">if</span> (m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() || m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>())
<a name="l00453"></a>00453     <span class="keywordflow">return</span> ( p == <span class="stringliteral">"closed"</span> );
<a name="l00454"></a>00454 
<a name="l00455"></a>00455   <span class="keywordflow">if</span> (ObjectImp::hasProperty(exec, p))
<a name="l00456"></a>00456     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00457"></a>00457 
<a name="l00458"></a>00458   <span class="keywordflow">if</span> (Lookup::findEntry(&amp;<a class="code" href="namespaceKJS.html#722ab173bd6b7a0dcdc9cfcd18e1922e">WindowTable</a>, p))
<a name="l00459"></a>00459     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00460"></a>00460 
<a name="l00461"></a>00461   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l00462"></a>00462   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l00463"></a>00463       <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00464"></a>00464 
<a name="l00465"></a>00465   <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> q = p.qstring();
<a name="l00466"></a>00466   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;findFramePart(p.qstring()))
<a name="l00467"></a>00467     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00468"></a>00468   <span class="comment">// allow window[1] or parent[1] etc. (#56983)</span>
<a name="l00469"></a>00469   <span class="keywordtype">bool</span> ok;
<a name="l00470"></a>00470   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = p.toArrayIndex(&amp;ok);
<a name="l00471"></a>00471   <span class="keywordflow">if</span> (ok) {
<a name="l00472"></a>00472     <a class="codeRef" doxygen="qt.tag:" href="qptrlist.html">QPtrList&lt;KParts::ReadOnlyPart&gt;</a> <a class="code" href="classKJS_1_1Window.html#d2c3f73d70162a29b5e9f26e967983ac">frames</a> = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;frames();
<a name="l00473"></a>00473     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len = <a class="code" href="classKJS_1_1Window.html#d2c3f73d70162a29b5e9f26e967983ac">frames</a>.count();
<a name="l00474"></a>00474     <span class="keywordflow">if</span> (i &lt; len)
<a name="l00475"></a>00475       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00476"></a>00476   }
<a name="l00477"></a>00477 
<a name="l00478"></a>00478   <span class="comment">// allow shortcuts like 'Image1' instead of document.images.Image1</span>
<a name="l00479"></a>00479   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document().isHTMLDocument()) { <span class="comment">// might be XML</span>
<a name="l00480"></a>00480     <a class="code" href="classDOM_1_1HTMLDocument.html">DOM::HTMLDocument</a> doc = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;htmlDocument();
<a name="l00481"></a>00481     <span class="comment">// Keep in sync with tryGet</span>
<a name="l00482"></a>00482 
<a name="l00483"></a>00483     <span class="keywordflow">if</span> (static_cast&lt;DOM::DocumentImpl*&gt;(doc.handle())-&gt;underDocNamedCache().get(p.qstring()))
<a name="l00484"></a>00484       <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00485"></a>00485 
<a name="l00486"></a>00486     <span class="keywordflow">return</span> !doc.getElementById(p.string()).isNull();
<a name="l00487"></a>00487   }
<a name="l00488"></a>00488 
<a name="l00489"></a>00489   <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00490"></a>00490 }
<a name="l00491"></a>00491 
<a name="l00492"></a><a class="code" href="classKJS_1_1Window.html#ca093715050915072a60d05ad73650f0">00492</a> UString <a class="code" href="classKJS_1_1Window.html#ca093715050915072a60d05ad73650f0">Window::toString</a>(ExecState *)<span class="keyword"> const</span>
<a name="l00493"></a>00493 <span class="keyword"></span>{
<a name="l00494"></a>00494   <span class="keywordflow">return</span> <span class="stringliteral">"[object Window]"</span>;
<a name="l00495"></a>00495 }
<a name="l00496"></a>00496 
<a name="l00497"></a><a class="code" href="classKJS_1_1Window.html#8f752d74ac5eb435bc38a0c05c635429">00497</a> Value <a class="code" href="classKJS_1_1Window.html#8f752d74ac5eb435bc38a0c05c635429">Window::get</a>(ExecState *exec, <span class="keyword">const</span> Identifier &amp;p)<span class="keyword"> const</span>
<a name="l00498"></a>00498 <span class="keyword"></span>{
<a name="l00499"></a>00499 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l00500"></a>00500 <span class="preprocessor"></span>  <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window("</span>&lt;&lt;<span class="keyword">this</span>&lt;&lt;<span class="stringliteral">")::get "</span> &lt;&lt; p.qstring() &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00501"></a>00501 <span class="preprocessor">#endif</span>
<a name="l00502"></a>00502 <span class="preprocessor"></span>  <span class="comment">// we don't want any operations on a closed window</span>
<a name="l00503"></a>00503   <span class="keywordflow">if</span> (m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() || m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>()) {
<a name="l00504"></a>00504     <span class="keywordflow">if</span> ( p == <span class="stringliteral">"closed"</span> )
<a name="l00505"></a>00505       <span class="keywordflow">return</span> Boolean( <span class="keyword">true</span> );
<a name="l00506"></a>00506     <span class="keywordflow">return</span> Undefined();
<a name="l00507"></a>00507   }
<a name="l00508"></a>00508 
<a name="l00509"></a>00509   <span class="comment">// Look for overrides first</span>
<a name="l00510"></a>00510   ValueImp *val = getDirect(p);
<a name="l00511"></a>00511   <span class="keywordflow">if</span> (val) {
<a name="l00512"></a>00512     <span class="comment">//kdDebug(6070) &lt;&lt; "Window::get found dynamic property '" &lt;&lt; p.ascii() &lt;&lt; "'" &lt;&lt; endl;</span>
<a name="l00513"></a>00513     <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) ? Value(val) : Undefined();
<a name="l00514"></a>00514   }
<a name="l00515"></a>00515 
<a name="l00516"></a>00516   <span class="keyword">const</span> HashEntry* entry = Lookup::findEntry(&amp;<a class="code" href="namespaceKJS.html#722ab173bd6b7a0dcdc9cfcd18e1922e">WindowTable</a>, p);
<a name="l00517"></a>00517   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l00518"></a>00518 
<a name="l00519"></a>00519   <span class="comment">// properties that work on all windows</span>
<a name="l00520"></a>00520   <span class="keywordflow">if</span> (entry) {
<a name="l00521"></a>00521     <span class="comment">// ReadOnlyPart first</span>
<a name="l00522"></a>00522     <span class="keywordflow">switch</span>(entry-&gt;value) {
<a name="l00523"></a>00523     <span class="keywordflow">case</span> Closed:
<a name="l00524"></a>00524       <span class="keywordflow">return</span> Boolean( <span class="keyword">false</span> );
<a name="l00525"></a>00525     <span class="keywordflow">case</span> _Location:
<a name="l00526"></a>00526         <span class="comment">// No isSafeScript test here, we must be able to _set_ location.href (#49819)</span>
<a name="l00527"></a>00527       <span class="keywordflow">return</span> Value(<a class="code" href="classKJS_1_1Window.html#8d7aaa4b0b821a30186ebc64c62b1806">location</a>());
<a name="l00528"></a>00528     <span class="keywordflow">case</span> _Window:
<a name="l00529"></a>00529     <span class="keywordflow">case</span> Self:
<a name="l00530"></a>00530       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">retrieve</a>(m_frame-&gt;m_part);
<a name="l00531"></a>00531     <span class="keywordflow">default</span>:
<a name="l00532"></a>00532         <span class="keywordflow">break</span>;
<a name="l00533"></a>00533     }
<a name="l00534"></a>00534     <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l00535"></a>00535         <span class="keywordflow">return</span> Undefined();
<a name="l00536"></a>00536     <span class="comment">// KHTMLPart next</span>
<a name="l00537"></a>00537     <span class="keywordflow">switch</span>(entry-&gt;value) {
<a name="l00538"></a>00538     <span class="keywordflow">case</span> Frames:
<a name="l00539"></a>00539       <span class="keywordflow">return</span> Value(<a class="code" href="classKJS_1_1Window.html#d2c3f73d70162a29b5e9f26e967983ac">frames</a>(exec));
<a name="l00540"></a>00540     <span class="keywordflow">case</span> Opener:
<a name="l00541"></a>00541       <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;opener())
<a name="l00542"></a>00542         <span class="keywordflow">return</span> Null();    <span class="comment">// ### a null Window might be better, but == null</span>
<a name="l00543"></a>00543       <span class="keywordflow">else</span>                <span class="comment">// doesn't work yet</span>
<a name="l00544"></a>00544         <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">retrieve</a>(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;opener());
<a name="l00545"></a>00545     <span class="keywordflow">case</span> Parent:
<a name="l00546"></a>00546       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">retrieve</a>(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;parentPart() ? <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;parentPart() : (<a class="code" href="classKHTMLPart.html">KHTMLPart</a>*)<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>);
<a name="l00547"></a>00547     <span class="keywordflow">case</span> Top: {
<a name="l00548"></a>00548       <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *p = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>;
<a name="l00549"></a>00549       <span class="keywordflow">while</span> (p-&gt;<a class="code" href="classKHTMLPart.html#4ab62fae7ea81eafb62c1ae13c13e401">parentPart</a>())
<a name="l00550"></a>00550         p = p-&gt;<a class="code" href="classKHTMLPart.html#4ab62fae7ea81eafb62c1ae13c13e401">parentPart</a>();
<a name="l00551"></a>00551       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">retrieve</a>(p);
<a name="l00552"></a>00552     }
<a name="l00553"></a>00553     <span class="keywordflow">case</span> Alert:
<a name="l00554"></a>00554     <span class="keywordflow">case</span> Confirm:
<a name="l00555"></a>00555     <span class="keywordflow">case</span> Prompt:
<a name="l00556"></a>00556     <span class="keywordflow">case</span> Open:
<a name="l00557"></a>00557     <span class="keywordflow">case</span> Close:
<a name="l00558"></a>00558     <span class="keywordflow">case</span> Focus:
<a name="l00559"></a>00559     <span class="keywordflow">case</span> Blur:
<a name="l00560"></a>00560     <span class="keywordflow">case</span> AToB:
<a name="l00561"></a>00561     <span class="keywordflow">case</span> BToA:
<a name="l00562"></a>00562     <span class="keywordflow">case</span> GetComputedStyle:
<a name="l00563"></a>00563       <span class="keywordflow">return</span> lookupOrCreateFunction&lt;WindowFunc&gt;(exec,p,<span class="keyword">this</span>,entry-&gt;value,entry-&gt;params,entry-&gt;attr);
<a name="l00564"></a>00564     <span class="keywordflow">default</span>:
<a name="l00565"></a>00565       <span class="keywordflow">break</span>;
<a name="l00566"></a>00566     }
<a name="l00567"></a>00567   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>) {
<a name="l00568"></a>00568     <span class="comment">// not a  KHTMLPart</span>
<a name="l00569"></a>00569     <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> rvalue;
<a name="l00570"></a>00570     <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1LiveConnectExtension.html#8dfff0d5feb20316c714179c9eda9a9c">KParts::LiveConnectExtension::Type</a> rtype;
<a name="l00571"></a>00571     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> robjid;
<a name="l00572"></a>00572     <span class="keywordflow">if</span> (m_frame-&gt;m_liveconnect &amp;&amp;
<a name="l00573"></a>00573         <a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) &amp;&amp;
<a name="l00574"></a>00574         m_frame-&gt;m_liveconnect-&gt;get(0, p.qstring(), rtype, robjid, rvalue))
<a name="l00575"></a>00575       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#e1ced0a9b345305be84a3b4b76ba4b20">getLiveConnectValue</a>(m_frame-&gt;m_liveconnect, p.qstring(), rtype, rvalue, robjid);
<a name="l00576"></a>00576     <span class="keywordflow">return</span> Undefined();
<a name="l00577"></a>00577   }
<a name="l00578"></a>00578   <span class="comment">// properties that only work on safe windows</span>
<a name="l00579"></a>00579   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) &amp;&amp;  entry)
<a name="l00580"></a>00580   {
<a name="l00581"></a>00581     <span class="comment">//kdDebug(6070) &lt;&lt; "token: " &lt;&lt; entry-&gt;value &lt;&lt; endl;</span>
<a name="l00582"></a>00582     <span class="keywordflow">switch</span>( entry-&gt;value ) {
<a name="l00583"></a>00583     <span class="keywordflow">case</span> Crypto:
<a name="l00584"></a>00584       <span class="keywordflow">return</span> Undefined(); <span class="comment">// ###</span>
<a name="l00585"></a>00585     <span class="keywordflow">case</span> DefaultStatus:
<a name="l00586"></a>00586       <span class="keywordflow">return</span> String(UString(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;jsDefaultStatusBarText()));
<a name="l00587"></a>00587     <span class="keywordflow">case</span> Status:
<a name="l00588"></a>00588       <span class="keywordflow">return</span> String(UString(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;jsStatusBarText()));
<a name="l00589"></a>00589     <span class="keywordflow">case</span> Document:
<a name="l00590"></a>00590       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document().isNull()) {
<a name="l00591"></a>00591         <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Document.write: adding &lt;HTML&gt;&lt;BODY&gt; to create document"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00592"></a>00592         <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;begin();
<a name="l00593"></a>00593         <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;write(<span class="stringliteral">"&lt;HTML&gt;&lt;BODY&gt;"</span>);
<a name="l00594"></a>00594         <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;end();
<a name="l00595"></a>00595       }
<a name="l00596"></a>00596       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#54231f4fbfeb35ec709c9a16c8677691">getDOMNode</a>(exec,<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document());
<a name="l00597"></a>00597     <span class="keywordflow">case</span> FrameElement:
<a name="l00598"></a>00598       <span class="keywordflow">if</span> (m_frame-&gt;m_frame)
<a name="l00599"></a>00599         <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#54231f4fbfeb35ec709c9a16c8677691">getDOMNode</a>(exec,m_frame-&gt;m_frame-&gt;element());
<a name="l00600"></a>00600       <span class="keywordflow">else</span>
<a name="l00601"></a>00601         <span class="keywordflow">return</span> Undefined();
<a name="l00602"></a>00602     <span class="keywordflow">case</span> Node:
<a name="l00603"></a>00603       <span class="keywordflow">return</span> NodeConstructor::self(exec);
<a name="l00604"></a>00604     <span class="keywordflow">case</span> Range:
<a name="l00605"></a>00605       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#0666f357f42e83263ca28bdc92cebc55">getRangeConstructor</a>(exec);
<a name="l00606"></a>00606     <span class="keywordflow">case</span> NodeFilter:
<a name="l00607"></a>00607       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#5eec4f2395f6422c98f72e4420b09377">getNodeFilterConstructor</a>(exec);
<a name="l00608"></a>00608     <span class="keywordflow">case</span> DOMException:
<a name="l00609"></a>00609       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#e96907be3d9226855cc8e5f48a33a40a">getDOMExceptionConstructor</a>(exec);
<a name="l00610"></a>00610     <span class="keywordflow">case</span> CSSRule:
<a name="l00611"></a>00611       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#1865fc8074a46e2f0745dff492718ee5">getCSSRuleConstructor</a>(exec);
<a name="l00612"></a>00612     <span class="keywordflow">case</span> ElementCtor:
<a name="l00613"></a>00613     <span class="keywordflow">case</span> HTMLElementCtor: <span class="comment">//Hack -- we don't have a separate prototype here</span>
<a name="l00614"></a>00614       <span class="keywordflow">return</span> ElementPseudoCtor::self(exec);
<a name="l00615"></a>00615     <span class="keywordflow">case</span> DocumentCtor:
<a name="l00616"></a>00616       <span class="keywordflow">return</span> DocumentPseudoCtor::self(exec);
<a name="l00617"></a>00617     <span class="keywordflow">case</span> HTMLDocumentCtor:
<a name="l00618"></a>00618       <span class="keywordflow">return</span> HTMLDocumentPseudoCtor::self(exec);
<a name="l00619"></a>00619     <span class="keywordflow">case</span> CSSStyleDeclarationCtor:
<a name="l00620"></a>00620         <span class="keywordflow">return</span> CSSStyleDeclarationPseudoCtor::self(exec);
<a name="l00621"></a>00621     <span class="keywordflow">case</span> EventCtor:
<a name="l00622"></a>00622       <span class="keywordflow">return</span> EventConstructor::self(exec);
<a name="l00623"></a>00623     <span class="keywordflow">case</span> MutationEventCtor:
<a name="l00624"></a>00624       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#225cef54420d513072d139e047905128">getMutationEventConstructor</a>(exec);
<a name="l00625"></a>00625     <span class="keywordflow">case</span> KeyboardEventCtor:
<a name="l00626"></a>00626       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#34a3200d930ce99015e708dbb1c12af4">getKeyboardEventConstructor</a>(exec);
<a name="l00627"></a>00627     <span class="keywordflow">case</span> EventExceptionCtor:
<a name="l00628"></a>00628       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#30c269616fb0143894b9772fd1d24797">getEventExceptionConstructor</a>(exec);
<a name="l00629"></a>00629     <span class="keywordflow">case</span> _History:
<a name="l00630"></a>00630       <span class="keywordflow">return</span> Value(history ? history :
<a name="l00631"></a>00631                    (const_cast&lt;Window*&gt;(<span class="keyword">this</span>)-&gt;history = <span class="keyword">new</span> History(exec,<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)));
<a name="l00632"></a>00632 
<a name="l00633"></a>00633     <span class="keywordflow">case</span> _External:
<a name="l00634"></a>00634       <span class="keywordflow">return</span> Value(external ? external :
<a name="l00635"></a>00635                    (const_cast&lt;Window*&gt;(<span class="keyword">this</span>)-&gt;external = <span class="keyword">new</span> External(exec,<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)));
<a name="l00636"></a>00636 
<a name="l00637"></a>00637     <span class="keywordflow">case</span> Event:
<a name="l00638"></a>00638       <span class="keywordflow">if</span> (m_evt)
<a name="l00639"></a>00639         <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#569756c8eb900571b2bd5623e61eea7f">getDOMEvent</a>(exec,*m_evt);
<a name="l00640"></a>00640       <span class="keywordflow">else</span> {
<a name="l00641"></a>00641 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l00642"></a>00642 <span class="preprocessor"></span>        <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"WARNING: window("</span> &lt;&lt; <span class="keyword">this</span> &lt;&lt; <span class="stringliteral">","</span> &lt;&lt; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#name">name</a>() &lt;&lt; <span class="stringliteral">").event, no event!"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00643"></a>00643 <span class="preprocessor">#endif</span>
<a name="l00644"></a>00644 <span class="preprocessor"></span>        <span class="keywordflow">return</span> Undefined();
<a name="l00645"></a>00645       }
<a name="l00646"></a>00646     <span class="keywordflow">case</span> InnerHeight:
<a name="l00647"></a>00647       <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view())
<a name="l00648"></a>00648         <span class="keywordflow">return</span> Undefined();
<a name="l00649"></a>00649       khtml::RenderWidget::flushWidgetResizes(); <span class="comment">// make sure frames have their final size</span>
<a name="l00650"></a>00650       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;visibleHeight());
<a name="l00651"></a>00651     <span class="keywordflow">case</span> InnerWidth:
<a name="l00652"></a>00652       <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view())
<a name="l00653"></a>00653         <span class="keywordflow">return</span> Undefined();
<a name="l00654"></a>00654       khtml::RenderWidget::flushWidgetResizes(); <span class="comment">// make sure frames have their final size</span>
<a name="l00655"></a>00655       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;visibleWidth());
<a name="l00656"></a>00656     <span class="keywordflow">case</span> Length:
<a name="l00657"></a>00657       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;frames().count());
<a name="l00658"></a>00658     <span class="keywordflow">case</span> Name:
<a name="l00659"></a>00659       <span class="keywordflow">return</span> String(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#name">name</a>());
<a name="l00660"></a>00660     <span class="keywordflow">case</span> SideBar:
<a name="l00661"></a>00661       <span class="keywordflow">return</span> Value(<span class="keyword">new</span> <a class="code" href="classKJS_1_1MozillaSidebarExtension.html">MozillaSidebarExtension</a>(exec, <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>));
<a name="l00662"></a>00662     <span class="keywordflow">case</span> _Navigator:
<a name="l00663"></a>00663     <span class="keywordflow">case</span> ClientInformation: {
<a name="l00664"></a>00664       <span class="comment">// Store the navigator in the object so we get the same one each time.</span>
<a name="l00665"></a>00665       Value nav( <span class="keyword">new</span> <a class="code" href="classKJS_1_1Navigator.html">Navigator</a>(exec, <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>) );
<a name="l00666"></a>00666       const_cast&lt;Window *&gt;(<span class="keyword">this</span>)-&gt;<a class="code" href="classKJS_1_1Window.html#8d259d59ce749ad706b54d02295b65ab">put</a>(exec, <span class="stringliteral">"navigator"</span>, nav, DontDelete|ReadOnly|Internal);
<a name="l00667"></a>00667       const_cast&lt;Window *&gt;(<span class="keyword">this</span>)-&gt;<a class="code" href="classKJS_1_1Window.html#8d259d59ce749ad706b54d02295b65ab">put</a>(exec, <span class="stringliteral">"clientInformation"</span>, nav, DontDelete|ReadOnly|Internal);
<a name="l00668"></a>00668       <span class="keywordflow">return</span> nav;
<a name="l00669"></a>00669     }
<a name="l00670"></a>00670 <span class="preprocessor">#ifdef Q_WS_QWS</span>
<a name="l00671"></a>00671 <span class="preprocessor"></span>    <span class="keywordflow">case</span> _Konqueror: {
<a name="l00672"></a>00672       Value k( <span class="keyword">new</span> Konqueror(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>) );
<a name="l00673"></a>00673       const_cast&lt;Window *&gt;(<span class="keyword">this</span>)-&gt;<a class="code" href="classKJS_1_1Window.html#8d259d59ce749ad706b54d02295b65ab">put</a>(exec, <span class="stringliteral">"konqueror"</span>, k, DontDelete|ReadOnly|Internal);
<a name="l00674"></a>00674       <span class="keywordflow">return</span> k;
<a name="l00675"></a>00675     }
<a name="l00676"></a>00676 <span class="preprocessor">#endif</span>
<a name="l00677"></a>00677 <span class="preprocessor"></span>    <span class="keywordflow">case</span> OffscreenBuffering:
<a name="l00678"></a>00678       <span class="keywordflow">return</span> Boolean(<span class="keyword">true</span>);
<a name="l00679"></a>00679     <span class="keywordflow">case</span> OuterHeight:
<a name="l00680"></a>00680     <span class="keywordflow">case</span> OuterWidth:
<a name="l00681"></a>00681     {
<a name="l00682"></a>00682 <span class="preprocessor">#if defined Q_WS_X11 &amp;&amp; ! defined K_WS_QTONLY</span>
<a name="l00683"></a>00683 <span class="preprocessor"></span>      <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1Part.html#2d2efd56fe23904104c48dc56371c03d">widget</a>())
<a name="l00684"></a>00684         <span class="keywordflow">return</span> Number(0);
<a name="l00685"></a>00685       <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWin_1_1WindowInfo.html">KWin::WindowInfo</a> inf = <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWin.html#8ce591daa3996c2bfb98b8de6c82b79a">KWin::windowInfo</a>(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1Part.html#2d2efd56fe23904104c48dc56371c03d">widget</a>()-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#topLevelWidget">topLevelWidget</a>()-&gt;winId());
<a name="l00686"></a>00686       <span class="keywordflow">return</span> Number(entry-&gt;value == OuterHeight ?
<a name="l00687"></a>00687                     inf.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWin_1_1WindowInfo.html#e226722f0eff11325f2d3bda2f773be4">geometry</a>().<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>() : inf.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWin_1_1WindowInfo.html#e226722f0eff11325f2d3bda2f773be4">geometry</a>().<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>());
<a name="l00688"></a>00688 <span class="preprocessor">#else</span>
<a name="l00689"></a>00689 <span class="preprocessor"></span>      <span class="keywordflow">return</span> Number(entry-&gt;value == OuterHeight ?  
<a name="l00690"></a>00690             <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;height() : <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;width());
<a name="l00691"></a>00691 <span class="preprocessor">#endif</span>
<a name="l00692"></a>00692 <span class="preprocessor"></span>    }
<a name="l00693"></a>00693     <span class="keywordflow">case</span> PageXOffset:
<a name="l00694"></a>00694       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;contentsX());
<a name="l00695"></a>00695     <span class="keywordflow">case</span> PageYOffset:
<a name="l00696"></a>00696       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;contentsY());
<a name="l00697"></a>00697     <span class="keywordflow">case</span> Personalbar:
<a name="l00698"></a>00698       <span class="keywordflow">return</span> Undefined(); <span class="comment">// ###</span>
<a name="l00699"></a>00699     <span class="keywordflow">case</span> ScreenLeft:
<a name="l00700"></a>00700     <span class="keywordflow">case</span> ScreenX: {
<a name="l00701"></a>00701       <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view())
<a name="l00702"></a>00702         <span class="keywordflow">return</span> Undefined();
<a name="l00703"></a>00703       <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> sg = <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKGlobalSettings.html#63f7c20327cdb7972e2aff9b765b8985">KGlobalSettings::desktopGeometry</a>(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view());
<a name="l00704"></a>00704       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;mapToGlobal(<a class="codeRef" doxygen="qt.tag:" href="qpoint.html">QPoint</a>(0,0)).x() + sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>());
<a name="l00705"></a>00705     }
<a name="l00706"></a>00706     <span class="keywordflow">case</span> ScreenTop:
<a name="l00707"></a>00707     <span class="keywordflow">case</span> ScreenY: {
<a name="l00708"></a>00708       <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view())
<a name="l00709"></a>00709         <span class="keywordflow">return</span> Undefined();
<a name="l00710"></a>00710       <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> sg = <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKGlobalSettings.html#63f7c20327cdb7972e2aff9b765b8985">KGlobalSettings::desktopGeometry</a>(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view());
<a name="l00711"></a>00711       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;mapToGlobal(<a class="codeRef" doxygen="qt.tag:" href="qpoint.html">QPoint</a>(0,0)).y() + sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>());
<a name="l00712"></a>00712     }
<a name="l00713"></a>00713     <span class="keywordflow">case</span> ScrollX: {
<a name="l00714"></a>00714       <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view())
<a name="l00715"></a>00715         <span class="keywordflow">return</span> Undefined();
<a name="l00716"></a>00716       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;contentsX());
<a name="l00717"></a>00717     }
<a name="l00718"></a>00718     <span class="keywordflow">case</span> ScrollY: {
<a name="l00719"></a>00719       <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view())
<a name="l00720"></a>00720         <span class="keywordflow">return</span> Undefined();
<a name="l00721"></a>00721       <span class="keywordflow">return</span> Number(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view()-&gt;contentsY());
<a name="l00722"></a>00722     }
<a name="l00723"></a>00723     <span class="keywordflow">case</span> Scrollbars:
<a name="l00724"></a>00724       <span class="keywordflow">return</span> Undefined(); <span class="comment">// ###</span>
<a name="l00725"></a>00725     <span class="keywordflow">case</span> _Screen:
<a name="l00726"></a>00726       <span class="keywordflow">return</span> Value(screen ? screen :
<a name="l00727"></a>00727                    (const_cast&lt;Window*&gt;(<span class="keyword">this</span>)-&gt;screen = <span class="keyword">new</span> <a class="code" href="classKJS_1_1Screen.html">Screen</a>(exec)));
<a name="l00728"></a>00728     <span class="keywordflow">case</span> Image:
<a name="l00729"></a>00729       <span class="keywordflow">return</span> Value(<span class="keyword">new</span> <a class="code" href="classKJS_1_1ImageConstructorImp.html">ImageConstructorImp</a>(exec, <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document()));
<a name="l00730"></a>00730     <span class="keywordflow">case</span> Option:
<a name="l00731"></a>00731       <span class="keywordflow">return</span> Value(<span class="keyword">new</span> <a class="code" href="classKJS_1_1OptionConstructorImp.html">OptionConstructorImp</a>(exec, <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document()));
<a name="l00732"></a>00732     <span class="keywordflow">case</span> <a class="code" href="classKJS_1_1XMLHttpRequest.html">XMLHttpRequest</a>:
<a name="l00733"></a>00733       <span class="keywordflow">return</span> Value(<span class="keyword">new</span> <a class="code" href="classKJS_1_1XMLHttpRequestConstructorImp.html">XMLHttpRequestConstructorImp</a>(exec, <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document()));
<a name="l00734"></a>00734     <span class="keywordflow">case</span> <a class="code" href="classKJS_1_1XMLSerializer.html">XMLSerializer</a>:
<a name="l00735"></a>00735       <span class="keywordflow">return</span> Value(<span class="keyword">new</span> <a class="code" href="classKJS_1_1XMLSerializerConstructorImp.html">XMLSerializerConstructorImp</a>(exec));
<a name="l00736"></a>00736     <span class="keywordflow">case</span> <a class="code" href="classKJS_1_1DOMParser.html">DOMParser</a>:
<a name="l00737"></a>00737       <span class="keywordflow">return</span> Value(<span class="keyword">new</span> <a class="code" href="classKJS_1_1DOMParserConstructorImp.html">DOMParserConstructorImp</a>(exec, <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;xmlDocImpl()));
<a name="l00738"></a>00738     <span class="keywordflow">case</span> Scroll: <span class="comment">// compatibility</span>
<a name="l00739"></a>00739     <span class="keywordflow">case</span> ScrollBy:
<a name="l00740"></a>00740     <span class="keywordflow">case</span> ScrollTo:
<a name="l00741"></a>00741     <span class="keywordflow">case</span> MoveBy:
<a name="l00742"></a>00742     <span class="keywordflow">case</span> MoveTo:
<a name="l00743"></a>00743     <span class="keywordflow">case</span> ResizeBy:
<a name="l00744"></a>00744     <span class="keywordflow">case</span> ResizeTo:
<a name="l00745"></a>00745     <span class="keywordflow">case</span> CaptureEvents:
<a name="l00746"></a>00746     <span class="keywordflow">case</span> ReleaseEvents:
<a name="l00747"></a>00747     <span class="keywordflow">case</span> AddEventListener:
<a name="l00748"></a>00748     <span class="keywordflow">case</span> RemoveEventListener:
<a name="l00749"></a>00749     <span class="keywordflow">case</span> SetTimeout:
<a name="l00750"></a>00750     <span class="keywordflow">case</span> ClearTimeout:
<a name="l00751"></a>00751     <span class="keywordflow">case</span> SetInterval:
<a name="l00752"></a>00752     <span class="keywordflow">case</span> ClearInterval:
<a name="l00753"></a>00753     <span class="keywordflow">case</span> Print:
<a name="l00754"></a>00754       <span class="keywordflow">return</span> lookupOrCreateFunction&lt;WindowFunc&gt;(exec,p,<span class="keyword">this</span>,entry-&gt;value,entry-&gt;params,entry-&gt;attr);
<a name="l00755"></a>00755     <span class="comment">// IE extension</span>
<a name="l00756"></a>00756     <span class="keywordflow">case</span> Navigate:
<a name="l00757"></a>00757       <span class="comment">// Disabled in NS-compat mode. Supported by default - can't hurt, unless someone uses</span>
<a name="l00758"></a>00758       <span class="comment">// if (navigate) to test for IE (unlikely).</span>
<a name="l00759"></a>00759       <span class="keywordflow">if</span> ( exec-&gt;interpreter()-&gt;compatMode() == Interpreter::NetscapeCompat )
<a name="l00760"></a>00760         <span class="keywordflow">return</span> Undefined();
<a name="l00761"></a>00761       <span class="keywordflow">return</span> lookupOrCreateFunction&lt;WindowFunc&gt;(exec,p,<span class="keyword">this</span>,entry-&gt;value,entry-&gt;params,entry-&gt;attr);
<a name="l00762"></a>00762     <span class="keywordflow">case</span> Onabort:
<a name="l00763"></a>00763       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::ABORT_EVENT);
<a name="l00764"></a>00764     <span class="keywordflow">case</span> Onblur:
<a name="l00765"></a>00765       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::BLUR_EVENT);
<a name="l00766"></a>00766     <span class="keywordflow">case</span> Onchange:
<a name="l00767"></a>00767       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::CHANGE_EVENT);
<a name="l00768"></a>00768     <span class="keywordflow">case</span> Onclick:
<a name="l00769"></a>00769       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::KHTML_ECMA_CLICK_EVENT);
<a name="l00770"></a>00770     <span class="keywordflow">case</span> Ondblclick:
<a name="l00771"></a>00771       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::KHTML_ECMA_DBLCLICK_EVENT);
<a name="l00772"></a>00772     <span class="keywordflow">case</span> Ondragdrop:
<a name="l00773"></a>00773       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::KHTML_DRAGDROP_EVENT);
<a name="l00774"></a>00774     <span class="keywordflow">case</span> Onerror:
<a name="l00775"></a>00775       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::ERROR_EVENT);
<a name="l00776"></a>00776     <span class="keywordflow">case</span> Onfocus:
<a name="l00777"></a>00777       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::FOCUS_EVENT);
<a name="l00778"></a>00778     <span class="keywordflow">case</span> Onkeydown:
<a name="l00779"></a>00779       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::KEYDOWN_EVENT);
<a name="l00780"></a>00780     <span class="keywordflow">case</span> Onkeypress:
<a name="l00781"></a>00781       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::KEYPRESS_EVENT);
<a name="l00782"></a>00782     <span class="keywordflow">case</span> Onkeyup:
<a name="l00783"></a>00783       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::KEYUP_EVENT);
<a name="l00784"></a>00784     <span class="keywordflow">case</span> Onload:
<a name="l00785"></a>00785       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::LOAD_EVENT);
<a name="l00786"></a>00786     <span class="keywordflow">case</span> Onmousedown:
<a name="l00787"></a>00787       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::MOUSEDOWN_EVENT);
<a name="l00788"></a>00788     <span class="keywordflow">case</span> Onmousemove:
<a name="l00789"></a>00789       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::MOUSEMOVE_EVENT);
<a name="l00790"></a>00790     <span class="keywordflow">case</span> Onmouseout:
<a name="l00791"></a>00791       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::MOUSEOUT_EVENT);
<a name="l00792"></a>00792     <span class="keywordflow">case</span> Onmouseover:
<a name="l00793"></a>00793       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::MOUSEOVER_EVENT);
<a name="l00794"></a>00794     <span class="keywordflow">case</span> Onmouseup:
<a name="l00795"></a>00795       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::MOUSEUP_EVENT);
<a name="l00796"></a>00796     <span class="keywordflow">case</span> Onmove:
<a name="l00797"></a>00797       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::KHTML_MOVE_EVENT);
<a name="l00798"></a>00798     <span class="keywordflow">case</span> Onreset:
<a name="l00799"></a>00799       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::RESET_EVENT);
<a name="l00800"></a>00800     <span class="keywordflow">case</span> Onresize:
<a name="l00801"></a>00801       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::RESIZE_EVENT);
<a name="l00802"></a>00802     <span class="keywordflow">case</span> Onselect:
<a name="l00803"></a>00803       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::SELECT_EVENT);
<a name="l00804"></a>00804     <span class="keywordflow">case</span> Onsubmit:
<a name="l00805"></a>00805       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::SUBMIT_EVENT);
<a name="l00806"></a>00806     <span class="keywordflow">case</span> Onunload:
<a name="l00807"></a>00807       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">getListener</a>(exec,DOM::EventImpl::UNLOAD_EVENT);
<a name="l00808"></a>00808     }
<a name="l00809"></a>00809   }
<a name="l00810"></a>00810 
<a name="l00811"></a>00811   <span class="comment">// doing the remainder of ObjectImp::get() that is not covered by</span>
<a name="l00812"></a>00812   <span class="comment">// the getDirect() call above.</span>
<a name="l00813"></a>00813   <span class="comment">// #### guessed position. move further up or down?</span>
<a name="l00814"></a>00814   Object proto = Object::dynamicCast(prototype());
<a name="l00815"></a>00815   assert(proto.isValid());
<a name="l00816"></a>00816   <span class="keywordflow">if</span> (p == specialPrototypePropertyName)
<a name="l00817"></a>00817     <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) ? Value(proto) : Undefined();
<a name="l00818"></a>00818   Value val2 = proto.get(exec, p);
<a name="l00819"></a>00819   <span class="keywordflow">if</span> (!val2.isA(UndefinedType)) {
<a name="l00820"></a>00820     <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) ? val2 : Undefined();
<a name="l00821"></a>00821   }
<a name="l00822"></a>00822 
<a name="l00823"></a>00823   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *rop = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;findFramePart( p.qstring() );
<a name="l00824"></a>00824   <span class="keywordflow">if</span> (rop)
<a name="l00825"></a>00825     <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">retrieve</a>(rop);
<a name="l00826"></a>00826 
<a name="l00827"></a>00827   <span class="comment">// allow window[1] or parent[1] etc. (#56983)</span>
<a name="l00828"></a>00828   <span class="keywordtype">bool</span> ok;
<a name="l00829"></a>00829   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = p.toArrayIndex(&amp;ok);
<a name="l00830"></a>00830   <span class="keywordflow">if</span> (ok) {
<a name="l00831"></a>00831     <a class="codeRef" doxygen="qt.tag:" href="qptrlist.html">QPtrList&lt;KParts::ReadOnlyPart&gt;</a> <a class="code" href="classKJS_1_1Window.html#d2c3f73d70162a29b5e9f26e967983ac">frames</a> = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;frames();
<a name="l00832"></a>00832     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len = <a class="code" href="classKJS_1_1Window.html#d2c3f73d70162a29b5e9f26e967983ac">frames</a>.count();
<a name="l00833"></a>00833     <span class="keywordflow">if</span> (i &lt; len) {
<a name="l00834"></a>00834       <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a>* frame = <a class="code" href="classKJS_1_1Window.html#d2c3f73d70162a29b5e9f26e967983ac">frames</a>.at(i);
<a name="l00835"></a>00835       <span class="keywordflow">if</span> (frame)
<a name="l00836"></a>00836         <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>(frame);
<a name="l00837"></a>00837     }
<a name="l00838"></a>00838   }
<a name="l00839"></a>00839 
<a name="l00840"></a>00840   <span class="comment">//Check for images, forms, objects, etc.</span>
<a name="l00841"></a>00841   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document().isHTMLDocument()) { <span class="comment">// might be XML</span>
<a name="l00842"></a>00842     DOM::DocumentImpl* docImpl = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;xmlDocImpl();
<a name="l00843"></a>00843     DOM::ElementMappingCache::ItemInfo* <a class="code" href="classKJS_1_1Window.html#6c924fbabb5a750666d50defe2cdd47b">info</a> = docImpl-&gt;underDocNamedCache().get(p.qstring());
<a name="l00844"></a>00844     <span class="keywordflow">if</span> (info) {
<a name="l00845"></a>00845       <span class="comment">//May be a false positive, but we can try to avoid doing it the hard way in</span>
<a name="l00846"></a>00846       <span class="comment">//simpler cases. The trickiness here is that the cache is kept under both</span>
<a name="l00847"></a>00847       <span class="comment">//name and id, but we sometimes ignore id for IE compat</span>
<a name="l00848"></a>00848       <a class="code" href="classDOM_1_1DOMString.html">DOM::DOMString</a>  propertyDOMString = p.string();
<a name="l00849"></a>00849       <span class="keywordflow">if</span> (info-&gt;nd &amp;&amp; DOM::HTMLMappedNameCollectionImpl::matchesName(info-&gt;nd,
<a name="l00850"></a>00850                     DOM::HTMLCollectionImpl::WINDOW_NAMED_ITEMS, propertyDOMString)) {
<a name="l00851"></a>00851         <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#54231f4fbfeb35ec709c9a16c8677691">getDOMNode</a>(exec, info-&gt;nd);
<a name="l00852"></a>00852       } <span class="keywordflow">else</span> {
<a name="l00853"></a>00853         <span class="comment">//Can't tell it just like that, so better go through collection and count stuff. This is the slow path...</span>
<a name="l00854"></a>00854         <a class="code" href="classDOM_1_1HTMLMappedNameCollection.html">DOM::HTMLMappedNameCollection</a> coll(docImpl, DOM::HTMLCollectionImpl::WINDOW_NAMED_ITEMS, propertyDOMString);
<a name="l00855"></a>00855   
<a name="l00856"></a>00856         <span class="keywordflow">if</span> (coll.<a class="code" href="classDOM_1_1HTMLCollection.html#451c0100ccdb1104de560028c5437124">length</a>() == 1)
<a name="l00857"></a>00857           <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#54231f4fbfeb35ec709c9a16c8677691">getDOMNode</a>(exec, coll.<a class="code" href="classDOM_1_1HTMLCollection.html#86c89eae01751a764b74b9edf959dedb">firstItem</a>());
<a name="l00858"></a>00858         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (coll.<a class="code" href="classDOM_1_1HTMLCollection.html#451c0100ccdb1104de560028c5437124">length</a>() &gt; 1)
<a name="l00859"></a>00859           <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#b6d61a7c7beffbdda640e710b2fcbd29">getHTMLCollection</a>(exec, coll);
<a name="l00860"></a>00860       }
<a name="l00861"></a>00861     }
<a name="l00862"></a>00862     <a class="code" href="classDOM_1_1Element.html">DOM::Element</a> element = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document().getElementById(p.string());
<a name="l00863"></a>00863     <span class="keywordflow">if</span> ( !element.<a class="code" href="classDOM_1_1Node.html#fbf817c4885b063f6672c20c6ec5cb2e">isNull</a>() )
<a name="l00864"></a>00864       <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#54231f4fbfeb35ec709c9a16c8677691">getDOMNode</a>(exec, element );
<a name="l00865"></a>00865   }
<a name="l00866"></a>00866 
<a name="l00867"></a>00867   <span class="comment">// This isn't necessarily a bug. Some code uses if(!window.blah) window.blah=1</span>
<a name="l00868"></a>00868   <span class="comment">// But it can also mean something isn't loaded or implemented, hence the WARNING to help grepping.</span>
<a name="l00869"></a>00869 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l00870"></a>00870 <span class="preprocessor"></span>  <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"WARNING: Window::get property not found: "</span> &lt;&lt; p.qstring() &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00871"></a>00871 <span class="preprocessor">#endif</span>
<a name="l00872"></a>00872 <span class="preprocessor"></span>  <span class="keywordflow">return</span> Undefined();
<a name="l00873"></a>00873 }
<a name="l00874"></a>00874 
<a name="l00875"></a><a class="code" href="classKJS_1_1Window.html#8d259d59ce749ad706b54d02295b65ab">00875</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#8d259d59ce749ad706b54d02295b65ab">Window::put</a>(ExecState* exec, <span class="keyword">const</span> Identifier &amp;propertyName, <span class="keyword">const</span> Value &amp;value, <span class="keywordtype">int</span> attr)
<a name="l00876"></a>00876 {
<a name="l00877"></a>00877   <span class="comment">// we don't want any operations on a closed window</span>
<a name="l00878"></a>00878   <span class="keywordflow">if</span> (m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() || m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>()) {
<a name="l00879"></a>00879     <span class="comment">// ### throw exception? allow setting of some props like location?</span>
<a name="l00880"></a>00880     <span class="keywordflow">return</span>;
<a name="l00881"></a>00881   }
<a name="l00882"></a>00882 
<a name="l00883"></a>00883   <span class="comment">// Called by an internal KJS call (e.g. InterpreterImp's constructor) ?</span>
<a name="l00884"></a>00884   <span class="comment">// If yes, save time and jump directly to ObjectImp.</span>
<a name="l00885"></a>00885   <span class="keywordflow">if</span> ( (attr != None &amp;&amp; attr != DontDelete) ||
<a name="l00886"></a>00886        <span class="comment">// Same thing if we have a local override (e.g. "var location")</span>
<a name="l00887"></a>00887        ( <a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>( exec ) &amp;&amp; ObjectImp::getDirect(propertyName) ) )
<a name="l00888"></a>00888   {
<a name="l00889"></a>00889     ObjectImp::put( exec, propertyName, value, attr );
<a name="l00890"></a>00890     <span class="keywordflow">return</span>;
<a name="l00891"></a>00891   }
<a name="l00892"></a>00892 
<a name="l00893"></a>00893   <span class="keyword">const</span> HashEntry* entry = Lookup::findEntry(&amp;<a class="code" href="namespaceKJS.html#722ab173bd6b7a0dcdc9cfcd18e1922e">WindowTable</a>, propertyName);
<a name="l00894"></a>00894   <span class="keywordflow">if</span> (entry &amp;&amp; !m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() &amp;&amp; !m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>())
<a name="l00895"></a>00895   {
<a name="l00896"></a>00896 #ifdef KJS_VERBOSE
<a name="l00897"></a>00897     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window("</span>&lt;&lt;<span class="keyword">this</span>&lt;&lt;<span class="stringliteral">")::put "</span> &lt;&lt; propertyName.qstring() &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l00898"></a>00898 <span class="preprocessor">#endif</span>
<a name="l00899"></a>00899 <span class="preprocessor"></span>    <span class="keywordflow">switch</span>( entry-&gt;value) {
<a name="l00900"></a>00900     <span class="keywordflow">case</span> _Location:
<a name="l00901"></a>00901       <a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">goURL</a>(exec, value.toString(exec).qstring(), <span class="keyword">false</span> <span class="comment">/*don't lock history*/</span>);
<a name="l00902"></a>00902       <span class="keywordflow">return</span>;
<a name="l00903"></a>00903     <span class="keywordflow">default</span>:
<a name="l00904"></a>00904       <span class="keywordflow">break</span>;
<a name="l00905"></a>00905     }
<a name="l00906"></a>00906     <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l00907"></a>00907     <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>) {
<a name="l00908"></a>00908     <span class="keywordflow">switch</span>( entry-&gt;value ) {
<a name="l00909"></a>00909     <span class="keywordflow">case</span> Status: {
<a name="l00910"></a>00910       <span class="keywordflow">if</span>  (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;settings()-&gt;windowStatusPolicy(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html#cb4ef957a59d80168a38c4bf24d0dd11">url</a>().<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#df3ad35581a0ca25ecc16e073f8275ca">host</a>())
<a name="l00911"></a>00911         == KHTMLSettings::KJSWindowStatusAllow) {
<a name="l00912"></a>00912       String s = value.toString(exec);
<a name="l00913"></a>00913       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;setJSStatusBarText(s.value().qstring());
<a name="l00914"></a>00914       }
<a name="l00915"></a>00915       <span class="keywordflow">return</span>;
<a name="l00916"></a>00916     }
<a name="l00917"></a>00917     <span class="keywordflow">case</span> DefaultStatus: {
<a name="l00918"></a>00918       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;settings()-&gt;windowStatusPolicy(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html#cb4ef957a59d80168a38c4bf24d0dd11">url</a>().<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#df3ad35581a0ca25ecc16e073f8275ca">host</a>())
<a name="l00919"></a>00919         == KHTMLSettings::KJSWindowStatusAllow) {
<a name="l00920"></a>00920       String s = value.toString(exec);
<a name="l00921"></a>00921       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;setJSDefaultStatusBarText(s.value().qstring());
<a name="l00922"></a>00922       }
<a name="l00923"></a>00923       <span class="keywordflow">return</span>;
<a name="l00924"></a>00924     }
<a name="l00925"></a>00925     <span class="keywordflow">case</span> Onabort:
<a name="l00926"></a>00926       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00927"></a>00927         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec, DOM::EventImpl::ABORT_EVENT,value);
<a name="l00928"></a>00928       <span class="keywordflow">return</span>;
<a name="l00929"></a>00929     <span class="keywordflow">case</span> Onblur:
<a name="l00930"></a>00930       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00931"></a>00931         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec, DOM::EventImpl::BLUR_EVENT,value);
<a name="l00932"></a>00932       <span class="keywordflow">return</span>;
<a name="l00933"></a>00933     <span class="keywordflow">case</span> Onchange:
<a name="l00934"></a>00934       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00935"></a>00935         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec, DOM::EventImpl::CHANGE_EVENT,value);
<a name="l00936"></a>00936       <span class="keywordflow">return</span>;
<a name="l00937"></a>00937     <span class="keywordflow">case</span> Onclick:
<a name="l00938"></a>00938       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00939"></a>00939         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::KHTML_ECMA_CLICK_EVENT,value);
<a name="l00940"></a>00940       <span class="keywordflow">return</span>;
<a name="l00941"></a>00941     <span class="keywordflow">case</span> Ondblclick:
<a name="l00942"></a>00942       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00943"></a>00943         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::KHTML_ECMA_DBLCLICK_EVENT,value);
<a name="l00944"></a>00944       <span class="keywordflow">return</span>;
<a name="l00945"></a>00945     <span class="keywordflow">case</span> Ondragdrop:
<a name="l00946"></a>00946       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00947"></a>00947         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::KHTML_DRAGDROP_EVENT,value);
<a name="l00948"></a>00948       <span class="keywordflow">return</span>;
<a name="l00949"></a>00949     <span class="keywordflow">case</span> Onerror:
<a name="l00950"></a>00950       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00951"></a>00951         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::ERROR_EVENT,value);
<a name="l00952"></a>00952       <span class="keywordflow">return</span>;
<a name="l00953"></a>00953     <span class="keywordflow">case</span> Onfocus:
<a name="l00954"></a>00954       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00955"></a>00955         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::FOCUS_EVENT,value);
<a name="l00956"></a>00956       <span class="keywordflow">return</span>;
<a name="l00957"></a>00957     <span class="keywordflow">case</span> Onkeydown:
<a name="l00958"></a>00958       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00959"></a>00959         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::KEYDOWN_EVENT,value);
<a name="l00960"></a>00960       <span class="keywordflow">return</span>;
<a name="l00961"></a>00961     <span class="keywordflow">case</span> Onkeypress:
<a name="l00962"></a>00962       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00963"></a>00963         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::KEYPRESS_EVENT,value);
<a name="l00964"></a>00964       <span class="keywordflow">return</span>;
<a name="l00965"></a>00965     <span class="keywordflow">case</span> Onkeyup:
<a name="l00966"></a>00966       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00967"></a>00967         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::KEYUP_EVENT,value);
<a name="l00968"></a>00968       <span class="keywordflow">return</span>;
<a name="l00969"></a>00969     <span class="keywordflow">case</span> Onload:
<a name="l00970"></a>00970       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00971"></a>00971         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::LOAD_EVENT,value);
<a name="l00972"></a>00972       <span class="keywordflow">return</span>;
<a name="l00973"></a>00973     <span class="keywordflow">case</span> Onmousedown:
<a name="l00974"></a>00974       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00975"></a>00975         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::MOUSEDOWN_EVENT,value);
<a name="l00976"></a>00976       <span class="keywordflow">return</span>;
<a name="l00977"></a>00977     <span class="keywordflow">case</span> Onmousemove:
<a name="l00978"></a>00978       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00979"></a>00979         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::MOUSEMOVE_EVENT,value);
<a name="l00980"></a>00980       <span class="keywordflow">return</span>;
<a name="l00981"></a>00981     <span class="keywordflow">case</span> Onmouseout:
<a name="l00982"></a>00982       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00983"></a>00983         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::MOUSEOUT_EVENT,value);
<a name="l00984"></a>00984       <span class="keywordflow">return</span>;
<a name="l00985"></a>00985     <span class="keywordflow">case</span> Onmouseover:
<a name="l00986"></a>00986       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00987"></a>00987         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::MOUSEOVER_EVENT,value);
<a name="l00988"></a>00988       <span class="keywordflow">return</span>;
<a name="l00989"></a>00989     <span class="keywordflow">case</span> Onmouseup:
<a name="l00990"></a>00990       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00991"></a>00991         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::MOUSEUP_EVENT,value);
<a name="l00992"></a>00992       <span class="keywordflow">return</span>;
<a name="l00993"></a>00993     <span class="keywordflow">case</span> Onmove:
<a name="l00994"></a>00994       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00995"></a>00995         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::KHTML_MOVE_EVENT,value);
<a name="l00996"></a>00996       <span class="keywordflow">return</span>;
<a name="l00997"></a>00997     <span class="keywordflow">case</span> Onreset:
<a name="l00998"></a>00998       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l00999"></a>00999         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::RESET_EVENT,value);
<a name="l01000"></a>01000       <span class="keywordflow">return</span>;
<a name="l01001"></a>01001     <span class="keywordflow">case</span> Onresize:
<a name="l01002"></a>01002       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l01003"></a>01003         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::RESIZE_EVENT,value);
<a name="l01004"></a>01004       <span class="keywordflow">return</span>;
<a name="l01005"></a>01005     <span class="keywordflow">case</span> Onselect:
<a name="l01006"></a>01006       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l01007"></a>01007         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::SELECT_EVENT,value);
<a name="l01008"></a>01008       <span class="keywordflow">return</span>;
<a name="l01009"></a>01009     <span class="keywordflow">case</span> Onsubmit:
<a name="l01010"></a>01010       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l01011"></a>01011         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::SUBMIT_EVENT,value);
<a name="l01012"></a>01012       <span class="keywordflow">return</span>;
<a name="l01013"></a>01013     <span class="keywordflow">case</span> Onunload:
<a name="l01014"></a>01014       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l01015"></a>01015         <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">setListener</a>(exec,DOM::EventImpl::UNLOAD_EVENT,value);
<a name="l01016"></a>01016       <span class="keywordflow">return</span>;
<a name="l01017"></a>01017     <span class="keywordflow">case</span> Name:
<a name="l01018"></a>01018       <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l01019"></a>01019         <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#setName">setName</a>( value.toString(exec).qstring().local8Bit().data() );
<a name="l01020"></a>01020       <span class="keywordflow">return</span>;
<a name="l01021"></a>01021     <span class="keywordflow">default</span>:
<a name="l01022"></a>01022       <span class="keywordflow">break</span>;
<a name="l01023"></a>01023     }
<a name="l01024"></a>01024     }
<a name="l01025"></a>01025   }
<a name="l01026"></a>01026   <span class="keywordflow">if</span> (m_frame-&gt;m_liveconnect &amp;&amp;
<a name="l01027"></a>01027       <a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) &amp;&amp;
<a name="l01028"></a>01028       m_frame-&gt;m_liveconnect-&gt;put(0, propertyName.qstring(), value.toString(exec).qstring()))
<a name="l01029"></a>01029     <span class="keywordflow">return</span>;
<a name="l01030"></a>01030   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec)) {
<a name="l01031"></a>01031     <span class="comment">//kdDebug(6070) &lt;&lt; "Window("&lt;&lt;this&lt;&lt;")::put storing " &lt;&lt; propertyName.qstring() &lt;&lt; endl;</span>
<a name="l01032"></a>01032     ObjectImp::put(exec, propertyName, value, attr);
<a name="l01033"></a>01033   }
<a name="l01034"></a>01034 }
<a name="l01035"></a>01035 
<a name="l01036"></a><a class="code" href="classKJS_1_1Window.html#66a43d90b54ce4fa8916f5e64ea9feb4">01036</a> <span class="keywordtype">bool</span> <a class="code" href="classKJS_1_1Window.html#66a43d90b54ce4fa8916f5e64ea9feb4">Window::toBoolean</a>(ExecState *)<span class="keyword"> const</span>
<a name="l01037"></a>01037 <span class="keyword"></span>{
<a name="l01038"></a>01038   <span class="keywordflow">return</span> !m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() &amp;&amp; !m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>();
<a name="l01039"></a>01039 }
<a name="l01040"></a>01040 
<a name="l01041"></a><a class="code" href="classKJS_1_1Window.html#d203a6a597884c826772e01380e19681">01041</a> <a class="code" href="classDOM_1_1AbstractView.html">DOM::AbstractView</a> <a class="code" href="classKJS_1_1Window.html#d203a6a597884c826772e01380e19681">Window::toAbstractView</a>()<span class="keyword"> const</span>
<a name="l01042"></a>01042 <span class="keyword"></span>{
<a name="l01043"></a>01043   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01044"></a>01044   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l01045"></a>01045     <span class="keywordflow">return</span> <a class="code" href="classDOM_1_1AbstractView.html">DOM::AbstractView</a>();
<a name="l01046"></a>01046   <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document().defaultView();
<a name="l01047"></a>01047 }
<a name="l01048"></a>01048 
<a name="l01049"></a><a class="code" href="classKJS_1_1Window.html#27f0c4fa17e93f2883d328b7fabed871">01049</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#27f0c4fa17e93f2883d328b7fabed871">Window::scheduleClose</a>()
<a name="l01050"></a>01050 {
<a name="l01051"></a>01051   <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::scheduleClose window.close() "</span> &lt;&lt; m_frame &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01052"></a>01052   Q_ASSERT(<a class="code" href="classKJS_1_1Window.html#6639d4792e2335e0d5e85eb73fbdd8b3">winq</a>);
<a name="l01053"></a>01053   <a class="codeRef" doxygen="qt.tag:" href="qtimer.html#singleShot">QTimer::singleShot</a>( 0, <a class="code" href="classKJS_1_1Window.html#6639d4792e2335e0d5e85eb73fbdd8b3">winq</a>, SLOT( timeoutClose() ) );
<a name="l01054"></a>01054 }
<a name="l01055"></a>01055 
<a name="l01056"></a><a class="code" href="classKJS_1_1Window.html#395943ac1c23a19b68936ee149bb92e5">01056</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#395943ac1c23a19b68936ee149bb92e5">Window::closeNow</a>()
<a name="l01057"></a>01057 {
<a name="l01058"></a>01058   <span class="keywordflow">if</span> (m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() || m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>()) {
<a name="l01059"></a>01059     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg634e2de2b699b31ea3a79f984e836d64">k_funcinfo</a> &lt;&lt; <span class="stringliteral">"part is deleted already"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01060"></a>01060   } <span class="keywordflow">else</span> {
<a name="l01061"></a>01061     <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01062"></a>01062     <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>) {
<a name="l01063"></a>01063       <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"closeNow on non KHTML part"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01064"></a>01064     } <span class="keywordflow">else</span> {
<a name="l01065"></a>01065       <span class="comment">//kdDebug(6070) &lt;&lt; k_funcinfo &lt;&lt; " -&gt; closing window" &lt;&lt; endl;</span>
<a name="l01066"></a>01066       <span class="comment">// We want to make sure that window.open won't find this part by name.</span>
<a name="l01067"></a>01067       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#setName">setName</a>( 0 );
<a name="l01068"></a>01068       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#deleteLater">deleteLater</a>();
<a name="l01069"></a>01069       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = 0;
<a name="l01070"></a>01070     }
<a name="l01071"></a>01071   }
<a name="l01072"></a>01072 }
<a name="l01073"></a>01073 
<a name="l01074"></a><a class="code" href="classKJS_1_1Window.html#3e9b58d6a12d845cdb084e1b195d2330">01074</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#3e9b58d6a12d845cdb084e1b195d2330">Window::afterScriptExecution</a>()
<a name="l01075"></a>01075 {
<a name="l01076"></a>01076   DOM::DocumentImpl::updateDocumentsRendering();
<a name="l01077"></a>01077   <a class="codeRef" doxygen="qt.tag:" href="qvaluelist.html">QValueList&lt;DelayedAction&gt;</a> delayedActions = m_delayed;
<a name="l01078"></a>01078   m_delayed.clear();
<a name="l01079"></a>01079   <a class="codeRef" doxygen="qt.tag:" href="qvaluelist.html">QValueList&lt;DelayedAction&gt;::Iterator</a> it = delayedActions.<a class="codeRef" doxygen="qt.tag:" href="qvaluelist.html#begin">begin</a>();
<a name="l01080"></a>01080   <span class="keywordflow">for</span> ( ; it != delayedActions.<a class="codeRef" doxygen="qt.tag:" href="qvaluelist.html#end">end</a>() ; ++it )
<a name="l01081"></a>01081   {
<a name="l01082"></a>01082     <span class="keywordflow">switch</span> ((*it).actionId) {
<a name="l01083"></a>01083     <span class="keywordflow">case</span> DelayedClose:
<a name="l01084"></a>01084       <a class="code" href="classKJS_1_1Window.html#27f0c4fa17e93f2883d328b7fabed871">scheduleClose</a>();
<a name="l01085"></a>01085       <span class="keywordflow">return</span>; <span class="comment">// stop here, in case of multiple actions</span>
<a name="l01086"></a>01086     <span class="keywordflow">case</span> DelayedGoHistory:
<a name="l01087"></a>01087       <a class="code" href="classKJS_1_1Window.html#1dcec3118bf4d0951cc56e43ce9cd7c4">goHistory</a>( (*it).param.toInt() );
<a name="l01088"></a>01088       <span class="keywordflow">break</span>;
<a name="l01089"></a>01089     <span class="keywordflow">case</span> NullAction:
<a name="l01090"></a>01090       <span class="comment">// FIXME: anything needs to be done here?  This is warning anyways.</span>
<a name="l01091"></a>01091       <span class="keywordflow">break</span>;
<a name="l01092"></a>01092     };
<a name="l01093"></a>01093   }
<a name="l01094"></a>01094 }
<a name="l01095"></a>01095 
<a name="l01096"></a>01096 <span class="keywordtype">bool</span> Window::checkIsSafeScript(<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *activePart)<span class="keyword"> const</span>
<a name="l01097"></a>01097 <span class="keyword"></span>{
<a name="l01098"></a>01098   <span class="keywordflow">if</span> (m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() || m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>()) { <span class="comment">// part deleted ? can't grant access</span>
<a name="l01099"></a>01099     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::isSafeScript: accessing deleted part !"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01100"></a>01100     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l01101"></a>01101   }
<a name="l01102"></a>01102   <span class="keywordflow">if</span> (!activePart) {
<a name="l01103"></a>01103     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::isSafeScript: current interpreter's part is 0L!"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01104"></a>01104     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l01105"></a>01105   }
<a name="l01106"></a>01106    <span class="keywordflow">if</span> ( activePart == m_frame-&gt;m_part ) <span class="comment">// Not calling from another frame, no problem.</span>
<a name="l01107"></a>01107      <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l01108"></a>01108 
<a name="l01109"></a>01109   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01110"></a>01110   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l01111"></a>01111     <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// not a KHTMLPart</span>
<a name="l01112"></a>01112 
<a name="l01113"></a>01113   <span class="keywordflow">if</span> ( <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;document().isNull() )
<a name="l01114"></a>01114     <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// allow to access a window that was just created (e.g. with window.open("about:blank"))</span>
<a name="l01115"></a>01115 
<a name="l01116"></a>01116   <a class="code" href="classDOM_1_1HTMLDocument.html">DOM::HTMLDocument</a> thisDocument = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;htmlDocument();
<a name="l01117"></a>01117   <span class="keywordflow">if</span> ( thisDocument.<a class="code" href="classDOM_1_1Node.html#fbf817c4885b063f6672c20c6ec5cb2e">isNull</a>() ) {
<a name="l01118"></a>01118     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::isSafeScript: trying to access an XML document !?"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01119"></a>01119     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l01120"></a>01120   }
<a name="l01121"></a>01121 
<a name="l01122"></a>01122   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *activeKHTMLPart = ::qt_cast&lt;KHTMLPart *&gt;(activePart);
<a name="l01123"></a>01123   <span class="keywordflow">if</span> (!activeKHTMLPart)
<a name="l01124"></a>01124     <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// not a KHTMLPart</span>
<a name="l01125"></a>01125 
<a name="l01126"></a>01126   <a class="code" href="classDOM_1_1HTMLDocument.html">DOM::HTMLDocument</a> actDocument = activeKHTMLPart-&gt;<a class="code" href="classKHTMLPart.html#56f0f72f58376e7308af0c392dd937a3">htmlDocument</a>();
<a name="l01127"></a>01127   <span class="keywordflow">if</span> ( actDocument.<a class="code" href="classDOM_1_1Node.html#fbf817c4885b063f6672c20c6ec5cb2e">isNull</a>() ) {
<a name="l01128"></a>01128     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::isSafeScript: active part has no document!"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01129"></a>01129     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l01130"></a>01130   }
<a name="l01131"></a>01131   <a class="code" href="classDOM_1_1DOMString.html">DOM::DOMString</a> actDomain = actDocument.<a class="code" href="classDOM_1_1HTMLDocument.html#1e450944c12df0dff37da20791645106">domain</a>();
<a name="l01132"></a>01132   <a class="code" href="classDOM_1_1DOMString.html">DOM::DOMString</a> thisDomain = thisDocument.<a class="code" href="classDOM_1_1HTMLDocument.html#1e450944c12df0dff37da20791645106">domain</a>();
<a name="l01133"></a>01133 
<a name="l01134"></a>01134   <span class="keywordflow">if</span> ( actDomain == thisDomain ) {
<a name="l01135"></a>01135 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l01136"></a>01136 <span class="preprocessor"></span>    <span class="comment">//kdDebug(6070) &lt;&lt; "JavaScript: access granted, domain is '" &lt;&lt; actDomain.string() &lt;&lt; "'" &lt;&lt; endl;</span>
<a name="l01137"></a>01137 <span class="preprocessor">#endif</span>
<a name="l01138"></a>01138 <span class="preprocessor"></span>    <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l01139"></a>01139   }
<a name="l01140"></a>01140 
<a name="l01141"></a>01141   <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"WARNING: JavaScript: access denied for current frame '"</span> &lt;&lt; actDomain.<a class="code" href="classDOM_1_1DOMString.html#21fd00babd7973c684e3b7f9070607ae">string</a>() &lt;&lt; <span class="stringliteral">"' to frame '"</span> &lt;&lt; thisDomain.<a class="code" href="classDOM_1_1DOMString.html#21fd00babd7973c684e3b7f9070607ae">string</a>() &lt;&lt; <span class="stringliteral">"'"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01142"></a>01142   <span class="comment">// TODO after 3.1: throw security exception (exec-&gt;setException())</span>
<a name="l01143"></a>01143   <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l01144"></a>01144 }
<a name="l01145"></a>01145 
<a name="l01146"></a><a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">01146</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#bd75e09b3b0e1c3aa8d5bdda9beeeb4c">Window::setListener</a>(ExecState *exec, <span class="keywordtype">int</span> eventId, Value func)
<a name="l01147"></a>01147 {
<a name="l01148"></a>01148   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01149"></a>01149   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> || !<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l01150"></a>01150     <span class="keywordflow">return</span>;
<a name="l01151"></a>01151   DOM::DocumentImpl *doc = static_cast&lt;DOM::DocumentImpl*&gt;(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;htmlDocument().handle());
<a name="l01152"></a>01152   <span class="keywordflow">if</span> (!doc)
<a name="l01153"></a>01153     <span class="keywordflow">return</span>;
<a name="l01154"></a>01154 
<a name="l01155"></a>01155   doc-&gt;setHTMLWindowEventListener(eventId,<a class="code" href="classKJS_1_1Window.html#8deaa03602259a888575e0165344e1c6">getJSEventListener</a>(func,<span class="keyword">true</span>));
<a name="l01156"></a>01156 }
<a name="l01157"></a>01157 
<a name="l01158"></a><a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">01158</a> Value <a class="code" href="classKJS_1_1Window.html#131c8f92b9b3432f2ad928fa88d3d4f8">Window::getListener</a>(ExecState *exec, <span class="keywordtype">int</span> eventId)<span class="keyword"> const</span>
<a name="l01159"></a>01159 <span class="keyword"></span>{
<a name="l01160"></a>01160   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01161"></a>01161   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> || !<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l01162"></a>01162     <span class="keywordflow">return</span> Undefined();
<a name="l01163"></a>01163   DOM::DocumentImpl *doc = static_cast&lt;DOM::DocumentImpl*&gt;(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;htmlDocument().handle());
<a name="l01164"></a>01164   <span class="keywordflow">if</span> (!doc)
<a name="l01165"></a>01165     <span class="keywordflow">return</span> Undefined();
<a name="l01166"></a>01166 
<a name="l01167"></a>01167   <a class="code" href="classDOM_1_1EventListener.html">DOM::EventListener</a> *listener = doc-&gt;getHTMLWindowEventListener(eventId);
<a name="l01168"></a>01168   <span class="keywordflow">if</span> (listener &amp;&amp; static_cast&lt;JSEventListener*&gt;(listener)-&gt;listenerObjImp())
<a name="l01169"></a>01169     <span class="keywordflow">return</span> static_cast&lt;JSEventListener*&gt;(listener)-&gt;listenerObj();
<a name="l01170"></a>01170   <span class="keywordflow">else</span>
<a name="l01171"></a>01171     <span class="keywordflow">return</span> Null();
<a name="l01172"></a>01172 }
<a name="l01173"></a>01173 
<a name="l01174"></a>01174 
<a name="l01175"></a><a class="code" href="classKJS_1_1Window.html#8deaa03602259a888575e0165344e1c6">01175</a> <a class="code" href="classKJS_1_1JSEventListener.html">JSEventListener</a> *<a class="code" href="classKJS_1_1Window.html#8deaa03602259a888575e0165344e1c6">Window::getJSEventListener</a>(<span class="keyword">const</span> Value&amp; val, <span class="keywordtype">bool</span> html)
<a name="l01176"></a>01176 {
<a name="l01177"></a>01177   <span class="comment">// This function is so hot that it's worth coding it directly with imps.</span>
<a name="l01178"></a>01178   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01179"></a>01179   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> || val.type() != ObjectType)
<a name="l01180"></a>01180     <span class="keywordflow">return</span> 0;
<a name="l01181"></a>01181 
<a name="l01182"></a>01182   <span class="comment">// It's ObjectType, so it must be valid.</span>
<a name="l01183"></a>01183   Object listenerObject = Object::dynamicCast(val);
<a name="l01184"></a>01184   ObjectImp *listenerObjectImp = listenerObject.imp();
<a name="l01185"></a>01185 
<a name="l01186"></a>01186   <span class="comment">// 'listener' is not a simple ecma function. (Always use sanity checks: Better safe than sorry!)</span>
<a name="l01187"></a>01187   <span class="keywordflow">if</span> (!listenerObject.implementsCall() &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;jScript() &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;jScript()-&gt;interpreter())
<a name="l01188"></a>01188   {
<a name="l01189"></a>01189     Interpreter *interpreter = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;jScript()-&gt;interpreter();
<a name="l01190"></a>01190 
<a name="l01191"></a>01191     <span class="comment">// 'listener' probably is an EventListener object containing a 'handleEvent' function.</span>
<a name="l01192"></a>01192     Value handleEventValue = listenerObject.get(interpreter-&gt;globalExec(), Identifier(<span class="stringliteral">"handleEvent"</span>));
<a name="l01193"></a>01193     Object handleEventObject = Object::dynamicCast(handleEventValue);
<a name="l01194"></a>01194 
<a name="l01195"></a>01195     <span class="keywordflow">if</span>(handleEventObject.isValid() &amp;&amp; handleEventObject.implementsCall())
<a name="l01196"></a>01196     {
<a name="l01197"></a>01197       listenerObject = handleEventObject;
<a name="l01198"></a>01198       listenerObjectImp = handleEventObject.imp();
<a name="l01199"></a>01199     }
<a name="l01200"></a>01200   }
<a name="l01201"></a>01201 
<a name="l01202"></a>01202   <a class="code" href="classKJS_1_1JSEventListener.html">JSEventListener</a> *existingListener = <a class="code" href="classKJS_1_1Window.html#ba4bf0ef949b677c9d2c9297f48f5027">jsEventListeners</a>[listenerObjectImp];
<a name="l01203"></a>01203   <span class="keywordflow">if</span> (existingListener) {
<a name="l01204"></a>01204      <span class="keywordflow">if</span> ( existingListener-&gt;<a class="code" href="classKJS_1_1JSEventListener.html#3b2d4d57010d58f6838eb377ab56da1e">isHTMLEventListener</a>() != html )
<a name="l01205"></a>01205         <span class="comment">// The existingListener will have the wrong type, so onclick= will behave like addEventListener or vice versa.</span>
<a name="l01206"></a>01206         <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg9acd682001598171edf8ecb104fdad2b">kdWarning</a>() &lt;&lt; <span class="stringliteral">"getJSEventListener: event listener already found but with html="</span> &lt;&lt; !html &lt;&lt; <span class="stringliteral">" - please report this, we thought it would never happen"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01207"></a>01207     <span class="keywordflow">return</span> existingListener;
<a name="l01208"></a>01208   }
<a name="l01209"></a>01209 
<a name="l01210"></a>01210   <span class="comment">// Note that the JSEventListener constructor adds it to our jsEventListeners list</span>
<a name="l01211"></a>01211   <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classKJS_1_1JSEventListener.html">JSEventListener</a>(listenerObject, listenerObjectImp, Object(<span class="keyword">this</span>), html);
<a name="l01212"></a>01212 }
<a name="l01213"></a>01213 
<a name="l01214"></a><a class="code" href="classKJS_1_1Window.html#c235ef747e84dde23d401a4029ed3a4c">01214</a> <a class="code" href="classKJS_1_1JSLazyEventListener.html">JSLazyEventListener</a> *<a class="code" href="classKJS_1_1Window.html#c235ef747e84dde23d401a4029ed3a4c">Window::getJSLazyEventListener</a>(<span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>&amp; code, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>&amp; name, DOM::NodeImpl *node)
<a name="l01215"></a>01215 {
<a name="l01216"></a>01216   <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classKJS_1_1JSLazyEventListener.html">JSLazyEventListener</a>(code, name, Object(<span class="keyword">this</span>), node);
<a name="l01217"></a>01217 }
<a name="l01218"></a>01218 
<a name="l01219"></a><a class="code" href="classKJS_1_1Window.html#70f1172c311eb2090e89111f3493c846">01219</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#70f1172c311eb2090e89111f3493c846">Window::clear</a>( ExecState *exec )
<a name="l01220"></a>01220 {
<a name="l01221"></a>01221   <span class="keyword">delete</span> <a class="code" href="classKJS_1_1Window.html#6639d4792e2335e0d5e85eb73fbdd8b3">winq</a>;
<a name="l01222"></a>01222   <a class="code" href="classKJS_1_1Window.html#6639d4792e2335e0d5e85eb73fbdd8b3">winq</a> = 0L;
<a name="l01223"></a>01223   <span class="comment">// Get rid of everything, those user vars could hold references to DOM nodes</span>
<a name="l01224"></a>01224   deleteAllProperties( exec );
<a name="l01225"></a>01225 
<a name="l01226"></a>01226   <span class="comment">// Break the dependency between the listeners and their object</span>
<a name="l01227"></a>01227   <a class="codeRef" doxygen="qt.tag:" href="qptrdictiterator.html">QPtrDictIterator&lt;JSEventListener&gt;</a> it(<a class="code" href="classKJS_1_1Window.html#ba4bf0ef949b677c9d2c9297f48f5027">jsEventListeners</a>);
<a name="l01228"></a>01228   <span class="keywordflow">for</span> (; it.<a class="codeRef" doxygen="qt.tag:" href="qptrdictiterator.html#current">current</a>(); ++it)
<a name="l01229"></a>01229     it.<a class="codeRef" doxygen="qt.tag:" href="qptrdictiterator.html#current">current</a>()-&gt;clear();
<a name="l01230"></a>01230   <span class="comment">// Forget about the listeners (the DOM::NodeImpls will delete them)</span>
<a name="l01231"></a>01231   <a class="code" href="classKJS_1_1Window.html#ba4bf0ef949b677c9d2c9297f48f5027">jsEventListeners</a>.clear();
<a name="l01232"></a>01232 
<a name="l01233"></a>01233   <span class="keywordflow">if</span> (m_frame) {
<a name="l01234"></a>01234     <a class="code" href="classKJSProxy.html">KJSProxy</a>* proxy = m_frame-&gt;m_jscript;
<a name="l01235"></a>01235     <span class="keywordflow">if</span> (proxy) <span class="comment">// i.e. JS not disabled</span>
<a name="l01236"></a>01236     {
<a name="l01237"></a>01237       <a class="code" href="classKJS_1_1Window.html#6639d4792e2335e0d5e85eb73fbdd8b3">winq</a> = <span class="keyword">new</span> <a class="code" href="classKJS_1_1Window.html#65eb284a4157ee4316353904a95b0066">WindowQObject</a>(<span class="keyword">this</span>);
<a name="l01238"></a>01238       <span class="comment">// Now recreate a working global object for the next URL that will use us</span>
<a name="l01239"></a>01239       KJS::Interpreter *interpreter = proxy-&gt;<a class="code" href="classKJSProxy.html#3a998f62916bf64732108d81fe6d4470">interpreter</a>();
<a name="l01240"></a>01240       interpreter-&gt;initGlobalObject();
<a name="l01241"></a>01241     }
<a name="l01242"></a>01242   }
<a name="l01243"></a>01243 }
<a name="l01244"></a>01244 
<a name="l01245"></a><a class="code" href="classKJS_1_1Window.html#9834f3ac5af039c3392b229ff6bdf0c5">01245</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#9834f3ac5af039c3392b229ff6bdf0c5">Window::setCurrentEvent</a>( <a class="code" href="classDOM_1_1Event.html">DOM::Event</a> *evt )
<a name="l01246"></a>01246 {
<a name="l01247"></a>01247   m_evt = evt;
<a name="l01248"></a>01248   <span class="comment">//kdDebug(6070) &lt;&lt; "Window " &lt;&lt; this &lt;&lt; " (part=" &lt;&lt; m_part &lt;&lt; ")::setCurrentEvent m_evt=" &lt;&lt; evt &lt;&lt; endl;</span>
<a name="l01249"></a>01249 }
<a name="l01250"></a>01250 
<a name="l01251"></a><a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">01251</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">Window::goURL</a>(ExecState* exec, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>&amp; url, <span class="keywordtype">bool</span> lockHistory)
<a name="l01252"></a>01252 {
<a name="l01253"></a>01253   <a class="code" href="classKJS_1_1Window.html">Window</a>* active = <a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">Window::retrieveActive</a>(exec);
<a name="l01254"></a>01254   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01255"></a>01255   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *active_part = ::qt_cast&lt;KHTMLPart *&gt;(active-&gt;<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>());
<a name="l01256"></a>01256   <span class="comment">// Complete the URL using the "active part" (running interpreter)</span>
<a name="l01257"></a>01257   <span class="keywordflow">if</span> (active_part &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>) {
<a name="l01258"></a>01258     <span class="keywordflow">if</span> (url[0] == <a class="codeRef" doxygen="qt.tag:" href="qchar.html">QChar</a>(<span class="charliteral">'#'</span>)) {
<a name="l01259"></a>01259       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;gotoAnchor(url.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#mid">mid</a>(1));
<a name="l01260"></a>01260     } <span class="keywordflow">else</span> {
<a name="l01261"></a>01261       <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> dstUrl = active_part-&gt;htmlDocument().completeURL(url).string();
<a name="l01262"></a>01262       <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::goURL dstUrl="</span> &lt;&lt; dstUrl &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01263"></a>01263 
<a name="l01264"></a>01264       <span class="comment">// check if we're allowed to inject javascript</span>
<a name="l01265"></a>01265       <span class="comment">// SYNC check with khtml_part.cpp::slotRedirect!</span>
<a name="l01266"></a>01266       <span class="keywordflow">if</span> ( <a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) ||
<a name="l01267"></a>01267             dstUrl.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#find">find</a>(<a class="codeRef" doxygen="qt.tag:" href="qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">"javascript:"</span>), 0, <span class="keyword">false</span>) != 0 )
<a name="l01268"></a>01268         <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;scheduleRedirection(-1,
<a name="l01269"></a>01269                                   dstUrl,
<a name="l01270"></a>01270                                   lockHistory);
<a name="l01271"></a>01271     }
<a name="l01272"></a>01272   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> &amp;&amp; !m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>()) {
<a name="l01273"></a>01273     <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html">KParts::BrowserExtension</a> *b = <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#8b0030640356a9a097e2a2328d7bfc3d">KParts::BrowserExtension::childObject</a>(m_frame-&gt;m_part);
<a name="l01274"></a>01274     <span class="keywordflow">if</span> (b)
<a name="l01275"></a>01275       b-&gt;emit openURLRequest(m_frame-&gt;m_frame-&gt;element()-&gt;getDocument()-&gt;completeURL(url));
<a name="l01276"></a>01276     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>() &lt;&lt; <span class="stringliteral">"goURL for ROPart"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01277"></a>01277   }
<a name="l01278"></a>01278 }
<a name="l01279"></a>01279 
<a name="l01280"></a><a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">01280</a> <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">Window::part</a>()<span class="keyword"> const </span>{
<a name="l01281"></a>01281     <span class="keywordflow">return</span> m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() ? 0L : static_cast&lt;KParts::ReadOnlyPart *&gt;(m_frame-&gt;m_part);
<a name="l01282"></a>01282 }
<a name="l01283"></a>01283 
<a name="l01284"></a><a class="code" href="classKJS_1_1Window.html#33fb9f3499e852a178d7d039e4e305eb">01284</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#33fb9f3499e852a178d7d039e4e305eb">Window::delayedGoHistory</a>( <span class="keywordtype">int</span> steps )
<a name="l01285"></a>01285 {
<a name="l01286"></a>01286     m_delayed.append( <a class="code" href="classKJS_1_1Window.html#667d4e831d325b6f987fbfededf70557">DelayedAction</a>( DelayedGoHistory, steps ) );
<a name="l01287"></a>01287 }
<a name="l01288"></a>01288 
<a name="l01289"></a><a class="code" href="classKJS_1_1Window.html#1dcec3118bf4d0951cc56e43ce9cd7c4">01289</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#1dcec3118bf4d0951cc56e43ce9cd7c4">Window::goHistory</a>( <span class="keywordtype">int</span> steps )
<a name="l01290"></a>01290 {
<a name="l01291"></a>01291   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01292"></a>01292   <span class="keywordflow">if</span>(!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l01293"></a>01293       <span class="comment">// TODO history readonlypart</span>
<a name="l01294"></a>01294     <span class="keywordflow">return</span>;
<a name="l01295"></a>01295   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html">KParts::BrowserExtension</a> *ext = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;browserExtension();
<a name="l01296"></a>01296   <span class="keywordflow">if</span>(!ext)
<a name="l01297"></a>01297     <span class="keywordflow">return</span>;
<a name="l01298"></a>01298   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserInterface.html">KParts::BrowserInterface</a> *iface = ext-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#8bdeb19e1954a60fd49be6d7ab11d086">browserInterface</a>();
<a name="l01299"></a>01299 
<a name="l01300"></a>01300   <span class="keywordflow">if</span> ( !iface )
<a name="l01301"></a>01301     <span class="keywordflow">return</span>;
<a name="l01302"></a>01302 
<a name="l01303"></a>01303   iface-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserInterface.html#2b7c63a3eaa196f53b3cc679714de295">callMethod</a>( <span class="stringliteral">"goHistory(int)"</span>, steps );
<a name="l01304"></a>01304   <span class="comment">//emit ext-&gt;goHistory(steps);</span>
<a name="l01305"></a>01305 }
<a name="l01306"></a>01306 
<a name="l01307"></a><a class="code" href="classKJS_1_1Window.html#2cc8dafc364a8c79cd644dfeb3ea3472">01307</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#2cc8dafc364a8c79cd644dfeb3ea3472">KJS::Window::resizeTo</a>(<a class="codeRef" doxygen="qt.tag:" href="qwidget.html">QWidget</a>* tl, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height)
<a name="l01308"></a>01308 {
<a name="l01309"></a>01309   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01310"></a>01310   <span class="keywordflow">if</span>(!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l01311"></a>01311       <span class="comment">// TODO resizeTo readonlypart</span>
<a name="l01312"></a>01312     <span class="keywordflow">return</span>;
<a name="l01313"></a>01313   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html">KParts::BrowserExtension</a> *ext = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;browserExtension();
<a name="l01314"></a>01314   <span class="keywordflow">if</span> (!ext) {
<a name="l01315"></a>01315     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::resizeTo found no browserExtension"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01316"></a>01316     <span class="keywordflow">return</span>;
<a name="l01317"></a>01317   }
<a name="l01318"></a>01318 
<a name="l01319"></a>01319   <span class="comment">// Security check: within desktop limits and bigger than 100x100 (per spec)</span>
<a name="l01320"></a>01320   <span class="keywordflow">if</span> ( width &lt; 100 || height &lt; 100 ) {
<a name="l01321"></a>01321     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::resizeTo refused, window would be too small ("</span>&lt;&lt;width&lt;&lt;<span class="stringliteral">","</span>&lt;&lt;height&lt;&lt;<span class="stringliteral">")"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01322"></a>01322     <span class="keywordflow">return</span>;
<a name="l01323"></a>01323   }
<a name="l01324"></a>01324 
<a name="l01325"></a>01325   <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> sg = <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKGlobalSettings.html#63f7c20327cdb7972e2aff9b765b8985">KGlobalSettings::desktopGeometry</a>(tl);
<a name="l01326"></a>01326 
<a name="l01327"></a>01327   <span class="keywordflow">if</span> ( width &gt; sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>() || height &gt; sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>() ) {
<a name="l01328"></a>01328     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Window::resizeTo refused, window would be too big ("</span>&lt;&lt;width&lt;&lt;<span class="stringliteral">","</span>&lt;&lt;height&lt;&lt;<span class="stringliteral">")"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01329"></a>01329     <span class="keywordflow">return</span>;
<a name="l01330"></a>01330   }
<a name="l01331"></a>01331 
<a name="l01332"></a>01332   <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"resizing to "</span> &lt;&lt; width &lt;&lt; <span class="stringliteral">"x"</span> &lt;&lt; height &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01333"></a>01333 
<a name="l01334"></a>01334   emit ext-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#5ac0475a4a7d3434326c96bfcff57006">resizeTopLevelWidget</a>( width, height );
<a name="l01335"></a>01335 
<a name="l01336"></a>01336   <span class="comment">// If the window is out of the desktop, move it up/left</span>
<a name="l01337"></a>01337   <span class="comment">// (maybe we should use workarea instead of sg, otherwise the window ends up below kicker)</span>
<a name="l01338"></a>01338   <span class="keywordtype">int</span> right = tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#x">x</a>() + tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#frameGeometry">frameGeometry</a>().width();
<a name="l01339"></a>01339   <span class="keywordtype">int</span> bottom = tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#y">y</a>() + tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#frameGeometry">frameGeometry</a>().height();
<a name="l01340"></a>01340   <span class="keywordtype">int</span> moveByX = 0;
<a name="l01341"></a>01341   <span class="keywordtype">int</span> moveByY = 0;
<a name="l01342"></a>01342   <span class="keywordflow">if</span> ( right &gt; sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#right">right</a>() )
<a name="l01343"></a>01343     moveByX = - right + sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#right">right</a>(); <span class="comment">// always &lt;0</span>
<a name="l01344"></a>01344   <span class="keywordflow">if</span> ( bottom &gt; sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#bottom">bottom</a>() )
<a name="l01345"></a>01345     moveByY = - bottom + sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#bottom">bottom</a>(); <span class="comment">// always &lt;0</span>
<a name="l01346"></a>01346   <span class="keywordflow">if</span> ( moveByX || moveByY )
<a name="l01347"></a>01347     emit ext-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#ad5b1ddfb7313a8cf23a791fde7ec336">moveTopLevelWidget</a>( tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#x">x</a>() + moveByX , tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#y">y</a>() + moveByY );
<a name="l01348"></a>01348 }
<a name="l01349"></a>01349 
<a name="l01350"></a><a class="code" href="classKJS_1_1Window.html#3fbc88455304ba04fcaa8fd59c3859eb">01350</a> Value <a class="code" href="classKJS_1_1Window.html#3fbc88455304ba04fcaa8fd59c3859eb">Window::openWindow</a>(ExecState *exec, <span class="keyword">const</span> List&amp; args)
<a name="l01351"></a>01351 {
<a name="l01352"></a>01352   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01353"></a>01353   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l01354"></a>01354     <span class="keywordflow">return</span> Undefined();
<a name="l01355"></a>01355   <a class="code" href="classKHTMLView.html">KHTMLView</a> *widget = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view();
<a name="l01356"></a>01356   Value v = args[0];
<a name="l01357"></a>01357   <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> str;
<a name="l01358"></a>01358   <span class="keywordflow">if</span> (v.isValid() &amp;&amp; !v.isA(UndefinedType))
<a name="l01359"></a>01359     str = v.toString(exec).qstring();
<a name="l01360"></a>01360 
<a name="l01361"></a>01361   <span class="comment">// prepare arguments</span>
<a name="l01362"></a>01362   <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html">KURL</a> url;
<a name="l01363"></a>01363   <span class="keywordflow">if</span> (!str.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#isEmpty">isEmpty</a>())
<a name="l01364"></a>01364   {
<a name="l01365"></a>01365     <a class="code" href="classKHTMLPart.html">KHTMLPart</a>* p = ::qt_cast&lt;KHTMLPart *&gt;(<a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">Window::retrieveActive</a>(exec)-&gt;m_frame-&gt;m_part);
<a name="l01366"></a>01366     <span class="keywordflow">if</span> ( p )
<a name="l01367"></a>01367       url = p-&gt;htmlDocument().completeURL(str).string();
<a name="l01368"></a>01368     <span class="keywordflow">if</span> ( !p ||
<a name="l01369"></a>01369          !static_cast&lt;DOM::DocumentImpl*&gt;(p-&gt;htmlDocument().handle())-&gt;isURLAllowed(url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#af8593b924647a9db73016fbeab1812a">url</a>()) )
<a name="l01370"></a>01370       <span class="keywordflow">return</span> Undefined();
<a name="l01371"></a>01371   }
<a name="l01372"></a>01372 
<a name="l01373"></a>01373   <a class="code" href="classKHTMLSettings.html#b38fc8c32f4d73a22b87efd5432eb8c8">KHTMLSettings::KJSWindowOpenPolicy</a> policy =
<a name="l01374"></a>01374         <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;settings()-&gt;windowOpenPolicy(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html#cb4ef957a59d80168a38c4bf24d0dd11">url</a>().<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#df3ad35581a0ca25ecc16e073f8275ca">host</a>());
<a name="l01375"></a>01375   <span class="keywordflow">if</span> ( policy == KHTMLSettings::KJSWindowOpenAsk ) {
<a name="l01376"></a>01376     emit <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;browserExtension()-&gt;requestFocus(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>);
<a name="l01377"></a>01377     <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> caption;
<a name="l01378"></a>01378     <span class="keywordflow">if</span> (!part-&gt;url().host().isEmpty())
<a name="l01379"></a>01379       caption = part-&gt;url().host() + <span class="stringliteral">" - "</span>;
<a name="l01380"></a>01380     caption += i18n( <span class="stringliteral">"Confirmation: JavaScript Popup"</span> );
<a name="l01381"></a>01381     <span class="keywordflow">if</span> ( <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#f1f1a8e08ec4af3c5fee67e2e553c96d">KMessageBox::questionYesNo</a>(widget,
<a name="l01382"></a>01382                                     str.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#isEmpty">isEmpty</a>() ?
<a name="l01383"></a>01383                                     i18n( <span class="stringliteral">"This site is requesting to open up a new browser "</span>
<a name="l01384"></a>01384                                           <span class="stringliteral">"window via JavaScript.\n"</span>
<a name="l01385"></a>01385                                           <span class="stringliteral">"Do you want to allow this?"</span> ) :
<a name="l01386"></a>01386                                     i18n( <span class="stringliteral">"&lt;qt&gt;This site is requesting to open&lt;p&gt;%1&lt;/p&gt;in a new browser window via JavaScript.&lt;br /&gt;"</span>
<a name="l01387"></a>01387                                           <span class="stringliteral">"Do you want to allow this?&lt;/qt&gt;"</span>).arg(<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKStringHandler.html#5d09c657585f2b3443e5af9e8a1fbef7">KStringHandler::csqueeze</a>(url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#1435c4cc9e9cda44c3490eba7a351101">htmlURL</a>(),  100)),
<a name="l01388"></a>01388                                     caption, i18n(<span class="stringliteral">"Allow"</span>), i18n(<span class="stringliteral">"Do Not Allow"</span>) ) == <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#7b65482f7d03a391aff64c73f7cae32a2a5a0869dd1dad4b9dc0a83308ec5f8c">KMessageBox::Yes</a> )
<a name="l01389"></a>01389       policy = KHTMLSettings::KJSWindowOpenAllow;
<a name="l01390"></a>01390   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( policy == KHTMLSettings::KJSWindowOpenSmart )
<a name="l01391"></a>01391   {
<a name="l01392"></a>01392     <span class="comment">// window.open disabled unless from a key/mouse event</span>
<a name="l01393"></a>01393     <span class="keywordflow">if</span> (static_cast&lt;ScriptInterpreter *&gt;(exec-&gt;interpreter())-&gt;isWindowOpenAllowed())
<a name="l01394"></a>01394       policy = KHTMLSettings::KJSWindowOpenAllow;
<a name="l01395"></a>01395   }
<a name="l01396"></a>01396 
<a name="l01397"></a>01397   <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> frameName = args.size() &gt; 1 ? args[1].toString(exec).qstring() : <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>(<span class="stringliteral">"_blank"</span>);
<a name="l01398"></a>01398 
<a name="l01399"></a>01399   v = args[2];
<a name="l01400"></a>01400   <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> features;
<a name="l01401"></a>01401   <span class="keywordflow">if</span> (!v.isNull() &amp;&amp; v.type() != UndefinedType &amp;&amp; v.toString(exec).size() &gt; 0) {
<a name="l01402"></a>01402     features = v.toString(exec).qstring();
<a name="l01403"></a>01403     <span class="comment">// Buggy scripts have ' at beginning and end, cut those</span>
<a name="l01404"></a>01404     <span class="keywordflow">if</span> (features.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#startsWith">startsWith</a>(<span class="stringliteral">"\'"</span>) &amp;&amp; features.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#endsWith">endsWith</a>(<span class="stringliteral">"\'"</span>))
<a name="l01405"></a>01405       features = features.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#mid">mid</a>(1, features.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#length">length</a>()-2);
<a name="l01406"></a>01406   }
<a name="l01407"></a>01407 
<a name="l01408"></a>01408   <span class="keywordflow">if</span> ( policy != KHTMLSettings::KJSWindowOpenAllow ) {
<a name="l01409"></a>01409     <span class="keywordflow">if</span> ( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#f10f805c72d7223d88d7499fc5f39bd2">isEmpty</a>() )
<a name="l01410"></a>01410       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;setSuppressedPopupIndicator(<span class="keyword">true</span>, 0);
<a name="l01411"></a>01411     <span class="keywordflow">else</span> {
<a name="l01412"></a>01412       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;setSuppressedPopupIndicator(<span class="keyword">true</span>, <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>);
<a name="l01413"></a>01413       m_suppressedWindowInfo.append( SuppressedWindowInfo( url, frameName, features ) );
<a name="l01414"></a>01414     }
<a name="l01415"></a>01415     <span class="keywordflow">return</span> Undefined();
<a name="l01416"></a>01416   } <span class="keywordflow">else</span> {
<a name="l01417"></a>01417     <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#cbf994e5509b3cefe9a6ab946a6f3754">executeOpenWindow</a>(exec, url, frameName, features);
<a name="l01418"></a>01418   }
<a name="l01419"></a>01419 }
<a name="l01420"></a>01420 
<a name="l01421"></a><a class="code" href="classKJS_1_1Window.html#cbf994e5509b3cefe9a6ab946a6f3754">01421</a> Value <a class="code" href="classKJS_1_1Window.html#cbf994e5509b3cefe9a6ab946a6f3754">Window::executeOpenWindow</a>(ExecState *exec, <span class="keyword">const</span> <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html">KURL</a>&amp; url, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>&amp; frameName, <span class="keyword">const</span> <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>&amp; features)
<a name="l01422"></a>01422 {
<a name="l01423"></a>01423     <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *p = ::qt_cast&lt;KHTMLPart *&gt;(m_frame-&gt;m_part);
<a name="l01424"></a>01424     <a class="code" href="classKHTMLView.html">KHTMLView</a> *widget = p-&gt;<a class="code" href="classKHTMLPart.html#a2c1b121eeba45e3dad2918cf51972c9">view</a>();
<a name="l01425"></a>01425     <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html">KParts::WindowArgs</a> winargs;
<a name="l01426"></a>01426 
<a name="l01427"></a>01427     <span class="comment">// scan feature argument</span>
<a name="l01428"></a>01428     <span class="keywordflow">if</span> (!features.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#isEmpty">isEmpty</a>()) {
<a name="l01429"></a>01429       <span class="comment">// specifying window params means false defaults</span>
<a name="l01430"></a>01430       winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#0c26b5af268577698632bd3eac9d6e76">menuBarVisible</a> = <span class="keyword">false</span>;
<a name="l01431"></a>01431       winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#1a6cda62cee089981d6f81832fafe009">toolBarsVisible</a> = <span class="keyword">false</span>;
<a name="l01432"></a>01432       winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#49e84acd52e93c4af44e9fe8d91fe193">statusBarVisible</a> = <span class="keyword">false</span>;
<a name="l01433"></a>01433       winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#ea2519d67e2ec5e15e53ce1c75f20aa9">scrollBarsVisible</a> = <span class="keyword">false</span>;
<a name="l01434"></a>01434       <a class="codeRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> flist = <a class="codeRef" doxygen="qt.tag:" href="qstringlist.html#split">QStringList::split</a>(<span class="charliteral">','</span>, features);
<a name="l01435"></a>01435       QStringList::ConstIterator it = flist.begin();
<a name="l01436"></a>01436       <span class="keywordflow">while</span> (it != flist.end()) {
<a name="l01437"></a>01437         <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> s = *it++;
<a name="l01438"></a>01438         <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> key, val;
<a name="l01439"></a>01439         <span class="keywordtype">int</span> pos = s.find(<span class="charliteral">'='</span>);
<a name="l01440"></a>01440         <span class="keywordflow">if</span> (pos &gt;= 0) {
<a name="l01441"></a>01441           key = s.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#left">left</a>(pos).stripWhiteSpace().lower();
<a name="l01442"></a>01442           val = s.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#mid">mid</a>(pos + 1).stripWhiteSpace().lower();
<a name="l01443"></a>01443           <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> screen = <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKGlobalSettings.html#63f7c20327cdb7972e2aff9b765b8985">KGlobalSettings::desktopGeometry</a>(widget-&gt;topLevelWidget());
<a name="l01444"></a>01444 
<a name="l01445"></a>01445           <span class="keywordflow">if</span> (key == <span class="stringliteral">"left"</span> || key == <span class="stringliteral">"screenx"</span>) {
<a name="l01446"></a>01446             winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#c3f33089484f9ef38590c849b2cb89b9">x</a> = (int)val.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#toFloat">toFloat</a>() + screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>();
<a name="l01447"></a>01447             <span class="keywordflow">if</span> (winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#c3f33089484f9ef38590c849b2cb89b9">x</a> &lt; screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>() || winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#c3f33089484f9ef38590c849b2cb89b9">x</a> &gt; screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#right">right</a>())
<a name="l01448"></a>01448               winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#c3f33089484f9ef38590c849b2cb89b9">x</a> = screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>(); <span class="comment">// only safe choice until size is determined</span>
<a name="l01449"></a>01449           } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"top"</span> || key == <span class="stringliteral">"screeny"</span>) {
<a name="l01450"></a>01450             winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#ce0d35d7a2828e1002a3886a3bd58bba">y</a> = (int)val.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#toFloat">toFloat</a>() + screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>();
<a name="l01451"></a>01451             <span class="keywordflow">if</span> (winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#ce0d35d7a2828e1002a3886a3bd58bba">y</a> &lt; screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>() || winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#ce0d35d7a2828e1002a3886a3bd58bba">y</a> &gt; screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#bottom">bottom</a>())
<a name="l01452"></a>01452               winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#ce0d35d7a2828e1002a3886a3bd58bba">y</a> = screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>(); <span class="comment">// only safe choice until size is determined</span>
<a name="l01453"></a>01453           } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"height"</span>) {
<a name="l01454"></a>01454             winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#5b0c0a20a477b5661d87f1d97fcb4787">height</a> = (int)val.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#toFloat">toFloat</a>() + 2*qApp-&gt;style().pixelMetric( QStyle::PM_DefaultFrameWidth ) + 2;
<a name="l01455"></a>01455             <span class="keywordflow">if</span> (winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#5b0c0a20a477b5661d87f1d97fcb4787">height</a> &gt; screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>())  <span class="comment">// should actually check workspace</span>
<a name="l01456"></a>01456               winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#5b0c0a20a477b5661d87f1d97fcb4787">height</a> = screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>();
<a name="l01457"></a>01457             <span class="keywordflow">if</span> (winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#5b0c0a20a477b5661d87f1d97fcb4787">height</a> &lt; 100)
<a name="l01458"></a>01458               winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#5b0c0a20a477b5661d87f1d97fcb4787">height</a> = 100;
<a name="l01459"></a>01459           } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"width"</span>) {
<a name="l01460"></a>01460             winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#20eac77fb2287d0096964c10ac993fd9">width</a> = (int)val.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#toFloat">toFloat</a>() + 2*qApp-&gt;style().pixelMetric( QStyle::PM_DefaultFrameWidth ) + 2;
<a name="l01461"></a>01461             <span class="keywordflow">if</span> (winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#20eac77fb2287d0096964c10ac993fd9">width</a> &gt; screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>())    <span class="comment">// should actually check workspace</span>
<a name="l01462"></a>01462               winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#20eac77fb2287d0096964c10ac993fd9">width</a> = screen.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>();
<a name="l01463"></a>01463             <span class="keywordflow">if</span> (winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#20eac77fb2287d0096964c10ac993fd9">width</a> &lt; 100)
<a name="l01464"></a>01464               winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#20eac77fb2287d0096964c10ac993fd9">width</a> = 100;
<a name="l01465"></a>01465           } <span class="keywordflow">else</span> {
<a name="l01466"></a>01466             <span class="keywordflow">goto</span> boolargs;
<a name="l01467"></a>01467           }
<a name="l01468"></a>01468           <span class="keywordflow">continue</span>;
<a name="l01469"></a>01469         } <span class="keywordflow">else</span> {
<a name="l01470"></a>01470           <span class="comment">// leaving away the value gives true</span>
<a name="l01471"></a>01471           key = s.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#stripWhiteSpace">stripWhiteSpace</a>().lower();
<a name="l01472"></a>01472           val = <span class="stringliteral">"1"</span>;
<a name="l01473"></a>01473         }
<a name="l01474"></a>01474       boolargs:
<a name="l01475"></a>01475         <span class="keywordflow">if</span> (key == <span class="stringliteral">"menubar"</span>)
<a name="l01476"></a>01476           winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#0c26b5af268577698632bd3eac9d6e76">menuBarVisible</a> = (val == <span class="stringliteral">"1"</span> || val == <span class="stringliteral">"yes"</span>);
<a name="l01477"></a>01477         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"toolbar"</span>)
<a name="l01478"></a>01478           winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#1a6cda62cee089981d6f81832fafe009">toolBarsVisible</a> = (val == <span class="stringliteral">"1"</span> || val == <span class="stringliteral">"yes"</span>);
<a name="l01479"></a>01479         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"location"</span>)  <span class="comment">// ### missing in WindowArgs</span>
<a name="l01480"></a>01480           winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#1a6cda62cee089981d6f81832fafe009">toolBarsVisible</a> = (val == <span class="stringliteral">"1"</span> || val == <span class="stringliteral">"yes"</span>);
<a name="l01481"></a>01481         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"status"</span> || key == <span class="stringliteral">"statusbar"</span>)
<a name="l01482"></a>01482           winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#49e84acd52e93c4af44e9fe8d91fe193">statusBarVisible</a> = (val == <span class="stringliteral">"1"</span> || val == <span class="stringliteral">"yes"</span>);
<a name="l01483"></a>01483         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"scrollbars"</span>)
<a name="l01484"></a>01484           winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#ea2519d67e2ec5e15e53ce1c75f20aa9">scrollBarsVisible</a> = (val == <span class="stringliteral">"1"</span> || val == <span class="stringliteral">"yes"</span>);
<a name="l01485"></a>01485         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"resizable"</span>)
<a name="l01486"></a>01486           winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#06919f69f25cd50e1f453fd1175a0c1e">resizable</a> = (val == <span class="stringliteral">"1"</span> || val == <span class="stringliteral">"yes"</span>);
<a name="l01487"></a>01487         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (key == <span class="stringliteral">"fullscreen"</span>)
<a name="l01488"></a>01488           winargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1WindowArgs.html#2352c5c3672e1a6cfceea23a8c0eb1c2">fullscreen</a> = (val == <span class="stringliteral">"1"</span> || val == <span class="stringliteral">"yes"</span>);
<a name="l01489"></a>01489       }
<a name="l01490"></a>01490     }
<a name="l01491"></a>01491 
<a name="l01492"></a>01492     <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html">KParts::URLArgs</a> uargs;
<a name="l01493"></a>01493     uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#7dbf89b0854f7329aa4a3b023648992c">frameName</a> = frameName;
<a name="l01494"></a>01494 
<a name="l01495"></a>01495     <span class="keywordflow">if</span> ( uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#7dbf89b0854f7329aa4a3b023648992c">frameName</a>.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#lower">lower</a>() == <span class="stringliteral">"_top"</span> )
<a name="l01496"></a>01496     {
<a name="l01497"></a>01497       <span class="keywordflow">while</span> ( p-&gt;<a class="code" href="classKHTMLPart.html#4ab62fae7ea81eafb62c1ae13c13e401">parentPart</a>() )
<a name="l01498"></a>01498         p = p-&gt;<a class="code" href="classKHTMLPart.html#4ab62fae7ea81eafb62c1ae13c13e401">parentPart</a>();
<a name="l01499"></a>01499       <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(p)-&gt;<a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">goURL</a>(exec, url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#af8593b924647a9db73016fbeab1812a">url</a>(), <span class="keyword">false</span> <span class="comment">/*don't lock history*/</span>);
<a name="l01500"></a>01500       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>(p);
<a name="l01501"></a>01501     }
<a name="l01502"></a>01502     <span class="keywordflow">if</span> ( uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#7dbf89b0854f7329aa4a3b023648992c">frameName</a>.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#lower">lower</a>() == <span class="stringliteral">"_parent"</span> )
<a name="l01503"></a>01503     {
<a name="l01504"></a>01504       <span class="keywordflow">if</span> ( p-&gt;<a class="code" href="classKHTMLPart.html#4ab62fae7ea81eafb62c1ae13c13e401">parentPart</a>() )
<a name="l01505"></a>01505         p = p-&gt;<a class="code" href="classKHTMLPart.html#4ab62fae7ea81eafb62c1ae13c13e401">parentPart</a>();
<a name="l01506"></a>01506       <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(p)-&gt;<a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">goURL</a>(exec, url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#af8593b924647a9db73016fbeab1812a">url</a>(), <span class="keyword">false</span> <span class="comment">/*don't lock history*/</span>);
<a name="l01507"></a>01507       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>(p);
<a name="l01508"></a>01508     }
<a name="l01509"></a>01509     <span class="keywordflow">if</span> ( uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#7dbf89b0854f7329aa4a3b023648992c">frameName</a>.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#lower">lower</a>() == <span class="stringliteral">"_self"</span>)
<a name="l01510"></a>01510     {
<a name="l01511"></a>01511       <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(p)-&gt;<a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">goURL</a>(exec, url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#af8593b924647a9db73016fbeab1812a">url</a>(), <span class="keyword">false</span> <span class="comment">/*don't lock history*/</span>);
<a name="l01512"></a>01512       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>(p);
<a name="l01513"></a>01513     }
<a name="l01514"></a>01514     <span class="keywordflow">if</span> ( uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#7dbf89b0854f7329aa4a3b023648992c">frameName</a>.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#lower">lower</a>() == <span class="stringliteral">"replace"</span> )
<a name="l01515"></a>01515     {
<a name="l01516"></a>01516       <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(p)-&gt;<a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">goURL</a>(exec, url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#af8593b924647a9db73016fbeab1812a">url</a>(), <span class="keyword">true</span> <span class="comment">/*lock history*/</span>);
<a name="l01517"></a>01517       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>(p);
<a name="l01518"></a>01518     }
<a name="l01519"></a>01519     uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#5fc23c30f547e5a7a1a35e0d9b17e17b">serviceType</a> = <span class="stringliteral">"text/html"</span>;
<a name="l01520"></a>01520 
<a name="l01521"></a>01521     <span class="comment">// request window (new or existing if framename is set)</span>
<a name="l01522"></a>01522     <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *newPart = 0L;
<a name="l01523"></a>01523     emit p-&gt;<a class="code" href="classKHTMLPart.html#271649475129052a094ca3612765533f">browserExtension</a>()-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#b68d93c5455a883e0288c510161f298b">createNewWindow</a>(<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html">KURL</a>(), uargs,winargs,newPart);
<a name="l01524"></a>01524     <span class="keywordflow">if</span> (newPart &amp;&amp; ::qt_cast&lt;KHTMLPart*&gt;(newPart)) {
<a name="l01525"></a>01525       <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *khtmlpart = static_cast&lt;KHTMLPart*&gt;(newPart);
<a name="l01526"></a>01526       <span class="comment">//qDebug("opener set to %p (this Window's part) in new Window %p  (this Window=%p)",part,win,window);</span>
<a name="l01527"></a>01527       khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#e4f3ffe049e3e344254c7dd2aa79990c">setOpener</a>(p);
<a name="l01528"></a>01528       khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#acc1964da9b2a84f4767c0a0bddf9a70">setOpenedByJS</a>(<span class="keyword">true</span>);
<a name="l01529"></a>01529       <span class="keywordflow">if</span> (khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#89a1470b2d74e6e7c36e3c54718900e0">document</a>().<a class="code" href="classDOM_1_1Node.html#fbf817c4885b063f6672c20c6ec5cb2e">isNull</a>()) {
<a name="l01530"></a>01530         khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#fa6f3b007d8e61f0b1813ca12af61837">begin</a>();
<a name="l01531"></a>01531         khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#4b62d272ab268de4b2506caef73340df">write</a>(<span class="stringliteral">"&lt;HTML&gt;&lt;BODY&gt;"</span>);
<a name="l01532"></a>01532         khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#89ff5e36acdead03b5d978ef72ca9c51">end</a>();
<a name="l01533"></a>01533         <span class="keywordflow">if</span> ( p-&gt;<a class="code" href="classKHTMLPart.html#b2011f6112fccc161c187515946308d1">docImpl</a>() ) {
<a name="l01534"></a>01534           <span class="comment">//kdDebug(6070) &lt;&lt; "Setting domain to " &lt;&lt; p-&gt;docImpl()-&gt;domain().string() &lt;&lt; endl;</span>
<a name="l01535"></a>01535           khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#b2011f6112fccc161c187515946308d1">docImpl</a>()-&gt;setDomain( p-&gt;<a class="code" href="classKHTMLPart.html#b2011f6112fccc161c187515946308d1">docImpl</a>()-&gt;domain());
<a name="l01536"></a>01536           khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#b2011f6112fccc161c187515946308d1">docImpl</a>()-&gt;setBaseURL( p-&gt;<a class="code" href="classKHTMLPart.html#b2011f6112fccc161c187515946308d1">docImpl</a>()-&gt;baseURL() );
<a name="l01537"></a>01537         }
<a name="l01538"></a>01538       }
<a name="l01539"></a>01539       uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#5fc23c30f547e5a7a1a35e0d9b17e17b">serviceType</a> = QString::null;
<a name="l01540"></a>01540       <span class="keywordflow">if</span> (uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#7dbf89b0854f7329aa4a3b023648992c">frameName</a>.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#lower">lower</a>() == <span class="stringliteral">"_blank"</span>)
<a name="l01541"></a>01541         uargs.<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/structKParts_1_1URLArgs.html#7dbf89b0854f7329aa4a3b023648992c">frameName</a> = QString::null;
<a name="l01542"></a>01542       if (!url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#f10f805c72d7223d88d7499fc5f39bd2">isEmpty</a>())
<a name="l01543"></a>01543         emit khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#271649475129052a094ca3612765533f">browserExtension</a>()-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#fa13489a1195eb4c839cd0864d607a40">openURLRequest</a>(url,uargs);
<a name="l01544"></a>01544       <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>(khtmlpart); <span class="comment">// global object</span>
<a name="l01545"></a>01545     } <span class="keywordflow">else</span>
<a name="l01546"></a>01546       <span class="keywordflow">return</span> Undefined();
<a name="l01547"></a>01547 }
<a name="l01548"></a>01548 
<a name="l01549"></a><a class="code" href="classKJS_1_1Window.html#93bf1e0b39201de4b4cca65a99253206">01549</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#93bf1e0b39201de4b4cca65a99253206">Window::forgetSuppressedWindows</a>()
<a name="l01550"></a>01550 {
<a name="l01551"></a>01551   m_suppressedWindowInfo.clear();
<a name="l01552"></a>01552 }
<a name="l01553"></a>01553 
<a name="l01554"></a><a class="code" href="classKJS_1_1Window.html#cd3f2742e9fd7c236d6c7b51d8378b5b">01554</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Window.html#cd3f2742e9fd7c236d6c7b51d8378b5b">Window::showSuppressedWindows</a>()
<a name="l01555"></a>01555 {
<a name="l01556"></a>01556   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;( m_frame-&gt;m_part );
<a name="l01557"></a>01557   KJS::Interpreter *interpreter = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;jScript()-&gt;interpreter();
<a name="l01558"></a>01558   ExecState *exec = interpreter-&gt;globalExec();
<a name="l01559"></a>01559 
<a name="l01560"></a>01560   <a class="codeRef" doxygen="qt.tag:" href="qvaluelist.html">QValueList&lt;SuppressedWindowInfo&gt;</a> suppressedWindowInfo = m_suppressedWindowInfo;
<a name="l01561"></a>01561   m_suppressedWindowInfo.clear();
<a name="l01562"></a>01562   <a class="codeRef" doxygen="qt.tag:" href="qvaluelist.html">QValueList&lt;SuppressedWindowInfo&gt;::Iterator</a> it = suppressedWindowInfo.<a class="codeRef" doxygen="qt.tag:" href="qvaluelist.html#begin">begin</a>();
<a name="l01563"></a>01563   <span class="keywordflow">for</span> ( ; it != suppressedWindowInfo.<a class="codeRef" doxygen="qt.tag:" href="qvaluelist.html#end">end</a>() ; ++it ) {
<a name="l01564"></a>01564     <a class="code" href="classKJS_1_1Window.html#cbf994e5509b3cefe9a6ab946a6f3754">executeOpenWindow</a>(exec, (*it).url, (*it).frameName, (*it).features);
<a name="l01565"></a>01565   }
<a name="l01566"></a>01566 }
<a name="l01567"></a>01567 
<a name="l01568"></a>01568 Value WindowFunc::tryCall(ExecState *exec, Object &amp;thisObj, <span class="keyword">const</span> List &amp;args)
<a name="l01569"></a>01569 {
<a name="l01570"></a>01570   KJS_CHECK_THIS( <a class="code" href="classKJS_1_1Window.html">Window</a>, thisObj );
<a name="l01571"></a>01571   <a class="code" href="classKJS_1_1Window.html">Window</a> *window = static_cast&lt;Window *&gt;(thisObj.imp());
<a name="l01572"></a>01572   <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> str, str2;
<a name="l01573"></a>01573 
<a name="l01574"></a>01574   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> = ::qt_cast&lt;KHTMLPart *&gt;(window-&gt;<a class="code" href="classKJS_1_1Window.html#7cd670037d441bcf4553ae399b17432e">m_frame</a>-&gt;m_part);
<a name="l01575"></a>01575   <span class="keywordflow">if</span> (!<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>)
<a name="l01576"></a>01576     <span class="keywordflow">return</span> Undefined();
<a name="l01577"></a>01577 
<a name="l01578"></a>01578   <a class="code" href="classKHTMLView.html">KHTMLView</a> *widget = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;view();
<a name="l01579"></a>01579   Value v = args[0];
<a name="l01580"></a>01580   UString s;
<a name="l01581"></a>01581   <span class="keywordflow">if</span> (v.isValid() &amp;&amp; !v.isA(UndefinedType)) {
<a name="l01582"></a>01582     s = v.toString(exec);
<a name="l01583"></a>01583     str = s.qstring();
<a name="l01584"></a>01584   }
<a name="l01585"></a>01585 
<a name="l01586"></a>01586   <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> caption;
<a name="l01587"></a>01587   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> &amp;&amp; !<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html#cb4ef957a59d80168a38c4bf24d0dd11">url</a>().<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#df3ad35581a0ca25ecc16e073f8275ca">host</a>().<a class="codeRef" doxygen="qt.tag:" href="qstring.html#isEmpty">isEmpty</a>())
<a name="l01588"></a>01588     caption = <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html#cb4ef957a59d80168a38c4bf24d0dd11">url</a>().<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#df3ad35581a0ca25ecc16e073f8275ca">host</a>() + <span class="stringliteral">" - "</span>;
<a name="l01589"></a>01589   caption += <span class="stringliteral">"JavaScript"</span>; <span class="comment">// TODO: i18n</span>
<a name="l01590"></a>01590   <span class="comment">// functions that work everywhere</span>
<a name="l01591"></a>01591   <span class="keywordflow">switch</span>(<span class="keywordtype">id</span>) {
<a name="l01592"></a>01592   <span class="keywordflow">case</span> Window::Alert:
<a name="l01593"></a>01593     <span class="keywordflow">if</span> (!widget-&gt;<a class="code" href="classKHTMLView.html#9e7dd6e823693039e505e9feeab3beb4">dialogsAllowed</a>())
<a name="l01594"></a>01594       <span class="keywordflow">return</span> Undefined();
<a name="l01595"></a>01595     <span class="keywordflow">if</span> ( <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> &amp;&amp; <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;xmlDocImpl() )
<a name="l01596"></a>01596       <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;xmlDocImpl()-&gt;updateRendering();
<a name="l01597"></a>01597     <span class="keywordflow">if</span> ( <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a> )
<a name="l01598"></a>01598       emit <a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>-&gt;browserExtension()-&gt;requestFocus(<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>);
<a name="l01599"></a>01599     <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#7bb67ab10f06b33f1d20f8c140391d54">KMessageBox::error</a>(widget, <a class="codeRef" doxygen="qt.tag:" href="qstylesheet.html#convertFromPlainText">QStyleSheet::convertFromPlainText</a>(str), caption);
<a name="l01600"></a>01600     <span class="keywordflow">return</span> Undefined();
<a name="l01601"></a>01601   <span class="keywordflow">case</span> Window::Confirm:
<a name="l01602"></a>01602     <span class="keywordflow">if</span> (!widget-&gt;<a class="code" href="classKHTMLView.html#9e7dd6e823693039e505e9feeab3beb4">dialogsAllowed</a>())
<a name="l01603"></a>01603       <span class="keywordflow">return</span> Undefined();
<a name="l01604"></a>01604     <span class="keywordflow">if</span> ( part &amp;&amp; part-&gt;xmlDocImpl() )
<a name="l01605"></a>01605       part-&gt;xmlDocImpl()-&gt;updateRendering();
<a name="l01606"></a>01606     <span class="keywordflow">if</span> ( part )
<a name="l01607"></a>01607       emit part-&gt;browserExtension()-&gt;requestFocus(part);
<a name="l01608"></a>01608     <span class="keywordflow">return</span> Boolean((<a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#334786d77558a971d1a58c09bdfff316">KMessageBox::warningYesNo</a>(widget, <a class="codeRef" doxygen="qt.tag:" href="qstylesheet.html#convertFromPlainText">QStyleSheet::convertFromPlainText</a>(str), caption,
<a name="l01609"></a>01609                                                 <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKStdGuiItem.html#c049121d202b827e305100e335ce64da">KStdGuiItem::ok</a>(), <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKStdGuiItem.html#291290cb090360eda79920e35fd699f6">KStdGuiItem::cancel</a>()) == <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#7b65482f7d03a391aff64c73f7cae32a2a5a0869dd1dad4b9dc0a83308ec5f8c">KMessageBox::Yes</a>));
<a name="l01610"></a>01610   <span class="keywordflow">case</span> Window::Prompt:
<a name="l01611"></a>01611 <span class="preprocessor">#ifndef KONQ_EMBEDDED</span>
<a name="l01612"></a>01612 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (!widget-&gt;dialogsAllowed())
<a name="l01613"></a>01613       <span class="keywordflow">return</span> Undefined();
<a name="l01614"></a>01614     <span class="keywordflow">if</span> ( part &amp;&amp; part-&gt;xmlDocImpl() )
<a name="l01615"></a>01615       part-&gt;xmlDocImpl()-&gt;updateRendering();
<a name="l01616"></a>01616     <span class="keywordflow">if</span> ( part )
<a name="l01617"></a>01617       emit part-&gt;browserExtension()-&gt;requestFocus(part);
<a name="l01618"></a>01618     <span class="keywordtype">bool</span> ok;
<a name="l01619"></a>01619     <span class="keywordflow">if</span> (args.size() &gt;= 2)
<a name="l01620"></a>01620       str2 = <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKInputDialog.html#c5b45989173987a07295bf7475f8546f">KInputDialog::getText</a>(caption,
<a name="l01621"></a>01621                                    <a class="codeRef" doxygen="qt.tag:" href="qstylesheet.html#convertFromPlainText">QStyleSheet::convertFromPlainText</a>(str),
<a name="l01622"></a>01622                                    args[1].<a class="code" href="classKJS_1_1Window.html#ca093715050915072a60d05ad73650f0">toString</a>(exec).qstring(), &amp;ok, widget);
<a name="l01623"></a>01623     <span class="keywordflow">else</span>
<a name="l01624"></a>01624       str2 = <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKInputDialog.html#c5b45989173987a07295bf7475f8546f">KInputDialog::getText</a>(caption,
<a name="l01625"></a>01625                                    <a class="codeRef" doxygen="qt.tag:" href="qstylesheet.html#convertFromPlainText">QStyleSheet::convertFromPlainText</a>(str),
<a name="l01626"></a>01626                                    QString::null, &amp;ok, widget);
<a name="l01627"></a>01627     <span class="keywordflow">if</span> ( ok )
<a name="l01628"></a>01628         <span class="keywordflow">return</span> String(str2);
<a name="l01629"></a>01629     <span class="keywordflow">else</span>
<a name="l01630"></a>01630         <span class="keywordflow">return</span> Null();
<a name="l01631"></a>01631 <span class="preprocessor">#else</span>
<a name="l01632"></a>01632 <span class="preprocessor"></span>    <span class="keywordflow">return</span> Undefined();
<a name="l01633"></a>01633 <span class="preprocessor">#endif</span>
<a name="l01634"></a>01634 <span class="preprocessor"></span>  <span class="keywordflow">case</span> Window::GetComputedStyle:  {
<a name="l01635"></a>01635        <span class="keywordflow">if</span> ( !part || !part-&gt;xmlDocImpl() )
<a name="l01636"></a>01636          <span class="keywordflow">return</span> Undefined();
<a name="l01637"></a>01637         <a class="code" href="classDOM_1_1Node.html">DOM::Node</a> arg0 = <a class="code" href="namespaceKJS.html#0f9b0e57e5cd995454a83e4a23c230ea">toNode</a>(args[0]);
<a name="l01638"></a>01638         <span class="keywordflow">if</span> (arg0.<a class="code" href="classDOM_1_1Node.html#5431b2a3b06ab764f8e78ba5b5cb892d">nodeType</a>() != DOM::Node::ELEMENT_NODE)
<a name="l01639"></a>01639           <span class="keywordflow">return</span> Undefined(); <span class="comment">// throw exception?</span>
<a name="l01640"></a>01640         <span class="keywordflow">else</span>
<a name="l01641"></a>01641           <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#6b06a29edf02ed31e081f2d5f447e870">getDOMCSSStyleDeclaration</a>(exec, part-&gt;document().defaultView().getComputedStyle(static_cast&lt;DOM::Element&gt;(arg0),
<a name="l01642"></a>01642                                                                               args[1].<a class="code" href="classKJS_1_1Window.html#ca093715050915072a60d05ad73650f0">toString</a>(exec).string()));
<a name="l01643"></a>01643       }
<a name="l01644"></a>01644   <span class="keywordflow">case</span> Window::Open:
<a name="l01645"></a>01645     <span class="keywordflow">return</span> window-&gt;<a class="code" href="classKJS_1_1Window.html#3fbc88455304ba04fcaa8fd59c3859eb">openWindow</a>(exec, args);
<a name="l01646"></a>01646   <span class="keywordflow">case</span> Window::Close: {
<a name="l01647"></a>01647     <span class="comment">/* From http://developer.netscape.com/docs/manuals/js/client/jsref/window.htm :</span>
<a name="l01648"></a>01648 <span class="comment">       The close method closes only windows opened by JavaScript using the open method.</span>
<a name="l01649"></a>01649 <span class="comment">       If you attempt to close any other window, a confirm is generated, which</span>
<a name="l01650"></a>01650 <span class="comment">       lets the user choose whether the window closes.</span>
<a name="l01651"></a>01651 <span class="comment">       This is a security feature to prevent "mail bombs" containing self.close().</span>
<a name="l01652"></a>01652 <span class="comment">       However, if the window has only one document (the current one) in its</span>
<a name="l01653"></a>01653 <span class="comment">       session history, the close is allowed without any confirm. This is a</span>
<a name="l01654"></a>01654 <span class="comment">       special case for one-off windows that need to open other windows and</span>
<a name="l01655"></a>01655 <span class="comment">       then dispose of themselves.</span>
<a name="l01656"></a>01656 <span class="comment">    */</span>
<a name="l01657"></a>01657     <span class="keywordtype">bool</span> doClose = <span class="keyword">false</span>;
<a name="l01658"></a>01658     <span class="keywordflow">if</span> (!part-&gt;openedByJS())
<a name="l01659"></a>01659     {
<a name="l01660"></a>01660       <span class="comment">// To conform to the SPEC, we only ask if the window</span>
<a name="l01661"></a>01661       <span class="comment">// has more than one entry in the history (NS does that too).</span>
<a name="l01662"></a>01662       History history(exec,part);
<a name="l01663"></a>01663 
<a name="l01664"></a>01664       <span class="keywordflow">if</span> ( history.get( exec, <span class="stringliteral">"length"</span> ).toInt32(exec) &lt;= 1 )
<a name="l01665"></a>01665       {
<a name="l01666"></a>01666         doClose = <span class="keyword">true</span>;
<a name="l01667"></a>01667       }
<a name="l01668"></a>01668       <span class="keywordflow">else</span>
<a name="l01669"></a>01669       {
<a name="l01670"></a>01670         <span class="comment">// Can we get this dialog with tabs??? Does it close the window or the tab in that case?</span>
<a name="l01671"></a>01671         emit part-&gt;browserExtension()-&gt;requestFocus(part);
<a name="l01672"></a>01672         <span class="keywordflow">if</span> ( <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#f1f1a8e08ec4af3c5fee67e2e553c96d">KMessageBox::questionYesNo</a>( window-&gt;<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>()-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1Part.html#2d2efd56fe23904104c48dc56371c03d">widget</a>(),
<a name="l01673"></a>01673                                          i18n(<span class="stringliteral">"Close window?"</span>), i18n(<span class="stringliteral">"Confirmation Required"</span>),
<a name="l01674"></a>01674                                          <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKStdGuiItem.html#6122a094608e1bc5175e1c98b6fdd394">KStdGuiItem::close</a>(), <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKStdGuiItem.html#291290cb090360eda79920e35fd699f6">KStdGuiItem::cancel</a>() )
<a name="l01675"></a>01675              == <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#7b65482f7d03a391aff64c73f7cae32a2a5a0869dd1dad4b9dc0a83308ec5f8c">KMessageBox::Yes</a> )
<a name="l01676"></a>01676           doClose = <span class="keyword">true</span>;
<a name="l01677"></a>01677       }
<a name="l01678"></a>01678     }
<a name="l01679"></a>01679     <span class="keywordflow">else</span>
<a name="l01680"></a>01680       doClose = <span class="keyword">true</span>;
<a name="l01681"></a>01681 
<a name="l01682"></a>01682     <span class="keywordflow">if</span> (doClose)
<a name="l01683"></a>01683     {
<a name="l01684"></a>01684       <span class="comment">// If this is the current window (the one the interpreter runs in),</span>
<a name="l01685"></a>01685       <span class="comment">// then schedule a delayed close (so that the script terminates first).</span>
<a name="l01686"></a>01686       <span class="comment">// But otherwise, close immediately. This fixes w=window.open("","name");w.close();window.open("name");</span>
<a name="l01687"></a>01687       <span class="keywordflow">if</span> ( <a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">Window::retrieveActive</a>(exec) == window ) {
<a name="l01688"></a>01688         <span class="keywordflow">if</span> (widget) {
<a name="l01689"></a>01689           <span class="comment">// quit all dialogs of this view</span>
<a name="l01690"></a>01690           <span class="comment">// this fixes 'setTimeout('self.close()',1000); alert("Hi");' crash</span>
<a name="l01691"></a>01691           widget-&gt;closeChildDialogs();
<a name="l01692"></a>01692         }
<a name="l01693"></a>01693         <span class="comment">//kdDebug() &lt;&lt; "scheduling delayed close"  &lt;&lt; endl;</span>
<a name="l01694"></a>01694         <span class="comment">// We'll close the window at the end of the script execution</span>
<a name="l01695"></a>01695         <a class="code" href="classKJS_1_1Window.html">Window</a>* w = const_cast&lt;Window*&gt;(window);
<a name="l01696"></a>01696         w-&gt;<a class="code" href="classKJS_1_1Window.html#37db1e97a8a62917926c807d9f9a9dad">m_delayed</a>.append( <a class="code" href="classKJS_1_1Window.html#667d4e831d325b6f987fbfededf70557">Window::DelayedAction</a>( Window::DelayedClose ) );
<a name="l01697"></a>01697       } <span class="keywordflow">else</span> {
<a name="l01698"></a>01698         <span class="comment">//kdDebug() &lt;&lt; "closing NOW"  &lt;&lt; endl;</span>
<a name="l01699"></a>01699         (const_cast&lt;Window*&gt;(window))-&gt;closeNow();
<a name="l01700"></a>01700       }
<a name="l01701"></a>01701     }
<a name="l01702"></a>01702     <span class="keywordflow">return</span> Undefined();
<a name="l01703"></a>01703   }
<a name="l01704"></a>01704   <span class="keywordflow">case</span> Window::Navigate:
<a name="l01705"></a>01705     window-&gt;<a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">goURL</a>(exec, args[0].<a class="code" href="classKJS_1_1Window.html#ca093715050915072a60d05ad73650f0">toString</a>(exec).qstring(), <span class="keyword">false</span> <span class="comment">/*don't lock history*/</span>);
<a name="l01706"></a>01706     <span class="keywordflow">return</span> Undefined();
<a name="l01707"></a>01707   <span class="keywordflow">case</span> Window::Focus: {
<a name="l01708"></a>01708     <a class="code" href="classKHTMLSettings.html#a58ad58af55072da395ebb685f15252c">KHTMLSettings::KJSWindowFocusPolicy</a> policy =
<a name="l01709"></a>01709         part-&gt;settings()-&gt;windowFocusPolicy(part-&gt;url().host());
<a name="l01710"></a>01710     <span class="keywordflow">if</span>(policy == KHTMLSettings::KJSWindowFocusAllow &amp;&amp; widget) {
<a name="l01711"></a>01711       widget-&gt;topLevelWidget()-&gt;raise();
<a name="l01712"></a>01712       <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKWin.html#7c7d66a1bd6078f8d95e8ba4f3ada195">KWin::deIconifyWindow</a>( widget-&gt;topLevelWidget()-&gt;winId() );
<a name="l01713"></a>01713       widget-&gt;setActiveWindow();
<a name="l01714"></a>01714       emit part-&gt;browserExtension()-&gt;requestFocus(part);
<a name="l01715"></a>01715     }
<a name="l01716"></a>01716     <span class="keywordflow">return</span> Undefined();
<a name="l01717"></a>01717   }
<a name="l01718"></a>01718   <span class="keywordflow">case</span> Window::Blur:
<a name="l01719"></a>01719     <span class="comment">// TODO</span>
<a name="l01720"></a>01720     <span class="keywordflow">return</span> Undefined();
<a name="l01721"></a>01721   <span class="keywordflow">case</span> Window::BToA:
<a name="l01722"></a>01722   <span class="keywordflow">case</span> Window::AToB: {
<a name="l01723"></a>01723       <span class="keywordflow">if</span> (!s.is8Bit())
<a name="l01724"></a>01724           <span class="keywordflow">return</span> Undefined();
<a name="l01725"></a>01725        <a class="codeRef" doxygen="qt.tag:" href="qbytearray.html">QByteArray</a>  in, out;
<a name="l01726"></a>01726        <span class="keywordtype">char</span> *binData = s.ascii();
<a name="l01727"></a>01727        in.setRawData( binData, s.size() );
<a name="l01728"></a>01728        <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == Window::AToB)
<a name="l01729"></a>01729            <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKCodecs.html#c864c3214222aebb7b8a63606adc23a2">KCodecs::base64Decode</a>( in, out );
<a name="l01730"></a>01730        <span class="keywordflow">else</span>
<a name="l01731"></a>01731            <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKCodecs.html#f3618487a2e25e26e397487d3130758a">KCodecs::base64Encode</a>( in, out );
<a name="l01732"></a>01732        in.resetRawData( binData, s.size() );
<a name="l01733"></a>01733        UChar *d = <span class="keyword">new</span> UChar[out.size()];
<a name="l01734"></a>01734        <span class="keywordflow">for</span> (uint i = 0; i &lt; out.size(); i++)
<a name="l01735"></a>01735            d[i].uc = (uchar) out[i];
<a name="l01736"></a>01736        UString ret(d, out.size(), <span class="keyword">false</span> <span class="comment">/*no copy*/</span>);
<a name="l01737"></a>01737        <span class="keywordflow">return</span> String(ret);
<a name="l01738"></a>01738   }
<a name="l01739"></a>01739 
<a name="l01740"></a>01740   };
<a name="l01741"></a>01741 
<a name="l01742"></a>01742 
<a name="l01743"></a>01743   <span class="comment">// now unsafe functions..</span>
<a name="l01744"></a>01744   <span class="keywordflow">if</span> (!window-&gt;<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l01745"></a>01745     <span class="keywordflow">return</span> Undefined();
<a name="l01746"></a>01746 
<a name="l01747"></a>01747   <span class="keywordflow">switch</span> (<span class="keywordtype">id</span>) {
<a name="l01748"></a>01748   <span class="keywordflow">case</span> Window::ScrollBy:
<a name="l01749"></a>01749     <span class="keywordflow">if</span>(args.size() == 2 &amp;&amp; widget)
<a name="l01750"></a>01750       widget-&gt;scrollBy(args[0].toInt32(exec), args[1].toInt32(exec));
<a name="l01751"></a>01751     <span class="keywordflow">return</span> Undefined();
<a name="l01752"></a>01752   <span class="keywordflow">case</span> Window::Scroll:
<a name="l01753"></a>01753   <span class="keywordflow">case</span> Window::ScrollTo:
<a name="l01754"></a>01754     <span class="keywordflow">if</span>(args.size() == 2 &amp;&amp; widget)
<a name="l01755"></a>01755       widget-&gt;setContentsPos(args[0].toInt32(exec), args[1].toInt32(exec));
<a name="l01756"></a>01756     <span class="keywordflow">return</span> Undefined();
<a name="l01757"></a>01757   <span class="keywordflow">case</span> Window::MoveBy: {
<a name="l01758"></a>01758     <a class="code" href="classKHTMLSettings.html#11af2dc8e2dd71c0b1546107b32753f4">KHTMLSettings::KJSWindowMovePolicy</a> policy =
<a name="l01759"></a>01759         part-&gt;settings()-&gt;windowMovePolicy(part-&gt;url().host());
<a name="l01760"></a>01760     <span class="keywordflow">if</span>(policy == KHTMLSettings::KJSWindowMoveAllow &amp;&amp; args.size() == 2 &amp;&amp; widget)
<a name="l01761"></a>01761     {
<a name="l01762"></a>01762       <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html">KParts::BrowserExtension</a> *ext = part-&gt;browserExtension();
<a name="l01763"></a>01763       <span class="keywordflow">if</span> (ext) {
<a name="l01764"></a>01764         <a class="codeRef" doxygen="qt.tag:" href="qwidget.html">QWidget</a> * tl = widget-&gt;topLevelWidget();
<a name="l01765"></a>01765         <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> sg = <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKGlobalSettings.html#63f7c20327cdb7972e2aff9b765b8985">KGlobalSettings::desktopGeometry</a>(tl);
<a name="l01766"></a>01766 
<a name="l01767"></a>01767         <a class="codeRef" doxygen="qt.tag:" href="qpoint.html">QPoint</a> dest = tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#pos">pos</a>() + <a class="codeRef" doxygen="qt.tag:" href="qpoint.html">QPoint</a>( args[0].toInt32(exec), args[1].toInt32(exec) );
<a name="l01768"></a>01768         <span class="comment">// Security check (the spec talks about UniversalBrowserWrite to disable this check...)</span>
<a name="l01769"></a>01769         <span class="keywordflow">if</span> ( dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#x">x</a>() &gt;= sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>() &amp;&amp; dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#y">y</a>() &gt;= sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>() &amp;&amp;
<a name="l01770"></a>01770              dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#x">x</a>()+tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#width">width</a>() &lt;= sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>()+sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>() &amp;&amp;
<a name="l01771"></a>01771              dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#y">y</a>()+tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#height">height</a>() &lt;= sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>()+sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>() )
<a name="l01772"></a>01772           emit ext-&gt;moveTopLevelWidget( dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#x">x</a>(), dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#y">y</a>() );
<a name="l01773"></a>01773       }
<a name="l01774"></a>01774     }
<a name="l01775"></a>01775     <span class="keywordflow">return</span> Undefined();
<a name="l01776"></a>01776   }
<a name="l01777"></a>01777   <span class="keywordflow">case</span> Window::MoveTo: {
<a name="l01778"></a>01778     <a class="code" href="classKHTMLSettings.html#11af2dc8e2dd71c0b1546107b32753f4">KHTMLSettings::KJSWindowMovePolicy</a> policy =
<a name="l01779"></a>01779         part-&gt;settings()-&gt;windowMovePolicy(part-&gt;url().host());
<a name="l01780"></a>01780     <span class="keywordflow">if</span>(policy == KHTMLSettings::KJSWindowMoveAllow &amp;&amp; args.size() == 2 &amp;&amp; widget)
<a name="l01781"></a>01781     {
<a name="l01782"></a>01782       <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html">KParts::BrowserExtension</a> *ext = part-&gt;browserExtension();
<a name="l01783"></a>01783       <span class="keywordflow">if</span> (ext) {
<a name="l01784"></a>01784         <a class="codeRef" doxygen="qt.tag:" href="qwidget.html">QWidget</a> * tl = widget-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#topLevelWidget">topLevelWidget</a>();
<a name="l01785"></a>01785         <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> sg = <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKGlobalSettings.html#63f7c20327cdb7972e2aff9b765b8985">KGlobalSettings::desktopGeometry</a>(tl);
<a name="l01786"></a>01786 
<a name="l01787"></a>01787         <a class="codeRef" doxygen="qt.tag:" href="qpoint.html">QPoint</a> dest( args[0].toInt32(exec)+sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>(), args[1].toInt32(exec)+sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>() );
<a name="l01788"></a>01788         <span class="comment">// Security check (the spec talks about UniversalBrowserWrite to disable this check...)</span>
<a name="l01789"></a>01789         <span class="keywordflow">if</span> ( dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#x">x</a>() &gt;= sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>() &amp;&amp; dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#y">y</a>() &gt;= sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>() &amp;&amp;
<a name="l01790"></a>01790              dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#x">x</a>()+tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#width">width</a>() &lt;= sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>()+sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#x">x</a>() &amp;&amp;
<a name="l01791"></a>01791              dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#y">y</a>()+tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#height">height</a>() &lt;= sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>()+sg.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#y">y</a>() )
<a name="l01792"></a>01792         emit ext-&gt;moveTopLevelWidget( dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#x">x</a>(), dest.<a class="codeRef" doxygen="qt.tag:" href="qpoint.html#y">y</a>() );
<a name="l01793"></a>01793       }
<a name="l01794"></a>01794     }
<a name="l01795"></a>01795     <span class="keywordflow">return</span> Undefined();
<a name="l01796"></a>01796   }
<a name="l01797"></a>01797   <span class="keywordflow">case</span> Window::ResizeBy: {
<a name="l01798"></a>01798     <a class="code" href="classKHTMLSettings.html#54d08c6612b3f5d2829c7e2f554ed6cb">KHTMLSettings::KJSWindowResizePolicy</a> policy =
<a name="l01799"></a>01799         part-&gt;settings()-&gt;windowResizePolicy(part-&gt;url().host());
<a name="l01800"></a>01800     <span class="keywordflow">if</span>(policy == KHTMLSettings::KJSWindowResizeAllow
<a name="l01801"></a>01801             &amp;&amp; args.size() == 2 &amp;&amp; widget)
<a name="l01802"></a>01802     {
<a name="l01803"></a>01803       <a class="codeRef" doxygen="qt.tag:" href="qwidget.html">QWidget</a> * tl = widget-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#topLevelWidget">topLevelWidget</a>();
<a name="l01804"></a>01804       <a class="codeRef" doxygen="qt.tag:" href="qrect.html">QRect</a> geom = tl-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#frameGeometry">frameGeometry</a>();
<a name="l01805"></a>01805       window-&gt;<a class="code" href="classKJS_1_1Window.html#2cc8dafc364a8c79cd644dfeb3ea3472">resizeTo</a>( tl,
<a name="l01806"></a>01806                         geom.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#width">width</a>() + args[0].toInt32(exec),
<a name="l01807"></a>01807                         geom.<a class="codeRef" doxygen="qt.tag:" href="qrect.html#height">height</a>() + args[1].toInt32(exec) );
<a name="l01808"></a>01808     }
<a name="l01809"></a>01809     <span class="keywordflow">return</span> Undefined();
<a name="l01810"></a>01810   }
<a name="l01811"></a>01811   <span class="keywordflow">case</span> Window::ResizeTo: {
<a name="l01812"></a>01812     <a class="code" href="classKHTMLSettings.html#54d08c6612b3f5d2829c7e2f554ed6cb">KHTMLSettings::KJSWindowResizePolicy</a> policy =
<a name="l01813"></a>01813                part-&gt;settings()-&gt;windowResizePolicy(part-&gt;url().host());
<a name="l01814"></a>01814     <span class="keywordflow">if</span>(policy == KHTMLSettings::KJSWindowResizeAllow
<a name="l01815"></a>01815                &amp;&amp; args.size() == 2 &amp;&amp; widget)
<a name="l01816"></a>01816     {
<a name="l01817"></a>01817       <a class="codeRef" doxygen="qt.tag:" href="qwidget.html">QWidget</a> * tl = widget-&gt;<a class="codeRef" doxygen="qt.tag:" href="qwidget.html#topLevelWidget">topLevelWidget</a>();
<a name="l01818"></a>01818       window-&gt;<a class="code" href="classKJS_1_1Window.html#2cc8dafc364a8c79cd644dfeb3ea3472">resizeTo</a>( tl, args[0].toInt32(exec), args[1].toInt32(exec) );
<a name="l01819"></a>01819     }
<a name="l01820"></a>01820     <span class="keywordflow">return</span> Undefined();
<a name="l01821"></a>01821   }
<a name="l01822"></a>01822   <span class="keywordflow">case</span> Window::SetTimeout:
<a name="l01823"></a>01823   <span class="keywordflow">case</span> Window::SetInterval: {
<a name="l01824"></a>01824     <span class="keywordtype">bool</span> singleShot;
<a name="l01825"></a>01825     <span class="keywordtype">int</span> i; <span class="comment">// timeout interval</span>
<a name="l01826"></a>01826     <span class="keywordflow">if</span> (args.size() == 0)
<a name="l01827"></a>01827       <span class="keywordflow">return</span> Undefined();
<a name="l01828"></a>01828     <span class="keywordflow">if</span> (args.size() &gt; 1) {
<a name="l01829"></a>01829       singleShot = (<span class="keywordtype">id</span> == Window::SetTimeout);
<a name="l01830"></a>01830       i = args[1].toInt32(exec);
<a name="l01831"></a>01831     } <span class="keywordflow">else</span> {
<a name="l01832"></a>01832       <span class="comment">// second parameter is missing. Emulate Mozilla behavior.</span>
<a name="l01833"></a>01833       singleShot = <span class="keyword">true</span>;
<a name="l01834"></a>01834       i = 4;
<a name="l01835"></a>01835     }
<a name="l01836"></a>01836     <span class="keywordflow">if</span> (v.isA(StringType)) {
<a name="l01837"></a>01837       <span class="keywordtype">int</span> r = (const_cast&lt;Window*&gt;(window))-&gt;winq-&gt;installTimeout(Identifier(s), i, singleShot );
<a name="l01838"></a>01838       <span class="keywordflow">return</span> Number(r);
<a name="l01839"></a>01839     }
<a name="l01840"></a>01840     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (v.isA(ObjectType) &amp;&amp; Object::dynamicCast(v).implementsCall()) {
<a name="l01841"></a>01841       Object func = Object::dynamicCast(v);
<a name="l01842"></a>01842       List funcArgs;
<a name="l01843"></a>01843       ListIterator it = args.begin();
<a name="l01844"></a>01844       <span class="keywordtype">int</span> argno = 0;
<a name="l01845"></a>01845       <span class="keywordflow">while</span> (it != args.end()) {
<a name="l01846"></a>01846     Value arg = it++;
<a name="l01847"></a>01847     <span class="keywordflow">if</span> (argno++ &gt;= 2)
<a name="l01848"></a>01848         funcArgs.append(arg);
<a name="l01849"></a>01849       }
<a name="l01850"></a>01850       <span class="keywordflow">if</span> (args.size() &lt; 2)
<a name="l01851"></a>01851     funcArgs.append(Number(i));
<a name="l01852"></a>01852       <span class="keywordtype">int</span> r = (const_cast&lt;Window*&gt;(window))-&gt;winq-&gt;installTimeout(func, funcArgs, i, singleShot );
<a name="l01853"></a>01853       <span class="keywordflow">return</span> Number(r);
<a name="l01854"></a>01854     }
<a name="l01855"></a>01855     <span class="keywordflow">else</span>
<a name="l01856"></a>01856       <span class="keywordflow">return</span> Undefined();
<a name="l01857"></a>01857   }
<a name="l01858"></a>01858   <span class="keywordflow">case</span> Window::ClearTimeout:
<a name="l01859"></a>01859   <span class="keywordflow">case</span> Window::ClearInterval:
<a name="l01860"></a>01860     (const_cast&lt;Window*&gt;(window))-&gt;winq-&gt;clearTimeout(v.toInt32(exec));
<a name="l01861"></a>01861     <span class="keywordflow">return</span> Undefined();
<a name="l01862"></a>01862   <span class="keywordflow">case</span> Window::Print:
<a name="l01863"></a>01863     <span class="keywordflow">if</span> ( widget ) {
<a name="l01864"></a>01864       <span class="comment">// ### TODO emit onbeforeprint event</span>
<a name="l01865"></a>01865       widget-&gt;print();
<a name="l01866"></a>01866       <span class="comment">// ### TODO emit onafterprint event</span>
<a name="l01867"></a>01867     }
<a name="l01868"></a>01868   <span class="keywordflow">case</span> Window::CaptureEvents:
<a name="l01869"></a>01869   <span class="keywordflow">case</span> Window::ReleaseEvents:
<a name="l01870"></a>01870     <span class="comment">// Do nothing for now. These are NS-specific legacy calls.</span>
<a name="l01871"></a>01871     <span class="keywordflow">break</span>;
<a name="l01872"></a>01872   <span class="keywordflow">case</span> Window::AddEventListener: {
<a name="l01873"></a>01873         <a class="code" href="classKJS_1_1JSEventListener.html">JSEventListener</a> *listener = <a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">Window::retrieveActive</a>(exec)-&gt;<a class="code" href="classKJS_1_1Window.html#8deaa03602259a888575e0165344e1c6">getJSEventListener</a>(args[1]);
<a name="l01874"></a>01874         <span class="keywordflow">if</span> (listener) {
<a name="l01875"></a>01875         DOM::DocumentImpl* docimpl = static_cast&lt;DOM::DocumentImpl *&gt;(part-&gt;document().handle());
<a name="l01876"></a>01876             docimpl-&gt;addWindowEventListener(DOM::EventImpl::typeToId(args[0].<a class="code" href="classKJS_1_1Window.html#ca093715050915072a60d05ad73650f0">toString</a>(exec).string()),listener,args[2].<a class="code" href="classKJS_1_1Window.html#66a43d90b54ce4fa8916f5e64ea9feb4">toBoolean</a>(exec));
<a name="l01877"></a>01877         }
<a name="l01878"></a>01878         <span class="keywordflow">return</span> Undefined();
<a name="l01879"></a>01879     }
<a name="l01880"></a>01880   <span class="keywordflow">case</span> Window::RemoveEventListener: {
<a name="l01881"></a>01881         <a class="code" href="classKJS_1_1JSEventListener.html">JSEventListener</a> *listener = <a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">Window::retrieveActive</a>(exec)-&gt;<a class="code" href="classKJS_1_1Window.html#8deaa03602259a888575e0165344e1c6">getJSEventListener</a>(args[1]);
<a name="l01882"></a>01882         <span class="keywordflow">if</span> (listener) {
<a name="l01883"></a>01883         DOM::DocumentImpl* docimpl = static_cast&lt;DOM::DocumentImpl *&gt;(part-&gt;document().handle());
<a name="l01884"></a>01884             docimpl-&gt;removeWindowEventListener(DOM::EventImpl::typeToId(args[0].<a class="code" href="classKJS_1_1Window.html#ca093715050915072a60d05ad73650f0">toString</a>(exec).string()),listener,args[2].<a class="code" href="classKJS_1_1Window.html#66a43d90b54ce4fa8916f5e64ea9feb4">toBoolean</a>(exec));
<a name="l01885"></a>01885         }
<a name="l01886"></a>01886         <span class="keywordflow">return</span> Undefined();
<a name="l01887"></a>01887     }
<a name="l01888"></a>01888 
<a name="l01889"></a>01889   }
<a name="l01890"></a>01890   <span class="keywordflow">return</span> Undefined();
<a name="l01891"></a>01891 }
<a name="l01892"></a>01892 
<a name="l01894"></a>01894 
<a name="l01895"></a>01895 <span class="comment">// KDE 4: Make those parameters const ... &amp;</span>
<a name="l01896"></a><a class="code" href="classKJS_1_1ScheduledAction.html#42882828cddd42b39ec5df6390dbb54a">01896</a> <a class="code" href="classKJS_1_1ScheduledAction.html#42882828cddd42b39ec5df6390dbb54a">ScheduledAction::ScheduledAction</a>(Object _func, List _args, <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> _nextTime, <span class="keywordtype">int</span> _interval, <span class="keywordtype">bool</span> _singleShot,
<a name="l01897"></a>01897                   <span class="keywordtype">int</span> _timerId)
<a name="l01898"></a>01898 {
<a name="l01899"></a>01899   <span class="comment">//kdDebug(6070) &lt;&lt; "ScheduledAction::ScheduledAction(isFunction) " &lt;&lt; this &lt;&lt; endl;</span>
<a name="l01900"></a>01900   <a class="code" href="classKJS_1_1ScheduledAction.html#0324575b2f062109ea71ba080bb0b520">func</a> = static_cast&lt;ObjectImp*&gt;(_func.imp());
<a name="l01901"></a>01901   args = _args;
<a name="l01902"></a>01902   <a class="code" href="classKJS_1_1ScheduledAction.html#fa8db43df4ea661597576a8d43de0a09">isFunction</a> = <span class="keyword">true</span>;
<a name="l01903"></a>01903   singleShot = _singleShot;
<a name="l01904"></a>01904   <a class="code" href="classKJS_1_1ScheduledAction.html#cdf31d5493617493ea7381bce4f8dc45">nextTime</a> = _nextTime;
<a name="l01905"></a>01905   <a class="code" href="classKJS_1_1ScheduledAction.html#aa6d46ec4fdcf8454568967a7f7cf29a">interval</a> = _interval;
<a name="l01906"></a>01906   <a class="code" href="classKJS_1_1ScheduledAction.html#7b10afe806b1c20dcf8a1d543991ab6a">executing</a> = <span class="keyword">false</span>;
<a name="l01907"></a>01907   <a class="code" href="classKJS_1_1ScheduledAction.html#bfa6ec19d3c85ff79c511cc9e15d8e7f">timerId</a> = _timerId;
<a name="l01908"></a>01908 }
<a name="l01909"></a>01909 
<a name="l01910"></a>01910 <span class="comment">// KDE 4: Make it const QString &amp;</span>
<a name="l01911"></a><a class="code" href="classKJS_1_1ScheduledAction.html#8f23baa426c30b284e254893f9b8266f">01911</a> <a class="code" href="classKJS_1_1ScheduledAction.html#42882828cddd42b39ec5df6390dbb54a">ScheduledAction::ScheduledAction</a>(<a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> _code, <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> _nextTime, <span class="keywordtype">int</span> _interval, <span class="keywordtype">bool</span> _singleShot, <span class="keywordtype">int</span> _timerId)
<a name="l01912"></a>01912 {
<a name="l01913"></a>01913   <span class="comment">//kdDebug(6070) &lt;&lt; "ScheduledAction::ScheduledAction(!isFunction) " &lt;&lt; this &lt;&lt; endl;</span>
<a name="l01914"></a>01914   <span class="comment">//func = 0;</span>
<a name="l01915"></a>01915   <span class="comment">//args = 0;</span>
<a name="l01916"></a>01916   <a class="code" href="classKJS_1_1ScheduledAction.html#0324575b2f062109ea71ba080bb0b520">func</a> = 0;
<a name="l01917"></a>01917   <a class="code" href="classKJS_1_1ScheduledAction.html#02f04cf03468182f6fbea454db5c3525">code</a> = _code;
<a name="l01918"></a>01918   <a class="code" href="classKJS_1_1ScheduledAction.html#fa8db43df4ea661597576a8d43de0a09">isFunction</a> = <span class="keyword">false</span>;
<a name="l01919"></a>01919   singleShot = _singleShot;
<a name="l01920"></a>01920   <a class="code" href="classKJS_1_1ScheduledAction.html#cdf31d5493617493ea7381bce4f8dc45">nextTime</a> = _nextTime;
<a name="l01921"></a>01921   <a class="code" href="classKJS_1_1ScheduledAction.html#aa6d46ec4fdcf8454568967a7f7cf29a">interval</a> = _interval;
<a name="l01922"></a>01922   <a class="code" href="classKJS_1_1ScheduledAction.html#7b10afe806b1c20dcf8a1d543991ab6a">executing</a> = <span class="keyword">false</span>;
<a name="l01923"></a>01923   <a class="code" href="classKJS_1_1ScheduledAction.html#bfa6ec19d3c85ff79c511cc9e15d8e7f">timerId</a> = _timerId;
<a name="l01924"></a>01924 }
<a name="l01925"></a>01925 
<a name="l01926"></a><a class="code" href="classKJS_1_1ScheduledAction.html#08131757247b514cebb9ebe936a39c7a">01926</a> <span class="keywordtype">bool</span> <a class="code" href="classKJS_1_1ScheduledAction.html#08131757247b514cebb9ebe936a39c7a">ScheduledAction::execute</a>(<a class="code" href="classKJS_1_1Window.html">Window</a> *window)
<a name="l01927"></a>01927 {
<a name="l01928"></a>01928   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *part = ::qt_cast&lt;KHTMLPart *&gt;(window-&gt;<a class="code" href="classKJS_1_1Window.html#7cd670037d441bcf4553ae399b17432e">m_frame</a>-&gt;m_part);
<a name="l01929"></a>01929   <span class="keywordflow">if</span> (!part || !part-&gt;<a class="code" href="classKHTMLPart.html#aacab2d02df2bf84d91ab68d50a1a689">jScriptEnabled</a>())
<a name="l01930"></a>01930     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l01931"></a>01931   <a class="code" href="classKJS_1_1ScriptInterpreter.html">ScriptInterpreter</a> *interpreter = static_cast&lt;ScriptInterpreter *&gt;(part-&gt;<a class="code" href="classKHTMLPart.html#412dace1a184977a5160aeead9e5b82b">jScript</a>()-&gt;<a class="code" href="classKJSProxy.html#3a998f62916bf64732108d81fe6d4470">interpreter</a>());
<a name="l01932"></a>01932 
<a name="l01933"></a>01933   interpreter-&gt;<a class="code" href="classKJS_1_1ScriptInterpreter.html#0d0e3b628264e9a6d313142a63d4b236">setProcessingTimerCallback</a>(<span class="keyword">true</span>);
<a name="l01934"></a>01934 
<a name="l01935"></a>01935   <span class="comment">//kdDebug(6070) &lt;&lt; "ScheduledAction::execute " &lt;&lt; this &lt;&lt; endl;</span>
<a name="l01936"></a>01936   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1ScheduledAction.html#fa8db43df4ea661597576a8d43de0a09">isFunction</a>) {
<a name="l01937"></a>01937     <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1ScheduledAction.html#0324575b2f062109ea71ba080bb0b520">func</a>-&gt;implementsCall()) {
<a name="l01938"></a>01938       <span class="comment">// #### check this</span>
<a name="l01939"></a>01939       Q_ASSERT( part );
<a name="l01940"></a>01940       <span class="keywordflow">if</span> ( part )
<a name="l01941"></a>01941       {
<a name="l01942"></a>01942         KJS::Interpreter *interpreter = part-&gt;jScript()-&gt;interpreter();
<a name="l01943"></a>01943         ExecState *exec = interpreter-&gt;globalExec();
<a name="l01944"></a>01944         Q_ASSERT( window == interpreter-&gt;globalObject().imp() );
<a name="l01945"></a>01945         Object obj( window );
<a name="l01946"></a>01946         <a class="code" href="classKJS_1_1ScheduledAction.html#0324575b2f062109ea71ba080bb0b520">func</a>-&gt;call(exec,obj,args); <span class="comment">// note that call() creates its own execution state for the func call</span>
<a name="l01947"></a>01947         <span class="keywordflow">if</span> (exec-&gt;hadException())
<a name="l01948"></a>01948           exec-&gt;clearException();
<a name="l01949"></a>01949 
<a name="l01950"></a>01950         <span class="comment">// Update our document's rendering following the execution of the timeout callback.</span>
<a name="l01951"></a>01951         part-&gt;document().updateRendering();
<a name="l01952"></a>01952       }
<a name="l01953"></a>01953     }
<a name="l01954"></a>01954   }
<a name="l01955"></a>01955   <span class="keywordflow">else</span> {
<a name="l01956"></a>01956     part-&gt;<a class="code" href="classKHTMLPart.html#c1dd647eddc9dd2bde9bff6b7294f2c0">executeScript</a>(<a class="code" href="classDOM_1_1Node.html">DOM::Node</a>(), <a class="code" href="classKJS_1_1ScheduledAction.html#02f04cf03468182f6fbea454db5c3525">code</a>);
<a name="l01957"></a>01957   }
<a name="l01958"></a>01958 
<a name="l01959"></a>01959   interpreter-&gt;<a class="code" href="classKJS_1_1ScriptInterpreter.html#0d0e3b628264e9a6d313142a63d4b236">setProcessingTimerCallback</a>(<span class="keyword">false</span>);
<a name="l01960"></a>01960   <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l01961"></a>01961 }
<a name="l01962"></a>01962 
<a name="l01963"></a><a class="code" href="classKJS_1_1ScheduledAction.html#da95b86759dd7d51aa17f545273638d8">01963</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1ScheduledAction.html#da95b86759dd7d51aa17f545273638d8">ScheduledAction::mark</a>()
<a name="l01964"></a>01964 {
<a name="l01965"></a>01965   <span class="keywordflow">if</span> (<a class="code" href="classKJS_1_1ScheduledAction.html#0324575b2f062109ea71ba080bb0b520">func</a> &amp;&amp; !<a class="code" href="classKJS_1_1ScheduledAction.html#0324575b2f062109ea71ba080bb0b520">func</a>-&gt;marked())
<a name="l01966"></a>01966     <a class="code" href="classKJS_1_1ScheduledAction.html#0324575b2f062109ea71ba080bb0b520">func</a>-&gt;mark();
<a name="l01967"></a>01967   args.mark();
<a name="l01968"></a>01968 }
<a name="l01969"></a>01969 
<a name="l01970"></a><a class="code" href="classKJS_1_1ScheduledAction.html#e2b16a8b29ab5a4cb599494e05f6ccda">01970</a> <a class="code" href="classKJS_1_1ScheduledAction.html#e2b16a8b29ab5a4cb599494e05f6ccda">ScheduledAction::~ScheduledAction</a>()
<a name="l01971"></a>01971 {
<a name="l01972"></a>01972   <span class="comment">//kdDebug(6070) &lt;&lt; "ScheduledAction::~ScheduledAction " &lt;&lt; this &lt;&lt; endl;</span>
<a name="l01973"></a>01973 }
<a name="l01974"></a>01974 
<a name="l01976"></a>01976 
<a name="l01977"></a><a class="code" href="classKJS_1_1WindowQObject.html#4629e4760d6a316d5af0554a615c5900">01977</a> <a class="code" href="classKJS_1_1WindowQObject.html#4629e4760d6a316d5af0554a615c5900">WindowQObject::WindowQObject</a>(<a class="code" href="classKJS_1_1Window.html">Window</a> *w)
<a name="l01978"></a>01978   : parent(w)
<a name="l01979"></a>01979 {
<a name="l01980"></a>01980   <span class="comment">//kdDebug(6070) &lt;&lt; "WindowQObject::WindowQObject " &lt;&lt; this &lt;&lt; endl;</span>
<a name="l01981"></a>01981   <span class="keywordflow">if</span> ( !<a class="codeRef" doxygen="qt.tag:" href="qobject.html#parent">parent</a>-&gt;m_frame )
<a name="l01982"></a>01982       <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"WARNING: null part in "</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg634e2de2b699b31ea3a79f984e836d64">k_funcinfo</a> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l01983"></a>01983   <span class="keywordflow">else</span>
<a name="l01984"></a>01984       <a class="codeRef" doxygen="qt.tag:" href="qobject.html#connect">connect</a>( <a class="codeRef" doxygen="qt.tag:" href="qobject.html#parent">parent</a>-&gt;m_frame, SIGNAL( <a class="codeRef" doxygen="qt.tag:" href="qobject.html#destroyed">destroyed</a>() ),
<a name="l01985"></a>01985                <span class="keyword">this</span>, SLOT( <a class="code" href="classKJS_1_1WindowQObject.html#5068af0759b2038e3d70d9698554795d">parentDestroyed</a>() ) );
<a name="l01986"></a>01986   pausedTime = 0;
<a name="l01987"></a>01987   lastTimerId = 0;
<a name="l01988"></a>01988   currentlyDispatching = <span class="keyword">false</span>;
<a name="l01989"></a>01989 }
<a name="l01990"></a>01990 
<a name="l01991"></a><a class="code" href="classKJS_1_1WindowQObject.html#6d6ec33b0084b6a1d20e35cad78e16c3">01991</a> <a class="code" href="classKJS_1_1WindowQObject.html#6d6ec33b0084b6a1d20e35cad78e16c3">WindowQObject::~WindowQObject</a>()
<a name="l01992"></a>01992 {
<a name="l01993"></a>01993   <span class="comment">//kdDebug(6070) &lt;&lt; "WindowQObject::~WindowQObject " &lt;&lt; this &lt;&lt; endl;</span>
<a name="l01994"></a>01994   <a class="code" href="classKJS_1_1WindowQObject.html#5068af0759b2038e3d70d9698554795d">parentDestroyed</a>(); <span class="comment">// reuse same code</span>
<a name="l01995"></a>01995 }
<a name="l01996"></a>01996 
<a name="l01997"></a><a class="code" href="classKJS_1_1WindowQObject.html#5068af0759b2038e3d70d9698554795d">01997</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1WindowQObject.html#5068af0759b2038e3d70d9698554795d">WindowQObject::parentDestroyed</a>()
<a name="l01998"></a>01998 {
<a name="l01999"></a>01999   <a class="codeRef" doxygen="qt.tag:" href="qobject.html#killTimers">killTimers</a>();
<a name="l02000"></a>02000 
<a name="l02001"></a>02001   <a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html">QPtrListIterator&lt;ScheduledAction&gt;</a> it(scheduledActions);
<a name="l02002"></a>02002   <span class="keywordflow">for</span> (; it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>(); ++it)
<a name="l02003"></a>02003     <span class="keyword">delete</span> it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>();
<a name="l02004"></a>02004   scheduledActions.clear();
<a name="l02005"></a>02005 }
<a name="l02006"></a>02006 
<a name="l02007"></a><a class="code" href="classKJS_1_1WindowQObject.html#94b5b54d1cd3221501f8e5d7a5463fa0">02007</a> <span class="keywordtype">int</span> <a class="code" href="classKJS_1_1WindowQObject.html#94b5b54d1cd3221501f8e5d7a5463fa0">WindowQObject::installTimeout</a>(<span class="keyword">const</span> Identifier &amp;handler, <span class="keywordtype">int</span> t, <span class="keywordtype">bool</span> singleShot)
<a name="l02008"></a>02008 {
<a name="l02009"></a>02009   <span class="keywordtype">int</span> <span class="keywordtype">id</span> = ++lastTimerId;
<a name="l02010"></a>02010   <span class="keywordflow">if</span> (t &lt; 10) t = 10;
<a name="l02011"></a>02011   <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> nextTime = <a class="code" href="classKJS_1_1DateTimeMS.html#beca93d3552e8ff8c8122249213e6189">DateTimeMS::now</a>().<a class="code" href="classKJS_1_1DateTimeMS.html#5f9ce9a03af17e330b14ad6f7a41db15">addMSecs</a>(-pausedTime + t);
<a name="l02012"></a>02012   
<a name="l02013"></a>02013   <a class="code" href="classKJS_1_1ScheduledAction.html">ScheduledAction</a> *action = <span class="keyword">new</span> <a class="code" href="classKJS_1_1ScheduledAction.html">ScheduledAction</a>(handler.qstring(),nextTime,t,singleShot,id);
<a name="l02014"></a>02014   scheduledActions.append(action);
<a name="l02015"></a>02015   <a class="code" href="classKJS_1_1WindowQObject.html#fce03932be633e3f45b74eff80c3e2b2">setNextTimer</a>();
<a name="l02016"></a>02016   <span class="keywordflow">return</span> id;
<a name="l02017"></a>02017 }
<a name="l02018"></a>02018 
<a name="l02019"></a><a class="code" href="classKJS_1_1WindowQObject.html#194ecf0b38f310f21d0835b8ac936237">02019</a> <span class="keywordtype">int</span> <a class="code" href="classKJS_1_1WindowQObject.html#94b5b54d1cd3221501f8e5d7a5463fa0">WindowQObject::installTimeout</a>(<span class="keyword">const</span> Value &amp;func, List args, <span class="keywordtype">int</span> t, <span class="keywordtype">bool</span> singleShot)
<a name="l02020"></a>02020 {
<a name="l02021"></a>02021   Object objFunc = Object::dynamicCast( func );
<a name="l02022"></a>02022   <span class="keywordflow">if</span> (!objFunc.isValid())
<a name="l02023"></a>02023     <span class="keywordflow">return</span> 0;
<a name="l02024"></a>02024   <span class="keywordtype">int</span> <span class="keywordtype">id</span> = ++lastTimerId;
<a name="l02025"></a>02025   <span class="keywordflow">if</span> (t &lt; 10) t = 10;
<a name="l02026"></a>02026   
<a name="l02027"></a>02027   <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> nextTime = <a class="code" href="classKJS_1_1DateTimeMS.html#beca93d3552e8ff8c8122249213e6189">DateTimeMS::now</a>().<a class="code" href="classKJS_1_1DateTimeMS.html#5f9ce9a03af17e330b14ad6f7a41db15">addMSecs</a>(-pausedTime + t);
<a name="l02028"></a>02028   <a class="code" href="classKJS_1_1ScheduledAction.html">ScheduledAction</a> *action = <span class="keyword">new</span> <a class="code" href="classKJS_1_1ScheduledAction.html">ScheduledAction</a>(objFunc,args,nextTime,t,singleShot,<span class="keywordtype">id</span>);
<a name="l02029"></a>02029   scheduledActions.append(action);
<a name="l02030"></a>02030   <a class="code" href="classKJS_1_1WindowQObject.html#fce03932be633e3f45b74eff80c3e2b2">setNextTimer</a>();
<a name="l02031"></a>02031   <span class="keywordflow">return</span> id;
<a name="l02032"></a>02032 }
<a name="l02033"></a>02033 
<a name="l02034"></a><a class="code" href="classKJS_1_1WindowQObject.html#4ad0231143a86eeb04b484e9df0d34fb">02034</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1WindowQObject.html#4ad0231143a86eeb04b484e9df0d34fb">WindowQObject::clearTimeout</a>(<span class="keywordtype">int</span> timerId)
<a name="l02035"></a>02035 {
<a name="l02036"></a>02036   <a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html">QPtrListIterator&lt;ScheduledAction&gt;</a> it(scheduledActions);
<a name="l02037"></a>02037   <span class="keywordflow">for</span> (; it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>(); ++it) {
<a name="l02038"></a>02038     <a class="code" href="classKJS_1_1ScheduledAction.html">ScheduledAction</a> *action = it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>();
<a name="l02039"></a>02039     <span class="keywordflow">if</span> (action-&gt;timerId == timerId) {
<a name="l02040"></a>02040       scheduledActions.removeRef(action);
<a name="l02041"></a>02041       <span class="keywordflow">if</span> (!action-&gt;executing)
<a name="l02042"></a>02042     <span class="keyword">delete</span> action;
<a name="l02043"></a>02043       <span class="keywordflow">return</span>;
<a name="l02044"></a>02044     }
<a name="l02045"></a>02045   }
<a name="l02046"></a>02046 }
<a name="l02047"></a>02047 
<a name="l02048"></a><a class="code" href="classKJS_1_1WindowQObject.html#622c9c2ece072c67dc8d62774e13187a">02048</a> <span class="keywordtype">bool</span> <a class="code" href="classKJS_1_1WindowQObject.html#622c9c2ece072c67dc8d62774e13187a">WindowQObject::hasTimers</a>()<span class="keyword"> const</span>
<a name="l02049"></a>02049 <span class="keyword"></span>{
<a name="l02050"></a>02050   <span class="keywordflow">return</span> scheduledActions.count();
<a name="l02051"></a>02051 }
<a name="l02052"></a>02052 
<a name="l02053"></a><a class="code" href="classKJS_1_1WindowQObject.html#4ab57ed8691e6084692c15201b58bcbf">02053</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1WindowQObject.html#4ab57ed8691e6084692c15201b58bcbf">WindowQObject::mark</a>()
<a name="l02054"></a>02054 {
<a name="l02055"></a>02055   <a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html">QPtrListIterator&lt;ScheduledAction&gt;</a> it(scheduledActions);
<a name="l02056"></a>02056   <span class="keywordflow">for</span> (; it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>(); ++it)
<a name="l02057"></a>02057     it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>()-&gt;mark();
<a name="l02058"></a>02058 }
<a name="l02059"></a>02059 
<a name="l02060"></a><a class="code" href="classKJS_1_1WindowQObject.html#64a7507f991e2b951348de877b6efdc6">02060</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1WindowQObject.html#64a7507f991e2b951348de877b6efdc6">WindowQObject::timerEvent</a>(<a class="codeRef" doxygen="qt.tag:" href="qtimerevent.html">QTimerEvent</a> *)
<a name="l02061"></a>02061 {
<a name="l02062"></a>02062   <a class="codeRef" doxygen="qt.tag:" href="qobject.html#killTimers">killTimers</a>();
<a name="l02063"></a>02063 
<a name="l02064"></a>02064   <span class="keywordflow">if</span> (scheduledActions.isEmpty())
<a name="l02065"></a>02065     <span class="keywordflow">return</span>;
<a name="l02066"></a>02066 
<a name="l02067"></a>02067   currentlyDispatching = <span class="keyword">true</span>;
<a name="l02068"></a>02068 
<a name="l02069"></a>02069 
<a name="l02070"></a>02070   <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> currentActual = <a class="code" href="classKJS_1_1DateTimeMS.html#beca93d3552e8ff8c8122249213e6189">DateTimeMS::now</a>();
<a name="l02071"></a>02071   <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> currentAdjusted = currentActual.<a class="code" href="classKJS_1_1DateTimeMS.html#5f9ce9a03af17e330b14ad6f7a41db15">addMSecs</a>(-pausedTime);
<a name="l02072"></a>02072 
<a name="l02073"></a>02073   <span class="comment">// Work out which actions are to be executed. We take a separate copy of</span>
<a name="l02074"></a>02074   <span class="comment">// this list since the main one may be modified during action execution</span>
<a name="l02075"></a>02075   <a class="codeRef" doxygen="qt.tag:" href="qptrlist.html">QPtrList&lt;ScheduledAction&gt;</a> toExecute;
<a name="l02076"></a>02076   <a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html">QPtrListIterator&lt;ScheduledAction&gt;</a> it(scheduledActions);
<a name="l02077"></a>02077   <span class="keywordflow">for</span> (; it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>(); ++it)
<a name="l02078"></a>02078     <span class="keywordflow">if</span> (currentAdjusted &gt;= it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>()-&gt;nextTime)
<a name="l02079"></a>02079       toExecute.<a class="codeRef" doxygen="qt.tag:" href="qptrlist.html#append">append</a>(it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>());
<a name="l02080"></a>02080 
<a name="l02081"></a>02081   <span class="comment">// ### verify that the window can't be closed (and action deleted) during execution</span>
<a name="l02082"></a>02082   it = <a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html">QPtrListIterator&lt;ScheduledAction&gt;</a>(toExecute);
<a name="l02083"></a>02083   <span class="keywordflow">for</span> (; it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>(); ++it) {
<a name="l02084"></a>02084     <a class="code" href="classKJS_1_1ScheduledAction.html">ScheduledAction</a> *action = it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>();
<a name="l02085"></a>02085     <span class="keywordflow">if</span> (!scheduledActions.containsRef(action)) <span class="comment">// removed by clearTimeout()</span>
<a name="l02086"></a>02086       <span class="keywordflow">continue</span>;
<a name="l02087"></a>02087 
<a name="l02088"></a>02088     action-&gt;executing = <span class="keyword">true</span>; <span class="comment">// prevent deletion in clearTimeout()</span>
<a name="l02089"></a>02089 
<a name="l02090"></a>02090     <span class="keywordflow">if</span> (<a class="codeRef" doxygen="qt.tag:" href="qobject.html#parent">parent</a>-&gt;part()) {
<a name="l02091"></a>02091       <span class="keywordtype">bool</span> ok = action-&gt;execute(<a class="codeRef" doxygen="qt.tag:" href="qobject.html#parent">parent</a>);
<a name="l02092"></a>02092       <span class="keywordflow">if</span> ( !ok ) <span class="comment">// e.g. JS disabled</span>
<a name="l02093"></a>02093         scheduledActions.removeRef( action );
<a name="l02094"></a>02094     }
<a name="l02095"></a>02095 
<a name="l02096"></a>02096     <span class="keywordflow">if</span> (action-&gt;singleShot) {
<a name="l02097"></a>02097       scheduledActions.removeRef(action);
<a name="l02098"></a>02098     }
<a name="l02099"></a>02099 
<a name="l02100"></a>02100     action-&gt;executing = <span class="keyword">false</span>;
<a name="l02101"></a>02101 
<a name="l02102"></a>02102     <span class="keywordflow">if</span> (!scheduledActions.containsRef(action))
<a name="l02103"></a>02103       <span class="keyword">delete</span> action;
<a name="l02104"></a>02104     <span class="keywordflow">else</span>
<a name="l02105"></a>02105       action-&gt;nextTime = action-&gt;nextTime.addMSecs(action-&gt;interval);
<a name="l02106"></a>02106   }
<a name="l02107"></a>02107 
<a name="l02108"></a>02108   pausedTime += currentActual.<a class="code" href="classKJS_1_1DateTimeMS.html#702ac12e36f27b4d1785d07b6762bafb">msecsTo</a>(<a class="code" href="classKJS_1_1DateTimeMS.html#beca93d3552e8ff8c8122249213e6189">DateTimeMS::now</a>());
<a name="l02109"></a>02109 
<a name="l02110"></a>02110   currentlyDispatching = <span class="keyword">false</span>;
<a name="l02111"></a>02111 
<a name="l02112"></a>02112   <span class="comment">// Work out when next event is to occur</span>
<a name="l02113"></a>02113   <a class="code" href="classKJS_1_1WindowQObject.html#fce03932be633e3f45b74eff80c3e2b2">setNextTimer</a>();
<a name="l02114"></a>02114 }
<a name="l02115"></a>02115 
<a name="l02116"></a><a class="code" href="classKJS_1_1DateTimeMS.html#5f9ce9a03af17e330b14ad6f7a41db15">02116</a> <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> <a class="code" href="classKJS_1_1DateTimeMS.html#5f9ce9a03af17e330b14ad6f7a41db15">DateTimeMS::addMSecs</a>(<span class="keywordtype">int</span> s)<span class="keyword"> const</span>
<a name="l02117"></a>02117 <span class="keyword"></span>{
<a name="l02118"></a>02118   <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> c = *<span class="keyword">this</span>;
<a name="l02119"></a>02119   c.<a class="code" href="classKJS_1_1DateTimeMS.html#e52493be33ff970c2a5934fda86ef3a4">mTime</a> = mTime.<a class="codeRef" doxygen="qt.tag:" href="qtime.html#addMSecs">addMSecs</a>(s);
<a name="l02120"></a>02120   <span class="keywordflow">if</span> (s &gt; 0)
<a name="l02121"></a>02121   {
<a name="l02122"></a>02122     <span class="keywordflow">if</span> (c.<a class="code" href="classKJS_1_1DateTimeMS.html#e52493be33ff970c2a5934fda86ef3a4">mTime</a> &lt; mTime)
<a name="l02123"></a>02123       c.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a> = mDate.<a class="codeRef" doxygen="qt.tag:" href="qdate.html#addDays">addDays</a>(1);
<a name="l02124"></a>02124   }
<a name="l02125"></a>02125   <span class="keywordflow">else</span>
<a name="l02126"></a>02126   {
<a name="l02127"></a>02127     <span class="keywordflow">if</span> (c.<a class="code" href="classKJS_1_1DateTimeMS.html#e52493be33ff970c2a5934fda86ef3a4">mTime</a> &gt; mTime)
<a name="l02128"></a>02128       c.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a> = mDate.<a class="codeRef" doxygen="qt.tag:" href="qdate.html#addDays">addDays</a>(-1);
<a name="l02129"></a>02129   }
<a name="l02130"></a>02130   <span class="keywordflow">return</span> c;
<a name="l02131"></a>02131 }
<a name="l02132"></a>02132 
<a name="l02133"></a><a class="code" href="classKJS_1_1DateTimeMS.html#5d28820f30db076f4aabee2314aabfec">02133</a> <span class="keywordtype">bool</span> <a class="code" href="classKJS_1_1DateTimeMS.html#5d28820f30db076f4aabee2314aabfec">DateTimeMS::operator &gt;</a>(<span class="keyword">const</span> <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> &amp;other)<span class="keyword"> const</span>
<a name="l02134"></a>02134 <span class="keyword"></span>{
<a name="l02135"></a>02135   <span class="keywordflow">if</span> (mDate &gt; other.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a>)
<a name="l02136"></a>02136     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02137"></a>02137 
<a name="l02138"></a>02138   <span class="keywordflow">if</span> (mDate &lt; other.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a>)
<a name="l02139"></a>02139     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02140"></a>02140 
<a name="l02141"></a>02141   <span class="keywordflow">return</span> mTime &gt; other.<a class="code" href="classKJS_1_1DateTimeMS.html#e52493be33ff970c2a5934fda86ef3a4">mTime</a>;
<a name="l02142"></a>02142 }
<a name="l02143"></a>02143 
<a name="l02144"></a><a class="code" href="classKJS_1_1DateTimeMS.html#435d968002405c8042cc188e30429ea2">02144</a> <span class="keywordtype">bool</span> <a class="code" href="classKJS_1_1DateTimeMS.html#435d968002405c8042cc188e30429ea2">DateTimeMS::operator &gt;=</a>(<span class="keyword">const</span> <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> &amp;other)<span class="keyword"> const</span>
<a name="l02145"></a>02145 <span class="keyword"></span>{
<a name="l02146"></a>02146   <span class="keywordflow">if</span> (mDate &gt; other.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a>)
<a name="l02147"></a>02147     <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02148"></a>02148 
<a name="l02149"></a>02149   <span class="keywordflow">if</span> (mDate &lt; other.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a>)
<a name="l02150"></a>02150     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02151"></a>02151 
<a name="l02152"></a>02152   <span class="keywordflow">return</span> mTime &gt;= other.<a class="code" href="classKJS_1_1DateTimeMS.html#e52493be33ff970c2a5934fda86ef3a4">mTime</a>;
<a name="l02153"></a>02153 }
<a name="l02154"></a>02154 
<a name="l02155"></a><a class="code" href="classKJS_1_1DateTimeMS.html#702ac12e36f27b4d1785d07b6762bafb">02155</a> <span class="keywordtype">int</span> <a class="code" href="classKJS_1_1DateTimeMS.html#702ac12e36f27b4d1785d07b6762bafb">DateTimeMS::msecsTo</a>(<span class="keyword">const</span> <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> &amp;other)<span class="keyword"> const</span>
<a name="l02156"></a>02156 <span class="keyword"></span>{
<a name="l02157"></a>02157     <span class="keywordtype">int</span> d = mDate.<a class="codeRef" doxygen="qt.tag:" href="qdate.html#daysTo">daysTo</a>(other.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a>);
<a name="l02158"></a>02158     <span class="keywordtype">int</span> ms = mTime.<a class="codeRef" doxygen="qt.tag:" href="qtime.html#msecsTo">msecsTo</a>(other.<a class="code" href="classKJS_1_1DateTimeMS.html#e52493be33ff970c2a5934fda86ef3a4">mTime</a>);
<a name="l02159"></a>02159     <span class="keywordflow">return</span> d*24*60*60*1000 + ms;
<a name="l02160"></a>02160 }
<a name="l02161"></a>02161 
<a name="l02162"></a>02162 
<a name="l02163"></a><a class="code" href="classKJS_1_1DateTimeMS.html#beca93d3552e8ff8c8122249213e6189">02163</a> <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> <a class="code" href="classKJS_1_1DateTimeMS.html#beca93d3552e8ff8c8122249213e6189">DateTimeMS::now</a>()
<a name="l02164"></a>02164 {
<a name="l02165"></a>02165   <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> t;
<a name="l02166"></a>02166   <a class="codeRef" doxygen="qt.tag:" href="qtime.html">QTime</a> before = <a class="codeRef" doxygen="qt.tag:" href="qtime.html#currentTime-2">QTime::currentTime</a>();
<a name="l02167"></a>02167   t.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a> = <a class="codeRef" doxygen="qt.tag:" href="qdate.html#currentDate-2">QDate::currentDate</a>();
<a name="l02168"></a>02168   t.<a class="code" href="classKJS_1_1DateTimeMS.html#e52493be33ff970c2a5934fda86ef3a4">mTime</a> = <a class="codeRef" doxygen="qt.tag:" href="qtime.html#currentTime-2">QTime::currentTime</a>();
<a name="l02169"></a>02169   <span class="keywordflow">if</span> (t.<a class="code" href="classKJS_1_1DateTimeMS.html#e52493be33ff970c2a5934fda86ef3a4">mTime</a> &lt; before)
<a name="l02170"></a>02170     t.<a class="code" href="classKJS_1_1DateTimeMS.html#26dac89701378c563ff3ac23f2e10cff">mDate</a> = <a class="codeRef" doxygen="qt.tag:" href="qdate.html#currentDate-2">QDate::currentDate</a>(); <span class="comment">// prevent race condition in hacky way :)</span>
<a name="l02171"></a>02171   <span class="keywordflow">return</span> t;
<a name="l02172"></a>02172 }
<a name="l02173"></a>02173 
<a name="l02174"></a><a class="code" href="classKJS_1_1WindowQObject.html#fce03932be633e3f45b74eff80c3e2b2">02174</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1WindowQObject.html#fce03932be633e3f45b74eff80c3e2b2">WindowQObject::setNextTimer</a>()
<a name="l02175"></a>02175 {
<a name="l02176"></a>02176   <span class="keywordflow">if</span> (currentlyDispatching)
<a name="l02177"></a>02177     <span class="keywordflow">return</span>; <span class="comment">// Will schedule at the end </span>
<a name="l02178"></a>02178 
<a name="l02179"></a>02179   <span class="keywordflow">if</span> (scheduledActions.isEmpty())
<a name="l02180"></a>02180     <span class="keywordflow">return</span>;
<a name="l02181"></a>02181 
<a name="l02182"></a>02182   <a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html">QPtrListIterator&lt;ScheduledAction&gt;</a> it(scheduledActions);
<a name="l02183"></a>02183   <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> nextTime = it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>()-&gt;nextTime;
<a name="l02184"></a>02184   <span class="keywordflow">for</span> (++it; it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>(); ++it)
<a name="l02185"></a>02185     <span class="keywordflow">if</span> (nextTime &gt; it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>()-&gt;nextTime)
<a name="l02186"></a>02186       nextTime = it.<a class="codeRef" doxygen="qt.tag:" href="qptrlistiterator.html#current">current</a>()-&gt;nextTime;
<a name="l02187"></a>02187 
<a name="l02188"></a>02188   <a class="code" href="classKJS_1_1DateTimeMS.html">DateTimeMS</a> nextTimeActual = nextTime.<a class="code" href="classKJS_1_1DateTimeMS.html#5f9ce9a03af17e330b14ad6f7a41db15">addMSecs</a>(pausedTime);
<a name="l02189"></a>02189   <span class="keywordtype">int</span> nextInterval = <a class="code" href="classKJS_1_1DateTimeMS.html#beca93d3552e8ff8c8122249213e6189">DateTimeMS::now</a>().<a class="code" href="classKJS_1_1DateTimeMS.html#702ac12e36f27b4d1785d07b6762bafb">msecsTo</a>(nextTimeActual);
<a name="l02190"></a>02190   <span class="keywordflow">if</span> (nextInterval &lt; 0)
<a name="l02191"></a>02191     nextInterval = 0;
<a name="l02192"></a>02192   <a class="codeRef" doxygen="qt.tag:" href="qobject.html#startTimer">startTimer</a>(nextInterval);
<a name="l02193"></a>02193 }
<a name="l02194"></a>02194 
<a name="l02195"></a><a class="code" href="classKJS_1_1WindowQObject.html#f642e5b86917ffb4391c9db3c861426d">02195</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1WindowQObject.html#f642e5b86917ffb4391c9db3c861426d">WindowQObject::timeoutClose</a>()
<a name="l02196"></a>02196 {
<a name="l02197"></a>02197   <a class="codeRef" doxygen="qt.tag:" href="qobject.html#parent">parent</a>-&gt;closeNow();
<a name="l02198"></a>02198 }
<a name="l02199"></a>02199 
<a name="l02200"></a>02200 Value FrameArray::get(ExecState *exec, <span class="keyword">const</span> Identifier &amp;p)<span class="keyword"> const</span>
<a name="l02201"></a>02201 <span class="keyword"></span>{
<a name="l02202"></a>02202 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l02203"></a>02203 <span class="preprocessor"></span>  <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"FrameArray::get "</span> &lt;&lt; p.qstring() &lt;&lt; <span class="stringliteral">" part="</span> &lt;&lt; (<span class="keywordtype">void</span>*)part &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l02204"></a>02204 <span class="preprocessor">#endif</span>
<a name="l02205"></a>02205 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (part.isNull())
<a name="l02206"></a>02206     <span class="keywordflow">return</span> Undefined();
<a name="l02207"></a>02207 
<a name="l02208"></a>02208   <a class="codeRef" doxygen="qt.tag:" href="qptrlist.html">QPtrList&lt;KParts::ReadOnlyPart&gt;</a> frames = part-&gt;frames();
<a name="l02209"></a>02209   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> len = frames.<a class="codeRef" doxygen="qt.tag:" href="qptrlist.html#count">count</a>();
<a name="l02210"></a>02210   <span class="keywordflow">if</span> (p == lengthPropertyName)
<a name="l02211"></a>02211     <span class="keywordflow">return</span> Number(len);
<a name="l02212"></a>02212   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (p== <span class="stringliteral">"location"</span>) <span class="comment">// non-standard property, but works in NS and IE</span>
<a name="l02213"></a>02213   {
<a name="l02214"></a>02214     Object obj = Object::dynamicCast( <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>( part ) );
<a name="l02215"></a>02215     <span class="keywordflow">if</span> ( obj.isValid() )
<a name="l02216"></a>02216       <span class="keywordflow">return</span> obj.get( exec, <span class="stringliteral">"location"</span> );
<a name="l02217"></a>02217     <span class="keywordflow">return</span> Undefined();
<a name="l02218"></a>02218   }
<a name="l02219"></a>02219 
<a name="l02220"></a>02220   <span class="comment">// check for the name or number</span>
<a name="l02221"></a>02221   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *frame = part-&gt;findFramePart(p.qstring());
<a name="l02222"></a>02222   <span class="keywordflow">if</span> (!frame) {
<a name="l02223"></a>02223     <span class="keywordtype">bool</span> ok;
<a name="l02224"></a>02224     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = p.toArrayIndex(&amp;ok);
<a name="l02225"></a>02225     <span class="keywordflow">if</span> (ok &amp;&amp; i &lt; len)
<a name="l02226"></a>02226       frame = frames.<a class="codeRef" doxygen="qt.tag:" href="qptrlist.html#at">at</a>(i);
<a name="l02227"></a>02227   }
<a name="l02228"></a>02228 
<a name="l02229"></a>02229   <span class="comment">// we are potentially fetching a reference to a another Window object here.</span>
<a name="l02230"></a>02230   <span class="comment">// i.e. we may be accessing objects from another interpreter instance.</span>
<a name="l02231"></a>02231   <span class="comment">// Therefore we have to be a bit careful with memory management.</span>
<a name="l02232"></a>02232   <span class="keywordflow">if</span> (frame) {
<a name="l02233"></a>02233     <span class="keywordflow">return</span> <a class="code" href="classKJS_1_1Window.html#eb911cd95edcfc71a4b2882d4210d33b">Window::retrieve</a>(frame);
<a name="l02234"></a>02234   }
<a name="l02235"></a>02235 
<a name="l02236"></a>02236   <span class="comment">// Fun IE quirk: name lookup in there is actually done by document.all </span>
<a name="l02237"></a>02237   <span class="comment">// hence, it can find non-frame things (and even let them hide frame ones!)</span>
<a name="l02238"></a>02238   <span class="comment">// We don't quite do that, but do this as a fallback.</span>
<a name="l02239"></a>02239   DOM::DocumentImpl* doc  = static_cast&lt;DOM::DocumentImpl*&gt;(part-&gt;document().handle());
<a name="l02240"></a>02240   <span class="keywordflow">if</span> (doc) {
<a name="l02241"></a>02241     DOM::HTMLCollectionImpl docuAll(doc, DOM::HTMLCollectionImpl::DOC_ALL);
<a name="l02242"></a>02242     DOM::NodeImpl*     node = docuAll.namedItem(p.string());
<a name="l02243"></a>02243     <span class="keywordflow">if</span> (node) {
<a name="l02244"></a>02244       <span class="keywordflow">if</span> (node-&gt;id() == ID_FRAME || node-&gt;id() == ID_IFRAME) {
<a name="l02245"></a>02245         <span class="comment">//Return the Window object.</span>
<a name="l02246"></a>02246         <a class="code" href="classKHTMLPart.html">KHTMLPart</a>* part = static_cast&lt;DOM::HTMLFrameElementImpl*&gt;(node)-&gt;contentPart();
<a name="l02247"></a>02247         <span class="keywordflow">if</span> (part)
<a name="l02248"></a>02248           <span class="keywordflow">return</span> Value(<a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(part));
<a name="l02249"></a>02249         <span class="keywordflow">else</span>
<a name="l02250"></a>02250           <span class="keywordflow">return</span> Undefined();
<a name="l02251"></a>02251       } <span class="keywordflow">else</span> {
<a name="l02252"></a>02252         <span class="comment">//Just a regular node..</span>
<a name="l02253"></a>02253         <span class="keywordflow">return</span> <a class="code" href="namespaceKJS.html#54231f4fbfeb35ec709c9a16c8677691">getDOMNode</a>(exec, node);
<a name="l02254"></a>02254       }
<a name="l02255"></a>02255     }
<a name="l02256"></a>02256   } <span class="keywordflow">else</span> {
<a name="l02257"></a>02257     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg9acd682001598171edf8ecb104fdad2b">kdWarning</a>(6070) &lt;&lt; <span class="stringliteral">"Missing own document in FrameArray::get()"</span> &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l02258"></a>02258   }
<a name="l02259"></a>02259 
<a name="l02260"></a>02260   <span class="keywordflow">return</span> ObjectImp::get(exec, p);
<a name="l02261"></a>02261 }
<a name="l02262"></a>02262 
<a name="l02263"></a>02263 Value FrameArray::call(ExecState *exec, Object &amp;<span class="comment">/*thisObj*/</span>, <span class="keyword">const</span> List &amp;args)
<a name="l02264"></a>02264 {
<a name="l02265"></a>02265     <span class="comment">//IE supports a subset of the get functionality as call...</span>
<a name="l02266"></a>02266     <span class="comment">//... basically, when the return is a window, it supports that, otherwise it </span>
<a name="l02267"></a>02267     <span class="comment">//errors out. We do a cheap-and-easy emulation of that, and just do the same</span>
<a name="l02268"></a>02268     <span class="comment">//thing as get does.</span>
<a name="l02269"></a>02269     <span class="keywordflow">if</span> (args.size() == 1)
<a name="l02270"></a>02270         <span class="keywordflow">return</span> get(exec, Identifier(args[0].toString(exec)));
<a name="l02271"></a>02271 
<a name="l02272"></a>02272     <span class="keywordflow">return</span> Undefined();
<a name="l02273"></a>02273 }
<a name="l02274"></a>02274 
<a name="l02275"></a>02275 
<a name="l02277"></a>02277 
<a name="l02278"></a>02278 <span class="keyword">const</span> ClassInfo <a class="code" href="classKJS_1_1Location.html#4e84d73f11e08b40379da328697a5530">Location::info</a> = { <span class="stringliteral">"Location"</span>, 0, &amp;<a class="code" href="namespaceKJS.html#533539801d11c0b7c47984e6c2717e4a">LocationTable</a>, 0 };
<a name="l02279"></a>02279 <span class="comment">/*</span>
<a name="l02280"></a>02280 <span class="comment">@begin LocationTable 11</span>
<a name="l02281"></a>02281 <span class="comment">  hash      Location::Hash      DontDelete</span>
<a name="l02282"></a>02282 <span class="comment">  host      Location::Host      DontDelete</span>
<a name="l02283"></a>02283 <span class="comment">  hostname  Location::Hostname  DontDelete</span>
<a name="l02284"></a>02284 <span class="comment">  href      Location::Href      DontDelete</span>
<a name="l02285"></a>02285 <span class="comment">  pathname  Location::Pathname  DontDelete</span>
<a name="l02286"></a>02286 <span class="comment">  port      Location::Port      DontDelete</span>
<a name="l02287"></a>02287 <span class="comment">  protocol  Location::Protocol  DontDelete</span>
<a name="l02288"></a>02288 <span class="comment">  search    Location::Search    DontDelete</span>
<a name="l02289"></a>02289 <span class="comment">  [[==]]    Location::EqualEqual    DontDelete|ReadOnly</span>
<a name="l02290"></a>02290 <span class="comment">  assign    Location::Assign    DontDelete|Function 1</span>
<a name="l02291"></a>02291 <span class="comment">  toString  Location::ToString  DontDelete|Function 0</span>
<a name="l02292"></a>02292 <span class="comment">  replace   Location::Replace   DontDelete|Function 1</span>
<a name="l02293"></a>02293 <span class="comment">  reload    Location::Reload    DontDelete|Function 0</span>
<a name="l02294"></a>02294 <span class="comment">@end</span>
<a name="l02295"></a>02295 <span class="comment">*/</span>
<a name="l02296"></a>02296 IMPLEMENT_PROTOFUNC_DOM(LocationFunc)
<a name="l02297"></a>02297 <a class="code" href="classKJS_1_1Location.html">Location</a>::<a class="code" href="classKJS_1_1Location.html">Location</a>(khtml::ChildFrame *f) : m_frame(f)
<a name="l02298"></a>02298 {
<a name="l02299"></a>02299   <span class="comment">//kdDebug(6070) &lt;&lt; "Location::Location " &lt;&lt; this &lt;&lt; " m_part=" &lt;&lt; (void*)m_part &lt;&lt; endl;</span>
<a name="l02300"></a>02300 }
<a name="l02301"></a>02301 
<a name="l02302"></a><a class="code" href="classKJS_1_1Location.html#f5be2c6550bbd96137cbb3144ec3c529">02302</a> <a class="code" href="classKJS_1_1Location.html#f5be2c6550bbd96137cbb3144ec3c529">Location::~Location</a>()
<a name="l02303"></a>02303 {
<a name="l02304"></a>02304   <span class="comment">//kdDebug(6070) &lt;&lt; "Location::~Location " &lt;&lt; this &lt;&lt; " m_part=" &lt;&lt; (void*)m_part &lt;&lt; endl;</span>
<a name="l02305"></a>02305 }
<a name="l02306"></a>02306 
<a name="l02307"></a><a class="code" href="classKJS_1_1Location.html#d92a695b1590356d6bfc819c6202c18c">02307</a> <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *<a class="code" href="classKJS_1_1Location.html#d92a695b1590356d6bfc819c6202c18c">Location::part</a>()<span class="keyword"> const </span>{
<a name="l02308"></a>02308   <span class="keywordflow">return</span> m_frame ? static_cast&lt;KParts::ReadOnlyPart *&gt;(m_frame-&gt;m_part) : 0L;
<a name="l02309"></a>02309 }
<a name="l02310"></a>02310 
<a name="l02311"></a><a class="code" href="classKJS_1_1Location.html#b4af1cab52a3ec40a3b0a5ca524bee21">02311</a> Value <a class="code" href="classKJS_1_1Location.html#b4af1cab52a3ec40a3b0a5ca524bee21">Location::get</a>(ExecState *exec, <span class="keyword">const</span> Identifier &amp;p)<span class="keyword"> const</span>
<a name="l02312"></a>02312 <span class="keyword"></span>{
<a name="l02313"></a>02313 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l02314"></a>02314 <span class="preprocessor"></span>  <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Location::get "</span> &lt;&lt; p.qstring() &lt;&lt; <span class="stringliteral">" m_part="</span> &lt;&lt; (<span class="keywordtype">void</span>*)m_frame-&gt;m_part &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l02315"></a>02315 #endif
<a name="l02316"></a>02316 
<a name="l02317"></a>02317   if (m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() || m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>())
<a name="l02318"></a>02318     <span class="keywordflow">return</span> Undefined();
<a name="l02319"></a>02319 
<a name="l02320"></a>02320   <span class="keyword">const</span> HashEntry *entry = Lookup::findEntry(&amp;<a class="code" href="namespaceKJS.html#533539801d11c0b7c47984e6c2717e4a">LocationTable</a>, p);
<a name="l02321"></a>02321 
<a name="l02322"></a>02322   <span class="comment">// properties that work on all Location objects</span>
<a name="l02323"></a>02323   <span class="keywordflow">if</span> ( entry &amp;&amp; entry-&gt;value == Replace )
<a name="l02324"></a>02324       <span class="keywordflow">return</span> lookupOrCreateFunction&lt;LocationFunc&gt;(exec,p,<span class="keyword">this</span>,entry-&gt;value,entry-&gt;params,entry-&gt;attr);
<a name="l02325"></a>02325 
<a name="l02326"></a>02326   <span class="comment">// XSS check</span>
<a name="l02327"></a>02327   <span class="keyword">const</span> <a class="code" href="classKJS_1_1Window.html">Window</a>* window = <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>( m_frame-&gt;m_part );
<a name="l02328"></a>02328   <span class="keywordflow">if</span> ( !window || !window-&gt;isSafeScript(exec) )
<a name="l02329"></a>02329     <span class="keywordflow">return</span> Undefined();
<a name="l02330"></a>02330 
<a name="l02331"></a>02331   <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html">KURL</a> url = m_frame-&gt;m_part-&gt;url();
<a name="l02332"></a>02332   <span class="keywordflow">if</span> (entry)
<a name="l02333"></a>02333     <span class="keywordflow">switch</span> (entry-&gt;value) {
<a name="l02334"></a>02334     <span class="keywordflow">case</span> Hash:
<a name="l02335"></a>02335       <span class="keywordflow">return</span> String( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#53f4194e147b11b678760340d62b3043">ref</a>().<a class="codeRef" doxygen="qt.tag:" href="qstring.html#isNull">isNull</a>() ? <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>(<span class="stringliteral">""</span>) : <span class="stringliteral">"#"</span> + url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#53f4194e147b11b678760340d62b3043">ref</a>() );
<a name="l02336"></a>02336     <span class="keywordflow">case</span> Host: {
<a name="l02337"></a>02337       UString str = url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#df3ad35581a0ca25ecc16e073f8275ca">host</a>();
<a name="l02338"></a>02338       <span class="keywordflow">if</span> (url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#205598afc6842db13e4ad996ba1d9422">port</a>())
<a name="l02339"></a>02339         str += <span class="stringliteral">":"</span> + <a class="codeRef" doxygen="qt.tag:" href="qstring.html#number">QString::number</a>((<span class="keywordtype">int</span>)url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#205598afc6842db13e4ad996ba1d9422">port</a>());
<a name="l02340"></a>02340       <span class="keywordflow">return</span> String(str);
<a name="l02341"></a>02341       <span class="comment">// Note: this is the IE spec. The NS spec swaps the two, it says</span>
<a name="l02342"></a>02342       <span class="comment">// "The hostname property is the concatenation of the host and port properties, separated by a colon."</span>
<a name="l02343"></a>02343       <span class="comment">// Bleh.</span>
<a name="l02344"></a>02344     }
<a name="l02345"></a>02345     <span class="keywordflow">case</span> Hostname:
<a name="l02346"></a>02346       <span class="keywordflow">return</span> String( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#df3ad35581a0ca25ecc16e073f8275ca">host</a>() );
<a name="l02347"></a>02347     <span class="keywordflow">case</span> Href:
<a name="l02348"></a>02348       <span class="keywordflow">if</span> (!url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#d24bdff9a1df6735fe544c96cd7c30c1">hasPath</a>())
<a name="l02349"></a>02349         <span class="keywordflow">return</span> String( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#9382bc0e035124e884f755cff962530f">prettyURL</a>()+<span class="stringliteral">"/"</span> );
<a name="l02350"></a>02350       <span class="keywordflow">else</span>
<a name="l02351"></a>02351         <span class="keywordflow">return</span> String( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#9382bc0e035124e884f755cff962530f">prettyURL</a>() );
<a name="l02352"></a>02352     <span class="keywordflow">case</span> Pathname:
<a name="l02353"></a>02353       <span class="keywordflow">return</span> String( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#dd464ac157c5ee326847ddaef7ae2d19">path</a>().<a class="codeRef" doxygen="qt.tag:" href="qstring.html#isEmpty">isEmpty</a>() ? <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a>(<span class="stringliteral">"/"</span>) : url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#dd464ac157c5ee326847ddaef7ae2d19">path</a>() );
<a name="l02354"></a>02354     <span class="keywordflow">case</span> Port:
<a name="l02355"></a>02355       <span class="keywordflow">return</span> String( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#205598afc6842db13e4ad996ba1d9422">port</a>() ? <a class="codeRef" doxygen="qt.tag:" href="qstring.html#number">QString::number</a>((<span class="keywordtype">int</span>)url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#205598afc6842db13e4ad996ba1d9422">port</a>()) : <a class="codeRef" doxygen="qt.tag:" href="qstring.html#fromLatin1">QString::fromLatin1</a>(<span class="stringliteral">""</span>) );
<a name="l02356"></a>02356     <span class="keywordflow">case</span> Protocol:
<a name="l02357"></a>02357       <span class="keywordflow">return</span> String( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#4be1d1602a1d0f0afeee230167ebfdc4">protocol</a>()+<span class="stringliteral">":"</span> );
<a name="l02358"></a>02358     <span class="keywordflow">case</span> Search:
<a name="l02359"></a>02359       <span class="keywordflow">return</span> String( url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#0a28c0873806d04a7fd4e19feeb4bd63">query</a>() );
<a name="l02360"></a>02360     <span class="keywordflow">case</span> EqualEqual: <span class="comment">// [[==]]</span>
<a name="l02361"></a>02361       <span class="keywordflow">return</span> String(<a class="code" href="classKJS_1_1Location.html#1cc10cbf96843133abf325471dbde4ff">toString</a>(exec));
<a name="l02362"></a>02362     <span class="keywordflow">case</span> ToString:
<a name="l02363"></a>02363       <span class="keywordflow">return</span> lookupOrCreateFunction&lt;LocationFunc&gt;(exec,p,<span class="keyword">this</span>,entry-&gt;value,entry-&gt;params,entry-&gt;attr);
<a name="l02364"></a>02364     }
<a name="l02365"></a>02365   <span class="comment">// Look for overrides</span>
<a name="l02366"></a>02366   ValueImp * val = ObjectImp::getDirect(p);
<a name="l02367"></a>02367   <span class="keywordflow">if</span> (val)
<a name="l02368"></a>02368     <span class="keywordflow">return</span> Value(val);
<a name="l02369"></a>02369   <span class="keywordflow">if</span> (entry &amp;&amp; (entry-&gt;attr &amp; Function))
<a name="l02370"></a>02370     <span class="keywordflow">return</span> lookupOrCreateFunction&lt;LocationFunc&gt;(exec,p,<span class="keyword">this</span>,entry-&gt;value,entry-&gt;params,entry-&gt;attr);
<a name="l02371"></a>02371 
<a name="l02372"></a>02372   <span class="keywordflow">return</span> Undefined();
<a name="l02373"></a>02373 }
<a name="l02374"></a>02374 
<a name="l02375"></a><a class="code" href="classKJS_1_1Location.html#ab459b776c2b41ef4bae1d5d3467af53">02375</a> <span class="keywordtype">void</span> <a class="code" href="classKJS_1_1Location.html#ab459b776c2b41ef4bae1d5d3467af53">Location::put</a>(ExecState *exec, <span class="keyword">const</span> Identifier &amp;p, <span class="keyword">const</span> Value &amp;v, <span class="keywordtype">int</span> attr)
<a name="l02376"></a>02376 {
<a name="l02377"></a>02377 <span class="preprocessor">#ifdef KJS_VERBOSE</span>
<a name="l02378"></a>02378 <span class="preprocessor"></span>  <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"Location::put "</span> &lt;&lt; p.qstring() &lt;&lt; <span class="stringliteral">" m_part="</span> &lt;&lt; (<span class="keywordtype">void</span>*)m_frame-&gt;m_part &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l02379"></a>02379 #endif
<a name="l02380"></a>02380   if (m_frame.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>() || m_frame-&gt;m_part.<a class="codeRef" doxygen="qt.tag:" href="qguardedptr.html#isNull">isNull</a>())
<a name="l02381"></a>02381     <span class="keywordflow">return</span>;
<a name="l02382"></a>02382 
<a name="l02383"></a>02383   <span class="keyword">const</span> <a class="code" href="classKJS_1_1Window.html">Window</a>* window = <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>( m_frame-&gt;m_part );
<a name="l02384"></a>02384   <span class="keywordflow">if</span> ( !window )
<a name="l02385"></a>02385     <span class="keywordflow">return</span>;
<a name="l02386"></a>02386 
<a name="l02387"></a>02387   <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html">KURL</a> url = m_frame-&gt;m_part-&gt;url();
<a name="l02388"></a>02388 
<a name="l02389"></a>02389   <span class="keyword">const</span> HashEntry *entry = Lookup::findEntry(&amp;<a class="code" href="namespaceKJS.html#533539801d11c0b7c47984e6c2717e4a">LocationTable</a>, p);
<a name="l02390"></a>02390 
<a name="l02391"></a>02391   <span class="keywordflow">if</span> (entry) {
<a name="l02392"></a>02392 
<a name="l02393"></a>02393     <span class="comment">// XSS check. Only new hrefs can be set from other sites</span>
<a name="l02394"></a>02394     <span class="keywordflow">if</span> (entry-&gt;value != Href &amp;&amp; !window-&gt;<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec))
<a name="l02395"></a>02395       <span class="keywordflow">return</span>;
<a name="l02396"></a>02396 
<a name="l02397"></a>02397     <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> str = v.toString(exec).qstring();
<a name="l02398"></a>02398     <span class="keywordflow">switch</span> (entry-&gt;value) {
<a name="l02399"></a>02399     <span class="keywordflow">case</span> Href: {
<a name="l02400"></a>02400       <a class="code" href="classKHTMLPart.html">KHTMLPart</a>* p =::qt_cast&lt;KHTMLPart*&gt;(<a class="code" href="classKJS_1_1Window.html#7bc822a098cb3d57e0a754c6a8d0c741">Window::retrieveActive</a>(exec)-&gt;<a class="code" href="classKJS_1_1Window.html#8229edb51e418350909a0a6d9999181a">part</a>());
<a name="l02401"></a>02401       <span class="keywordflow">if</span> ( p )
<a name="l02402"></a>02402         url = p-&gt;<a class="code" href="classKHTMLPart.html#56f0f72f58376e7308af0c392dd937a3">htmlDocument</a>().<a class="code" href="classDOM_1_1HTMLDocument.html#f599c5eb7db7d3ad96f8ce28b8d32c52">completeURL</a>( str ).string();
<a name="l02403"></a>02403       <span class="keywordflow">else</span>
<a name="l02404"></a>02404         url = str;
<a name="l02405"></a>02405       <span class="keywordflow">break</span>;
<a name="l02406"></a>02406     }
<a name="l02407"></a>02407     <span class="keywordflow">case</span> Hash:
<a name="l02408"></a>02408       <span class="comment">// when the hash is already the same ignore it</span>
<a name="l02409"></a>02409       <span class="keywordflow">if</span> (str == url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#53f4194e147b11b678760340d62b3043">ref</a>()) <span class="keywordflow">return</span>;
<a name="l02410"></a>02410       url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#f531d16bdf3ac9a5a8ed27e16f61ebd7">setRef</a>(str);
<a name="l02411"></a>02411       <span class="keywordflow">break</span>;
<a name="l02412"></a>02412     <span class="keywordflow">case</span> Host: {
<a name="l02413"></a>02413       <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> host = str.left(str.find(<span class="stringliteral">":"</span>));
<a name="l02414"></a>02414       <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> port = str.mid(str.find(<span class="stringliteral">":"</span>)+1);
<a name="l02415"></a>02415       url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#fbf05cea61e7c6f3c5de6a467d5f0534">setHost</a>(host);
<a name="l02416"></a>02416       url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#872ff8bd98d746e3356d9331d55421e8">setPort</a>(port.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#toUInt">toUInt</a>());
<a name="l02417"></a>02417       <span class="keywordflow">break</span>;
<a name="l02418"></a>02418     }
<a name="l02419"></a>02419     <span class="keywordflow">case</span> Hostname:
<a name="l02420"></a>02420       url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#fbf05cea61e7c6f3c5de6a467d5f0534">setHost</a>(str);
<a name="l02421"></a>02421       <span class="keywordflow">break</span>;
<a name="l02422"></a>02422     <span class="keywordflow">case</span> Pathname:
<a name="l02423"></a>02423       url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#6c0a0828b4b9f1126b13380076e2b2f3">setPath</a>(str);
<a name="l02424"></a>02424       <span class="keywordflow">break</span>;
<a name="l02425"></a>02425     <span class="keywordflow">case</span> Port:
<a name="l02426"></a>02426       url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#872ff8bd98d746e3356d9331d55421e8">setPort</a>(str.toUInt());
<a name="l02427"></a>02427       <span class="keywordflow">break</span>;
<a name="l02428"></a>02428     <span class="keywordflow">case</span> Protocol:
<a name="l02429"></a>02429       url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#8992baac621d32c2aed7c97a26362b8d">setProtocol</a>(str);
<a name="l02430"></a>02430       <span class="keywordflow">break</span>;
<a name="l02431"></a>02431     <span class="keywordflow">case</span> Search:
<a name="l02432"></a>02432       url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#9ffeaee79924b4156f5816fc95f874e5">setQuery</a>(str);
<a name="l02433"></a>02433       <span class="keywordflow">break</span>;
<a name="l02434"></a>02434     }
<a name="l02435"></a>02435   } <span class="keywordflow">else</span> {
<a name="l02436"></a>02436     ObjectImp::put(exec, p, v, attr);
<a name="l02437"></a>02437     <span class="keywordflow">return</span>;
<a name="l02438"></a>02438   }
<a name="l02439"></a>02439 
<a name="l02440"></a>02440   <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(m_frame-&gt;m_part)-&gt;<a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">goURL</a>(exec, url.<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html#af8593b924647a9db73016fbeab1812a">url</a>(), <span class="keyword">false</span> <span class="comment">/* don't lock history*/</span> );
<a name="l02441"></a>02441 }
<a name="l02442"></a>02442 
<a name="l02443"></a><a class="code" href="classKJS_1_1Location.html#34cf61c6fcfcb1afbae8f1a86e6e7408">02443</a> Value <a class="code" href="classKJS_1_1Location.html#34cf61c6fcfcb1afbae8f1a86e6e7408">Location::toPrimitive</a>(ExecState *exec, Type)<span class="keyword"> const</span>
<a name="l02444"></a>02444 <span class="keyword"></span>{
<a name="l02445"></a>02445   <span class="keywordflow">if</span> (m_frame) {
<a name="l02446"></a>02446     <a class="code" href="classKJS_1_1Window.html">Window</a>* window = <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>( m_frame-&gt;m_part );
<a name="l02447"></a>02447     <span class="keywordflow">if</span> ( window &amp;&amp; window-&gt;<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) )
<a name="l02448"></a>02448       <span class="keywordflow">return</span> String(<a class="code" href="classKJS_1_1Location.html#1cc10cbf96843133abf325471dbde4ff">toString</a>(exec));
<a name="l02449"></a>02449   }
<a name="l02450"></a>02450   <span class="keywordflow">return</span> Undefined();
<a name="l02451"></a>02451 }
<a name="l02452"></a>02452 
<a name="l02453"></a><a class="code" href="classKJS_1_1Location.html#1cc10cbf96843133abf325471dbde4ff">02453</a> UString <a class="code" href="classKJS_1_1Location.html#1cc10cbf96843133abf325471dbde4ff">Location::toString</a>(ExecState *exec)<span class="keyword"> const</span>
<a name="l02454"></a>02454 <span class="keyword"></span>{
<a name="l02455"></a>02455   <span class="keywordflow">if</span> (m_frame) {
<a name="l02456"></a>02456     <a class="code" href="classKJS_1_1Window.html">Window</a>* window = <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>( m_frame-&gt;m_part );
<a name="l02457"></a>02457     <span class="keywordflow">if</span> ( window &amp;&amp; window-&gt;<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) )
<a name="l02458"></a>02458     {
<a name="l02459"></a>02459       <span class="keywordflow">if</span> (!m_frame-&gt;m_part-&gt;url().hasPath())
<a name="l02460"></a>02460         <span class="keywordflow">return</span> m_frame-&gt;m_part-&gt;url().prettyURL()+<span class="stringliteral">"/"</span>;
<a name="l02461"></a>02461       <span class="keywordflow">else</span>
<a name="l02462"></a>02462         <span class="keywordflow">return</span> m_frame-&gt;m_part-&gt;url().prettyURL();
<a name="l02463"></a>02463     }
<a name="l02464"></a>02464   }
<a name="l02465"></a>02465   <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
<a name="l02466"></a>02466 }
<a name="l02467"></a>02467 
<a name="l02468"></a>02468 Value LocationFunc::tryCall(ExecState *exec, Object &amp;thisObj, <span class="keyword">const</span> List &amp;args)
<a name="l02469"></a>02469 {
<a name="l02470"></a>02470   KJS_CHECK_THIS( <a class="code" href="classKJS_1_1Location.html">Location</a>, thisObj );
<a name="l02471"></a>02471   <a class="code" href="classKJS_1_1Location.html">Location</a> *location = static_cast&lt;Location *&gt;(thisObj.imp());
<a name="l02472"></a>02472   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1ReadOnlyPart.html">KParts::ReadOnlyPart</a> *part = location-&gt;<a class="code" href="classKJS_1_1Location.html#d92a695b1590356d6bfc819c6202c18c">part</a>();
<a name="l02473"></a>02473 
<a name="l02474"></a>02474   <span class="keywordflow">if</span> (!part) <span class="keywordflow">return</span> Undefined();
<a name="l02475"></a>02475 
<a name="l02476"></a>02476   <a class="code" href="classKJS_1_1Window.html">Window</a>* window = <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(part);
<a name="l02477"></a>02477 
<a name="l02478"></a>02478   <span class="keywordflow">if</span> ( !window-&gt;<a class="code" href="classKJS_1_1Window.html#84c0b51796afbb8c3d4b40ce916fd009">isSafeScript</a>(exec) &amp;&amp; <span class="keywordtype">id</span> != Location::Replace)
<a name="l02479"></a>02479       <span class="keywordflow">return</span> Undefined();
<a name="l02480"></a>02480 
<a name="l02481"></a>02481   <span class="keywordflow">switch</span> (<span class="keywordtype">id</span>) {
<a name="l02482"></a>02482   <span class="keywordflow">case</span> Location::Assign:
<a name="l02483"></a>02483   <span class="keywordflow">case</span> Location::Replace:
<a name="l02484"></a>02484     <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>(part)-&gt;<a class="code" href="classKJS_1_1Window.html#5db0bf8c53ed74bd1d42154943523c96">goURL</a>(exec, args[0].<a class="code" href="classKJS_1_1Location.html#1cc10cbf96843133abf325471dbde4ff">toString</a>(exec).qstring(),
<a name="l02485"></a>02485             <span class="keywordtype">id</span> == Location::Replace);
<a name="l02486"></a>02486     <span class="keywordflow">break</span>;
<a name="l02487"></a>02487   <span class="keywordflow">case</span> Location::Reload: {
<a name="l02488"></a>02488     <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *khtmlpart = ::qt_cast&lt;KHTMLPart *&gt;(part);
<a name="l02489"></a>02489     <span class="keywordflow">if</span> (khtmlpart)
<a name="l02490"></a>02490       khtmlpart-&gt;<a class="code" href="classKHTMLPart.html#ab1da4089c982eab687dfa1bf6beb8a4">scheduleRedirection</a>(-1, part-&gt;url().url(), <span class="keyword">true</span><span class="comment">/*lock history*/</span>);
<a name="l02491"></a>02491     <span class="keywordflow">else</span>
<a name="l02492"></a>02492       part-&gt;openURL(part-&gt;url());
<a name="l02493"></a>02493     <span class="keywordflow">break</span>;
<a name="l02494"></a>02494   }
<a name="l02495"></a>02495   <span class="keywordflow">case</span> Location::ToString:
<a name="l02496"></a>02496     <span class="keywordflow">return</span> String(location-&gt;<a class="code" href="classKJS_1_1Location.html#1cc10cbf96843133abf325471dbde4ff">toString</a>(exec));
<a name="l02497"></a>02497   }
<a name="l02498"></a>02498   <span class="keywordflow">return</span> Undefined();
<a name="l02499"></a>02499 }
<a name="l02500"></a>02500 
<a name="l02502"></a>02502 
<a name="l02503"></a>02503 <span class="keyword">const</span> ClassInfo External::info = { <span class="stringliteral">"External"</span>, 0, 0, 0 };
<a name="l02504"></a>02504 <span class="comment">/*</span>
<a name="l02505"></a>02505 <span class="comment">@begin ExternalTable 4</span>
<a name="l02506"></a>02506 <span class="comment">  addFavorite   External::AddFavorite   DontDelete|Function 1</span>
<a name="l02507"></a>02507 <span class="comment">@end</span>
<a name="l02508"></a>02508 <span class="comment">*/</span>
<a name="l02509"></a>02509 IMPLEMENT_PROTOFUNC_DOM(ExternalFunc)
<a name="l02510"></a>02510 
<a name="l02511"></a>02511 Value External::get(ExecState *exec, const Identifier &amp;p)<span class="keyword"> const</span>
<a name="l02512"></a>02512 <span class="keyword"></span>{
<a name="l02513"></a>02513   <span class="keywordflow">return</span> lookupGetFunction&lt;ExternalFunc,ObjectImp&gt;(exec,p,&amp;<a class="code" href="namespaceKJS.html#96e7875613999595cce9e5fcd3049f2e">ExternalTable</a>,<span class="keyword">this</span>);
<a name="l02514"></a>02514 }
<a name="l02515"></a>02515 
<a name="l02516"></a>02516 Value ExternalFunc::tryCall(ExecState *exec, Object &amp;thisObj, <span class="keyword">const</span> List &amp;args)
<a name="l02517"></a>02517 {
<a name="l02518"></a>02518   KJS_CHECK_THIS( External, thisObj );
<a name="l02519"></a>02519   External *external = static_cast&lt;External *&gt;(thisObj.imp());
<a name="l02520"></a>02520 
<a name="l02521"></a>02521   <a class="code" href="classKHTMLPart.html">KHTMLPart</a> *part = external-&gt;part;
<a name="l02522"></a>02522   <span class="keywordflow">if</span> (!part)
<a name="l02523"></a>02523     <span class="keywordflow">return</span> Undefined();
<a name="l02524"></a>02524 
<a name="l02525"></a>02525   <a class="code" href="classKHTMLView.html">KHTMLView</a> *widget = part-&gt;view();
<a name="l02526"></a>02526 
<a name="l02527"></a>02527   <span class="keywordflow">switch</span> (<span class="keywordtype">id</span>) {
<a name="l02528"></a>02528   <span class="keywordflow">case</span> External::AddFavorite:
<a name="l02529"></a>02529   {
<a name="l02530"></a>02530 <span class="preprocessor">#ifndef KONQ_EMBEDDED</span>
<a name="l02531"></a>02531 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (!widget-&gt;<a class="code" href="classKHTMLView.html#9e7dd6e823693039e505e9feeab3beb4">dialogsAllowed</a>())
<a name="l02532"></a>02532       <span class="keywordflow">return</span> Undefined();
<a name="l02533"></a>02533     part-&gt;xmlDocImpl()-&gt;updateRendering();
<a name="l02534"></a>02534     <span class="keywordflow">if</span> (args.size() != 1 &amp;&amp; args.size() != 2)
<a name="l02535"></a>02535       <span class="keywordflow">return</span> Undefined();
<a name="l02536"></a>02536 
<a name="l02537"></a>02537     <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> url = args[0].toString(exec).qstring();
<a name="l02538"></a>02538     <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> title;
<a name="l02539"></a>02539     <span class="keywordflow">if</span> (args.size() == 2)
<a name="l02540"></a>02540       title = args[1].<a class="code" href="classKJS_1_1Location.html#1cc10cbf96843133abf325471dbde4ff">toString</a>(exec).qstring();
<a name="l02541"></a>02541 
<a name="l02542"></a>02542     <span class="comment">// AK - don't do anything yet, for the moment i</span>
<a name="l02543"></a>02543     <span class="comment">// just wanted the base js handling code in cvs</span>
<a name="l02544"></a>02544     <span class="keywordflow">return</span> Undefined();
<a name="l02545"></a>02545 
<a name="l02546"></a>02546     <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> question;
<a name="l02547"></a>02547     <span class="keywordflow">if</span> ( title.<a class="codeRef" doxygen="qt.tag:" href="qstring.html#isEmpty">isEmpty</a>() )
<a name="l02548"></a>02548       question = i18n(<span class="stringliteral">"Do you want a bookmark pointing to the location \"%1\" to be added to your collection?"</span>)
<a name="l02549"></a>02549                  .<a class="codeRef" doxygen="qt.tag:" href="qstring.html#arg">arg</a>(url);
<a name="l02550"></a>02550     <span class="keywordflow">else</span>
<a name="l02551"></a>02551       question = i18n(<span class="stringliteral">"Do you want a bookmark pointing to the location \"%1\" titled \"%2\" to be added to your collection?"</span>)
<a name="l02552"></a>02552                  .<a class="codeRef" doxygen="qt.tag:" href="qstring.html#arg">arg</a>(url).arg(title);
<a name="l02553"></a>02553 
<a name="l02554"></a>02554     emit part-&gt;browserExtension()-&gt;requestFocus(part);
<a name="l02555"></a>02555 
<a name="l02556"></a>02556     <a class="codeRef" doxygen="qt.tag:" href="qstring.html">QString</a> caption;
<a name="l02557"></a>02557     <span class="keywordflow">if</span> (!part-&gt;url().host().isEmpty())
<a name="l02558"></a>02558        caption = part-&gt;url().host() + <span class="stringliteral">" - "</span>;
<a name="l02559"></a>02559     caption += i18n(<span class="stringliteral">"JavaScript Attempted Bookmark Insert"</span>);
<a name="l02560"></a>02560 
<a name="l02561"></a>02561     <span class="keywordflow">if</span> (<a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#334786d77558a971d1a58c09bdfff316">KMessageBox::warningYesNo</a>(
<a name="l02562"></a>02562           widget, question, caption,
<a name="l02563"></a>02563           i18n(<span class="stringliteral">"Insert"</span>), i18n(<span class="stringliteral">"Disallow"</span>)) == <a class="codeRef" doxygen="kdeui.tag:../../kdeui/html/" href="../../kdeui/html/classKMessageBox.html#7b65482f7d03a391aff64c73f7cae32a2a5a0869dd1dad4b9dc0a83308ec5f8c">KMessageBox::Yes</a>)
<a name="l02564"></a>02564     {
<a name="l02565"></a>02565       KBookmarkManager *mgr = KBookmarkManager::userBookmarksManager();
<a name="l02566"></a>02566       mgr-&gt;addBookmarkDialog(url,title);
<a name="l02567"></a>02567     }
<a name="l02568"></a>02568 <span class="preprocessor">#else</span>
<a name="l02569"></a>02569 <span class="preprocessor"></span>    <span class="keywordflow">return</span> Undefined();
<a name="l02570"></a>02570 <span class="preprocessor">#endif</span>
<a name="l02571"></a>02571 <span class="preprocessor"></span>    <span class="keywordflow">break</span>;
<a name="l02572"></a>02572   }
<a name="l02573"></a>02573   <span class="keywordflow">default</span>:
<a name="l02574"></a>02574     <span class="keywordflow">return</span> Undefined();
<a name="l02575"></a>02575   }
<a name="l02576"></a>02576 
<a name="l02577"></a>02577   <span class="keywordflow">return</span> Undefined();
<a name="l02578"></a>02578 }
<a name="l02579"></a>02579 
<a name="l02581"></a>02581 
<a name="l02582"></a>02582 <span class="keyword">const</span> ClassInfo History::info = { <span class="stringliteral">"History"</span>, 0, 0, 0 };
<a name="l02583"></a>02583 <span class="comment">/*</span>
<a name="l02584"></a>02584 <span class="comment">@begin HistoryTable 4</span>
<a name="l02585"></a>02585 <span class="comment">  length    History::Length     DontDelete|ReadOnly</span>
<a name="l02586"></a>02586 <span class="comment">  back      History::Back       DontDelete|Function 0</span>
<a name="l02587"></a>02587 <span class="comment">  forward   History::Forward    DontDelete|Function 0</span>
<a name="l02588"></a>02588 <span class="comment">  go        History::Go     DontDelete|Function 1</span>
<a name="l02589"></a>02589 <span class="comment">@end</span>
<a name="l02590"></a>02590 <span class="comment">*/</span>
<a name="l02591"></a>02591 IMPLEMENT_PROTOFUNC_DOM(HistoryFunc)
<a name="l02592"></a>02592 
<a name="l02593"></a>02593 Value History::get(ExecState *exec, const Identifier &amp;p)<span class="keyword"> const</span>
<a name="l02594"></a>02594 <span class="keyword"></span>{
<a name="l02595"></a>02595   <span class="keywordflow">return</span> lookupGet&lt;HistoryFunc,History,ObjectImp&gt;(exec,p,&amp;<a class="code" href="namespaceKJS.html#af7d45d9adaa83443c3b14ac37db9cfb">HistoryTable</a>,<span class="keyword">this</span>);
<a name="l02596"></a>02596 }
<a name="l02597"></a>02597 
<a name="l02598"></a>02598 Value History::getValueProperty(ExecState *, <span class="keywordtype">int</span> token)<span class="keyword"> const</span>
<a name="l02599"></a>02599 <span class="keyword"></span>{
<a name="l02600"></a>02600   <span class="comment">// if previous or next is implemented, make sure its not a major</span>
<a name="l02601"></a>02601   <span class="comment">// privacy leak (see i.e. http://security.greymagic.com/adv/gm005-op/)</span>
<a name="l02602"></a>02602   <span class="keywordflow">switch</span> (token) {
<a name="l02603"></a>02603   <span class="keywordflow">case</span> Length:
<a name="l02604"></a>02604   {
<a name="l02605"></a>02605     <span class="keywordflow">if</span> ( !part )
<a name="l02606"></a>02606       <span class="keywordflow">return</span> Number( 0 );
<a name="l02607"></a>02607 
<a name="l02608"></a>02608     <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html">KParts::BrowserExtension</a> *ext = part-&gt;browserExtension();
<a name="l02609"></a>02609     <span class="keywordflow">if</span> ( !ext )
<a name="l02610"></a>02610       <span class="keywordflow">return</span> Number( 0 );
<a name="l02611"></a>02611 
<a name="l02612"></a>02612     <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserInterface.html">KParts::BrowserInterface</a> *iface = ext-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#8bdeb19e1954a60fd49be6d7ab11d086">browserInterface</a>();
<a name="l02613"></a>02613     <span class="keywordflow">if</span> ( !iface )
<a name="l02614"></a>02614       <span class="keywordflow">return</span> Number( 0 );
<a name="l02615"></a>02615 
<a name="l02616"></a>02616     <a class="codeRef" doxygen="qt.tag:" href="qvariant.html">QVariant</a> length = iface-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#property">property</a>( <span class="stringliteral">"historyLength"</span> );
<a name="l02617"></a>02617 
<a name="l02618"></a>02618     <span class="keywordflow">if</span> ( length.<a class="codeRef" doxygen="qt.tag:" href="qvariant.html#type">type</a>() != QVariant::UInt )
<a name="l02619"></a>02619       <span class="keywordflow">return</span> Number( 0 );
<a name="l02620"></a>02620 
<a name="l02621"></a>02621     <span class="keywordflow">return</span> Number( length.<a class="codeRef" doxygen="qt.tag:" href="qvariant.html#toUInt">toUInt</a>() );
<a name="l02622"></a>02622   }
<a name="l02623"></a>02623   <span class="keywordflow">default</span>:
<a name="l02624"></a>02624     <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#ggfbb9aa4a84d6c0563d46550454b9714b">kdDebug</a>(6070) &lt;&lt; <span class="stringliteral">"WARNING: Unhandled token in History::getValueProperty : "</span> &lt;&lt; token &lt;&lt; <a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/group__kdebug.html#gg313d520ed8f8f6b46eeef22cfb3b082a">endl</a>;
<a name="l02625"></a>02625     <span class="keywordflow">return</span> Undefined();
<a name="l02626"></a>02626   }
<a name="l02627"></a>02627 }
<a name="l02628"></a>02628 
<a name="l02629"></a>02629 Value HistoryFunc::tryCall(ExecState *exec, Object &amp;thisObj, <span class="keyword">const</span> List &amp;args)
<a name="l02630"></a>02630 {
<a name="l02631"></a>02631   KJS_CHECK_THIS( History, thisObj );
<a name="l02632"></a>02632   History *history = static_cast&lt;History *&gt;(thisObj.imp());
<a name="l02633"></a>02633 
<a name="l02634"></a>02634   Value v = args[0];
<a name="l02635"></a>02635   Number n;
<a name="l02636"></a>02636   <span class="keywordflow">if</span>(v.isValid())
<a name="l02637"></a>02637     n = v.toInteger(exec);
<a name="l02638"></a>02638 
<a name="l02639"></a>02639   <span class="keywordtype">int</span> steps;
<a name="l02640"></a>02640   <span class="keywordflow">switch</span> (<span class="keywordtype">id</span>) {
<a name="l02641"></a>02641   <span class="keywordflow">case</span> History::Back:
<a name="l02642"></a>02642     steps = -1;
<a name="l02643"></a>02643     <span class="keywordflow">break</span>;
<a name="l02644"></a>02644   <span class="keywordflow">case</span> History::Forward:
<a name="l02645"></a>02645     steps = 1;
<a name="l02646"></a>02646     <span class="keywordflow">break</span>;
<a name="l02647"></a>02647   <span class="keywordflow">case</span> History::Go:
<a name="l02648"></a>02648     steps = n.intValue();
<a name="l02649"></a>02649     <span class="keywordflow">break</span>;
<a name="l02650"></a>02650   <span class="keywordflow">default</span>:
<a name="l02651"></a>02651     <span class="keywordflow">return</span> Undefined();
<a name="l02652"></a>02652   }
<a name="l02653"></a>02653 
<a name="l02654"></a>02654   <span class="comment">// Special case for go(0) from a frame -&gt; reload only the frame</span>
<a name="l02655"></a>02655   <span class="comment">// go(i!=0) from a frame navigates into the history of the frame only,</span>
<a name="l02656"></a>02656   <span class="comment">// in both IE and NS (but not in Mozilla).... we can't easily do that</span>
<a name="l02657"></a>02657   <span class="comment">// in Konqueror...</span>
<a name="l02658"></a>02658   <span class="keywordflow">if</span> (!steps) <span class="comment">// add &amp;&amp; history-&gt;part-&gt;parentPart() to get only frames, but doesn't matter</span>
<a name="l02659"></a>02659   {
<a name="l02660"></a>02660     history-&gt;part-&gt;openURL( history-&gt;part-&gt;url() ); 
<a name="l02661"></a>02661   } <span class="keywordflow">else</span>
<a name="l02662"></a>02662   {
<a name="l02663"></a>02663     <span class="comment">// Delay it.</span>
<a name="l02664"></a>02664     <span class="comment">// Testcase: history.back(); alert("hello");</span>
<a name="l02665"></a>02665     <a class="code" href="classKJS_1_1Window.html">Window</a>* window = <a class="code" href="classKJS_1_1Window.html#0bb3f87490d27d503f5ef5c656ed48e4">Window::retrieveWindow</a>( history-&gt;part );
<a name="l02666"></a>02666     window-&gt;<a class="code" href="classKJS_1_1Window.html#33fb9f3499e852a178d7d039e4e305eb">delayedGoHistory</a>( steps );
<a name="l02667"></a>02667   }
<a name="l02668"></a>02668   <span class="keywordflow">return</span> Undefined();
<a name="l02669"></a>02669 }
<a name="l02670"></a>02670 
<a name="l02672"></a>02672 
<a name="l02673"></a>02673 <span class="preprocessor">#ifdef Q_WS_QWS</span>
<a name="l02674"></a>02674 <span class="preprocessor"></span>
<a name="l02675"></a>02675 <span class="keyword">const</span> ClassInfo Konqueror::info = { <span class="stringliteral">"Konqueror"</span>, 0, 0, 0 };
<a name="l02676"></a>02676 
<a name="l02677"></a>02677 <span class="keywordtype">bool</span> Konqueror::hasProperty(ExecState *exec, <span class="keyword">const</span> Identifier &amp;p)<span class="keyword"> const</span>
<a name="l02678"></a>02678 <span class="keyword"></span>{
<a name="l02679"></a>02679   <span class="keywordflow">if</span> ( p.qstring().startsWith( <span class="stringliteral">"goHistory"</span> ) ) <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02680"></a>02680 
<a name="l02681"></a>02681   <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l02682"></a>02682 }
<a name="l02683"></a>02683 
<a name="l02684"></a>02684 Value Konqueror::get(ExecState *exec, <span class="keyword">const</span> Identifier &amp;p)<span class="keyword"> const</span>
<a name="l02685"></a>02685 <span class="keyword"></span>{
<a name="l02686"></a>02686   <span class="keywordflow">if</span> ( p == <span class="stringliteral">"goHistory"</span> || part-&gt;url().protocol() != <span class="stringliteral">"http"</span> || part-&gt;url().host() != <span class="stringliteral">"localhost"</span> )
<a name="l02687"></a>02687     <span class="keywordflow">return</span> Undefined();
<a name="l02688"></a>02688 
<a name="l02689"></a>02689   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html">KParts::BrowserExtension</a> *ext = part-&gt;browserExtension();
<a name="l02690"></a>02690   <span class="keywordflow">if</span> ( ext ) {
<a name="l02691"></a>02691     <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserInterface.html">KParts::BrowserInterface</a> *iface = ext-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#8bdeb19e1954a60fd49be6d7ab11d086">browserInterface</a>();
<a name="l02692"></a>02692     <span class="keywordflow">if</span> ( iface ) {
<a name="l02693"></a>02693       <a class="codeRef" doxygen="qt.tag:" href="qvariant.html">QVariant</a> prop = iface-&gt;<a class="codeRef" doxygen="qt.tag:" href="qobject.html#property">property</a>( p.qstring().latin1() );
<a name="l02694"></a>02694 
<a name="l02695"></a>02695       <span class="keywordflow">if</span> ( prop.<a class="codeRef" doxygen="qt.tag:" href="qvariant.html#isValid">isValid</a>() ) {
<a name="l02696"></a>02696         <span class="keywordflow">switch</span>( prop.<a class="codeRef" doxygen="qt.tag:" href="qvariant.html#type">type</a>() ) {
<a name="l02697"></a>02697         <span class="keywordflow">case</span> QVariant::Int:
<a name="l02698"></a>02698           <span class="keywordflow">return</span> Number( prop.<a class="codeRef" doxygen="qt.tag:" href="qvariant.html#toInt">toInt</a>() );
<a name="l02699"></a>02699         <span class="keywordflow">case</span> QVariant::String:
<a name="l02700"></a>02700           <span class="keywordflow">return</span> String( prop.<a class="codeRef" doxygen="qt.tag:" href="qvariant.html#toString">toString</a>() );
<a name="l02701"></a>02701         <span class="keywordflow">default</span>:
<a name="l02702"></a>02702           <span class="keywordflow">break</span>;
<a name="l02703"></a>02703         }
<a name="l02704"></a>02704       }
<a name="l02705"></a>02705     }
<a name="l02706"></a>02706   }
<a name="l02707"></a>02707 
<a name="l02708"></a>02708   <span class="keywordflow">return</span> Value( <span class="keyword">new</span> KonquerorFunc(exec, <span class="keyword">this</span>, p.qstring().latin1() ) );
<a name="l02709"></a>02709 }
<a name="l02710"></a>02710 
<a name="l02711"></a>02711 Value <a class="code" href="classKJS_1_1DOMFunction.html#276fb3c503fcfe3514eb60d38a964a81">KonquerorFunc::tryCall</a>(ExecState *exec, Object &amp;, <span class="keyword">const</span> List &amp;args)
<a name="l02712"></a>02712 {
<a name="l02713"></a>02713   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html">KParts::BrowserExtension</a> *ext = konqueror-&gt;part-&gt;browserExtension();
<a name="l02714"></a>02714 
<a name="l02715"></a>02715   <span class="keywordflow">if</span> (!ext)
<a name="l02716"></a>02716     <span class="keywordflow">return</span> Undefined();
<a name="l02717"></a>02717 
<a name="l02718"></a>02718   <a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserInterface.html">KParts::BrowserInterface</a> *iface = ext-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserExtension.html#8bdeb19e1954a60fd49be6d7ab11d086">browserInterface</a>();
<a name="l02719"></a>02719 
<a name="l02720"></a>02720   <span class="keywordflow">if</span> ( !iface )
<a name="l02721"></a>02721     <span class="keywordflow">return</span> Undefined();
<a name="l02722"></a>02722 
<a name="l02723"></a>02723   <a class="codeRef" doxygen="qt.tag:" href="qcstring.html">QCString</a> n = m_name.data();
<a name="l02724"></a>02724   n += <span class="stringliteral">"()"</span>;
<a name="l02725"></a>02725   iface-&gt;<a class="codeRef" doxygen="kparts.tag:../../kparts/html/" href="../../kparts/html/classKParts_1_1BrowserInterface.html#2b7c63a3eaa196f53b3cc679714de295">callMethod</a>( n.data(), <a class="codeRef" doxygen="qt.tag:" href="qvariant.html">QVariant</a>() );
<a name="l02726"></a>02726 
<a name="l02727"></a>02727   <span class="keywordflow">return</span> Undefined();
<a name="l02728"></a>02728 }
<a name="l02729"></a>02729 
<a name="l02730"></a>02730 UString Konqueror::toString(ExecState *)<span class="keyword"> const</span>
<a name="l02731"></a>02731 <span class="keyword"></span>{
<a name="l02732"></a>02732   <span class="keywordflow">return</span> UString(<span class="stringliteral">"[object Konqueror]"</span>);
<a name="l02733"></a>02733 }
<a name="l02734"></a>02734 
<a name="l02735"></a>02735 <span class="preprocessor">#endif</span>
<a name="l02737"></a>02737 <span class="preprocessor"></span>
<a name="l02738"></a>02738 <span class="preprocessor"></span><span class="preprocessor">#include "kjs_window.moc"</span>
</pre></div>    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>khtml</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="namespaces.html">Namespace List</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="namespacemembers.html">Namespace Members</a></li><li><a href="functions.html">Class Members</a></li><li><a href="pages.html">Related Pages</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classAppletParameterDialog.html">appletparameterdialog</option>,  <option value="classDOM_1_1AbstractView.html">dom::abstractview</option>,  <option value="classDOM_1_1Attr.html">dom::attr</option>,  <option value="classDOM_1_1CDATASection.html">dom::cdatasection</option>,  <option value="classDOM_1_1CharacterData.html">dom::characterdata</option>,  <option value="classDOM_1_1Comment.html">dom::comment</option>,  <option value="classDOM_1_1Counter.html">dom::counter</option>,  <option value="classDOM_1_1CounterActImpl.html">dom::counteractimpl</option>,  <option value="classDOM_1_1CounterImpl.html">dom::counterimpl</option>,  <option value="classDOM_1_1CSS2Azimuth.html">dom::css2azimuth</option>,  <option value="classDOM_1_1CSS2AzimuthImpl.html">dom::css2azimuthimpl</option>,  <option value="classDOM_1_1CSS2BackgroundPosition.html">dom::css2backgroundposition</option>,  <option value="classDOM_1_1CSS2BackgroundPositionImpl.html">dom::css2backgroundpositionimpl</option>,  <option value="classDOM_1_1CSS2BorderSpacing.html">dom::css2borderspacing</option>,  <option value="classDOM_1_1CSS2BorderSpacingImpl.html">dom::css2borderspacingimpl</option>,  <option value="classDOM_1_1CSS2CounterIncrement.html">dom::css2counterincrement</option>,  <option value="classDOM_1_1CSS2CounterIncrementImpl.html">dom::css2counterincrementimpl</option>,  <option value="classDOM_1_1CSS2CounterReset.html">dom::css2counterreset</option>,  <option value="classDOM_1_1CSS2CounterResetImpl.html">dom::css2counterresetimpl</option>,  <option value="classDOM_1_1CSS2Cursor.html">dom::css2cursor</option>,  <option value="classDOM_1_1CSS2CursorImpl.html">dom::css2cursorimpl</option>,  <option value="classDOM_1_1CSS2FontFaceSrc.html">dom::css2fontfacesrc</option>,  <option value="classDOM_1_1CSS2FontFaceSrcImpl.html">dom::css2fontfacesrcimpl</option>,  <option value="classDOM_1_1CSS2FontFaceWidths.html">dom::css2fontfacewidths</option>,  <option value="classDOM_1_1CSS2FontFaceWidthsImpl.html">dom::css2fontfacewidthsimpl</option>,  <option value="classDOM_1_1CSS2PageSize.html">dom::css2pagesize</option>,  <option value="classDOM_1_1CSS2PageSizeImpl.html">dom::css2pagesizeimpl</option>,  <option value="classDOM_1_1CSS2PlayDuring.html">dom::css2playduring</option>,  <option value="classDOM_1_1CSS2PlayDuringImpl.html">dom::css2playduringimpl</option>,  <option value="classDOM_1_1CSS2Properties.html">dom::css2properties</option>,  <option value="classDOM_1_1CSS2PropertiesImpl.html">dom::css2propertiesimpl</option>,  <option value="classDOM_1_1CSS2TextShadow.html">dom::css2textshadow</option>,  <option value="classDOM_1_1CSS2TextShadowImpl.html">dom::css2textshadowimpl</option>,  <option value="classDOM_1_1CSSCharsetRule.html">dom::csscharsetrule</option>,  <option value="classDOM_1_1CSSCharsetRuleImpl.html">dom::csscharsetruleimpl</option>,  <option value="classDOM_1_1CSSException.html">dom::cssexception</option>,  <option value="classDOM_1_1CSSFontFaceRule.html">dom::cssfontfacerule</option>,  <option value="classDOM_1_1CSSFontFaceRuleImpl.html">dom::cssfontfaceruleimpl</option>,  <option value="classDOM_1_1CSSImageValueImpl.html">dom::cssimagevalueimpl</option>,  <option value="classDOM_1_1CSSImportRule.html">dom::cssimportrule</option>,  <option value="classDOM_1_1CSSImportRuleImpl.html">dom::cssimportruleimpl</option>,  <option value="classDOM_1_1CSSInheritedValueImpl.html">dom::cssinheritedvalueimpl</option>,  <option value="classDOM_1_1CSSInitialValueImpl.html">dom::cssinitialvalueimpl</option>,  <option value="classDOM_1_1CSSMediaRule.html">dom::cssmediarule</option>,  <option value="classDOM_1_1CSSMediaRuleImpl.html">dom::cssmediaruleimpl</option>,  <option value="classDOM_1_1CSSPageRule.html">dom::csspagerule</option>,  <option value="classDOM_1_1CSSPageRuleImpl.html">dom::csspageruleimpl</option>,  <option value="classDOM_1_1CSSParser.html">dom::cssparser</option>,  <option value="classDOM_1_1CSSPrimitiveValue.html">dom::cssprimitivevalue</option>,  <option value="classDOM_1_1CSSPrimitiveValueImpl.html">dom::cssprimitivevalueimpl</option>,  <option value="classDOM_1_1CSSProperty.html">dom::cssproperty</option>,  <option value="classDOM_1_1CSSQuirkPrimitiveValueImpl.html">dom::cssquirkprimitivevalueimpl</option>,  <option value="classDOM_1_1CSSRule.html">dom::cssrule</option>,  <option value="classDOM_1_1CSSRuleImpl.html">dom::cssruleimpl</option>,  <option value="classDOM_1_1CSSRuleList.html">dom::cssrulelist</option>,  <option value="classDOM_1_1CSSRuleListImpl.html">dom::cssrulelistimpl</option>,  <option value="classDOM_1_1CSSSelector.html">dom::cssselector</option>,  <option value="classDOM_1_1CSSStyleDeclaration.html">dom::cssstyledeclaration</option>,  <option value="classDOM_1_1CSSStyleDeclarationImpl.html">dom::cssstyledeclarationimpl</option>,  <option value="classDOM_1_1CSSStyleRule.html">dom::cssstylerule</option>,  <option value="classDOM_1_1CSSStyleRuleImpl.html">dom::cssstyleruleimpl</option>,  <option value="classDOM_1_1CSSStyleSheet.html">dom::cssstylesheet</option>,  <option value="classDOM_1_1CSSStyleSheetImpl.html">dom::cssstylesheetimpl</option>,  <option value="classDOM_1_1CSSUnknownRule.html">dom::cssunknownrule</option>,  <option value="classDOM_1_1CSSUnknownRuleImpl.html">dom::cssunknownruleimpl</option>,  <option value="classDOM_1_1CSSValue.html">dom::cssvalue</option>,  <option value="classDOM_1_1CSSValueImpl.html">dom::cssvalueimpl</option>,  <option value="classDOM_1_1CSSValueList.html">dom::cssvaluelist</option>,  <option value="classDOM_1_1CSSValueListImpl.html">dom::cssvaluelistimpl</option>,  <option value="classDOM_1_1CustomNodeFilter.html">dom::customnodefilter</option>,  <option value="classDOM_1_1Document.html">dom::document</option>,  <option value="classDOM_1_1DocumentFragment.html">dom::documentfragment</option>,  <option value="classDOM_1_1DocumentStyle.html">dom::documentstyle</option>,  <option value="classDOM_1_1DocumentType.html">dom::documenttype</option>,  <option value="classDOM_1_1DOMException.html">dom::domexception</option>,  <option value="classDOM_1_1DOMImplementation.html">dom::domimplementation</option>,  <option value="classDOM_1_1DomShared.html">dom::domshared</option>,  <option value="classDOM_1_1DOMString.html">dom::domstring</option>,  <option value="classDOM_1_1Element.html">dom::element</option>,  <option value="classDOM_1_1Entity.html">dom::entity</option>,  <option value="classDOM_1_1EntityReference.html">dom::entityreference</option>,  <option value="classDOM_1_1Event.html">dom::event</option>,  <option value="classDOM_1_1EventException.html">dom::eventexception</option>,  <option value="classDOM_1_1EventListener.html">dom::eventlistener</option>,  <option value="classDOM_1_1FontFamilyValueImpl.html">dom::fontfamilyvalueimpl</option>,  <option value="classDOM_1_1FontValueImpl.html">dom::fontvalueimpl</option>,  <option value="classDOM_1_1HTMLAnchorElement.html">dom::htmlanchorelement</option>,  <option value="classDOM_1_1HTMLAppletElement.html">dom::htmlappletelement</option>,  <option value="classDOM_1_1HTMLAreaElement.html">dom::htmlareaelement</option>,  <option value="classDOM_1_1HTMLBaseElement.html">dom::htmlbaseelement</option>,  <option value="classDOM_1_1HTMLBaseFontElement.html">dom::htmlbasefontelement</option>,  <option value="classDOM_1_1HTMLBlockquoteElement.html">dom::htmlblockquoteelement</option>,  <option value="classDOM_1_1HTMLBodyElement.html">dom::htmlbodyelement</option>,  <option value="classDOM_1_1HTMLBRElement.html">dom::htmlbrelement</option>,  <option value="classDOM_1_1HTMLButtonElement.html">dom::htmlbuttonelement</option>,  <option value="classDOM_1_1HTMLCollection.html">dom::htmlcollection</option>,  <option value="classDOM_1_1HTMLDirectoryElement.html">dom::htmldirectoryelement</option>,  <option value="classDOM_1_1HTMLDivElement.html">dom::htmldivelement</option>,  <option value="classDOM_1_1HTMLDListElement.html">dom::htmldlistelement</option>,  <option value="classDOM_1_1HTMLDocument.html">dom::htmldocument</option>,  <option value="classDOM_1_1HTMLElement.html">dom::htmlelement</option>,  <option value="classDOM_1_1HTMLFieldSetElement.html">dom::htmlfieldsetelement</option>,  <option value="classDOM_1_1HTMLFontElement.html">dom::htmlfontelement</option>,  <option value="classDOM_1_1HTMLFormCollection.html">dom::htmlformcollection</option>,  <option value="classDOM_1_1HTMLFormElement.html">dom::htmlformelement</option>,  <option value="classDOM_1_1HTMLFrameElement.html">dom::htmlframeelement</option>,  <option value="classDOM_1_1HTMLFrameSetElement.html">dom::htmlframesetelement</option>,  <option value="classDOM_1_1HTMLHeadElement.html">dom::htmlheadelement</option>,  <option value="classDOM_1_1HTMLHeadingElement.html">dom::htmlheadingelement</option>,  <option value="classDOM_1_1HTMLHRElement.html">dom::htmlhrelement</option>,  <option value="classDOM_1_1HTMLHtmlElement.html">dom::htmlhtmlelement</option>,  <option value="classDOM_1_1HTMLIFrameElement.html">dom::htmliframeelement</option>,  <option value="classDOM_1_1HTMLImageElement.html">dom::htmlimageelement</option>,  <option value="classDOM_1_1HTMLInputElement.html">dom::htmlinputelement</option>,  <option value="classDOM_1_1HTMLIsIndexElement.html">dom::htmlisindexelement</option>,  <option value="classDOM_1_1HTMLLabelElement.html">dom::htmllabelelement</option>,  <option value="classDOM_1_1HTMLLayerElement.html">dom::htmllayerelement</option>,  <option value="classDOM_1_1HTMLLegendElement.html">dom::htmllegendelement</option>,  <option value="classDOM_1_1HTMLLIElement.html">dom::htmllielement</option>,  <option value="classDOM_1_1HTMLLinkElement.html">dom::htmllinkelement</option>,  <option value="classDOM_1_1HTMLMapElement.html">dom::htmlmapelement</option>,  <option value="classDOM_1_1HTMLMappedNameCollection.html">dom::htmlmappednamecollection</option>,  <option value="classDOM_1_1HTMLMenuElement.html">dom::htmlmenuelement</option>,  <option value="classDOM_1_1HTMLMetaElement.html">dom::htmlmetaelement</option>,  <option value="classDOM_1_1HTMLModElement.html">dom::htmlmodelement</option>,  <option value="classDOM_1_1HTMLObjectElement.html">dom::htmlobjectelement</option>,  <option value="classDOM_1_1HTMLOListElement.html">dom::htmlolistelement</option>,  <option value="classDOM_1_1HTMLOptGroupElement.html">dom::htmloptgroupelement</option>,  <option value="classDOM_1_1HTMLOptionElement.html">dom::htmloptionelement</option>,  <option value="classDOM_1_1HTMLParagraphElement.html">dom::htmlparagraphelement</option>,  <option value="classDOM_1_1HTMLParamElement.html">dom::htmlparamelement</option>,  <option value="classDOM_1_1HTMLPreElement.html">dom::htmlpreelement</option>,  <option value="classDOM_1_1HTMLQuoteElement.html">dom::htmlquoteelement</option>,  <option value="classDOM_1_1HTMLScriptElement.html">dom::htmlscriptelement</option>,  <option value="classDOM_1_1HTMLSelectElement.html">dom::htmlselectelement</option>,  <option value="classDOM_1_1HTMLStyleElement.html">dom::htmlstyleelement</option>,  <option value="classDOM_1_1HTMLTableCaptionElement.html">dom::htmltablecaptionelement</option>,  <option value="classDOM_1_1HTMLTableCellElement.html">dom::htmltablecellelement</option>,  <option value="classDOM_1_1HTMLTableColElement.html">dom::htmltablecolelement</option>,  <option value="classDOM_1_1HTMLTableElement.html">dom::htmltableelement</option>,  <option value="classDOM_1_1HTMLTableRowElement.html">dom::htmltablerowelement</option>,  <option value="classDOM_1_1HTMLTableSectionElement.html">dom::htmltablesectionelement</option>,  <option value="classDOM_1_1HTMLTextAreaElement.html">dom::htmltextareaelement</option>,  <option value="classDOM_1_1HTMLTitleElement.html">dom::htmltitleelement</option>,  <option value="classDOM_1_1HTMLUListElement.html">dom::htmlulistelement</option>,  <option value="classDOM_1_1LinkStyle.html">dom::linkstyle</option>,  <option value="classDOM_1_1MediaList.html">dom::medialist</option>,  <option value="classDOM_1_1MediaListImpl.html">dom::medialistimpl</option>,  <option value="classDOM_1_1MouseEvent.html">dom::mouseevent</option>,  <option value="classDOM_1_1MutationEvent.html">dom::mutationevent</option>,  <option value="classDOM_1_1NamedNodeMap.html">dom::namednodemap</option>,  <option value="classDOM_1_1Node.html">dom::node</option>,  <option value="classDOM_1_1NodeFilter.html">dom::nodefilter</option>,  <option value="classDOM_1_1NodeIterator.html">dom::nodeiterator</option>,  <option value="classDOM_1_1NodeList.html">dom::nodelist</option>,  <option value="classDOM_1_1Notation.html">dom::notation</option>,  <option value="classDOM_1_1PairImpl.html">dom::pairimpl</option>,  <option value="classDOM_1_1ProcessingInstruction.html">dom::processinginstruction</option>,  <option value="classDOM_1_1QuotesValueImpl.html">dom::quotesvalueimpl</option>,  <option value="classDOM_1_1Range.html">dom::range</option>,  <option value="classDOM_1_1RangeException.html">dom::rangeexception</option>,  <option value="classDOM_1_1Rect.html">dom::rect</option>,  <option value="classDOM_1_1RectImpl.html">dom::rectimpl</option>,  <option value="classDOM_1_1RGBColor.html">dom::rgbcolor</option>,  <option value="classDOM_1_1ShadowValueImpl.html">dom::shadowvalueimpl</option>,  <option value="classDOM_1_1StyleBaseImpl.html">dom::stylebaseimpl</option>,  <option value="classDOM_1_1StyleListImpl.html">dom::stylelistimpl</option>,  <option value="classDOM_1_1StyleSheet.html">dom::stylesheet</option>,  <option value="classDOM_1_1StyleSheetImpl.html">dom::stylesheetimpl</option>,  <option value="classDOM_1_1StyleSheetList.html">dom::stylesheetlist</option>,  <option value="classDOM_1_1StyleSheetListImpl.html">dom::stylesheetlistimpl</option>,  <option value="classDOM_1_1Text.html">dom::text</option>,  <option value="classDOM_1_1TextEvent.html">dom::textevent</option>,  <option value="classDOM_1_1TreeWalker.html">dom::treewalker</option>,  <option value="classDOM_1_1UIEvent.html">dom::uievent</option>,  <option value="classDOM_1_1ValueList.html">dom::valuelist</option>,  <option value="classDOMTreeView.html">domtreeview</option>,  <option value="classKHTMLFactory.html">khtmlfactory</option>,  <option value="classKHTMLImage.html">khtmlimage</option>,  <option value="classKHTMLImageBrowserExtension.html">khtmlimagebrowserextension</option>,  <option value="classKHTMLImageFactory.html">khtmlimagefactory</option>,  <option value="classKHTMLInfoDlg.html">khtmlinfodlg</option>,  <option value="classKHTMLPageCache.html">khtmlpagecache</option>,  <option value="classKHTMLPageCacheDelivery.html">khtmlpagecachedelivery</option>,  <option value="classKHTMLPart.html">khtmlpart</option>,  <option value="classKHTMLPartBrowserExtension.html">khtmlpartbrowserextension</option>,  <option value="classKHTMLPartBrowserHostExtension.html">khtmlpartbrowserhostextension</option>,  <option value="classKHTMLPartIface.html">khtmlpartiface</option>,  <option value="classKHTMLPopupGUIClient.html">khtmlpopupguiclient</option>,  <option value="classKHTMLPrintSettings.html">khtmlprintsettings</option>,  <option value="classKHTMLRun.html">khtmlrun</option>,  <option value="classKHTMLSettings.html">khtmlsettings</option>,  <option value="classKHTMLView.html">khtmlview</option>,  <option value="classKHTMLZoomFactorAction.html">khtmlzoomfactoraction</option>,  <option value="classKJavaApplet.html">kjavaapplet</option>,  <option value="classKJavaAppletContext.html">kjavaappletcontext</option>,  <option value="classKJavaAppletServer.html">kjavaappletserver</option>,  <option value="classKJavaAppletViewer.html">kjavaappletviewer</option>,  <option value="classKJavaAppletViewerBrowserExtension.html">kjavaappletviewerbrowserextension</option>,  <option value="classKJavaAppletViewerFactory.html">kjavaappletviewerfactory</option>,  <option value="classKJavaAppletViewerLiveConnectExtension.html">kjavaappletviewerliveconnectextension</option>,  <option value="classKJavaAppletWidget.html">kjavaappletwidget</option>,  <option value="classKJavaDownloader.html">kjavadownloader</option>,  <option value="classKJavaKIOJob.html">kjavakiojob</option>,  <option value="classKJavaProcess.html">kjavaprocess</option>,  <option value="classKJavaUploader.html">kjavauploader</option>,  <option value="classKJS_1_1CSSPrimitiveValueConstructor.html">kjs::cssprimitivevalueconstructor</option>,  <option value="classKJS_1_1CSSRuleConstructor.html">kjs::cssruleconstructor</option>,  <option value="classKJS_1_1CSSValueConstructor.html">kjs::cssvalueconstructor</option>,  <option value="classKJS_1_1DateTimeMS.html">kjs::datetimems</option>,  <option value="classKJS_1_1DOMAbstractView.html">kjs::domabstractview</option>,  <option value="classKJS_1_1DOMAttr.html">kjs::domattr</option>,  <option value="classKJS_1_1DOMCharacterData.html">kjs::domcharacterdata</option>,  <option value="classKJS_1_1DOMCounter.html">kjs::domcounter</option>,  <option value="classKJS_1_1DOMCSSPrimitiveValue.html">kjs::domcssprimitivevalue</option>,  <option value="classKJS_1_1DOMCSSRule.html">kjs::domcssrule</option>,  <option value="classKJS_1_1DOMCSSRuleList.html">kjs::domcssrulelist</option>,  <option value="classKJS_1_1DOMCSSStyleDeclaration.html">kjs::domcssstyledeclaration</option>,  <option value="classKJS_1_1DOMCSSStyleSheet.html">kjs::domcssstylesheet</option>,  <option value="classKJS_1_1DOMCSSValue.html">kjs::domcssvalue</option>,  <option value="classKJS_1_1DOMCSSValueList.html">kjs::domcssvaluelist</option>,  <option value="classKJS_1_1DOMDocument.html">kjs::domdocument</option>,  <option value="classKJS_1_1DOMDocumentType.html">kjs::domdocumenttype</option>,  <option value="classKJS_1_1DOMDOMImplementation.html">kjs::domdomimplementation</option>,  <option value="classKJS_1_1DOMElement.html">kjs::domelement</option>,  <option value="classKJS_1_1DOMEntity.html">kjs::domentity</option>,  <option value="classKJS_1_1DOMEvent.html">kjs::domevent</option>,  <option value="classKJS_1_1DOMExceptionConstructor.html">kjs::domexceptionconstructor</option>,  <option value="classKJS_1_1DOMFunction.html">kjs::domfunction</option>,  <option value="classKJS_1_1DOMKeyboardEvent.html">kjs::domkeyboardevent</option>,  <option value="classKJS_1_1DOMKeyEventBase.html">kjs::domkeyeventbase</option>,  <option value="classKJS_1_1DOMMediaList.html">kjs::dommedialist</option>,  <option value="classKJS_1_1DOMMouseEvent.html">kjs::dommouseevent</option>,  <option value="classKJS_1_1DOMMutationEvent.html">kjs::dommutationevent</option>,  <option value="classKJS_1_1DOMNamedNodeMap.html">kjs::domnamednodemap</option>,  <option value="classKJS_1_1DOMNamedNodesCollection.html">kjs::domnamednodescollection</option>,  <option value="classKJS_1_1DOMNode.html">kjs::domnode</option>,  <option value="classKJS_1_1DOMNodeFilter.html">kjs::domnodefilter</option>,  <option value="classKJS_1_1DOMNodeIterator.html">kjs::domnodeiterator</option>,  <option value="classKJS_1_1DOMNodeList.html">kjs::domnodelist</option>,  <option value="classKJS_1_1DOMNotation.html">kjs::domnotation</option>,  <option value="classKJS_1_1DOMObject.html">kjs::domobject</option>,  <option value="classKJS_1_1DOMParser.html">kjs::domparser</option>,  <option value="classKJS_1_1DOMParserConstructorImp.html">kjs::domparserconstructorimp</option>,  <option value="classKJS_1_1DOMProcessingInstruction.html">kjs::domprocessinginstruction</option>,  <option value="classKJS_1_1DOMRange.html">kjs::domrange</option>,  <option value="classKJS_1_1DOMRect.html">kjs::domrect</option>,  <option value="classKJS_1_1DOMRGBColor.html">kjs::domrgbcolor</option>,  <option value="classKJS_1_1DOMStyleSheet.html">kjs::domstylesheet</option>,  <option value="classKJS_1_1DOMStyleSheetList.html">kjs::domstylesheetlist</option>,  <option value="classKJS_1_1DOMText.html">kjs::domtext</option>,  <option value="classKJS_1_1DOMTextEvent.html">kjs::domtextevent</option>,  <option value="classKJS_1_1DOMTreeWalker.html">kjs::domtreewalker</option>,  <option value="classKJS_1_1DOMUIEvent.html">kjs::domuievent</option>,  <option value="classKJS_1_1EvalMultiLineEdit.html">kjs::evalmultilineedit</option>,  <option value="classKJS_1_1EventExceptionConstructor.html">kjs::eventexceptionconstructor</option>,  <option value="classKJS_1_1HTMLCollection.html">kjs::htmlcollection</option>,  <option value="classKJS_1_1HTMLDocument.html">kjs::htmldocument</option>,  <option value="classKJS_1_1HTMLElement.html">kjs::htmlelement</option>,  <option value="classKJS_1_1HTMLElementFunction.html">kjs::htmlelementfunction</option>,  <option value="classKJS_1_1HTMLSelectCollection.html">kjs::htmlselectcollection</option>,  <option value="classKJS_1_1ImageConstructorImp.html">kjs::imageconstructorimp</option>,  <option value="classKJS_1_1JSEventListener.html">kjs::jseventlistener</option>,  <option value="classKJS_1_1JSLazyEventListener.html">kjs::jslazyeventlistener</option>,  <option value="classKJS_1_1JSNodeFilter.html">kjs::jsnodefilter</option>,  <option value="classKJS_1_1KeyboardEventConstructor.html">kjs::keyboardeventconstructor</option>,  <option value="classKJS_1_1KJSDebugWin.html">kjs::kjsdebugwin</option>,  <option value="classKJS_1_1KJSErrorDialog.html">kjs::kjserrordialog</option>,  <option value="classKJS_1_1Location.html">kjs::location</option>,  <option value="classKJS_1_1MozillaSidebarExtension.html">kjs::mozillasidebarextension</option>,  <option value="classKJS_1_1MutationEventConstructor.html">kjs::mutationeventconstructor</option>,  <option value="classKJS_1_1Navigator.html">kjs::navigator</option>,  <option value="classKJS_1_1NodeFilterConstructor.html">kjs::nodefilterconstructor</option>,  <option value="classKJS_1_1OptionConstructorImp.html">kjs::optionconstructorimp</option>,  <option value="classKJS_1_1RangeConstructor.html">kjs::rangeconstructor</option>,  <option value="classKJS_1_1ScheduledAction.html">kjs::scheduledaction</option>,  <option value="classKJS_1_1Screen.html">kjs::screen</option>,  <option value="classKJS_1_1ScriptInterpreter.html">kjs::scriptinterpreter</option>,  <option value="classKJS_1_1SourceDisplay.html">kjs::sourcedisplay</option>,  <option value="classKJS_1_1SourceFile.html">kjs::sourcefile</option>,  <option value="classKJS_1_1SourceFragment.html">kjs::sourcefragment</option>,  <option value="classKJS_1_1Window.html">kjs::window</option>,  <option value="classKJS_1_1WindowQObject.html">kjs::windowqobject</option>,  <option value="classKJS_1_1XMLHttpRequest.html">kjs::xmlhttprequest</option>,  <option value="classKJS_1_1XMLHttpRequestConstructorImp.html">kjs::xmlhttprequestconstructorimp</option>,  <option value="classKJS_1_1XMLHttpRequestQObject.html">kjs::xmlhttprequestqobject</option>,  <option value="classKJS_1_1XMLSerializer.html">kjs::xmlserializer</option>,  <option value="classKJS_1_1XMLSerializerConstructorImp.html">kjs::xmlserializerconstructorimp</option>,  <option value="classKJSCPUGuard.html">kjscpuguard</option>,  <option value="classKJSErrorDlg.html">kjserrordlg</option>,  <option value="classKJSProxy.html">kjsproxy</option>,  <option value="classKMultiPart.html">kmultipart</option>,  <option value="classKQEventUtil.html">kqeventutil</option>,  <option value="classKXEventUtil.html">kxeventutil</option>,  <option value="classPermissionDialog.html">permissiondialog</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../arts/html/index.html">arts</a></li><li><a href="../../dcop/html/index.html">dcop</a></li><li><a href="../../dnssd/html/index.html">dnssd</a></li><li><a href="../../interfaces/html/index.html">interfaces</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/interface/html/index.html">interface</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/library/html/index.html">library</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/kspeech/html/index.html">kspeech</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/ktexteditor/html/index.html">ktexteditor</a></li><li><a href="../../kabc/html/index.html">kabc</a></li><li><a href="../../kate/html/index.html">kate</a></li><li><a href="../../kcmshell/html/index.html">kcmshell</a></li><li><a href="../../kdecore/html/index.html">kdecore</a></li><li><a href="../../kded/html/index.html">kded</a></li><li><a href="../../kdefx/html/index.html">kdefx</a></li><li><a href="../../kdeprint/html/index.html">kdeprint</a></li><li><a href="../../kdesu/html/index.html">kdesu</a></li><li><a href="../../kdeui/html/index.html">kdeui</a></li><li><a href="../../kdoctools/html/index.html">kdoctools</a></li><li><a href="../../khtml/html/index.html">khtml</a></li><li><a href="../../kimgio/html/index.html">kimgio</a></li><li><a href="../../kinit/html/index.html">kinit</a></li><li><a href="../../kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/bookmarks/html/index.html">bookmarks</a></li><li>&nbsp;&nbsp;<a href="../../kio/httpfilter/html/index.html">httpfilter</a></li><li>&nbsp;&nbsp;<a href="../../kio/kfile/html/index.html">kfile</a></li><li>&nbsp;&nbsp;<a href="../../kio/kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/kioexec/html/index.html">kioexec</a></li><li>&nbsp;&nbsp;<a href="../../kio/kpasswdserver/html/index.html">kpasswdserver</a></li><li>&nbsp;&nbsp;<a href="../../kio/kssl/html/index.html">kssl</a></li><li><a href="../../kioslave/html/index.html">kioslave</a></li><li>&nbsp;&nbsp;<a href="../../kioslave/http/html/index.html">http</a></li><li><a href="../../kjs/html/index.html">kjs</a></li><li><a href="../../kmdi/html/index.html">kmdi</a></li><li>&nbsp;&nbsp;<a href="../../kmdi/kmdi/html/index.html">kmdi</a></li><li><a href="../../knewstuff/html/index.html">knewstuff</a></li><li><a href="../../kparts/html/index.html">kparts</a></li><li><a href="../../kresources/html/index.html">kresources</a></li><li><a href="../../kspell2/html/index.html">kspell2</a></li><li><a href="../../kunittest/html/index.html">kunittest</a></li><li><a href="../../kutils/html/index.html">kutils</a></li><li><a href="../../kwallet/html/index.html">kwallet</a></li><li><a href="../../libkmid/html/index.html">libkmid</a></li><li><a href="../../libkscreensaver/html/index.html">libkscreensaver</a></li>
</ul></div></div>


        </td>
</tr>
</table>

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#116;&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>