Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 1f9eb832ba1e4b88d9a5c2b384813bb4 > files > 6172

kdelibs3-apidocs-3.5.10-31.fc15.noarch.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>kmdi: kmdimainfrm.cpp Source File (kmdi)</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=".">kmdi</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.7.4 -->
<div class="header">
  <div class="headertitle">
<div class="title">kmdimainfrm.cpp</div>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//----------------------------------------------------------------------------</span>
<a name="l00002"></a>00002 <span class="comment">//    filename             : kmdimainfrm.cpp</span>
<a name="l00003"></a>00003 <span class="comment">//----------------------------------------------------------------------------</span>
<a name="l00004"></a>00004 <span class="comment">//    Project              : KDE MDI extension</span>
<a name="l00005"></a>00005 <span class="comment">//</span>
<a name="l00006"></a>00006 <span class="comment">//    begin                : 07/1999       by Szymon Stefanek as part of kvirc</span>
<a name="l00007"></a>00007 <span class="comment">//                                         (an IRC application)</span>
<a name="l00008"></a>00008 <span class="comment">//    changes              : 09/1999       by Falk Brettschneider to create an</span>
<a name="l00009"></a>00009 <span class="comment">//                           - 06/2000     stand-alone Qt extension set of</span>
<a name="l00010"></a>00010 <span class="comment">//                                         classes and a Qt-based library</span>
<a name="l00011"></a>00011 <span class="comment">//                           2000-2003     maintained by the KDevelop project</span>
<a name="l00012"></a>00012 <span class="comment">//    patches              : 02/2000       by Massimo Morin (mmorin@schedsys.com)</span>
<a name="l00013"></a>00013 <span class="comment">//                           */2000        by Lars Beikirch (Lars.Beikirch@gmx.net)</span>
<a name="l00014"></a>00014 <span class="comment">//                           01/2003       by Jens Zurheide (jens.zurheide@gmx.de)</span>
<a name="l00015"></a>00015 <span class="comment">//</span>
<a name="l00016"></a>00016 <span class="comment">//    copyright            : (C) 1999-2003 by Szymon Stefanek (stefanek@tin.it)</span>
<a name="l00017"></a>00017 <span class="comment">//                                         and</span>
<a name="l00018"></a>00018 <span class="comment">//                                         Falk Brettschneider</span>
<a name="l00019"></a>00019 <span class="comment">//    email                :  falkbr@kdevelop.org (Falk Brettschneider)</span>
<a name="l00020"></a>00020 <span class="comment">//----------------------------------------------------------------------------</span>
<a name="l00021"></a>00021 <span class="comment">//</span>
<a name="l00022"></a>00022 <span class="comment">//----------------------------------------------------------------------------</span>
<a name="l00023"></a>00023 <span class="comment">//</span>
<a name="l00024"></a>00024 <span class="comment">//    This program is free software; you can redistribute it and/or modify</span>
<a name="l00025"></a>00025 <span class="comment">//    it under the terms of the GNU Library General Public License as</span>
<a name="l00026"></a>00026 <span class="comment">//    published by the Free Software Foundation; either version 2 of the</span>
<a name="l00027"></a>00027 <span class="comment">//    License, or (at your option) any later version.</span>
<a name="l00028"></a>00028 <span class="comment">//</span>
<a name="l00029"></a>00029 <span class="comment">//----------------------------------------------------------------------------</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <span class="comment">/*</span>
<a name="l00033"></a>00033 <span class="comment"> * ATTENTION: please do you part to try to make this file legible.  It&#39;s</span>
<a name="l00034"></a>00034 <span class="comment"> * extremely hard to read already.  Especially follow the indenting rules.</span>
<a name="l00035"></a>00035 <span class="comment"> */</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &quot;config.h&quot;</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;assert.h&gt;</span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;qcursor.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;qclipboard.h&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;qobjectlist.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;qpopupmenu.h&gt;</span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;qmenubar.h&gt;</span>
<a name="l00045"></a>00045 
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;kmenubar.h&gt;</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;kapplication.h&gt;</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;kdebug.h&gt;</span>
<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;kdeversion.h&gt;</span>
<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;qtabwidget.h&gt;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;klocale.h&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include &lt;kstdaccel.h&gt;</span>
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="preprocessor">#include &lt;kiconloader.h&gt;</span>
<a name="l00055"></a>00055 <span class="preprocessor">#include &lt;kmdidockcontainer.h&gt;</span>
<a name="l00056"></a>00056 
<a name="l00057"></a>00057 
<a name="l00058"></a>00058 <span class="preprocessor">#include &lt;qtoolbutton.h&gt;</span>
<a name="l00059"></a>00059 <span class="preprocessor">#include &lt;qdockarea.h&gt;</span>
<a name="l00060"></a>00060 <span class="preprocessor">#include &lt;qlayout.h&gt;</span>
<a name="l00061"></a>00061 <span class="preprocessor">#include &lt;qtimer.h&gt;</span>
<a name="l00062"></a>00062 <span class="preprocessor">#include &lt;qtextstream.h&gt;</span>
<a name="l00063"></a>00063 <span class="preprocessor">#include &lt;qstring.h&gt;</span>
<a name="l00064"></a>00064 <span class="preprocessor">#include &lt;qmap.h&gt;</span>
<a name="l00065"></a>00065 <span class="preprocessor">#include &lt;qvaluelist.h&gt;</span>
<a name="l00066"></a>00066 
<a name="l00067"></a>00067 <span class="preprocessor">#include &quot;kmdimainfrm.h&quot;</span>
<a name="l00068"></a>00068 <span class="preprocessor">#include &quot;kmditaskbar.h&quot;</span>
<a name="l00069"></a>00069 <span class="preprocessor">#include &quot;kmdichildfrm.h&quot;</span>
<a name="l00070"></a>00070 <span class="preprocessor">#include &quot;kmdichildarea.h&quot;</span>
<a name="l00071"></a>00071 <span class="preprocessor">#include &quot;kmdichildview.h&quot;</span>
<a name="l00072"></a>00072 <span class="preprocessor">#include &quot;kmdidockcontainer.h&quot;</span>
<a name="l00073"></a>00073 <span class="preprocessor">#include &quot;kmditoolviewaccessor_p.h&quot;</span>
<a name="l00074"></a>00074 <span class="preprocessor">#include &quot;kmdifocuslist.h&quot;</span>
<a name="l00075"></a>00075 <span class="preprocessor">#include &quot;kmdidocumentviewtabwidget.h&quot;</span>
<a name="l00076"></a>00076 <span class="preprocessor">#include &quot;kmdiguiclient.h&quot;</span>
<a name="l00077"></a>00077 
<a name="l00078"></a>00078 <span class="preprocessor">#include &quot;win_undockbutton.xpm&quot;</span>
<a name="l00079"></a>00079 <span class="preprocessor">#include &quot;win_minbutton.xpm&quot;</span>
<a name="l00080"></a>00080 <span class="preprocessor">#include &quot;win_restorebutton.xpm&quot;</span>
<a name="l00081"></a>00081 <span class="preprocessor">#include &quot;win_closebutton.xpm&quot;</span>
<a name="l00082"></a>00082 <span class="preprocessor">#include &quot;kde_undockbutton.xpm&quot;</span>
<a name="l00083"></a>00083 <span class="preprocessor">#include &quot;kde_minbutton.xpm&quot;</span>
<a name="l00084"></a>00084 <span class="preprocessor">#include &quot;kde_restorebutton.xpm&quot;</span>
<a name="l00085"></a>00085 <span class="preprocessor">#include &quot;kde_closebutton.xpm&quot;</span>
<a name="l00086"></a>00086 <span class="preprocessor">#include &quot;kde2_undockbutton.xpm&quot;</span>
<a name="l00087"></a>00087 <span class="preprocessor">#include &quot;kde2_minbutton.xpm&quot;</span>
<a name="l00088"></a>00088 <span class="preprocessor">#include &quot;kde2_restorebutton.xpm&quot;</span>
<a name="l00089"></a>00089 <span class="preprocessor">#include &quot;kde2_closebutton.xpm&quot;</span>
<a name="l00090"></a>00090 <span class="preprocessor">#include &quot;kde2laptop_undockbutton.xpm&quot;</span>
<a name="l00091"></a>00091 <span class="preprocessor">#include &quot;kde2laptop_minbutton.xpm&quot;</span>
<a name="l00092"></a>00092 <span class="preprocessor">#include &quot;kde2laptop_restorebutton.xpm&quot;</span>
<a name="l00093"></a>00093 <span class="preprocessor">#include &quot;kde2laptop_closebutton.xpm&quot;</span>
<a name="l00094"></a>00094 <span class="preprocessor">#include &quot;kde2laptop_closebutton_menu.xpm&quot;</span>
<a name="l00095"></a>00095 
<a name="l00096"></a>00096 <span class="preprocessor">#ifdef Q_WS_X11</span>
<a name="l00097"></a>00097 <span class="preprocessor"></span><span class="preprocessor">#ifndef NO_KDE</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor">#include &lt;X11/X.h&gt;</span> <span class="comment">// schroder</span>
<a name="l00099"></a>00099 <span class="preprocessor">#include &lt;X11/Xlib.h&gt;</span> <span class="comment">// schroder</span>
<a name="l00100"></a>00100 <span class="preprocessor">#endif</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span>
<a name="l00102"></a>00102 <span class="preprocessor">#ifdef KeyRelease </span>
<a name="l00103"></a>00103 <span class="preprocessor"></span><span class="comment">/* I hate the defines in the X11 header files. Get rid of one of them */</span>
<a name="l00104"></a>00104 <span class="preprocessor">#undef KeyRelease</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span>
<a name="l00107"></a>00107 <span class="preprocessor">#ifdef KeyPress </span>
<a name="l00108"></a>00108 <span class="preprocessor"></span><span class="comment">/* I hate the defines in the X11 header files. Get rid of one of them */</span>
<a name="l00109"></a>00109 <span class="preprocessor">#undef KeyPress</span>
<a name="l00110"></a>00110 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00111"></a>00111 <span class="preprocessor"></span><span class="preprocessor">#endif // Q_WS_X11 &amp;&amp; ! K_WS_QTONLY</span>
<a name="l00112"></a>00112 <span class="preprocessor"></span>
<a name="l00113"></a>00113 <span class="keyword">using namespace </span>KParts;
<a name="l00114"></a>00114 
<a name="l00115"></a>00115 KMdi::FrameDecor KMdiMainFrm::m_frameDecoration = KMdi::KDELook;
<a name="l00116"></a>00116 
<a name="l00117"></a>00117 <span class="keyword">class </span>KMdiMainFrmPrivate
<a name="l00118"></a>00118 {
<a name="l00119"></a>00119 <span class="keyword">public</span>:
<a name="l00120"></a>00120     KMdiMainFrmPrivate() : focusList( 0 )
<a name="l00121"></a>00121     {
<a name="l00122"></a>00122         <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0;i &lt; 4;i++ )
<a name="l00123"></a>00123         {
<a name="l00124"></a>00124             activeDockPriority[ i ] = 0;
<a name="l00125"></a>00125             m_styleIDEAlMode = 0;
<a name="l00126"></a>00126             m_toolviewStyle = 0;
<a name="l00127"></a>00127         }
<a name="l00128"></a>00128     }
<a name="l00129"></a>00129     ~KMdiMainFrmPrivate()
<a name="l00130"></a>00130     {}
<a name="l00131"></a>00131     KMdiDockContainer* activeDockPriority[ 4 ];
<a name="l00132"></a>00132     KMdiFocusList *focusList;
<a name="l00133"></a>00133     <span class="keywordtype">int</span> m_styleIDEAlMode;
<a name="l00134"></a>00134     <span class="keywordtype">int</span> m_toolviewStyle;
<a name="l00135"></a>00135     KAction *closeWindowAction;
<a name="l00136"></a>00136 };
<a name="l00137"></a>00137 
<a name="l00138"></a>00138 <span class="comment">//============ constructor ============//</span>
<a name="l00139"></a>00139 KMdiMainFrm::KMdiMainFrm( <a class="codeRef" href="qwidget.html">QWidget</a>* parentWidget, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, KMdi::MdiMode mdiMode, WFlags flags )
<a name="l00140"></a>00140         : KParts::DockMainWindow( parentWidget, name, flags )
<a name="l00141"></a>00141         , m_mdiMode( KMdi::UndefinedMode )
<a name="l00142"></a>00142         , m_pMdi( 0L )
<a name="l00143"></a>00143         , m_pTaskBar( 0L )
<a name="l00144"></a>00144         , m_pDocumentViews( 0L )
<a name="l00145"></a>00145         , m_pCurrentWindow( 0L )
<a name="l00146"></a>00146         , m_pWindowPopup( 0L )
<a name="l00147"></a>00147         , m_pTaskBarPopup( 0L )
<a name="l00148"></a>00148         , m_pWindowMenu( 0L )
<a name="l00149"></a>00149         , m_pDockMenu( 0L )
<a name="l00150"></a>00150         , m_pMdiModeMenu( 0L )
<a name="l00151"></a>00151         , m_pPlacingMenu( 0L )
<a name="l00152"></a>00152         , m_pMainMenuBar( 0L )
<a name="l00153"></a>00153         , m_pUndockButtonPixmap( 0L )
<a name="l00154"></a>00154         , m_pMinButtonPixmap( 0L )
<a name="l00155"></a>00155         , m_pRestoreButtonPixmap( 0L )
<a name="l00156"></a>00156         , m_pCloseButtonPixmap( 0L )
<a name="l00157"></a>00157         , m_pUndock( 0L )
<a name="l00158"></a>00158         , m_pMinimize( 0L )
<a name="l00159"></a>00159         , m_pRestore( 0L )
<a name="l00160"></a>00160         , m_pClose( 0L )
<a name="l00161"></a>00161         , m_bMaximizedChildFrmMode( false )
<a name="l00162"></a>00162         , m_oldMainFrmHeight( 0 )
<a name="l00163"></a>00163         , m_oldMainFrmMinHeight( 0 )
<a name="l00164"></a>00164         , m_oldMainFrmMaxHeight( 0 )
<a name="l00165"></a>00165         , m_bSDIApplication( false )
<a name="l00166"></a>00166         , m_pDockbaseAreaOfDocumentViews( 0L )
<a name="l00167"></a>00167         , m_pTempDockSession( 0L )
<a name="l00168"></a>00168         , m_bClearingOfWindowMenuBlocked( false )
<a name="l00169"></a>00169         , m_pDragEndTimer( 0L )
<a name="l00170"></a>00170         , m_bSwitching( false )
<a name="l00171"></a>00171         , m_leftContainer( 0 )
<a name="l00172"></a>00172         , m_rightContainer( 0 )
<a name="l00173"></a>00173         , m_topContainer( 0 )
<a name="l00174"></a>00174         , m_bottomContainer( 0 )
<a name="l00175"></a>00175         , d( new KMdiMainFrmPrivate() )
<a name="l00176"></a>00176         , m_mdiGUIClient( 0 )
<a name="l00177"></a>00177         , m_managedDockPositionMode( false )
<a name="l00178"></a>00178         , m_documentTabWidget( 0 )
<a name="l00179"></a>00179 {
<a name="l00180"></a>00180     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; endl;
<a name="l00181"></a>00181     <span class="comment">// Create the local lists of windows</span>
<a name="l00182"></a>00182     m_pDocumentViews = <span class="keyword">new</span> <a class="codeRef" href="qptrlist.html">QPtrList&lt;KMdiChildView&gt;</a>;
<a name="l00183"></a>00183     m_pDocumentViews-&gt;<a class="codeRef" href="qptrlist.html#setAutoDelete">setAutoDelete</a>( <span class="keyword">false</span> );
<a name="l00184"></a>00184     m_pToolViews = <span class="keyword">new</span> <a class="codeRef" href="qmap.html">QMap&lt;QWidget*, KMdiToolViewAccessor*&gt;</a>;
<a name="l00185"></a>00185 
<a name="l00186"></a>00186     <span class="comment">// This seems to be needed (re-check it after Qt2.0 comed out)</span>
<a name="l00187"></a>00187     setFocusPolicy( ClickFocus );
<a name="l00188"></a>00188 
<a name="l00189"></a>00189     <span class="comment">// create the central widget</span>
<a name="l00190"></a>00190     createMdiManager();
<a name="l00191"></a>00191 
<a name="l00192"></a>00192     <span class="comment">// cover KMdi&#39;s childarea by a dockwidget</span>
<a name="l00193"></a>00193     m_pDockbaseAreaOfDocumentViews = createDockWidget( <span class="stringliteral">&quot;mdiAreaCover&quot;</span>, <a class="codeRef" href="qpixmap.html">QPixmap</a>(), 0L, <span class="stringliteral">&quot;mdi_area_cover&quot;</span> );
<a name="l00194"></a>00194     m_pDockbaseAreaOfDocumentViews-&gt;setDockWindowTransient( <span class="keyword">this</span>, <span class="keyword">true</span> );
<a name="l00195"></a>00195     m_pDockbaseAreaOfDocumentViews-&gt;setEnableDocking( KDockWidget::DockNone );
<a name="l00196"></a>00196     m_pDockbaseAreaOfDocumentViews-&gt;setDockSite( KDockWidget::DockCorner );
<a name="l00197"></a>00197     m_pDockbaseAreaOfDocumentViews-&gt;setWidget( m_pMdi );
<a name="l00198"></a>00198     <span class="comment">// set this dock to main view</span>
<a name="l00199"></a>00199     setView( m_pDockbaseAreaOfDocumentViews );
<a name="l00200"></a>00200     setMainDockWidget( m_pDockbaseAreaOfDocumentViews );
<a name="l00201"></a>00201 
<a name="l00202"></a>00202     <span class="comment">// Apply options for the MDI manager</span>
<a name="l00203"></a>00203     applyOptions();
<a name="l00204"></a>00204 
<a name="l00205"></a>00205     m_pTaskBarPopup = <span class="keyword">new</span> <a class="codeRef" href="qpopupmenu.html">QPopupMenu</a>( <span class="keyword">this</span>, <span class="stringliteral">&quot;taskbar_popup_menu&quot;</span> );
<a name="l00206"></a>00206     m_pWindowPopup = <span class="keyword">new</span> <a class="codeRef" href="qpopupmenu.html">QPopupMenu</a>( <span class="keyword">this</span>, <span class="stringliteral">&quot;window_popup_menu&quot;</span> );
<a name="l00207"></a>00207 
<a name="l00208"></a>00208     m_pWindowMenu = <span class="keyword">new</span> <a class="codeRef" href="qpopupmenu.html">QPopupMenu</a>( <span class="keyword">this</span>, <span class="stringliteral">&quot;window_menu&quot;</span> );
<a name="l00209"></a>00209     m_pWindowMenu-&gt;setCheckable( <span class="keyword">true</span> );
<a name="l00210"></a>00210     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pWindowMenu, SIGNAL( aboutToShow() ), <span class="keyword">this</span>, SLOT( fillWindowMenu() ) );
<a name="l00211"></a>00211 
<a name="l00212"></a>00212     m_pDockMenu = <span class="keyword">new</span> <a class="codeRef" href="qpopupmenu.html">QPopupMenu</a>( <span class="keyword">this</span>, <span class="stringliteral">&quot;dock_menu&quot;</span> );
<a name="l00213"></a>00213     m_pDockMenu-&gt;setCheckable( <span class="keyword">true</span> );
<a name="l00214"></a>00214 
<a name="l00215"></a>00215     m_pMdiModeMenu = <span class="keyword">new</span> <a class="codeRef" href="qpopupmenu.html">QPopupMenu</a>( <span class="keyword">this</span>, <span class="stringliteral">&quot;mdimode_menu&quot;</span> );
<a name="l00216"></a>00216     m_pMdiModeMenu-&gt;setCheckable( <span class="keyword">true</span> );
<a name="l00217"></a>00217 
<a name="l00218"></a>00218     m_pPlacingMenu = <span class="keyword">new</span> <a class="codeRef" href="qpopupmenu.html">QPopupMenu</a>( <span class="keyword">this</span>, <span class="stringliteral">&quot;placing_menu&quot;</span> );
<a name="l00219"></a>00219 
<a name="l00220"></a>00220     d-&gt;closeWindowAction = <span class="keyword">new</span> KAction(i18n(<span class="stringliteral">&quot;&amp;Close&quot;</span>), KStdAccel::close(),
<a name="l00221"></a>00221         <span class="keyword">this</span>, SLOT(closeActiveView()), actionCollection(), <span class="stringliteral">&quot;window_close&quot;</span>);
<a name="l00222"></a>00222 
<a name="l00223"></a>00223     <span class="comment">// the MDI view taskbar</span>
<a name="l00224"></a>00224     createTaskBar();
<a name="l00225"></a>00225 
<a name="l00226"></a>00226     <span class="comment">// this is only a hack, but prevents us from crash because the buttons are otherwise</span>
<a name="l00227"></a>00227     <span class="comment">// not created before we switch the modes where we need them !!!</span>
<a name="l00228"></a>00228     setMenuForSDIModeSysButtons( menuBar() );
<a name="l00229"></a>00229 
<a name="l00230"></a>00230     <span class="keywordflow">switch</span> ( mdiMode )
<a name="l00231"></a>00231     {
<a name="l00232"></a>00232     <span class="keywordflow">case</span> KMdi::IDEAlMode:
<a name="l00233"></a>00233         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Switching to IDEAl mode&quot;</span> &lt;&lt; endl;
<a name="l00234"></a>00234         switchToIDEAlMode();
<a name="l00235"></a>00235         <span class="keywordflow">break</span>;
<a name="l00236"></a>00236     <span class="keywordflow">case</span> KMdi::TabPageMode:
<a name="l00237"></a>00237         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Switching to tab page mode&quot;</span> &lt;&lt; endl;
<a name="l00238"></a>00238         switchToTabPageMode();
<a name="l00239"></a>00239         <span class="keywordflow">break</span>;
<a name="l00240"></a>00240     <span class="keywordflow">case</span> KMdi::ToplevelMode:
<a name="l00241"></a>00241         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Switching to top level mode&quot;</span> &lt;&lt; endl;
<a name="l00242"></a>00242         switchToToplevelMode();
<a name="l00243"></a>00243         <span class="keywordflow">break</span>;
<a name="l00244"></a>00244     <span class="keywordflow">default</span>:
<a name="l00245"></a>00245         m_mdiMode = KMdi::ChildframeMode;
<a name="l00246"></a>00246         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Switching to child frame mode&quot;</span> &lt;&lt; endl;
<a name="l00247"></a>00247         <span class="keywordflow">break</span>;
<a name="l00248"></a>00248     }
<a name="l00249"></a>00249 
<a name="l00250"></a>00250     <span class="comment">// drag end timer</span>
<a name="l00251"></a>00251     m_pDragEndTimer = <span class="keyword">new</span> <a class="codeRef" href="qtimer.html">QTimer</a>();
<a name="l00252"></a>00252     connect( m_pDragEndTimer, SIGNAL( timeout() ), <span class="keyword">this</span>, SLOT( dragEndTimeOut() ) );
<a name="l00253"></a>00253     connect( guiFactory(), SIGNAL( clientAdded( KXMLGUIClient* ) ),
<a name="l00254"></a>00254              <span class="keyword">this</span>, SLOT( verifyToplevelHeight() ) );
<a name="l00255"></a>00255     connect( guiFactory(), SIGNAL( clientRemoved( KXMLGUIClient* ) ),
<a name="l00256"></a>00256              <span class="keyword">this</span>, SLOT( verifyToplevelHeight() ) );
<a name="l00257"></a>00257 }
<a name="l00258"></a>00258 
<a name="l00259"></a>00259 <span class="keywordtype">void</span> KMdiMainFrm::verifyToplevelHeight()
<a name="l00260"></a>00260 {
<a name="l00261"></a>00261     <span class="keywordflow">if</span> ( m_mdiMode != KMdi::ToplevelMode )
<a name="l00262"></a>00262         <span class="keywordflow">return</span>;
<a name="l00263"></a>00263     
<a name="l00264"></a>00264     <span class="comment">//kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; endl;</span>
<a name="l00265"></a>00265     <span class="keywordtype">int</span> topDockHeight = topDock() ? topDock()-&gt;height() : 0;
<a name="l00266"></a>00266     <span class="keywordtype">int</span> menuBarHeight = hasMenuBar() ? menuBar()-&gt;height() : 0;
<a name="l00267"></a>00267     setFixedHeight( topDockHeight + menuBarHeight );
<a name="l00268"></a>00268     resize( width(), height() );
<a name="l00269"></a>00269 }
<a name="l00270"></a>00270 
<a name="l00271"></a><a class="code" href="classKMdiMainFrm.html#a01fb1edb044317715c2784208ef8b879">00271</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a01fb1edb044317715c2784208ef8b879" title="Control whether or not the standard MDI menu is displayed when a context menu is displayed.">KMdiMainFrm::setStandardMDIMenuEnabled</a>( <span class="keywordtype">bool</span> showModeMenu )
<a name="l00272"></a>00272 {
<a name="l00273"></a>00273     m_mdiGUIClient = <span class="keyword">new</span> <a class="code" href="classKMDIPrivate_1_1KMDIGUIClient.html" title="A class derived from KXMLGUIClient that handles the various KMDI modes.">KMDIPrivate::KMDIGUIClient</a>( <span class="keyword">this</span>, showModeMenu );
<a name="l00274"></a>00274     connect( m_mdiGUIClient, SIGNAL( toggleTop() ), <span class="keyword">this</span>, SIGNAL( toggleTop() ) );
<a name="l00275"></a>00275     connect( m_mdiGUIClient, SIGNAL( toggleLeft() ), <span class="keyword">this</span>, SIGNAL( toggleLeft() ) );
<a name="l00276"></a>00276     connect( m_mdiGUIClient, SIGNAL( toggleRight() ), <span class="keyword">this</span>, SIGNAL( toggleRight() ) );
<a name="l00277"></a>00277     connect( m_mdiGUIClient, SIGNAL( toggleBottom() ), <span class="keyword">this</span>, SIGNAL( toggleBottom() ) );
<a name="l00278"></a>00278 
<a name="l00279"></a>00279     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::IDEAlMode )
<a name="l00280"></a>00280     {
<a name="l00281"></a>00281         <span class="keywordflow">if</span> ( m_topContainer )
<a name="l00282"></a>00282             connect( <span class="keyword">this</span>, SIGNAL( toggleTop() ), m_topContainer-&gt;getWidget(), SLOT( toggle() ) );
<a name="l00283"></a>00283         <span class="keywordflow">if</span> ( m_leftContainer )
<a name="l00284"></a>00284             connect( <span class="keyword">this</span>, SIGNAL( toggleLeft() ), m_leftContainer-&gt;getWidget(), SLOT( toggle() ) );
<a name="l00285"></a>00285         <span class="keywordflow">if</span> ( m_rightContainer )
<a name="l00286"></a>00286             connect( <span class="keyword">this</span>, SIGNAL( toggleRight() ), m_rightContainer-&gt;getWidget(), SLOT( toggle() ) );
<a name="l00287"></a>00287         <span class="keywordflow">if</span> ( m_bottomContainer )
<a name="l00288"></a>00288             connect( <span class="keyword">this</span>, SIGNAL( toggleBottom() ), m_bottomContainer-&gt;getWidget(), SLOT( toggle() ) );
<a name="l00289"></a>00289     }
<a name="l00290"></a>00290 
<a name="l00291"></a>00291     emit mdiModeHasBeenChangedTo( m_mdiMode );
<a name="l00292"></a>00292 }
<a name="l00293"></a>00293 
<a name="l00294"></a>00294 <span class="comment">//============ ~KMdiMainFrm ============//</span>
<a name="l00295"></a>00295 KMdiMainFrm::~KMdiMainFrm()
<a name="l00296"></a>00296 {
<a name="l00297"></a>00297     <span class="comment">//save the children first to a list, as removing invalidates our iterator</span>
<a name="l00298"></a>00298     <a class="codeRef" href="qvaluelist.html">QValueList&lt;KMdiChildView*&gt;</a> children;
<a name="l00299"></a>00299     <span class="keywordflow">for</span> ( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> * w = m_pDocumentViews-&gt;first();w;w = m_pDocumentViews-&gt;next() )
<a name="l00300"></a>00300         children.<a class="codeRef" href="qvaluelist.html#append">append</a>( w );
<a name="l00301"></a>00301 
<a name="l00302"></a>00302     <span class="comment">// safely close the windows so properties are saved...</span>
<a name="l00303"></a>00303     <a class="codeRef" href="qvaluelistiterator.html">QValueListIterator&lt;KMdiChildView*&gt;</a> childIt;
<a name="l00304"></a>00304     <span class="keywordflow">for</span> ( childIt = children.<a class="codeRef" href="qvaluelist.html#begin">begin</a>(); childIt != children.<a class="codeRef" href="qvaluelist.html#end">end</a>(); ++childIt )
<a name="l00305"></a>00305     {
<a name="l00306"></a>00306         closeWindow( *childIt, <span class="keyword">false</span> ); <span class="comment">// without re-layout taskbar!</span>
<a name="l00307"></a>00307     }
<a name="l00308"></a>00308 
<a name="l00309"></a>00309     emit lastChildViewClosed();
<a name="l00310"></a>00310     <span class="keyword">delete</span> m_pDocumentViews;
<a name="l00311"></a>00311     <span class="keyword">delete</span> m_pToolViews;
<a name="l00312"></a>00312     m_pToolViews = 0;
<a name="l00313"></a>00313     <span class="keyword">delete</span> m_pDragEndTimer;
<a name="l00314"></a>00314 
<a name="l00315"></a>00315     <span class="keyword">delete</span> m_pUndockButtonPixmap;
<a name="l00316"></a>00316     <span class="keyword">delete</span> m_pMinButtonPixmap;
<a name="l00317"></a>00317     <span class="keyword">delete</span> m_pRestoreButtonPixmap;
<a name="l00318"></a>00318     <span class="keyword">delete</span> m_pCloseButtonPixmap;
<a name="l00319"></a>00319 
<a name="l00320"></a>00320     <span class="comment">//deletes added for Release-Version-Pop-Up-WinMenu-And-Go-Out-Problem</span>
<a name="l00321"></a>00321     <span class="keyword">delete</span> m_pDockMenu;
<a name="l00322"></a>00322     <span class="keyword">delete</span> m_pMdiModeMenu;
<a name="l00323"></a>00323     <span class="keyword">delete</span> m_pPlacingMenu;
<a name="l00324"></a>00324     <span class="keyword">delete</span> m_pTaskBarPopup;
<a name="l00325"></a>00325     <span class="keyword">delete</span> m_pWindowPopup;
<a name="l00326"></a>00326     <span class="keyword">delete</span> m_pWindowMenu;
<a name="l00327"></a>00327     <span class="keyword">delete</span> m_mdiGUIClient;
<a name="l00328"></a>00328     <span class="keyword">delete</span> m_pTempDockSession;
<a name="l00329"></a>00329     m_mdiGUIClient = 0;
<a name="l00330"></a>00330     <span class="keyword">delete</span> d;
<a name="l00331"></a>00331     d = 0;
<a name="l00332"></a>00332 }
<a name="l00333"></a>00333 
<a name="l00334"></a>00334 <span class="comment">//============ applyOptions ============//</span>
<a name="l00335"></a>00335 <span class="comment">//FIXME something wrong with this function. dunno what though</span>
<a name="l00336"></a><a class="code" href="classKMdiMainFrm.html#a8c9d204ad79f277186f83364414e78f7">00336</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a8c9d204ad79f277186f83364414e78f7" title="Called in the constructor (forces a resize of all MDI views)">KMdiMainFrm::applyOptions</a>()
<a name="l00337"></a>00337 {
<a name="l00338"></a>00338     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l00339"></a>00339     <span class="keywordflow">for</span> ( ; ( *it ); ++it )
<a name="l00340"></a>00340     {
<a name="l00341"></a>00341         <a class="codeRef" href="qwidget.html">QWidget</a>* childFrame = 0L;
<a name="l00342"></a>00342         <span class="keywordflow">if</span> ( ( *it )-&gt;mdiParent() )
<a name="l00343"></a>00343         {
<a name="l00344"></a>00344             kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;using child view&#39;s mdi parent for resize hack&quot;</span> &lt;&lt; endl;
<a name="l00345"></a>00345             childFrame = ( *it )-&gt;mdiParent();
<a name="l00346"></a>00346         }
<a name="l00347"></a>00347         <span class="keywordflow">else</span>
<a name="l00348"></a>00348         {
<a name="l00349"></a>00349             kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;using child view for resize hack&quot;</span> &lt;&lt; endl;
<a name="l00350"></a>00350             childFrame = ( *it );
<a name="l00351"></a>00351         }
<a name="l00352"></a>00352         
<a name="l00353"></a>00353         <span class="keywordtype">int</span> w = childFrame-&gt;<a class="codeRef" href="qwidget.html#width">width</a>();
<a name="l00354"></a>00354         <span class="keywordtype">int</span> h = childFrame-&gt;<a class="codeRef" href="qwidget.html#height">height</a>();
<a name="l00355"></a>00355         childFrame-&gt;<a class="codeRef" href="qwidget.html#resize">resize</a>( w + 1, h + 1 );
<a name="l00356"></a>00356         childFrame-&gt;<a class="codeRef" href="qwidget.html#resize">resize</a>( w - 1, h - 1 );
<a name="l00357"></a>00357     }
<a name="l00358"></a>00358 }
<a name="l00359"></a>00359 
<a name="l00360"></a>00360 <span class="comment">//============ createMdiManager ============//</span>
<a name="l00361"></a><a class="code" href="classKMdiMainFrm.html#ad121479ec28e3ca2c611c5f3a2fa79b0">00361</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ad121479ec28e3ca2c611c5f3a2fa79b0" title="Creates the MDI view area and connects some signals and slots with the KMdiMainFrm widget...">KMdiMainFrm::createMdiManager</a>()
<a name="l00362"></a>00362 {
<a name="l00363"></a>00363     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;creating MDI manager&quot;</span> &lt;&lt; endl;
<a name="l00364"></a>00364     m_pMdi = <span class="keyword">new</span> <a class="code" href="classKMdiChildArea.html" title="Internal class.">KMdiChildArea</a>( <span class="keyword">this</span> );
<a name="l00365"></a>00365     setCentralWidget( m_pMdi );
<a name="l00366"></a>00366     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pMdi, SIGNAL( nowMaximized( <span class="keywordtype">bool</span> ) ),
<a name="l00367"></a>00367                       <span class="keyword">this</span>, SLOT( setEnableMaximizedChildFrmMode( <span class="keywordtype">bool</span> ) ) );
<a name="l00368"></a>00368     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pMdi, SIGNAL( noMaximizedChildFrmLeft( <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* ) ),
<a name="l00369"></a>00369                       <span class="keyword">this</span>, SLOT( switchOffMaximizeModeForMenu( <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* ) ) );
<a name="l00370"></a>00370     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pMdi, SIGNAL( sysButtonConnectionsMustChange( <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>*, <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* ) ),
<a name="l00371"></a>00371                       <span class="keyword">this</span>, SLOT( updateSysButtonConnections( <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>*, <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* ) ) );
<a name="l00372"></a>00372     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pMdi, SIGNAL( popupWindowMenu( <a class="codeRef" href="qpoint.html">QPoint</a> ) ),
<a name="l00373"></a>00373                       <span class="keyword">this</span>, SLOT( popupWindowMenu( <a class="codeRef" href="qpoint.html">QPoint</a> ) ) );
<a name="l00374"></a>00374     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pMdi, SIGNAL( lastChildFrmClosed() ),
<a name="l00375"></a>00375                       <span class="keyword">this</span>, SIGNAL( lastChildFrmClosed() ) );
<a name="l00376"></a>00376 }
<a name="l00377"></a>00377 
<a name="l00378"></a>00378 <span class="comment">//============ createTaskBar ==============//</span>
<a name="l00379"></a><a class="code" href="classKMdiMainFrm.html#ad00a6c4982995b75f263799542f7d86e">00379</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ad00a6c4982995b75f263799542f7d86e" title="Creates a new MDI taskbar (showing the MDI views as taskbar entries) and shows it.">KMdiMainFrm::createTaskBar</a>()
<a name="l00380"></a>00380 {
<a name="l00381"></a>00381     m_pTaskBar = <span class="keyword">new</span> <a class="code" href="classKMdiTaskBar.html" title="Internal class.">KMdiTaskBar</a>( <span class="keyword">this</span>, QMainWindow::DockBottom );
<a name="l00382"></a>00382     m_pTaskBar-&gt;installEventFilter( <span class="keyword">this</span> );
<a name="l00383"></a>00383 }
<a name="l00384"></a>00384 
<a name="l00385"></a><a class="code" href="classKMdiMainFrm.html#a9a655717a510bd509301585e54f51d72">00385</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a9a655717a510bd509301585e54f51d72" title="Switches the KMdiTaskBar on and off.">KMdiMainFrm::slot_toggleTaskBar</a>()
<a name="l00386"></a>00386 {
<a name="l00387"></a>00387     <span class="keywordflow">if</span> ( !m_pTaskBar )
<a name="l00388"></a>00388         <span class="keywordflow">return</span>;
<a name="l00389"></a>00389     m_pTaskBar-&gt;switchOn( !m_pTaskBar-&gt;isSwitchedOn() );
<a name="l00390"></a>00390 }
<a name="l00391"></a>00391 
<a name="l00392"></a>00392 <span class="keywordtype">void</span> KMdiMainFrm::resizeEvent( <a class="codeRef" href="qresizeevent.html">QResizeEvent</a> *e )
<a name="l00393"></a>00393 {
<a name="l00394"></a>00394     <span class="keywordflow">if</span> ( ( m_mdiMode == KMdi::ToplevelMode ) &amp;&amp; !parentWidget() )
<a name="l00395"></a>00395     {
<a name="l00396"></a>00396         <span class="keywordflow">if</span> ( e-&gt;<a class="codeRef" href="qresizeevent.html#oldSize">oldSize</a>().height() != e-&gt;<a class="codeRef" href="qresizeevent.html#size">size</a>().height() )
<a name="l00397"></a>00397             <span class="keywordflow">return</span> ;
<a name="l00398"></a>00398     }
<a name="l00399"></a>00399     KParts::DockMainWindow::resizeEvent( e );
<a name="l00400"></a>00400     <span class="keywordflow">if</span> ( !m_mdiGUIClient )
<a name="l00401"></a>00401         return ;
<a name="l00402"></a>00402     setSysButtonsAtMenuPosition();
<a name="l00403"></a>00403 }
<a name="l00404"></a>00404 
<a name="l00405"></a>00405 <span class="comment">//================ setMinimumSize ===============//</span>
<a name="l00406"></a>00406 
<a name="l00407"></a><a class="code" href="classKMdiMainFrm.html#af85cea0198e56a5d8b23a154fb0a1cf5">00407</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#af85cea0198e56a5d8b23a154fb0a1cf5" title="Do nothing when in Toplevel mode.">KMdiMainFrm::setMinimumSize</a>( <span class="keywordtype">int</span> minw, <span class="keywordtype">int</span> minh )
<a name="l00408"></a>00408 {
<a name="l00409"></a>00409     <span class="keywordflow">if</span> ( ( m_mdiMode == KMdi::ToplevelMode ) &amp;&amp; !parentWidget() )
<a name="l00410"></a>00410         return ;
<a name="l00411"></a>00411     DockMainWindow::setMinimumSize( minw, minh );
<a name="l00412"></a>00412 }
<a name="l00413"></a>00413 
<a name="l00414"></a>00414 <span class="comment">//================ wrapper ===============//</span>
<a name="l00415"></a>00415 
<a name="l00416"></a><a class="code" href="classKMdiMainFrm.html#a25aaa63cdba1334a863d77f68937cfe2">00416</a> <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* <a class="code" href="classKMdiMainFrm.html#a25aaa63cdba1334a863d77f68937cfe2" title="addWindow demands a KMdiChildView.">KMdiMainFrm::createWrapper</a>( <a class="codeRef" href="qwidget.html">QWidget</a> *view, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; name, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; shortName )
<a name="l00417"></a>00417 {
<a name="l00418"></a>00418     Q_ASSERT( view ); <span class="comment">// if this assert fails, then some part didn&#39;t return a widget. Fix the part ;)</span>
<a name="l00419"></a>00419 
<a name="l00420"></a>00420     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pMDICover = <span class="keyword">new</span> <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>( name <span class="comment">/*caption*/</span>, 0L <span class="comment">/*parent*/</span>,
<a name="l00421"></a>00421                                                   name.<a class="codeRef" href="qstring.html#latin1">latin1</a>() );
<a name="l00422"></a>00422     <a class="codeRef" href="qboxlayout.html">QBoxLayout</a>* pLayout = <span class="keyword">new</span> <a class="codeRef" href="qhboxlayout.html">QHBoxLayout</a>( pMDICover, 0, -1, <span class="stringliteral">&quot;layout&quot;</span> );
<a name="l00423"></a>00423     view-&gt;<a class="codeRef" href="qwidget.html#reparent">reparent</a>( pMDICover, <a class="codeRef" href="qpoint.html">QPoint</a>( 0, 0 ) );
<a name="l00424"></a>00424     pLayout-&gt;addWidget( view );
<a name="l00425"></a>00425     <span class="comment">//  pMDICover-&gt;setName(name);</span>
<a name="l00426"></a>00426     pMDICover-&gt;<a class="code" href="classKMdiChildView.html#a0526b4a104fd7e81b3043a0e2872db34" title="Sets the caption of the button referring to this window.">setTabCaption</a>( shortName );
<a name="l00427"></a>00427     pMDICover-&gt;<a class="code" href="classKMdiChildView.html#ad5206322b89efe6e1679a346acad8598" title="Sets the window caption string...">setCaption</a>( name );
<a name="l00428"></a>00428 
<a name="l00429"></a>00429     <span class="keyword">const</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>* wndIcon = view-&gt;<a class="codeRef" href="qwidget.html#icon">icon</a>();
<a name="l00430"></a>00430     <span class="keywordflow">if</span> ( wndIcon )
<a name="l00431"></a>00431         pMDICover-&gt;<a class="codeRef" href="qwidget.html#setIcon">setIcon</a>( *wndIcon );
<a name="l00432"></a>00432 
<a name="l00433"></a>00433     pMDICover-&gt;trackIconAndCaptionChanges( view );
<a name="l00434"></a>00434     <span class="keywordflow">return</span> pMDICover;
<a name="l00435"></a>00435 }
<a name="l00436"></a>00436 
<a name="l00437"></a>00437 <span class="comment">//================ addWindow ===============//</span>
<a name="l00438"></a>00438 
<a name="l00439"></a><a class="code" href="classKMdiMainFrm.html#aadc92163fbb227bc5abe8df2c92b694e">00439</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#aadc92163fbb227bc5abe8df2c92b694e" title="Adds a KMdiChildView to the MDI system.">KMdiMainFrm::addWindow</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pWnd, <span class="keywordtype">int</span> flags )
<a name="l00440"></a>00440 {
<a name="l00441"></a>00441     addWindow( pWnd, flags, -1 );
<a name="l00442"></a>00442 }
<a name="l00443"></a>00443 
<a name="l00444"></a><a class="code" href="classKMdiMainFrm.html#a6b43b7c79e5a736cba6fb9b0e1c0361d">00444</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#aadc92163fbb227bc5abe8df2c92b694e" title="Adds a KMdiChildView to the MDI system.">KMdiMainFrm::addWindow</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pWnd, <span class="keywordtype">int</span> flags, <span class="keywordtype">int</span> index )
<a name="l00445"></a>00445 {
<a name="l00446"></a>00446     <span class="keywordflow">if</span> ( windowExists( pWnd, AnyView ) ) <span class="comment">//already added</span>
<a name="l00447"></a>00447         <span class="keywordflow">return</span>;
<a name="l00448"></a>00448 
<a name="l00449"></a>00449     <span class="keywordflow">if</span> ( flags &amp; KMdi::ToolWindow )
<a name="l00450"></a>00450     {
<a name="l00451"></a>00451         addToolWindow( pWnd );
<a name="l00452"></a>00452         <span class="comment">// some kind of cascading</span>
<a name="l00453"></a>00453         pWnd-&gt;<a class="codeRef" href="qwidget.html#move">move</a>( m_pMdi-&gt;mapToGlobal( m_pMdi-&gt;getCascadePoint() ) );
<a name="l00454"></a>00454 
<a name="l00455"></a>00455         return ;
<a name="l00456"></a>00456     }
<a name="l00457"></a>00457 
<a name="l00458"></a>00458     d-&gt;closeWindowAction-&gt;setEnabled(<span class="keyword">true</span>);
<a name="l00459"></a>00459 
<a name="l00460"></a>00460     <span class="comment">// common connections used when under MDI control</span>
<a name="l00461"></a>00461     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( clickedInWindowMenu( <span class="keywordtype">int</span> ) ), <span class="keyword">this</span>, SLOT( windowMenuItemActivated( <span class="keywordtype">int</span> ) ) );
<a name="l00462"></a>00462     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( focusInEventOccurs( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ), <span class="keyword">this</span>, SLOT( activateView( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ) );
<a name="l00463"></a>00463     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( childWindowCloseRequest( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ), <span class="keyword">this</span>, SLOT( childWindowCloseRequest( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ) );
<a name="l00464"></a>00464     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( attachWindow( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*, <span class="keywordtype">bool</span> ) ), <span class="keyword">this</span>, SLOT( attachWindow( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*, <span class="keywordtype">bool</span> ) ) );
<a name="l00465"></a>00465     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( detachWindow( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*, <span class="keywordtype">bool</span> ) ), <span class="keyword">this</span>, SLOT( detachWindow( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*, <span class="keywordtype">bool</span> ) ) );
<a name="l00466"></a>00466     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( clickedInDockMenu( <span class="keywordtype">int</span> ) ), <span class="keyword">this</span>, SLOT( dockMenuItemActivated( <span class="keywordtype">int</span> ) ) );
<a name="l00467"></a>00467     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( activated( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ), <span class="keyword">this</span>, SIGNAL( viewActivated( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ) );
<a name="l00468"></a>00468     <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( deactivated( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ), <span class="keyword">this</span>, SIGNAL( viewDeactivated( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ) );
<a name="l00469"></a>00469     
<a name="l00470"></a>00470     <span class="keywordflow">if</span> ( index == -1 )
<a name="l00471"></a>00471         m_pDocumentViews-&gt;append( pWnd );
<a name="l00472"></a>00472     <span class="keywordflow">else</span>
<a name="l00473"></a>00473         m_pDocumentViews-&gt;insert( index, pWnd );
<a name="l00474"></a>00474     
<a name="l00475"></a>00475     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l00476"></a>00476     {
<a name="l00477"></a>00477         <a class="code" href="classKMdiTaskBarButton.html" title="Internal class.">KMdiTaskBarButton</a>* but = m_pTaskBar-&gt;addWinButton( pWnd );
<a name="l00478"></a>00478         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( pWnd, SIGNAL( tabCaptionChanged( <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; ) ), but, SLOT( setNewText( <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; ) ) );
<a name="l00479"></a>00479     }
<a name="l00480"></a>00480 
<a name="l00481"></a>00481     <span class="comment">// embed the view depending on the current MDI mode</span>
<a name="l00482"></a>00482     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::TabPageMode || m_mdiMode == KMdi::IDEAlMode )
<a name="l00483"></a>00483     {
<a name="l00484"></a>00484         <a class="codeRef" href="qpixmap.html">QPixmap</a> pixmap;
<a name="l00485"></a>00485         <span class="keywordflow">if</span> ( pWnd-&gt;<a class="codeRef" href="qwidget.html#icon">icon</a>() )
<a name="l00486"></a>00486             pixmap = *( pWnd-&gt;<a class="codeRef" href="qwidget.html#icon">icon</a>() );
<a name="l00487"></a>00487         
<a name="l00488"></a>00488         m_documentTabWidget-&gt;insertTab( pWnd, pixmap, pWnd-&gt;<a class="code" href="classKMdiChildView.html#ac0e1fd56dbf1f6d9659fb14ff8a1b0c5" title="Returns the caption of the button on the taskbar.">tabCaption</a>(), index );
<a name="l00489"></a>00489 
<a name="l00490"></a>00490         connect( pWnd, SIGNAL( iconUpdated( <a class="codeRef" href="qwidget.html">QWidget</a>*, <a class="codeRef" href="qpixmap.html">QPixmap</a> ) ), m_documentTabWidget, SLOT( updateIconInView( <a class="codeRef" href="qwidget.html">QWidget</a>*, <a class="codeRef" href="qpixmap.html">QPixmap</a> ) ) );
<a name="l00491"></a>00491         connect( pWnd, SIGNAL( captionUpdated( <a class="codeRef" href="qwidget.html">QWidget</a>*, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; ) ), m_documentTabWidget, SLOT( updateCaptionInView( <a class="codeRef" href="qwidget.html">QWidget</a>*, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; ) ) );
<a name="l00492"></a>00492     }
<a name="l00493"></a>00493     <span class="keywordflow">else</span>
<a name="l00494"></a>00494     {
<a name="l00495"></a>00495         <span class="keywordflow">if</span> ( ( flags &amp; KMdi::Detach ) || ( m_mdiMode == KMdi::ToplevelMode ) )
<a name="l00496"></a>00496         {
<a name="l00497"></a>00497             detachWindow( pWnd, !( flags &amp; KMdi::Hide ) );
<a name="l00498"></a>00498             emit childViewIsDetachedNow( pWnd ); <span class="comment">// fake it because detach won&#39;t call it in this case of addWindow-to-MDI</span>
<a name="l00499"></a>00499         }
<a name="l00500"></a>00500         <span class="keywordflow">else</span>
<a name="l00501"></a>00501             attachWindow( pWnd, !( flags &amp; KMdi::Hide ), flags &amp; KMdi::UseKMdiSizeHint );
<a name="l00502"></a>00502 
<a name="l00503"></a>00503         <span class="keywordflow">if</span> ( ( m_bMaximizedChildFrmMode &amp;&amp; ( !m_bSDIApplication &amp;&amp; ( flags &amp; KMdi::Detach ) )
<a name="l00504"></a>00504                &amp;&amp; m_mdiMode != KMdi::ToplevelMode ) || ( flags &amp; KMdi::Maximize ) )
<a name="l00505"></a>00505         {
<a name="l00506"></a>00506             <span class="keywordflow">if</span> ( !pWnd-&gt;<a class="code" href="classKMdiChildView.html#ab571165055d79a106288053a09801459" title="Tells if the window is minimized when attached to the Mdi manager, otherwise returns false...">isMaximized</a>() )
<a name="l00507"></a>00507                 pWnd-&gt;<a class="code" href="classKMdiChildView.html#a2dbaedf3391286e4126d2dc5ce70188c" title="Maximizes this window when it is attached to the Mdi manager.">maximize</a>();
<a name="l00508"></a>00508         }
<a name="l00509"></a>00509         
<a name="l00510"></a>00510         <span class="keywordflow">if</span> ( !m_bSDIApplication || ( flags &amp; KMdi::Detach ) )
<a name="l00511"></a>00511         {
<a name="l00512"></a>00512             <span class="keywordflow">if</span> ( flags &amp; KMdi::Minimize )
<a name="l00513"></a>00513                 pWnd-&gt;<a class="code" href="classKMdiChildView.html#a3b79ed01a8d357cf01cb90b4f0fe23b7" title="Minimizes this window when it is attached to the Mdi manager.">minimize</a>();
<a name="l00514"></a>00514             
<a name="l00515"></a>00515             <span class="keywordflow">if</span> ( !( flags &amp; KMdi::Hide ) )
<a name="l00516"></a>00516             {
<a name="l00517"></a>00517                 <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l00518"></a>00518                     pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>()-&gt;show();
<a name="l00519"></a>00519                 <span class="keywordflow">else</span>
<a name="l00520"></a>00520                     pWnd-&gt;<a class="code" href="classKMdiChildView.html#aa74d747107015dbd5d6f03ca70e13fe0" title="Calls QWidget::show but also for it&#39;s parent widget if attached.">show</a>();
<a name="l00521"></a>00521             }
<a name="l00522"></a>00522         }
<a name="l00523"></a>00523     }
<a name="l00524"></a>00524 }
<a name="l00525"></a>00525 
<a name="l00526"></a>00526 <span class="comment">//============ addWindow ============//</span>
<a name="l00527"></a><a class="code" href="classKMdiMainFrm.html#a2f0f5e5cd585567fb7204a140e0d6473">00527</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#aadc92163fbb227bc5abe8df2c92b694e" title="Adds a KMdiChildView to the MDI system.">KMdiMainFrm::addWindow</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pWnd, <a class="codeRef" href="qrect.html">QRect</a> rectNormal, <span class="keywordtype">int</span> flags )
<a name="l00528"></a>00528 {
<a name="l00529"></a>00529     addWindow( pWnd, flags );
<a name="l00530"></a>00530     <span class="keywordflow">if</span> ( m_bMaximizedChildFrmMode &amp;&amp; pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l00531"></a>00531         pWnd-&gt;<a class="code" href="classKMdiChildView.html#a5843354c7aa98ca0b062fa867de438ab" title="Sets the geometry that will be restored by calling restore().">setRestoreGeometry</a>( rectNormal );
<a name="l00532"></a>00532     <span class="keywordflow">else</span>
<a name="l00533"></a>00533         pWnd-&gt;<a class="codeRef" href="qwidget.html#setGeometry">setGeometry</a>( rectNormal );
<a name="l00534"></a>00534 }
<a name="l00535"></a>00535 
<a name="l00536"></a>00536 <span class="comment">//============ addWindow ============//</span>
<a name="l00537"></a><a class="code" href="classKMdiMainFrm.html#a21bccdb9306bfceed3f0eb956f18c785">00537</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#aadc92163fbb227bc5abe8df2c92b694e" title="Adds a KMdiChildView to the MDI system.">KMdiMainFrm::addWindow</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pWnd, <a class="codeRef" href="qpoint.html">QPoint</a> pos, <span class="keywordtype">int</span> flags )
<a name="l00538"></a>00538 {
<a name="l00539"></a>00539     addWindow( pWnd, flags );
<a name="l00540"></a>00540     <span class="keywordflow">if</span> ( m_bMaximizedChildFrmMode &amp;&amp; pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l00541"></a>00541         pWnd-&gt;<a class="code" href="classKMdiChildView.html#a5843354c7aa98ca0b062fa867de438ab" title="Sets the geometry that will be restored by calling restore().">setRestoreGeometry</a>( <a class="codeRef" href="qrect.html">QRect</a>( pos, pWnd-&gt;<a class="code" href="classKMdiChildView.html#a96a67df9fb99d71376f192033ce5d004" title="Returns the geometry that will be restored by calling restore().">restoreGeometry</a>().<a class="codeRef" href="qrect.html#size">size</a>() ) );
<a name="l00542"></a>00542     <span class="keywordflow">else</span>
<a name="l00543"></a>00543         pWnd-&gt;<a class="codeRef" href="qwidget.html#move">move</a>( pos );
<a name="l00544"></a>00544 }
<a name="l00545"></a>00545 
<a name="l00546"></a>00546 
<a name="l00547"></a>00547 
<a name="l00548"></a><a class="code" href="classKMdiMainFrm.html#a71566ec1b3c2d9d2b685bfc0ef376bc0">00548</a> KMdiToolViewAccessor *<a class="code" href="classKMdiMainFrm.html#a71566ec1b3c2d9d2b685bfc0ef376bc0" title="Using this method you have to use the setWidget method of the access object, and it is very recommend...">KMdiMainFrm::createToolWindow</a>()
<a name="l00549"></a>00549 {
<a name="l00550"></a>00550     <span class="keywordflow">return</span> <span class="keyword">new</span> KMdiToolViewAccessor( <span class="keyword">this</span> );
<a name="l00551"></a>00551 }
<a name="l00552"></a>00552 
<a name="l00553"></a>00553 
<a name="l00554"></a>00554 <span class="keywordtype">void</span> KMdiMainFrm::deleteToolWindow( <a class="codeRef" href="qwidget.html">QWidget</a>* pWnd )
<a name="l00555"></a>00555 {
<a name="l00556"></a>00556     <span class="keywordflow">if</span> ( m_pToolViews-&gt;contains( pWnd ) )
<a name="l00557"></a>00557         deleteToolWindow( ( *m_pToolViews ) [ pWnd ] );
<a name="l00558"></a>00558 }
<a name="l00559"></a>00559 
<a name="l00560"></a>00560 <span class="keywordtype">void</span> KMdiMainFrm::deleteToolWindow( KMdiToolViewAccessor *accessor )
<a name="l00561"></a>00561 {
<a name="l00562"></a>00562     <span class="keyword">delete</span> accessor;
<a name="l00563"></a>00563 }
<a name="l00564"></a>00564 
<a name="l00565"></a>00565 <span class="comment">//============ addWindow ============//</span>
<a name="l00566"></a><a class="code" href="classKMdiMainFrm.html#a62007cbd05571459b3ab5ae2e2a41af4">00566</a> KMdiToolViewAccessor *<a class="code" href="classKMdiMainFrm.html#a62007cbd05571459b3ab5ae2e2a41af4" title="Usually called from addWindow() when adding a tool view window.">KMdiMainFrm::addToolWindow</a>( <a class="codeRef" href="qwidget.html">QWidget</a>* pWnd, KDockWidget::DockPosition pos, <a class="codeRef" href="qwidget.html">QWidget</a>* pTargetWnd,
<a name="l00567"></a>00567                                                   <span class="keywordtype">int</span> percent, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; tabToolTip, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; tabCaption )
<a name="l00568"></a>00568 {
<a name="l00569"></a>00569     <a class="codeRef" href="qwidget.html">QWidget</a>* tvta = pWnd;
<a name="l00570"></a>00570     KDockWidget* pDW = dockManager-&gt;getDockWidgetFromName( pWnd-&gt;name() );
<a name="l00571"></a>00571     <span class="keywordflow">if</span> ( pDW )
<a name="l00572"></a>00572     {
<a name="l00573"></a>00573         <span class="comment">// probably readDockConfig already created the widgetContainer, use that</span>
<a name="l00574"></a>00574         pDW-&gt;setWidget( pWnd );
<a name="l00575"></a>00575 
<a name="l00576"></a>00576         <span class="keywordflow">if</span> ( pWnd-&gt;<a class="codeRef" href="qwidget.html#icon">icon</a>() )
<a name="l00577"></a>00577             pDW-&gt;setPixmap( *pWnd-&gt;<a class="codeRef" href="qwidget.html#icon">icon</a>() );
<a name="l00578"></a>00578 
<a name="l00579"></a>00579         pDW-&gt;setTabPageLabel( ( tabCaption == 0 ) ? pWnd-&gt;<a class="codeRef" href="qwidget.html#caption">caption</a>() : tabCaption );
<a name="l00580"></a>00580         pDW-&gt;setToolTipString( tabToolTip );
<a name="l00581"></a>00581         dockManager-&gt;removeFromAutoCreateList( pDW );
<a name="l00582"></a>00582         pWnd = pDW;
<a name="l00583"></a>00583     }
<a name="l00584"></a>00584 
<a name="l00585"></a>00585     <a class="codeRef" href="qrect.html">QRect</a> r = pWnd-&gt;<a class="codeRef" href="qwidget.html#geometry">geometry</a>();
<a name="l00586"></a>00586 
<a name="l00587"></a>00587     KMdiToolViewAccessor *mtva = <span class="keyword">new</span> KMdiToolViewAccessor( <span class="keyword">this</span>, pWnd, tabToolTip, ( tabCaption == 0 ) ? pWnd-&gt;<a class="codeRef" href="qwidget.html#caption">caption</a>() : tabCaption );
<a name="l00588"></a>00588     m_pToolViews-&gt;insert( tvta, mtva );
<a name="l00589"></a>00589 
<a name="l00590"></a>00590     <span class="keywordflow">if</span> ( pos == KDockWidget::DockNone )
<a name="l00591"></a>00591     {
<a name="l00592"></a>00592         mtva-&gt;d-&gt;widgetContainer-&gt;setEnableDocking( KDockWidget::DockNone );
<a name="l00593"></a>00593         mtva-&gt;d-&gt;widgetContainer-&gt;reparent( <span class="keyword">this</span>, Qt::WType_TopLevel | Qt::WType_Dialog, r.<a class="codeRef" href="qrect.html#topLeft">topLeft</a>(), true ); <span class="comment">//pToolView-&gt;isVisible());</span>
<a name="l00594"></a>00594     }
<a name="l00595"></a>00595     <span class="keywordflow">else</span> <span class="comment">//add and dock the toolview as a dockwidget view</span>
<a name="l00596"></a>00596         mtva-&gt;place( pos, pTargetWnd, percent );
<a name="l00597"></a>00597 
<a name="l00598"></a>00598 
<a name="l00599"></a>00599     <span class="keywordflow">return</span> mtva;
<a name="l00600"></a>00600 }
<a name="l00601"></a>00601 
<a name="l00602"></a>00602 <span class="comment">//============ attachWindow ============//</span>
<a name="l00603"></a><a class="code" href="classKMdiMainFrm.html#a1984d0d351014aefe90eb974428acbcc">00603</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a1984d0d351014aefe90eb974428acbcc" title="Makes a main frame controlled undocked KMdiChildView docked.">KMdiMainFrm::attachWindow</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pWnd, <span class="keywordtype">bool</span> bShow, <span class="keywordtype">bool</span> bAutomaticResize )
<a name="l00604"></a>00604 {
<a name="l00605"></a>00605     pWnd-&gt;installEventFilter( <span class="keyword">this</span> );
<a name="l00606"></a>00606 
<a name="l00607"></a>00607     <span class="comment">// decide whether window shall be cascaded</span>
<a name="l00608"></a>00608     <span class="keywordtype">bool</span> bCascade = <span class="keyword">false</span>;
<a name="l00609"></a>00609     <a class="codeRef" href="qapplication.html#sendPostedEvents-2">QApplication::sendPostedEvents</a>();
<a name="l00610"></a>00610     <a class="codeRef" href="qrect.html">QRect</a> frameGeo = pWnd-&gt;<a class="codeRef" href="qwidget.html#frameGeometry">frameGeometry</a>();
<a name="l00611"></a>00611     <a class="codeRef" href="qpoint.html">QPoint</a> topLeftScreen = pWnd-&gt;<a class="codeRef" href="qwidget.html#mapToGlobal">mapToGlobal</a>( <a class="codeRef" href="qpoint.html">QPoint</a>( 0, 0 ) );
<a name="l00612"></a>00612     <a class="codeRef" href="qpoint.html">QPoint</a> topLeftMdiChildArea = m_pMdi-&gt;mapFromGlobal( topLeftScreen );
<a name="l00613"></a>00613     <a class="codeRef" href="qrect.html">QRect</a> childAreaGeo = m_pMdi-&gt;geometry();
<a name="l00614"></a>00614     <span class="keywordflow">if</span> ( topLeftMdiChildArea.<a class="codeRef" href="qpoint.html#x">x</a>() &lt; 0 || topLeftMdiChildArea.<a class="codeRef" href="qpoint.html#y">y</a>() &lt; 0 ||
<a name="l00615"></a>00615          ( topLeftMdiChildArea.<a class="codeRef" href="qpoint.html#x">x</a>() + frameGeo.<a class="codeRef" href="qrect.html#width">width</a>() &gt; childAreaGeo.<a class="codeRef" href="qrect.html#width">width</a>() ) ||
<a name="l00616"></a>00616          ( topLeftMdiChildArea.<a class="codeRef" href="qpoint.html#y">y</a>() + frameGeo.<a class="codeRef" href="qrect.html#height">height</a>() &gt; childAreaGeo.<a class="codeRef" href="qrect.html#height">height</a>() ) )
<a name="l00617"></a>00617     {
<a name="l00618"></a>00618         bCascade = <span class="keyword">true</span>;
<a name="l00619"></a>00619     }
<a name="l00620"></a>00620 
<a name="l00621"></a>00621     <span class="comment">// create frame and insert child view</span>
<a name="l00622"></a>00622     <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a> *lpC = <span class="keyword">new</span> <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>( m_pMdi );
<a name="l00623"></a>00623     pWnd-&gt;<a class="code" href="classKMdiChildView.html#aeec8fed523c02ce0a05f743af1559dd0" title="Calls QWidget::hide() or it&#39;s parent widget hide() if attached.">hide</a>();
<a name="l00624"></a>00624     <span class="keywordflow">if</span> ( !bCascade )
<a name="l00625"></a>00625         lpC-&gt;move( topLeftMdiChildArea );
<a name="l00626"></a>00626 
<a name="l00627"></a>00627     lpC-&gt;<a class="code" href="classKMdiChildFrm.html#a3543c58013900e6c7c064580999cad93" title="Reparents the widget w to this KMdiChildFrm (if this is not already done) Installs an event filter to...">setClient</a>( pWnd, bAutomaticResize );
<a name="l00628"></a>00628     lpC-&gt;setFocus();
<a name="l00629"></a>00629     pWnd-&gt;<a class="code" href="classKMdiChildView.html#a02a2f145e1aa7f6d12b5d01dde93c6c9" title="Internally called, if KMdiMainFrm::attach is called.">youAreAttached</a>( lpC );
<a name="l00630"></a>00630     <span class="keywordflow">if</span> ( ( m_mdiMode == KMdi::ToplevelMode ) &amp;&amp; !parentWidget() )
<a name="l00631"></a>00631     {
<a name="l00632"></a>00632         setMinimumHeight( m_oldMainFrmMinHeight );
<a name="l00633"></a>00633         setMaximumHeight( m_oldMainFrmMaxHeight );
<a name="l00634"></a>00634         resize( width(), m_oldMainFrmHeight );
<a name="l00635"></a>00635         m_oldMainFrmHeight = 0;
<a name="l00636"></a>00636         switchToChildframeMode();
<a name="l00637"></a>00637     }
<a name="l00638"></a>00638 
<a name="l00639"></a>00639     m_pMdi-&gt;manageChild( lpC, <span class="keyword">false</span>, bCascade );
<a name="l00640"></a>00640     <span class="keywordflow">if</span> ( m_pMdi-&gt;topChild() &amp;&amp; m_pMdi-&gt;topChild() -&gt;isMaximized() )
<a name="l00641"></a>00641     {
<a name="l00642"></a>00642         <a class="codeRef" href="qrect.html">QRect</a> r = lpC-&gt;geometry();
<a name="l00643"></a>00643         lpC-&gt;setGeometry( -lpC-&gt;m_pClient-&gt;<a class="codeRef" href="qwidget.html#x">x</a>(), -lpC-&gt;m_pClient-&gt;<a class="codeRef" href="qwidget.html#y">y</a>(),
<a name="l00644"></a>00644                           m_pMdi-&gt;width() + KMDI_CHILDFRM_DOUBLE_BORDER,
<a name="l00645"></a>00645                           m_pMdi-&gt;height() + lpC-&gt;<a class="code" href="classKMdiChildFrm.html#a693446976017051ffdad5067d8102688" title="Returns the caption bar height.">captionHeight</a>() + KMDI_CHILDFRM_SEPARATOR + KMDI_CHILDFRM_DOUBLE_BORDER );
<a name="l00646"></a>00646         lpC-&gt;<a class="code" href="classKMdiChildFrm.html#a63aa2a87dde5bcc709c96f7c0e180fed" title="Sets the geometry that will be restored by calling restore().">setRestoreGeometry</a>( r );
<a name="l00647"></a>00647     }
<a name="l00648"></a>00648 
<a name="l00649"></a>00649     <span class="keywordflow">if</span> ( bShow )
<a name="l00650"></a>00650     {
<a name="l00651"></a>00651         lpC-&gt;show();
<a name="l00652"></a>00652     }
<a name="l00653"></a>00653 
<a name="l00654"></a>00654 <span class="preprocessor">#undef FocusIn</span>
<a name="l00655"></a>00655 <span class="preprocessor"></span>    <a class="codeRef" href="qfocusevent.html">QFocusEvent</a> fe( QEvent::FocusIn );
<a name="l00656"></a>00656     <a class="codeRef" href="qapplication.html#sendEvent">QApplication::sendEvent</a>( pWnd, &amp;fe );
<a name="l00657"></a>00657 
<a name="l00658"></a>00658     m_pCurrentWindow = pWnd;  <span class="comment">// required for checking the active item</span>
<a name="l00659"></a>00659 }
<a name="l00660"></a>00660 
<a name="l00661"></a>00661 <span class="comment">//============= detachWindow ==============//</span>
<a name="l00662"></a><a class="code" href="classKMdiMainFrm.html#ac48a4dcd733e3813260e80b38453db44">00662</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ac48a4dcd733e3813260e80b38453db44" title="Makes a docked KMdiChildView undocked.">KMdiMainFrm::detachWindow</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pWnd, <span class="keywordtype">bool</span> bShow )
<a name="l00663"></a>00663 {
<a name="l00664"></a>00664     <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l00665"></a>00665     {
<a name="l00666"></a>00666         pWnd-&gt;removeEventFilter( <span class="keyword">this</span> );
<a name="l00667"></a>00667         pWnd-&gt;<a class="code" href="classKMdiChildView.html#a2bc6046f3523fd9b54254b2455ed54c9" title="Internally called, if KMdiMainFrm::detach is called.">youAreDetached</a>();
<a name="l00668"></a>00668         <span class="comment">// this is only if it was attached and you want to detach it</span>
<a name="l00669"></a>00669         <span class="keywordflow">if</span> ( pWnd-&gt;parent() )
<a name="l00670"></a>00670         {
<a name="l00671"></a>00671             <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a> * lpC = pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>();
<a name="l00672"></a>00672             <span class="keywordflow">if</span> ( lpC )
<a name="l00673"></a>00673             {
<a name="l00674"></a>00674                 <span class="keywordflow">if</span> ( lpC-&gt;<a class="code" href="classKMdiChildFrm.html#ac1c8354a76dde03b5aa52df2c689669f" title="Returns the child frame icon.">icon</a>() )
<a name="l00675"></a>00675                 {
<a name="l00676"></a>00676                     <a class="codeRef" href="qpixmap.html">QPixmap</a> pixm( *( lpC-&gt;<a class="code" href="classKMdiChildFrm.html#ac1c8354a76dde03b5aa52df2c689669f" title="Returns the child frame icon.">icon</a>() ) );
<a name="l00677"></a>00677                     pWnd-&gt;<a class="codeRef" href="qwidget.html#setIcon">setIcon</a>( pixm );
<a name="l00678"></a>00678                 }
<a name="l00679"></a>00679                 <a class="codeRef" href="qstring.html">QString</a> capt( lpC-&gt;<a class="code" href="classKMdiChildFrm.html#ab9787ec1cb305810b5b105d994e562e8" title="Gets the caption of this mdi child.">caption</a>() );
<a name="l00680"></a>00680                 <span class="keywordflow">if</span> ( !bShow )
<a name="l00681"></a>00681                     lpC-&gt;hide();
<a name="l00682"></a>00682                 lpC-&gt;<a class="code" href="classKMdiChildFrm.html#a052a9298168636743b51bcf1b8cca0ab" title="Reparents the client widget to 0 (desktop), moves with an offset from the original position Removes t...">unsetClient</a>( m_undockPositioningOffset );
<a name="l00683"></a>00683                 m_pMdi-&gt;destroyChildButNotItsView( lpC, <span class="keyword">false</span> ); <span class="comment">//Do not focus the new top child , we loose focus...</span>
<a name="l00684"></a>00684                 pWnd-&gt;<a class="code" href="classKMdiChildView.html#ad5206322b89efe6e1679a346acad8598" title="Sets the window caption string...">setCaption</a>( capt );
<a name="l00685"></a>00685             }
<a name="l00686"></a>00686         }
<a name="l00687"></a>00687     }
<a name="l00688"></a>00688     <span class="keywordflow">else</span>
<a name="l00689"></a>00689     {
<a name="l00690"></a>00690         <span class="keywordflow">if</span> ( pWnd-&gt;<a class="codeRef" href="qwidget.html#size">size</a>().isEmpty() || ( pWnd-&gt;<a class="codeRef" href="qwidget.html#size">size</a>() == <a class="codeRef" href="qsize.html">QSize</a>( 1, 1 ) ) )
<a name="l00691"></a>00691         {
<a name="l00692"></a>00692             <span class="keywordflow">if</span> ( m_pCurrentWindow )
<a name="l00693"></a>00693             {
<a name="l00694"></a>00694                 pWnd-&gt;<a class="codeRef" href="qwidget.html#setGeometry">setGeometry</a>( <a class="codeRef" href="qrect.html">QRect</a>( m_pMdi-&gt;getCascadePoint( m_pDocumentViews-&gt;count() - 1 ), m_pCurrentWindow-&gt;size() ) );
<a name="l00695"></a>00695             }
<a name="l00696"></a>00696             <span class="keywordflow">else</span>
<a name="l00697"></a>00697             {
<a name="l00698"></a>00698                 pWnd-&gt;<a class="codeRef" href="qwidget.html#setGeometry">setGeometry</a>( <a class="codeRef" href="qrect.html">QRect</a>( m_pMdi-&gt;getCascadePoint( m_pDocumentViews-&gt;count() - 1 ), defaultChildFrmSize() ) );
<a name="l00699"></a>00699             }
<a name="l00700"></a>00700         }
<a name="l00701"></a>00701 <span class="preprocessor">#ifdef Q_WS_X11</span>
<a name="l00702"></a>00702 <span class="preprocessor"></span>        <span class="keywordflow">if</span> ( mdiMode() == KMdi::ToplevelMode )
<a name="l00703"></a>00703         {
<a name="l00704"></a>00704             XSetTransientForHint( qt_xdisplay(), pWnd-&gt;<a class="codeRef" href="qwidget.html#winId">winId</a>(), topLevelWidget() -&gt;winId() );
<a name="l00705"></a>00705         }
<a name="l00706"></a>00706 <span class="preprocessor">#endif</span>
<a name="l00707"></a>00707 <span class="preprocessor"></span>
<a name="l00708"></a>00708         return ;
<a name="l00709"></a>00709     }
<a name="l00710"></a>00710 
<a name="l00711"></a>00711 <span class="preprocessor">#ifdef Q_WS_X11</span>
<a name="l00712"></a>00712 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( mdiMode() == KMdi::ToplevelMode )
<a name="l00713"></a>00713     {
<a name="l00714"></a>00714         XSetTransientForHint( qt_xdisplay(), pWnd-&gt;<a class="codeRef" href="qwidget.html#winId">winId</a>(), topLevelWidget() -&gt;winId() );
<a name="l00715"></a>00715     }
<a name="l00716"></a>00716 <span class="preprocessor">#endif</span>
<a name="l00717"></a>00717 <span class="preprocessor"></span>
<a name="l00718"></a>00718     <span class="comment">// this will show it...</span>
<a name="l00719"></a>00719     <span class="keywordflow">if</span> ( bShow )
<a name="l00720"></a>00720     {
<a name="l00721"></a>00721         activateView( pWnd );
<a name="l00722"></a>00722     }
<a name="l00723"></a>00723 
<a name="l00724"></a>00724     emit childViewIsDetachedNow( pWnd );
<a name="l00725"></a>00725 }
<a name="l00726"></a>00726 
<a name="l00727"></a>00727 <span class="comment">//============== removeWindowFromMdi ==============//</span>
<a name="l00728"></a><a class="code" href="classKMdiMainFrm.html#a8b0f33436f49eecc9fd8dd8121b6eba5">00728</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a8b0f33436f49eecc9fd8dd8121b6eba5" title="Removes a KMdiChildView from the MDI system and from the main frame`s control.">KMdiMainFrm::removeWindowFromMdi</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pWnd )
<a name="l00729"></a>00729 {
<a name="l00730"></a>00730     Q_UNUSED( pWnd );
<a name="l00731"></a>00731     <span class="comment">//Closes a child window. sends no close event : simply deletes it</span>
<a name="l00732"></a>00732     <span class="comment">//FIXME something wrong with this, but nobody knows whatcart</span>
<a name="l00733"></a>00733 <span class="preprocessor">#if 0</span>
<a name="l00734"></a>00734 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( !( m_pWinList-&gt;removeRef( pWnd ) ) )
<a name="l00735"></a>00735         return ;
<a name="l00736"></a>00736     <span class="keywordflow">if</span> ( m_pWinList-&gt;count() == 0 )
<a name="l00737"></a>00737         m_pCurrentWindow = 0L;
<a name="l00738"></a>00738 
<a name="l00739"></a>00739     <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( pWnd, SIGNAL( attachWindow( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*, <span class="keywordtype">bool</span> ) ), <span class="keyword">this</span>, SLOT( attachWindow( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*, <span class="keywordtype">bool</span> ) ) );
<a name="l00740"></a>00740     <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( pWnd, SIGNAL( detachWindow( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*, <span class="keywordtype">bool</span> ) ), <span class="keyword">this</span>, SLOT( detachWindow( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*, <span class="keywordtype">bool</span> ) ) );
<a name="l00741"></a>00741     <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( pWnd, SIGNAL( focusInEventOccurs( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ), <span class="keyword">this</span>, SLOT( activateView( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ) );
<a name="l00742"></a>00742     <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( pWnd, SIGNAL( childWindowCloseRequest( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ), <span class="keyword">this</span>, SLOT( childWindowCloseRequest( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ) );
<a name="l00743"></a>00743     <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( pWnd, SIGNAL( clickedInWindowMenu( <span class="keywordtype">int</span> ) ), <span class="keyword">this</span>, SLOT( windowMenuItemActivated( <span class="keywordtype">int</span> ) ) );
<a name="l00744"></a>00744     <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( pWnd, SIGNAL( clickedInDockMenu( <span class="keywordtype">int</span> ) ), <span class="keyword">this</span>, SLOT( dockMenuItemActivated( <span class="keywordtype">int</span> ) ) );
<a name="l00745"></a>00745 
<a name="l00746"></a>00746     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l00747"></a>00747     {
<a name="l00748"></a>00748         <a class="code" href="classKMdiTaskBarButton.html" title="Internal class.">KMdiTaskBarButton</a> * but = m_pTaskBar-&gt;getButton( pWnd );
<a name="l00749"></a>00749         <span class="keywordflow">if</span> ( but != 0L )
<a name="l00750"></a>00750         {
<a name="l00751"></a>00751             <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( pWnd, SIGNAL( tabCaptionChanged( <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; ) ), but, SLOT( setNewText( <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; ) ) );
<a name="l00752"></a>00752         }
<a name="l00753"></a>00753         m_pTaskBar-&gt;removeWinButton( pWnd );
<a name="l00754"></a>00754     }
<a name="l00755"></a>00755 
<a name="l00756"></a>00756     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::TabPageMode )
<a name="l00757"></a>00757     {
<a name="l00758"></a>00758         <span class="keywordflow">if</span> ( m_pWinList-&gt;count() == 0 )
<a name="l00759"></a>00759         {
<a name="l00760"></a>00760             <span class="keywordflow">if</span> ( !m_pDockbaseAreaOfDocumentViews )
<a name="l00761"></a>00761             {
<a name="l00762"></a>00762                 m_pDockbaseAreaOfDocumentViews = createDockWidget( <span class="stringliteral">&quot;mdiAreaCover&quot;</span>, <a class="codeRef" href="qpixmap.html">QPixmap</a>(), 0L, <span class="stringliteral">&quot;mdi_area_cover&quot;</span> );
<a name="l00763"></a>00763                 m_pDockbaseAreaOfDocumentViews-&gt;setDockWindowTransient( <span class="keyword">this</span>, <span class="keyword">true</span> );
<a name="l00764"></a>00764 
<a name="l00765"></a>00765                 m_pDockbaseAreaOfDocumentViews-&gt;setWidget( m_pMdi );
<a name="l00766"></a>00766                 setMainDockWidget( m_pDockbaseAreaOfDocumentViews );
<a name="l00767"></a>00767             }
<a name="l00768"></a>00768             m_pDockbaseOfTabPage-&gt;setDockSite( KDockWidget::DockFullSite );
<a name="l00769"></a>00769             m_pDockbaseAreaOfDocumentViews-&gt;setEnableDocking( KDockWidget::DockCenter );
<a name="l00770"></a>00770             m_pDockbaseAreaOfDocumentViews-&gt;manualDock( m_pDockbaseOfTabPage, KDockWidget::DockCenter );
<a name="l00771"></a>00771             m_pDockbaseAreaOfDocumentViews-&gt;setEnableDocking( KDockWidget::DockNone );
<a name="l00772"></a>00772             m_pDockbaseOfTabPage = m_pDockbaseAreaOfDocumentViews;
<a name="l00773"></a>00773             m_pClose-&gt;hide();
<a name="l00774"></a>00774         }
<a name="l00775"></a>00775         KDockWidget* pDockW = ( KDockWidget* ) pWnd-&gt;<a class="codeRef" href="qwidget.html#parentWidget">parentWidget</a>();
<a name="l00776"></a>00776         pWnd-&gt;<a class="codeRef" href="qwidget.html#reparent">reparent</a>( 0L, <a class="codeRef" href="qpoint.html">QPoint</a>( 0, 0 ) );
<a name="l00777"></a>00777         pDockW-&gt;setWidget( 0L );
<a name="l00778"></a>00778         <span class="keywordflow">if</span> ( pDockW == m_pDockbaseOfTabPage )
<a name="l00779"></a>00779         {
<a name="l00780"></a>00780             <a class="codeRef" href="qtabwidget.html">QTabWidget</a> * pTab = ( <a class="codeRef" href="qtabwidget.html">QTabWidget</a>* ) pDockW-&gt;parentWidget() -&gt;parentWidget();
<a name="l00781"></a>00781             <span class="keywordtype">int</span> cnt = pTab-&gt;<a class="codeRef" href="qtabwidget.html#count">count</a>();
<a name="l00782"></a>00782             m_pDockbaseOfTabPage = ( KDockWidget* ) pTab-&gt;<a class="codeRef" href="qtabwidget.html#page">page</a>( cnt - 2 );
<a name="l00783"></a>00783             <span class="keywordflow">if</span> ( pDockW == m_pDockbaseOfTabPage )
<a name="l00784"></a>00784             {
<a name="l00785"></a>00785                 m_pDockbaseOfTabPage = ( KDockWidget* ) pTab-&gt;<a class="codeRef" href="qtabwidget.html#page">page</a>( cnt - 1 ); <span class="comment">// different to the one deleted next</span>
<a name="l00786"></a>00786             }
<a name="l00787"></a>00787         }
<a name="l00788"></a>00788         <span class="keyword">delete</span> pDockW;
<a name="l00789"></a>00789         <span class="keywordflow">if</span> ( m_pWinList-&gt;count() == 1 )
<a name="l00790"></a>00790         {
<a name="l00791"></a>00791             m_pWinList-&gt;last() -&gt;activate(); <span class="comment">// all other views are activated by tab switch</span>
<a name="l00792"></a>00792         }
<a name="l00793"></a>00793     }
<a name="l00794"></a>00794     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l00795"></a>00795     {
<a name="l00796"></a>00796         pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>() -&gt;hide();
<a name="l00797"></a>00797         m_pMdi-&gt;destroyChildButNotItsView( pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>() );
<a name="l00798"></a>00798     }
<a name="l00799"></a>00799     <span class="keywordflow">else</span>
<a name="l00800"></a>00800     {
<a name="l00801"></a>00801         <span class="comment">// is not attached</span>
<a name="l00802"></a>00802         <span class="keywordflow">if</span> ( m_pMdi-&gt;getVisibleChildCount() &gt; 0 )
<a name="l00803"></a>00803         {
<a name="l00804"></a>00804             setActiveWindow();
<a name="l00805"></a>00805             m_pCurrentWindow = 0L;
<a name="l00806"></a>00806             <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = m_pMdi-&gt;topChild() -&gt;m_pClient;
<a name="l00807"></a>00807             <span class="keywordflow">if</span> ( pView )
<a name="l00808"></a>00808             {
<a name="l00809"></a>00809                 pView-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l00810"></a>00810             }
<a name="l00811"></a>00811         }
<a name="l00812"></a>00812         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( m_pWinList-&gt;count() &gt; 0 )
<a name="l00813"></a>00813         {
<a name="l00814"></a>00814             <span class="comment">//crash?         m_pWinList-&gt;last()-&gt;activate();</span>
<a name="l00815"></a>00815             <span class="comment">//crash?         m_pWinList-&gt;last()-&gt;setFocus();</span>
<a name="l00816"></a>00816         }
<a name="l00817"></a>00817     }
<a name="l00818"></a>00818 
<a name="l00819"></a>00819     <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#a534402891b4ef8226235531ca2a19d70" title="Returns if this is added as MDI tool-view.">isToolView</a>() )
<a name="l00820"></a>00820         pWnd-&gt;m_bToolView = <span class="keyword">false</span>;
<a name="l00821"></a>00821 
<a name="l00822"></a>00822     if ( !m_pCurrentWindow )
<a name="l00823"></a>00823         emit lastChildViewClosed();
<a name="l00824"></a>00824 <span class="preprocessor">#endif</span>
<a name="l00825"></a>00825 <span class="preprocessor"></span>}
<a name="l00826"></a>00826 
<a name="l00827"></a>00827 <span class="comment">//============== closeWindow ==============//</span>
<a name="l00828"></a><a class="code" href="classKMdiMainFrm.html#a55ed256f67bdc9b5b74b76e59f3041c8">00828</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a55ed256f67bdc9b5b74b76e59f3041c8" title="Removes a KMdiChildView from the MDI system and from the main frame`s control.">KMdiMainFrm::closeWindow</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pWnd, <span class="keywordtype">bool</span> layoutTaskBar )
<a name="l00829"></a>00829 {
<a name="l00830"></a>00830     <span class="keywordflow">if</span> ( !pWnd )
<a name="l00831"></a>00831         return ;
<a name="l00832"></a>00832     <span class="comment">//Closes a child window. sends no close event : simply deletes it</span>
<a name="l00833"></a>00833     m_pDocumentViews-&gt;removeRef( pWnd );
<a name="l00834"></a>00834     <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() == 0 )
<a name="l00835"></a>00835         m_pCurrentWindow = 0L;
<a name="l00836"></a>00836 
<a name="l00837"></a>00837     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l00838"></a>00838     {
<a name="l00839"></a>00839         m_pTaskBar-&gt;removeWinButton( pWnd, layoutTaskBar );
<a name="l00840"></a>00840     }
<a name="l00841"></a>00841 
<a name="l00842"></a>00842     <span class="keywordflow">if</span> ( ( m_mdiMode == KMdi::TabPageMode ) || ( m_mdiMode == KMdi::IDEAlMode ) )
<a name="l00843"></a>00843     {
<a name="l00844"></a>00844         <span class="keywordflow">if</span> ( !m_documentTabWidget )
<a name="l00845"></a>00845             return ; <span class="comment">//oops</span>
<a name="l00846"></a>00846         <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() == 0 )
<a name="l00847"></a>00847             m_pClose-&gt;hide();
<a name="l00848"></a>00848         pWnd-&gt;<a class="codeRef" href="qwidget.html#reparent">reparent</a>( 0L, <a class="codeRef" href="qpoint.html">QPoint</a>( 0, 0 ) );
<a name="l00849"></a>00849         kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;-------- 1&quot;</span> &lt;&lt; endl;
<a name="l00850"></a>00850         <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() == 1 )
<a name="l00851"></a>00851         {
<a name="l00852"></a>00852             m_pDocumentViews-&gt;last() -&gt;activate(); <span class="comment">// all other views are activated by tab switch</span>
<a name="l00853"></a>00853         }
<a name="l00854"></a>00854     }
<a name="l00855"></a>00855     <span class="keywordflow">if</span> ( ( m_mdiMode == KMdi::TabPageMode ) || ( m_mdiMode == KMdi::IDEAlMode ) )
<a name="l00856"></a>00856     {
<a name="l00857"></a>00857         <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() == 0 )
<a name="l00858"></a>00858         {
<a name="l00859"></a>00859             <span class="keywordflow">if</span> ( !m_pDockbaseAreaOfDocumentViews )
<a name="l00860"></a>00860             {
<a name="l00861"></a>00861                 m_pDockbaseAreaOfDocumentViews = createDockWidget( <span class="stringliteral">&quot;mdiAreaCover&quot;</span>, <a class="codeRef" href="qpixmap.html">QPixmap</a>(), 0L, <span class="stringliteral">&quot;mdi_area_cover&quot;</span> );
<a name="l00862"></a>00862                 m_pDockbaseAreaOfDocumentViews-&gt;setDockWindowTransient( <span class="keyword">this</span>, <span class="keyword">true</span> );
<a name="l00863"></a>00863                 m_pDockbaseAreaOfDocumentViews-&gt;setWidget( m_pMdi );
<a name="l00864"></a>00864                 setMainDockWidget( m_pDockbaseAreaOfDocumentViews );
<a name="l00865"></a>00865             }
<a name="l00866"></a>00866 <span class="preprocessor">#if 0</span>
<a name="l00867"></a>00867 <span class="preprocessor"></span>            m_pDockbaseOfTabPage-&gt;setDockSite( KDockWidget::DockFullSite );
<a name="l00868"></a>00868             m_pDockbaseAreaOfDocumentViews-&gt;setEnableDocking( KDockWidget::DockCenter );
<a name="l00869"></a>00869             m_pDockbaseAreaOfDocumentViews-&gt;manualDock( m_pDockbaseOfTabPage, KDockWidget::DockCenter );
<a name="l00870"></a>00870             m_pDockbaseAreaOfDocumentViews-&gt;setEnableDocking( KDockWidget::DockNone );
<a name="l00871"></a>00871             m_pDockbaseOfTabPage = m_pDockbaseAreaOfDocumentViews;
<a name="l00872"></a>00872 <span class="preprocessor">#endif</span>
<a name="l00873"></a>00873 <span class="preprocessor"></span>
<a name="l00874"></a>00874             m_pClose-&gt;hide();
<a name="l00875"></a>00875         }
<a name="l00876"></a>00876 <span class="preprocessor">#if 0</span>
<a name="l00877"></a>00877 <span class="preprocessor"></span>        KDockWidget* pDockW = ( KDockWidget* ) pWnd-&gt;<a class="codeRef" href="qwidget.html#parentWidget">parentWidget</a>();
<a name="l00878"></a>00878         pWnd-&gt;<a class="codeRef" href="qwidget.html#reparent">reparent</a>( 0L, <a class="codeRef" href="qpoint.html">QPoint</a>( 0, 0 ) );
<a name="l00879"></a>00879         pDockW-&gt;setWidget( 0L );
<a name="l00880"></a>00880         <span class="keywordflow">if</span> ( pDockW == m_pDockbaseOfTabPage )
<a name="l00881"></a>00881         {
<a name="l00882"></a>00882             <a class="codeRef" href="qtabwidget.html">QTabWidget</a> * pTab = ( <a class="codeRef" href="qtabwidget.html">QTabWidget</a>* ) pDockW-&gt;parentWidget() -&gt;parentWidget();
<a name="l00883"></a>00883             <span class="keywordtype">int</span> cnt = pTab-&gt;<a class="codeRef" href="qtabwidget.html#count">count</a>();
<a name="l00884"></a>00884             m_pDockbaseOfTabPage = ( KDockWidget* ) pTab-&gt;<a class="codeRef" href="qtabwidget.html#page">page</a>( cnt - 2 );
<a name="l00885"></a>00885             <span class="keywordflow">if</span> ( pDockW == m_pDockbaseOfTabPage )
<a name="l00886"></a>00886             {
<a name="l00887"></a>00887                 m_pDockbaseOfTabPage = ( KDockWidget* ) pTab-&gt;<a class="codeRef" href="qtabwidget.html#page">page</a>( cnt - 1 ); <span class="comment">// different to the one deleted next</span>
<a name="l00888"></a>00888             }
<a name="l00889"></a>00889         }
<a name="l00890"></a>00890         <span class="keyword">delete</span> pDockW;
<a name="l00891"></a>00891 <span class="preprocessor">#endif</span>
<a name="l00892"></a>00892 <span class="preprocessor"></span>
<a name="l00893"></a>00893         <span class="keyword">delete</span> pWnd;
<a name="l00894"></a>00894         <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() == 1 )
<a name="l00895"></a>00895         {
<a name="l00896"></a>00896             m_pDocumentViews-&gt;last() -&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>(); <span class="comment">// all other views are activated by tab switch</span>
<a name="l00897"></a>00897         }
<a name="l00898"></a>00898     }
<a name="l00899"></a>00899     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l00900"></a>00900     {
<a name="l00901"></a>00901         m_pMdi-&gt;destroyChild( pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>() );
<a name="l00902"></a>00902     }
<a name="l00903"></a>00903     <span class="keywordflow">else</span>
<a name="l00904"></a>00904     {
<a name="l00905"></a>00905         <span class="keyword">delete</span> pWnd;
<a name="l00906"></a>00906         <span class="comment">// is not attached</span>
<a name="l00907"></a>00907         <span class="keywordflow">if</span> ( m_pMdi-&gt;getVisibleChildCount() &gt; 0 )
<a name="l00908"></a>00908         {
<a name="l00909"></a>00909             setActiveWindow();
<a name="l00910"></a>00910             m_pCurrentWindow = 0L;
<a name="l00911"></a>00911             <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = m_pMdi-&gt;topChild() -&gt;m_pClient;
<a name="l00912"></a>00912             <span class="keywordflow">if</span> ( pView )
<a name="l00913"></a>00913             {
<a name="l00914"></a>00914                 pView-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l00915"></a>00915             }
<a name="l00916"></a>00916         }
<a name="l00917"></a>00917         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() &gt; 0 )
<a name="l00918"></a>00918         {
<a name="l00919"></a>00919             <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;current() )
<a name="l00920"></a>00920             {
<a name="l00921"></a>00921                 m_pDocumentViews-&gt;current() -&gt;activate();
<a name="l00922"></a>00922                 m_pDocumentViews-&gt;current() -&gt;setFocus();
<a name="l00923"></a>00923             }
<a name="l00924"></a>00924             <span class="keywordflow">else</span>
<a name="l00925"></a>00925             {
<a name="l00926"></a>00926                 m_pDocumentViews-&gt;last() -&gt;activate();
<a name="l00927"></a>00927                 m_pDocumentViews-&gt;last() -&gt;setFocus();
<a name="l00928"></a>00928             }
<a name="l00929"></a>00929         }
<a name="l00930"></a>00930     }
<a name="l00931"></a>00931 
<a name="l00932"></a>00932     <span class="keywordflow">if</span> ( !m_pCurrentWindow )
<a name="l00933"></a>00933     {
<a name="l00934"></a>00934         d-&gt;closeWindowAction-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l00935"></a>00935         emit lastChildViewClosed();
<a name="l00936"></a>00936     }
<a name="l00937"></a>00937 }
<a name="l00938"></a>00938 
<a name="l00939"></a>00939 <span class="comment">//================== findWindow =================//</span>
<a name="l00940"></a><a class="code" href="classKMdiMainFrm.html#adce3d02b058f396fdcf9e4426779e2c6">00940</a> <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* <a class="code" href="classKMdiMainFrm.html#adce3d02b058f396fdcf9e4426779e2c6" title="Returns the KMdiChildView belonging to the given caption string.">KMdiMainFrm::findWindow</a>( <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; caption )
<a name="l00941"></a>00941 {
<a name="l00942"></a>00942     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l00943"></a>00943     <span class="keywordflow">for</span> ( ; ( *it ); ++it )
<a name="l00944"></a>00944     {
<a name="l00945"></a>00945         <span class="keywordflow">if</span> ( ( *it )-&gt;caption() == caption )
<a name="l00946"></a>00946             <span class="keywordflow">return</span> ( *it );
<a name="l00947"></a>00947     }
<a name="l00948"></a>00948     <span class="keywordflow">return</span> 0L;
<a name="l00949"></a>00949 }
<a name="l00950"></a>00950 
<a name="l00951"></a>00951 <span class="comment">//================== activeWindow ===================//</span>
<a name="l00952"></a><a class="code" href="classKMdiMainFrm.html#a43b1964eda8dd6b87fbe2924bc2d5124">00952</a> <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* <a class="code" href="classKMdiMainFrm.html#a43b1964eda8dd6b87fbe2924bc2d5124" title="Returns the focused attached MDI view.">KMdiMainFrm::activeWindow</a>()
<a name="l00953"></a>00953 {
<a name="l00954"></a>00954     <span class="keywordflow">return</span> m_pCurrentWindow;
<a name="l00955"></a>00955 }
<a name="l00956"></a>00956 
<a name="l00957"></a>00957 <span class="comment">//================== windowExists ? =================//</span>
<a name="l00958"></a><a class="code" href="classKMdiMainFrm.html#a1def6783bb36b9bb1d843b371736e661">00958</a> <span class="keywordtype">bool</span> <a class="code" href="classKMdiMainFrm.html#a1def6783bb36b9bb1d843b371736e661" title="Returns whether this MDI child view is under MDI control (using addWindow() ) or not.">KMdiMainFrm::windowExists</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pWnd, ExistsAs as )
<a name="l00959"></a>00959 {
<a name="l00960"></a>00960     <span class="keywordflow">if</span> ( ( as == ToolView ) || ( as == AnyView ) )
<a name="l00961"></a>00961     {
<a name="l00962"></a>00962         <span class="keywordflow">if</span> ( m_pToolViews-&gt;contains( pWnd ) )
<a name="l00963"></a>00963             <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00964"></a>00964         <span class="keywordflow">if</span> ( as == ToolView )
<a name="l00965"></a>00965             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00966"></a>00966     }
<a name="l00967"></a>00967     
<a name="l00968"></a>00968     <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;findRef( pWnd ) != -1  )
<a name="l00969"></a>00969         <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00970"></a>00970 
<a name="l00971"></a>00971     <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00972"></a>00972 }
<a name="l00973"></a>00973 
<a name="l00974"></a><a class="code" href="classKMdiMainFrm.html#a869cd3e6c9968fee8479cc377f641a17">00974</a> <a class="codeRef" href="qpopupmenu.html">QPopupMenu</a> * <a class="code" href="classKMdiMainFrm.html#a869cd3e6c9968fee8479cc377f641a17" title="Returns a popup menu with only a title &quot;Window&quot;.">KMdiMainFrm::windowPopup</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> * pWnd, <span class="keywordtype">bool</span> bIncludeTaskbarPopup )
<a name="l00975"></a>00975 {
<a name="l00976"></a>00976     m_pWindowPopup-&gt;<a class="codeRef" href="qpopupmenu.html#clear">clear</a>();
<a name="l00977"></a>00977     <span class="keywordflow">if</span> ( bIncludeTaskbarPopup )
<a name="l00978"></a>00978     {
<a name="l00979"></a>00979         m_pWindowPopup-&gt;insertItem( i18n( <span class="stringliteral">&quot;Window&quot;</span> ), taskBarPopup( pWnd, <span class="keyword">false</span> ) );
<a name="l00980"></a>00980         m_pWindowPopup-&gt;insertSeparator();
<a name="l00981"></a>00981     }
<a name="l00982"></a>00982     <span class="keywordflow">return</span> m_pWindowPopup;
<a name="l00983"></a>00983 }
<a name="l00984"></a>00984 
<a name="l00985"></a>00985 <span class="comment">//================ taskBarPopup =================//</span>
<a name="l00986"></a><a class="code" href="classKMdiMainFrm.html#a57968ceb654b6781560a42d0a727c479">00986</a> <a class="codeRef" href="qpopupmenu.html">QPopupMenu</a>* <a class="code" href="classKMdiMainFrm.html#a57968ceb654b6781560a42d0a727c479" title="Returns a popup menu filled according to the MDI view state.">KMdiMainFrm::taskBarPopup</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pWnd, <span class="keywordtype">bool</span> <span class="comment">/*bIncludeWindowPopup*/</span> )
<a name="l00987"></a>00987 {
<a name="l00988"></a>00988     <span class="comment">//returns the g_pTaskBarPopup filled according to the KMdiChildView state</span>
<a name="l00989"></a>00989     m_pTaskBarPopup-&gt;<a class="codeRef" href="qpopupmenu.html#clear">clear</a>();
<a name="l00990"></a>00990     <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l00991"></a>00991     {
<a name="l00992"></a>00992         m_pTaskBarPopup-&gt;insertItem( i18n( <span class="stringliteral">&quot;Undock&quot;</span> ), pWnd, SLOT( detach() ) );
<a name="l00993"></a>00993         m_pTaskBarPopup-&gt;insertSeparator();
<a name="l00994"></a>00994         <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#aa1e9a385eb97176fc126346d8a4889d5" title="Tells if the window is minimized when attached to the Mdi manager, or if it is VISIBLE when &#39;floating...">isMinimized</a>() || pWnd-&gt;<a class="code" href="classKMdiChildView.html#ab571165055d79a106288053a09801459" title="Tells if the window is minimized when attached to the Mdi manager, otherwise returns false...">isMaximized</a>() )
<a name="l00995"></a>00995             m_pTaskBarPopup-&gt;insertItem( i18n( <span class="stringliteral">&quot;Restore&quot;</span> ), pWnd, SLOT( restore() ) );
<a name="l00996"></a>00996         <span class="keywordflow">if</span> ( !pWnd-&gt;<a class="code" href="classKMdiChildView.html#ab571165055d79a106288053a09801459" title="Tells if the window is minimized when attached to the Mdi manager, otherwise returns false...">isMaximized</a>() )
<a name="l00997"></a>00997             m_pTaskBarPopup-&gt;insertItem( i18n( <span class="stringliteral">&quot;Maximize&quot;</span> ), pWnd, SLOT( maximize() ) );
<a name="l00998"></a>00998         <span class="keywordflow">if</span> ( !pWnd-&gt;<a class="code" href="classKMdiChildView.html#aa1e9a385eb97176fc126346d8a4889d5" title="Tells if the window is minimized when attached to the Mdi manager, or if it is VISIBLE when &#39;floating...">isMinimized</a>() )
<a name="l00999"></a>00999             m_pTaskBarPopup-&gt;insertItem( i18n( <span class="stringliteral">&quot;Minimize&quot;</span> ), pWnd, SLOT( minimize() ) );
<a name="l01000"></a>01000     }
<a name="l01001"></a>01001     <span class="keywordflow">else</span>
<a name="l01002"></a>01002         m_pTaskBarPopup-&gt;insertItem( i18n( <span class="stringliteral">&quot;Dock&quot;</span> ), pWnd, SLOT( attach() ) );
<a name="l01003"></a>01003     m_pTaskBarPopup-&gt;insertSeparator();
<a name="l01004"></a>01004     m_pTaskBarPopup-&gt;insertItem( i18n( <span class="stringliteral">&quot;Close&quot;</span> ), pWnd, SLOT( close() ) );
<a name="l01005"></a>01005     <span class="comment">// the window has a view...get the window popup</span>
<a name="l01006"></a>01006     m_pTaskBarPopup-&gt;insertSeparator();
<a name="l01007"></a>01007     m_pTaskBarPopup-&gt;insertItem( i18n( <span class="stringliteral">&quot;Operations&quot;</span> ), windowPopup( pWnd, <span class="keyword">false</span> ) );  <span class="comment">//alvoid recursion</span>
<a name="l01008"></a>01008     <span class="keywordflow">return</span> m_pTaskBarPopup;
<a name="l01009"></a>01009 }
<a name="l01010"></a>01010 
<a name="l01011"></a>01011 <span class="keywordtype">void</span> KMdiMainFrm::slotDocCurrentChanged( <a class="codeRef" href="qwidget.html">QWidget</a>* pWidget )
<a name="l01012"></a>01012 {
<a name="l01013"></a>01013     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> * pWnd = <span class="keyword">static_cast&lt;</span><a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>*<span class="keyword">&gt;</span>( pWidget );
<a name="l01014"></a>01014     pWnd-&gt;m_bMainframesActivateViewIsPending = <span class="keyword">true</span>;
<a name="l01015"></a>01015 
<a name="l01016"></a>01016     <span class="keywordtype">bool</span> bActivateNecessary = <span class="keyword">true</span>;
<a name="l01017"></a>01017     <span class="keywordflow">if</span> ( m_pCurrentWindow != pWnd )
<a name="l01018"></a>01018         m_pCurrentWindow = pWnd;
<a name="l01019"></a>01019 
<a name="l01020"></a>01020     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l01021"></a>01021         m_pTaskBar-&gt;setActiveButton( pWnd );
<a name="l01022"></a>01022 
<a name="l01023"></a>01023     <span class="keywordflow">if</span> ( m_documentTabWidget &amp;&amp; ( m_mdiMode == KMdi::TabPageMode || m_mdiMode == KMdi::IDEAlMode ) )
<a name="l01024"></a>01024     {
<a name="l01025"></a>01025         m_documentTabWidget-&gt;showPage( pWnd );
<a name="l01026"></a>01026         pWnd-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l01027"></a>01027     }
<a name="l01028"></a>01028     <span class="keywordflow">else</span>
<a name="l01029"></a>01029     {
<a name="l01030"></a>01030         <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l01031"></a>01031         {
<a name="l01032"></a>01032             <span class="keywordflow">if</span> ( bActivateNecessary &amp;&amp; ( m_pMdi-&gt;topChild() == pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>() ) )
<a name="l01033"></a>01033                 pWnd-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l01034"></a>01034             
<a name="l01035"></a>01035             pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>()-&gt;<a class="code" href="classKMdiChildFrm.html#a38f16bf011bd4d0f2de67d459d06e66b" title="Internally called from the signal focusInEventOccurs.">raiseAndActivate</a>();
<a name="l01036"></a>01036         }
<a name="l01037"></a>01037         <span class="keywordflow">if</span> ( !pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l01038"></a>01038         {
<a name="l01039"></a>01039             <span class="keywordflow">if</span> ( bActivateNecessary )
<a name="l01040"></a>01040                 pWnd-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l01041"></a>01041             
<a name="l01042"></a>01042             m_pMdi-&gt;setTopChild( 0L ); <span class="comment">// lose focus in the mainframe window</span>
<a name="l01043"></a>01043             <span class="keywordflow">if</span> ( !pWnd-&gt;<a class="codeRef" href="qwidget.html#isActiveWindow">isActiveWindow</a>() )
<a name="l01044"></a>01044                 pWnd-&gt;<a class="codeRef" href="qwidget.html#setActiveWindow">setActiveWindow</a>();
<a name="l01045"></a>01045             
<a name="l01046"></a>01046             pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6a75d503f562ccdd585e0d27ef7f76bb" title="Calls QWidget::raise() or it&#39;s parent widget raise() if attached.">raise</a>();
<a name="l01047"></a>01047         }
<a name="l01048"></a>01048     }
<a name="l01049"></a>01049     <span class="keywordflow">if</span> ( !switching() )
<a name="l01050"></a>01050         activeWindow()-&gt;updateTimeStamp();
<a name="l01051"></a>01051     emit collapseOverlapContainers();
<a name="l01052"></a>01052     pWnd-&gt;m_bMainframesActivateViewIsPending = <span class="keyword">false</span>;
<a name="l01053"></a>01053 }
<a name="l01054"></a>01054 
<a name="l01055"></a>01055 
<a name="l01056"></a><a class="code" href="classKMdiMainFrm.html#a6cb659291a3a9a9d63cd9b40c7e16108">01056</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a71008f9cc9304e0ac10404ec6ae3d541" title="Activates the view with the tab page index (TabPage mode only)">KMdiMainFrm::activateView</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pWnd )
<a name="l01057"></a>01057 {
<a name="l01058"></a>01058     pWnd-&gt;m_bMainframesActivateViewIsPending = <span class="keyword">true</span>;
<a name="l01059"></a>01059 
<a name="l01060"></a>01060     <span class="keywordtype">bool</span> bActivateNecessary = <span class="keyword">true</span>;
<a name="l01061"></a>01061     <span class="keywordflow">if</span> ( m_pCurrentWindow != pWnd )
<a name="l01062"></a>01062         m_pCurrentWindow = pWnd;
<a name="l01063"></a>01063     <span class="keywordflow">else</span>
<a name="l01064"></a>01064     {
<a name="l01065"></a>01065         bActivateNecessary = <span class="keyword">false</span>;
<a name="l01066"></a>01066         <span class="comment">// if this method is called as answer to view-&gt;activate(),</span>
<a name="l01067"></a>01067         <span class="comment">// interrupt it because it&#39;s not necessary</span>
<a name="l01068"></a>01068         pWnd-&gt;m_bInterruptActivation = <span class="keyword">true</span>;
<a name="l01069"></a>01069     }
<a name="l01070"></a>01070 
<a name="l01071"></a>01071     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l01072"></a>01072         m_pTaskBar-&gt;setActiveButton( pWnd );
<a name="l01073"></a>01073 
<a name="l01074"></a>01074     <span class="keywordflow">if</span> ( m_documentTabWidget &amp;&amp; m_mdiMode == KMdi::TabPageMode || m_mdiMode == KMdi::IDEAlMode )
<a name="l01075"></a>01075     {
<a name="l01076"></a>01076         m_documentTabWidget-&gt;showPage( pWnd );
<a name="l01077"></a>01077         pWnd-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l01078"></a>01078     }
<a name="l01079"></a>01079     <span class="keywordflow">else</span>
<a name="l01080"></a>01080     {
<a name="l01081"></a>01081         <span class="keywordflow">if</span> ( pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l01082"></a>01082         {
<a name="l01083"></a>01083             <span class="keywordflow">if</span> ( bActivateNecessary &amp;&amp; ( m_pMdi-&gt;topChild() == pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>() ) )
<a name="l01084"></a>01084                 pWnd-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l01085"></a>01085             
<a name="l01086"></a>01086             pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>() -&gt;<a class="code" href="classKMdiChildFrm.html#a38f16bf011bd4d0f2de67d459d06e66b" title="Internally called from the signal focusInEventOccurs.">raiseAndActivate</a>();
<a name="l01087"></a>01087         }
<a name="l01088"></a>01088         <span class="keywordflow">if</span> ( !pWnd-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l01089"></a>01089         {
<a name="l01090"></a>01090             <span class="keywordflow">if</span> ( bActivateNecessary )
<a name="l01091"></a>01091                 pWnd-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l01092"></a>01092             
<a name="l01093"></a>01093             m_pMdi-&gt;setTopChild( 0L ); <span class="comment">// lose focus in the mainframe window</span>
<a name="l01094"></a>01094             <span class="keywordflow">if</span> ( !pWnd-&gt;<a class="codeRef" href="qwidget.html#isActiveWindow">isActiveWindow</a>() )
<a name="l01095"></a>01095                 pWnd-&gt;<a class="codeRef" href="qwidget.html#setActiveWindow">setActiveWindow</a>();
<a name="l01096"></a>01096             
<a name="l01097"></a>01097             pWnd-&gt;<a class="code" href="classKMdiChildView.html#a6a75d503f562ccdd585e0d27ef7f76bb" title="Calls QWidget::raise() or it&#39;s parent widget raise() if attached.">raise</a>();
<a name="l01098"></a>01098         }
<a name="l01099"></a>01099     }
<a name="l01100"></a>01100 
<a name="l01101"></a>01101     emit collapseOverlapContainers();
<a name="l01102"></a>01102 
<a name="l01103"></a>01103     pWnd-&gt;m_bMainframesActivateViewIsPending = <span class="keyword">false</span>;
<a name="l01104"></a>01104 }
<a name="l01105"></a>01105 
<a name="l01106"></a><a class="code" href="classKMdiMainFrm.html#a467105fba670936f2e3fdc905f52b708">01106</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a467105fba670936f2e3fdc905f52b708" title="Activates the MDI view (see activateView() ) and popups the taskBar popup menu (see taskBarPopup() )...">KMdiMainFrm::taskbarButtonRightClicked</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pWnd )
<a name="l01107"></a>01107 {
<a name="l01108"></a>01108     activateView( pWnd ); <span class="comment">// set focus</span>
<a name="l01109"></a>01109     <span class="comment">//QApplication::sendPostedEvents();</span>
<a name="l01110"></a>01110     taskBarPopup( pWnd, <span class="keyword">true</span> ) -&gt;popup( <a class="codeRef" href="qcursor.html#pos">QCursor::pos</a>() );
<a name="l01111"></a>01111 }
<a name="l01112"></a>01112 
<a name="l01113"></a><a class="code" href="classKMdiMainFrm.html#a6d5c59c2023543819855bec79e9f21e8">01113</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a6d5c59c2023543819855bec79e9f21e8" title="Someone wants that the MDI view to be closed.">KMdiMainFrm::childWindowCloseRequest</a>( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pWnd )
<a name="l01114"></a>01114 {
<a name="l01115"></a>01115     <a class="code" href="classKMdiViewCloseEvent.html" title="Internal class.">KMdiViewCloseEvent</a> * ce = <span class="keyword">new</span> <a class="code" href="classKMdiViewCloseEvent.html" title="Internal class.">KMdiViewCloseEvent</a>( pWnd );
<a name="l01116"></a>01116     <a class="codeRef" href="qapplication.html#postEvent">QApplication::postEvent</a>( <span class="keyword">this</span>, ce );
<a name="l01117"></a>01117 }
<a name="l01118"></a>01118 
<a name="l01119"></a><a class="code" href="classKMdiMainFrm.html#ab802078e29b8a063f295c3739f3feda9">01119</a> <span class="keywordtype">bool</span> <a class="code" href="classKMdiMainFrm.html#ab802078e29b8a063f295c3739f3feda9" title="Catches certain Qt events and processes it here.">KMdiMainFrm::event</a>( <a class="codeRef" href="qevent.html">QEvent</a>* e )
<a name="l01120"></a>01120 {
<a name="l01121"></a>01121     <span class="keywordflow">if</span> ( e-&gt;<a class="codeRef" href="qevent.html#type">type</a>() == QEvent::User )
<a name="l01122"></a>01122     {
<a name="l01123"></a>01123         <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> * pWnd = ( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* ) ( ( <a class="code" href="classKMdiViewCloseEvent.html" title="Internal class.">KMdiViewCloseEvent</a>* ) e )-&gt;data();
<a name="l01124"></a>01124         <span class="keywordflow">if</span> ( pWnd != 0L )
<a name="l01125"></a>01125             closeWindow( pWnd );
<a name="l01126"></a>01126         <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l01127"></a>01127         <span class="comment">// A little hack: If MDI child views are moved implicietly by moving</span>
<a name="l01128"></a>01128         <span class="comment">// the main widget they should know this too. Unfortunately there seems to</span>
<a name="l01129"></a>01129         <span class="comment">// be no way to catch the move start / move stop situations for the main</span>
<a name="l01130"></a>01130         <span class="comment">// widget in a clean way. (There is no MouseButtonPress/Release or</span>
<a name="l01131"></a>01131         <span class="comment">// something like that.) Therefore we do the following: When we get the</span>
<a name="l01132"></a>01132         <span class="comment">// &quot;first&quot; move event we start a timer and interprete it as &quot;drag begin&quot;.</span>
<a name="l01133"></a>01133         <span class="comment">// If we get the next move event and the timer is running we restart the</span>
<a name="l01134"></a>01134         <span class="comment">// timer and don&#39;t do anything else. If the timer elapses (this meens we</span>
<a name="l01135"></a>01135         <span class="comment">// haven&#39;t had any move event for a while) we interprete this as &quot;drag</span>
<a name="l01136"></a>01136         <span class="comment">// end&quot;. If the moving didn&#39;t stop actually, we will later get another</span>
<a name="l01137"></a>01137         <span class="comment">// &quot;drag begin&quot;, so we get a drag end too much, but this would be the same</span>
<a name="l01138"></a>01138         <span class="comment">// as if the user would stop moving for a little while.</span>
<a name="l01139"></a>01139         <span class="comment">// Actually we seem to be lucky that the timer does not elapse while we</span>
<a name="l01140"></a>01140         <span class="comment">// are moving -&gt; so we have no obsolete drag end / begin</span>
<a name="l01141"></a>01141     }
<a name="l01142"></a>01142     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( isVisible() &amp;&amp; e-&gt;<a class="codeRef" href="qevent.html#type">type</a>() == QEvent::Move )
<a name="l01143"></a>01143     {
<a name="l01144"></a>01144         <span class="keywordflow">if</span> ( m_pDragEndTimer-&gt;isActive() )
<a name="l01145"></a>01145         {
<a name="l01146"></a>01146             <span class="comment">// this is not the first move -&gt; stop old timer</span>
<a name="l01147"></a>01147             m_pDragEndTimer-&gt;stop();
<a name="l01148"></a>01148         }
<a name="l01149"></a>01149         <span class="keywordflow">else</span>
<a name="l01150"></a>01150         {
<a name="l01151"></a>01151             <span class="comment">// this is the first move -&gt; send the drag begin to all concerned views</span>
<a name="l01152"></a>01152             <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l01153"></a>01153             <span class="keywordflow">for</span> ( ; ( *it ); ++it )
<a name="l01154"></a>01154             {
<a name="l01155"></a>01155                 <a class="code" href="classKMdiChildFrmDragBeginEvent.html" title="a QCustomEvent for begin of dragging This special event will be useful, to inform view about child fr...">KMdiChildFrmDragBeginEvent</a> dragBeginEvent( 0L );
<a name="l01156"></a>01156                 <a class="codeRef" href="qapplication.html#sendEvent">QApplication::sendEvent</a>( ( *it ), &amp;dragBeginEvent );
<a name="l01157"></a>01157             }
<a name="l01158"></a>01158         }
<a name="l01159"></a>01159         m_pDragEndTimer-&gt;start( 200, <span class="keyword">true</span> ); <span class="comment">// single shot after 200 ms</span>
<a name="l01160"></a>01160     }
<a name="l01161"></a>01161 
<a name="l01162"></a>01162     <span class="keywordflow">return</span> DockMainWindow::event( e );
<a name="l01163"></a>01163 }
<a name="l01164"></a>01164 
<a name="l01165"></a><a class="code" href="classKMdiMainFrm.html#a692cdb3ac492738b2317a6a4dd54aac7">01165</a> <span class="keywordtype">bool</span> <a class="code" href="classKMdiMainFrm.html#a692cdb3ac492738b2317a6a4dd54aac7">KMdiMainFrm::eventFilter</a>( <a class="codeRef" href="qobject.html">QObject</a> * <span class="comment">/*obj*/</span>, <a class="codeRef" href="qevent.html">QEvent</a> *e )
<a name="l01166"></a>01166 {
<a name="l01167"></a>01167     <span class="keywordflow">if</span> ( e-&gt;<a class="codeRef" href="qevent.html#type">type</a>() == QEvent::Resize &amp;&amp; m_mdiMode == KMdi::ToplevelMode )
<a name="l01168"></a>01168     {
<a name="l01169"></a>01169         verifyToplevelHeight();
<a name="l01170"></a>01170         <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">//let the rest of the resize magic do its work</span>
<a name="l01171"></a>01171     }
<a name="l01172"></a>01172     
<a name="l01173"></a>01173     <span class="keywordflow">if</span> ( e-&gt;<a class="codeRef" href="qevent.html#type">type</a>() == QEvent::FocusIn )
<a name="l01174"></a>01174     {
<a name="l01175"></a>01175         <a class="codeRef" href="qfocusevent.html">QFocusEvent</a> * pFE = ( <a class="codeRef" href="qfocusevent.html">QFocusEvent</a>* ) e;
<a name="l01176"></a>01176         <span class="keywordflow">if</span> ( pFE-&gt;<a class="codeRef" href="qfocusevent.html#reason">reason</a>() == QFocusEvent::ActiveWindow )
<a name="l01177"></a>01177         {
<a name="l01178"></a>01178             <span class="keywordflow">if</span> ( m_pCurrentWindow &amp;&amp; !m_pCurrentWindow-&gt;isHidden() &amp;&amp;
<a name="l01179"></a>01179                  !m_pCurrentWindow-&gt;isAttached() &amp;&amp; m_pMdi-&gt;topChild() )
<a name="l01180"></a>01180             {
<a name="l01181"></a>01181                 <span class="keywordflow">return</span> <span class="keyword">true</span>;   <span class="comment">// eat the event</span>
<a name="l01182"></a>01182             }
<a name="l01183"></a>01183         }
<a name="l01184"></a>01184         <span class="keywordflow">if</span> ( m_pMdi )
<a name="l01185"></a>01185         {
<a name="l01186"></a>01186             <span class="keyword">static</span> <span class="keywordtype">bool</span> focusTCIsPending = <span class="keyword">false</span>;
<a name="l01187"></a>01187             <span class="keywordflow">if</span> ( !focusTCIsPending &amp;&amp; m_mdiMode == KMdi::ChildframeMode )
<a name="l01188"></a>01188             {
<a name="l01189"></a>01189                 focusTCIsPending = <span class="keyword">true</span>;
<a name="l01190"></a>01190                 m_pMdi-&gt;focusTopChild();
<a name="l01191"></a>01191                 focusTCIsPending = <span class="keyword">false</span>;
<a name="l01192"></a>01192             }
<a name="l01193"></a>01193         }
<a name="l01194"></a>01194     }
<a name="l01195"></a>01195     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( e-&gt;<a class="codeRef" href="qevent.html#type">type</a>() == QEvent::KeyRelease )
<a name="l01196"></a>01196     {
<a name="l01197"></a>01197         <span class="keywordflow">if</span> ( switching() )
<a name="l01198"></a>01198         {
<a name="l01199"></a>01199             KAction * a = actionCollection() -&gt;action( <span class="stringliteral">&quot;view_last_window&quot;</span> ) ;
<a name="l01200"></a>01200             <span class="keywordflow">if</span> ( a )
<a name="l01201"></a>01201             {
<a name="l01202"></a>01202                 <span class="keyword">const</span> KShortcut cut( a-&gt;shortcut() );
<a name="l01203"></a>01203                 <span class="keyword">const</span> KKeySequence&amp; seq = cut.seq( 0 );
<a name="l01204"></a>01204                 <span class="keyword">const</span> KKey&amp; key = seq.key( 0 );
<a name="l01205"></a>01205                 <span class="keywordtype">int</span> modFlags = key.modFlags();
<a name="l01206"></a>01206                 <span class="keywordtype">int</span> state = ( ( <a class="codeRef" href="qkeyevent.html">QKeyEvent</a> * ) e ) -&gt;state();
<a name="l01207"></a>01207                 KKey key2( ( <a class="codeRef" href="qkeyevent.html">QKeyEvent</a> * ) e );
<a name="l01208"></a>01208 
<a name="l01213"></a>01213                 <span class="keywordflow">if</span> ( state != ( ( <a class="codeRef" href="qkeyevent.html">QKeyEvent</a> * ) e ) -&gt;stateAfter() &amp;&amp;
<a name="l01214"></a>01214                         ( ( modFlags &amp; KKey::CTRL ) &gt; 0 ) == ( ( state &amp; Qt::ControlButton ) &gt; 0 ) &amp;&amp;
<a name="l01215"></a>01215                         ( ( modFlags &amp; KKey::ALT ) &gt; 0 ) == ( ( state &amp; Qt::AltButton ) &gt; 0 ) &amp;&amp;
<a name="l01216"></a>01216                         ( ( modFlags &amp; KKey::WIN ) &gt; 0 ) == ( ( state &amp; Qt::MetaButton ) &gt; 0 ) )
<a name="l01217"></a>01217                 {
<a name="l01218"></a>01218                     activeWindow() -&gt;updateTimeStamp();
<a name="l01219"></a>01219                     setSwitching( <span class="keyword">false</span> );
<a name="l01220"></a>01220                 }
<a name="l01221"></a>01221                 <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l01222"></a>01222             }
<a name="l01223"></a>01223             <span class="keywordflow">else</span>
<a name="l01224"></a>01224             {
<a name="l01225"></a>01225                 kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;KAction( \&quot;view_last_window\&quot;) not found.&quot;</span> &lt;&lt; endl;
<a name="l01226"></a>01226             }
<a name="l01227"></a>01227         }
<a name="l01228"></a>01228     }
<a name="l01229"></a>01229     <span class="keywordflow">return</span> <span class="keyword">false</span>;  <span class="comment">// standard event processing</span>
<a name="l01230"></a>01230 }
<a name="l01231"></a>01231 
<a name="l01235"></a><a class="code" href="classKMdiMainFrm.html#acafd8f421b95a1f6f510b9ae60003c32">01235</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#acafd8f421b95a1f6f510b9ae60003c32" title="Close all views.">KMdiMainFrm::closeAllViews</a>()
<a name="l01236"></a>01236 {
<a name="l01237"></a>01237     <span class="comment">//save the children first to a list, as removing invalidates our iterator</span>
<a name="l01238"></a>01238     <a class="codeRef" href="qvaluelist.html">QValueList&lt;KMdiChildView*&gt;</a> children;
<a name="l01239"></a>01239     <span class="keywordflow">for</span> ( <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> * w = m_pDocumentViews-&gt;first();w;w = m_pDocumentViews-&gt;next() )
<a name="l01240"></a>01240     {
<a name="l01241"></a>01241         children.<a class="codeRef" href="qvaluelist.html#append">append</a>( w );
<a name="l01242"></a>01242     }
<a name="l01243"></a>01243     <a class="codeRef" href="qvaluelistiterator.html">QValueListIterator&lt;KMdiChildView *&gt;</a> childIt;
<a name="l01244"></a>01244     <span class="keywordflow">for</span> ( childIt = children.<a class="codeRef" href="qvaluelist.html#begin">begin</a>(); childIt != children.<a class="codeRef" href="qvaluelist.html#end">end</a>(); ++childIt )
<a name="l01245"></a>01245     {
<a name="l01246"></a>01246         ( *childIt )-&gt;close();
<a name="l01247"></a>01247     }
<a name="l01248"></a>01248 }
<a name="l01249"></a>01249 
<a name="l01250"></a>01250 
<a name="l01254"></a><a class="code" href="classKMdiMainFrm.html#a204ed5479c5d783bdb8ffaaca5755870">01254</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a204ed5479c5d783bdb8ffaaca5755870" title="Iconfiy all views.">KMdiMainFrm::iconifyAllViews</a>()
<a name="l01255"></a>01255 {
<a name="l01256"></a>01256     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;minimizing all the views&quot;</span> &lt;&lt; endl;
<a name="l01257"></a>01257     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l01258"></a>01258     <span class="keywordflow">for</span> ( ; ( *it ); ++it )
<a name="l01259"></a>01259         ( *it )-&gt;minimize();
<a name="l01260"></a>01260 }
<a name="l01261"></a>01261 
<a name="l01265"></a><a class="code" href="classKMdiMainFrm.html#a6a4a3dd2fa4b7e5d043b24003f53e7da">01265</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a6a4a3dd2fa4b7e5d043b24003f53e7da" title="Closes the view of the active (topchild) window.">KMdiMainFrm::closeActiveView</a>()
<a name="l01266"></a>01266 {
<a name="l01267"></a>01267     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;closing the active view&quot;</span> &lt;&lt; endl;
<a name="l01268"></a>01268     <span class="keywordflow">if</span> ( m_pCurrentWindow )
<a name="l01269"></a>01269         m_pCurrentWindow-&gt;close();
<a name="l01270"></a>01270 }
<a name="l01271"></a>01271 
<a name="l01273"></a><a class="code" href="classKMdiMainFrm.html#a21da19b228cf710c14a84ed1c1aaa4c9">01273</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a21da19b228cf710c14a84ed1c1aaa4c9" title="find the root dockwidgets and store their geometry">KMdiMainFrm::findRootDockWidgets</a>( <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a>* rootDockWidgetList, <a class="codeRef" href="qvaluelist.html">QValueList&lt;QRect&gt;</a>* positionList )
<a name="l01274"></a>01274 {
<a name="l01275"></a>01275     <span class="comment">//nothing is valid</span>
<a name="l01276"></a>01276     <span class="keywordflow">if</span> ( !rootDockWidgetList &amp;&amp; !positionList )
<a name="l01277"></a>01277         return ;
<a name="l01278"></a>01278 
<a name="l01279"></a>01279     <span class="comment">// since we set some windows to toplevel, we must consider the window manager&#39;s window frame</span>
<a name="l01280"></a>01280     <span class="keyword">const</span> <span class="keywordtype">int</span> frameBorderWidth = 7;  <span class="comment">// @todo: Can we / do we need to ask the window manager?</span>
<a name="l01281"></a>01281     <span class="keyword">const</span> <span class="keywordtype">int</span> windowTitleHeight = 10; <span class="comment">// @todo:    -&quot;-</span>
<a name="l01282"></a>01282 
<a name="l01283"></a>01283     <a class="codeRef" href="qobjectlist.html">QObjectList</a>* pObjList = queryList( <span class="stringliteral">&quot;KDockWidget&quot;</span> );
<a name="l01284"></a>01284     <span class="keywordflow">if</span> ( pObjList-&gt;isEmpty() )
<a name="l01285"></a>01285         pObjList = queryList( <span class="stringliteral">&quot;KDockWidget_Compat::KDockWidget&quot;</span> );
<a name="l01286"></a>01286 
<a name="l01287"></a>01287     QObjectListIt it( *pObjList );
<a name="l01288"></a>01288     <span class="comment">// for all dockwidgets (which are children of this mainwindow)</span>
<a name="l01289"></a>01289     <span class="keywordflow">while</span> ( ( *it ) )
<a name="l01290"></a>01290     {
<a name="l01291"></a>01291         KDockWidget* dockWindow = 0L; <span class="comment">/* pDockW */</span>
<a name="l01292"></a>01292         KDockWidget* rootDockWindow = 0L; <span class="comment">/* pRootDockWindow */</span>
<a name="l01293"></a>01293         KDockWidget* undockCandidate = 0L; <span class="comment">/* pUndockCandidate */</span>
<a name="l01294"></a>01294         <a class="codeRef" href="qwidget.html">QWidget</a>* pW = <span class="keyword">static_cast&lt;</span><a class="codeRef" href="qwidget.html">QWidget</a>*<span class="keyword">&gt;</span>( ( *it ) );
<a name="l01295"></a>01295         
<a name="l01296"></a>01296         <span class="comment">// find the oldest ancestor of the current dockwidget that can be undocked</span>
<a name="l01297"></a>01297         <span class="keywordflow">while</span> ( !pW-&gt;<a class="codeRef" href="qwidget.html#isTopLevel">isTopLevel</a>() )
<a name="l01298"></a>01298         {
<a name="l01299"></a>01299             <span class="keywordflow">if</span> ( ::qt_cast&lt;KDockWidget*&gt;( pW ) ||  pW-&gt;inherits( <span class="stringliteral">&quot;KDockWidget_Compat::KDockWidget&quot;</span> ) )
<a name="l01300"></a>01300             {
<a name="l01301"></a>01301                 undockCandidate = <span class="keyword">static_cast&lt;</span>KDockWidget*<span class="keyword">&gt;</span>( pW );
<a name="l01302"></a>01302                 <span class="keywordflow">if</span> ( undockCandidate-&gt;enableDocking() != KDockWidget::DockNone )
<a name="l01303"></a>01303                     rootDockWindow = undockCandidate;
<a name="l01304"></a>01304             }
<a name="l01305"></a>01305             pW = pW-&gt;<a class="codeRef" href="qwidget.html#parentWidget">parentWidget</a>();
<a name="l01306"></a>01306         }
<a name="l01307"></a>01307         
<a name="l01308"></a>01308         <span class="keywordflow">if</span> ( rootDockWindow )
<a name="l01309"></a>01309         {
<a name="l01310"></a>01310             <span class="comment">// if that oldest ancestor is not already in the list, append it</span>
<a name="l01311"></a>01311             <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;
<a name="l01312"></a>01312             <span class="keywordflow">if</span> ( !rootDockWidgetList-&gt;<a class="codeRef" href="qptrlist.html#isEmpty">isEmpty</a>() )
<a name="l01313"></a>01313             {
<a name="l01314"></a>01314                 <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KDockWidget&gt;</a> it2( *rootDockWidgetList );
<a name="l01315"></a>01315                 <span class="keywordflow">for</span> ( ; it2.<a class="codeRef" href="qptrlistiterator.html#current">current</a>() &amp;&amp; !found; ++it2 )
<a name="l01316"></a>01316                 {
<a name="l01317"></a>01317                     dockWindow = it2.<a class="codeRef" href="qptrlistiterator.html#current">current</a>();
<a name="l01318"></a>01318                     <span class="keywordflow">if</span> ( dockWindow == rootDockWindow )
<a name="l01319"></a>01319                         found = <span class="keyword">true</span>;
<a name="l01320"></a>01320                 }
<a name="l01321"></a>01321             }
<a name="l01322"></a>01322             
<a name="l01323"></a>01323             <span class="keywordflow">if</span> ( !found || rootDockWidgetList-&gt;<a class="codeRef" href="qptrlist.html#isEmpty">isEmpty</a>() )
<a name="l01324"></a>01324             {
<a name="l01325"></a>01325                     rootDockWidgetList-&gt;<a class="codeRef" href="qptrlist.html#append">append</a>( dockWindow );
<a name="l01326"></a>01326                     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Appending &quot;</span> &lt;&lt; rootDockWindow &lt;&lt; <span class="stringliteral">&quot; to our list of &quot;</span> &lt;&lt;
<a name="l01327"></a>01327                         <span class="stringliteral">&quot;root dock windows&quot;</span> &lt;&lt; endl;
<a name="l01328"></a>01328                     <a class="codeRef" href="qpoint.html">QPoint</a> p = rootDockWindow-&gt;mapToGlobal( rootDockWindow-&gt;pos() ) - rootDockWindow-&gt;pos();
<a name="l01329"></a>01329                     <a class="codeRef" href="qrect.html">QRect</a> r( p.<a class="codeRef" href="qpoint.html#x">x</a>(), p.<a class="codeRef" href="qpoint.html#y">y</a>() + m_undockPositioningOffset.y(),
<a name="l01330"></a>01330                              rootDockWindow-&gt;width() - windowTitleHeight - frameBorderWidth * 2,
<a name="l01331"></a>01331                              rootDockWindow-&gt;height() - windowTitleHeight - frameBorderWidth * 2 );
<a name="l01332"></a>01332                     positionList-&gt;<a class="codeRef" href="qvaluelist.html#append">append</a>( r );
<a name="l01333"></a>01333             }
<a name="l01334"></a>01334         }
<a name="l01335"></a>01335         ++it;
<a name="l01336"></a>01336     }
<a name="l01337"></a>01337     <span class="keyword">delete</span> pObjList;
<a name="l01338"></a>01338 }
<a name="l01339"></a>01339 
<a name="l01343"></a><a class="code" href="classKMdiMainFrm.html#a836d8978b024d964a389534edf12e9fb">01343</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a836d8978b024d964a389534edf12e9fb" title="Undocks all view windows (unix-like)">KMdiMainFrm::switchToToplevelMode</a>()
<a name="l01344"></a>01344 {
<a name="l01345"></a>01345     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::ToplevelMode )
<a name="l01346"></a>01346     {
<a name="l01347"></a>01347         emit mdiModeHasBeenChangedTo( KMdi::ToplevelMode );
<a name="l01348"></a>01348         return ;
<a name="l01349"></a>01349     }
<a name="l01350"></a>01350 
<a name="l01351"></a>01351     KMdi::MdiMode oldMdiMode = m_mdiMode;
<a name="l01352"></a>01352 
<a name="l01353"></a>01353     <span class="keyword">const</span> <span class="keywordtype">int</span> frameBorderWidth = 7;  <span class="comment">// @todo: Can we / do we need to ask the window manager?</span>
<a name="l01354"></a>01354     setUndockPositioningOffset( <a class="codeRef" href="qpoint.html">QPoint</a>( 0, ( m_pTaskBar ? m_pTaskBar-&gt;height() : 0 ) + frameBorderWidth ) );
<a name="l01355"></a>01355 
<a name="l01356"></a>01356     <span class="comment">// 1.) select the dockwidgets to be undocked and store their geometry</span>
<a name="l01357"></a>01357     <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a> rootDockWidgetList;
<a name="l01358"></a>01358     <a class="codeRef" href="qvaluelist.html">QValueList&lt;QRect&gt;</a> positionList;
<a name="l01359"></a>01359 
<a name="l01360"></a>01360     <span class="comment">// 2.) undock the MDI views of KMDI</span>
<a name="l01361"></a>01361     <span class="keywordflow">switch</span>( oldMdiMode )
<a name="l01362"></a>01362     {
<a name="l01363"></a>01363     <span class="keywordflow">case</span> KMdi::ChildframeMode:
<a name="l01364"></a>01364         finishChildframeMode();
<a name="l01365"></a>01365         <span class="keywordflow">break</span>;
<a name="l01366"></a>01366     <span class="keywordflow">case</span> KMdi::TabPageMode:
<a name="l01367"></a>01367         finishTabPageMode();
<a name="l01368"></a>01368         <span class="keywordflow">break</span>;
<a name="l01369"></a>01369     <span class="keywordflow">case</span> KMdi::IDEAlMode:
<a name="l01370"></a>01370         finishIDEAlMode();
<a name="l01371"></a>01371         findRootDockWidgets( &amp;rootDockWidgetList, &amp;positionList );
<a name="l01372"></a>01372         <span class="keywordflow">break</span>;
<a name="l01373"></a>01373     <span class="keywordflow">default</span>:
<a name="l01374"></a>01374         <span class="keywordflow">break</span>; <span class="comment">//do nothing</span>
<a name="l01375"></a>01375     }
<a name="l01376"></a>01376     
<a name="l01377"></a>01377     <span class="comment">// 3.) undock all these found oldest ancestors (being KDockWidgets)</span>
<a name="l01378"></a>01378     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KDockWidget&gt;</a> kdwit( rootDockWidgetList );
<a name="l01379"></a>01379     <span class="keywordflow">for</span> ( ; ( *kdwit ); ++kdwit )
<a name="l01380"></a>01380         ( *kdwit )-&gt;undock();
<a name="l01381"></a>01381 
<a name="l01382"></a>01382     <span class="comment">// 4.) recreate the MDI childframe area and hide it</span>
<a name="l01383"></a>01383     <span class="keywordflow">if</span> ( oldMdiMode == KMdi::TabPageMode || oldMdiMode == KMdi::IDEAlMode )
<a name="l01384"></a>01384     {
<a name="l01385"></a>01385         <span class="keywordflow">if</span> ( !m_pDockbaseAreaOfDocumentViews )
<a name="l01386"></a>01386         {
<a name="l01387"></a>01387             m_pDockbaseAreaOfDocumentViews = createDockWidget( <span class="stringliteral">&quot;mdiAreaCover&quot;</span>, <a class="codeRef" href="qpixmap.html">QPixmap</a>(), 0L, <span class="stringliteral">&quot;mdi_area_cover&quot;</span> );
<a name="l01388"></a>01388             m_pDockbaseAreaOfDocumentViews-&gt;setDockWindowTransient( <span class="keyword">this</span>, <span class="keyword">true</span> );
<a name="l01389"></a>01389             m_pDockbaseAreaOfDocumentViews-&gt;setEnableDocking( KDockWidget::DockNone );
<a name="l01390"></a>01390             m_pDockbaseAreaOfDocumentViews-&gt;setDockSite( KDockWidget::DockCorner );
<a name="l01391"></a>01391             m_pDockbaseAreaOfDocumentViews-&gt;setWidget( m_pMdi );
<a name="l01392"></a>01392         }
<a name="l01393"></a>01393         <span class="comment">// set this dock to main view</span>
<a name="l01394"></a>01394         setView( m_pDockbaseAreaOfDocumentViews );
<a name="l01395"></a>01395         setMainDockWidget( m_pDockbaseAreaOfDocumentViews );
<a name="l01396"></a>01396     }
<a name="l01397"></a>01397     <span class="comment">//  QApplication::sendPostedEvents(); //why do we need to empty the event queue?</span>
<a name="l01398"></a>01398     <span class="keywordflow">if</span> ( !parentWidget() )
<a name="l01399"></a>01399     {
<a name="l01400"></a>01400         <span class="comment">//if we don&#39;t have a parent widget ( which i expect we wouldn&#39;t )</span>
<a name="l01401"></a>01401         <span class="comment">//make sure we take into account the size of the docks provided by</span>
<a name="l01402"></a>01402         <span class="comment">//QMainWindow</span>
<a name="l01403"></a>01403         <span class="keywordtype">int</span> topDockHeight = topDock() ? topDock()-&gt;height() : 0;
<a name="l01404"></a>01404         <span class="keywordtype">int</span> bottomDockHeight = bottomDock() ? bottomDock()-&gt;height() : 0;
<a name="l01405"></a>01405         <span class="keywordtype">int</span> menuBarHeight = hasMenuBar() ? menuBar()-&gt;height() : 0;
<a name="l01406"></a>01406         <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() != 0 )
<a name="l01407"></a>01407             setFixedHeight( height() - m_pDockbaseAreaOfDocumentViews-&gt;height() );
<a name="l01408"></a>01408         <span class="keywordflow">else</span>
<a name="l01409"></a>01409         {
<a name="l01410"></a>01410             kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;height is: &quot;</span> &lt;&lt; height() &lt;&lt; endl;
<a name="l01411"></a>01411             kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;top dock height: &quot;</span> &lt;&lt; topDockHeight &lt;&lt; endl;
<a name="l01412"></a>01412             kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;bottom dock height: &quot;</span> &lt;&lt; bottomDockHeight &lt;&lt; endl;
<a name="l01413"></a>01413             kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;menu bar height: &quot;</span> &lt;&lt; menuBarHeight &lt;&lt; endl;
<a name="l01414"></a>01414             kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;dock base area height: &quot;</span> &lt;&lt; m_pDockbaseAreaOfDocumentViews-&gt;height() &lt;&lt; endl;
<a name="l01415"></a>01415             setFixedHeight( topDockHeight + menuBarHeight );
<a name="l01416"></a>01416         }
<a name="l01417"></a>01417     } 
<a name="l01418"></a>01418    
<a name="l01419"></a>01419     <span class="comment">//FIXME although i don&#39;t know what to fix</span>
<a name="l01420"></a>01420     <span class="comment">// 5. show the child views again</span>
<a name="l01421"></a>01421     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> kmdicvit( *m_pDocumentViews );
<a name="l01422"></a>01422     <span class="keywordflow">for</span> ( kmdicvit.<a class="codeRef" href="qptrlistiterator.html#toFirst">toFirst</a>(); ( *kmdicvit ); ++kmdicvit )
<a name="l01423"></a>01423     {
<a name="l01424"></a>01424 <span class="preprocessor">#ifdef Q_WS_X11</span>
<a name="l01425"></a>01425 <span class="preprocessor"></span>        XSetTransientForHint( qt_xdisplay(), ( *kmdicvit )-&gt;winId(), winId() );
<a name="l01426"></a>01426 <span class="preprocessor">#endif</span>
<a name="l01427"></a>01427 <span class="preprocessor"></span>        ( *kmdicvit )-&gt;show();
<a name="l01428"></a>01428     }
<a name="l01429"></a>01429 
<a name="l01430"></a>01430     <span class="comment">// 6.) reset all memorized positions of the undocked ones and show them again</span>
<a name="l01431"></a>01431     <a class="codeRef" href="qvaluelist.html">QValueList&lt;QRect&gt;::Iterator</a> qvlqrit;
<a name="l01432"></a>01432     <a class="codeRef" href="qvaluelist.html">QValueList&lt;QRect&gt;::Iterator</a> qvlEnd = positionList.<a class="codeRef" href="qvaluelist.html#end">end</a>();
<a name="l01433"></a>01433     <span class="keywordflow">for</span> ( kmdicvit.<a class="codeRef" href="qptrlistiterator.html#toFirst">toFirst</a>(), qvlqrit = positionList.<a class="codeRef" href="qvaluelist.html#begin">begin</a>() ; ( *kmdicvit ) &amp;&amp; qvlqrit != qvlEnd; ++kmdicvit, ++qvlqrit )
<a name="l01434"></a>01434     {
<a name="l01435"></a>01435         ( *kmdicvit )-&gt;setGeometry( ( *qvlqrit ) );
<a name="l01436"></a>01436         ( *kmdicvit )-&gt;show();
<a name="l01437"></a>01437     }
<a name="l01438"></a>01438 
<a name="l01439"></a>01439     m_pDockbaseAreaOfDocumentViews-&gt;setDockSite( KDockWidget::DockNone );
<a name="l01440"></a>01440     m_mdiMode = KMdi::ToplevelMode;
<a name="l01441"></a>01441     
<a name="l01442"></a>01442     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Switch to toplevel mode completed&quot;</span> &lt;&lt; endl;
<a name="l01443"></a>01443     emit mdiModeHasBeenChangedTo( KMdi::ToplevelMode );
<a name="l01444"></a>01444 
<a name="l01445"></a>01445 }
<a name="l01446"></a>01446 
<a name="l01447"></a>01447 <span class="keywordtype">void</span> KMdiMainFrm::finishToplevelMode()
<a name="l01448"></a>01448 {
<a name="l01449"></a>01449     m_pDockbaseAreaOfDocumentViews-&gt;setDockSite( KDockWidget::DockCorner );
<a name="l01450"></a>01450 }
<a name="l01451"></a>01451 
<a name="l01455"></a><a class="code" href="classKMdiMainFrm.html#ac1cc1a4305a449d233601f636cb9a4f4">01455</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ac1cc1a4305a449d233601f636cb9a4f4" title="Docks all view windows (Windows-like)">KMdiMainFrm::switchToChildframeMode</a>()
<a name="l01456"></a>01456 {
<a name="l01457"></a>01457     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::ChildframeMode )
<a name="l01458"></a>01458     {
<a name="l01459"></a>01459         emit mdiModeHasBeenChangedTo( KMdi::ChildframeMode );
<a name="l01460"></a>01460         return ;
<a name="l01461"></a>01461     }
<a name="l01462"></a>01462 
<a name="l01463"></a>01463     <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a> rootDockWidgetList;
<a name="l01464"></a>01464     <a class="codeRef" href="qvaluelist.html">QValueList&lt;QRect&gt;</a> positionList;
<a name="l01465"></a>01465     
<a name="l01466"></a>01466     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::TabPageMode )
<a name="l01467"></a>01467     {
<a name="l01468"></a>01468         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;finishing tab page mode&quot;</span> &lt;&lt; endl;
<a name="l01469"></a>01469         <span class="comment">// select the dockwidgets to be undocked and store their geometry</span>
<a name="l01470"></a>01470         findRootDockWidgets( &amp;rootDockWidgetList, &amp;positionList );
<a name="l01471"></a>01471         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Found &quot;</span> &lt;&lt; rootDockWidgetList.<a class="codeRef" href="qptrlist.html#count">count</a>() &lt;&lt; <span class="stringliteral">&quot; widgets to undock&quot;</span> &lt;&lt; endl;
<a name="l01472"></a>01472         
<a name="l01473"></a>01473         <span class="comment">// undock all these found oldest ancestors (being KDockWidgets)</span>
<a name="l01474"></a>01474         <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KDockWidget&gt;</a> it( rootDockWidgetList );
<a name="l01475"></a>01475         <span class="keywordflow">for</span> ( ; ( *it ) ; ++it )
<a name="l01476"></a>01476             ( *it )-&gt;undock();
<a name="l01477"></a>01477 
<a name="l01478"></a>01478         finishTabPageMode();
<a name="l01479"></a>01479     }
<a name="l01480"></a>01480     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( m_mdiMode == KMdi::ToplevelMode )
<a name="l01481"></a>01481     {
<a name="l01482"></a>01482         finishToplevelMode();
<a name="l01483"></a>01483     }
<a name="l01484"></a>01484     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( m_mdiMode == KMdi::IDEAlMode )
<a name="l01485"></a>01485     {
<a name="l01486"></a>01486         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;finishing ideal mode&quot;</span> &lt;&lt; endl;
<a name="l01487"></a>01487         finishIDEAlMode( <span class="keyword">false</span> );
<a name="l01488"></a>01488 
<a name="l01489"></a>01489         <span class="comment">// select the dockwidgets to be undocked and store their geometry</span>
<a name="l01490"></a>01490         findRootDockWidgets( &amp;rootDockWidgetList, &amp;positionList );
<a name="l01491"></a>01491         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Found &quot;</span> &lt;&lt; rootDockWidgetList.<a class="codeRef" href="qptrlist.html#count">count</a>() &lt;&lt; <span class="stringliteral">&quot; widgets to undock&quot;</span> &lt;&lt; endl;
<a name="l01492"></a>01492         
<a name="l01493"></a>01493         <span class="comment">// undock all these found oldest ancestors (being KDockWidgets)</span>
<a name="l01494"></a>01494         <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KDockWidget&gt;</a> it( rootDockWidgetList );
<a name="l01495"></a>01495         <span class="keywordflow">for</span> ( ; ( *it ) ; ++it )
<a name="l01496"></a>01496             ( *it )-&gt;undock();
<a name="l01497"></a>01497 
<a name="l01498"></a>01498         m_mdiMode = KMdi::TabPageMode;
<a name="l01499"></a>01499         finishTabPageMode();
<a name="l01500"></a>01500         m_mdiMode = KMdi::IDEAlMode;
<a name="l01501"></a>01501     }
<a name="l01502"></a>01502 
<a name="l01503"></a>01503     <span class="keywordflow">if</span> ( !m_pDockbaseAreaOfDocumentViews )
<a name="l01504"></a>01504     {
<a name="l01505"></a>01505         <span class="comment">// cover KMdi&#39;s childarea by a dockwidget</span>
<a name="l01506"></a>01506         m_pDockbaseAreaOfDocumentViews = createDockWidget( <span class="stringliteral">&quot;mdiAreaCover&quot;</span>, <a class="codeRef" href="qpixmap.html">QPixmap</a>(), 0L, <span class="stringliteral">&quot;mdi_area_cover&quot;</span> );
<a name="l01507"></a>01507         m_pDockbaseAreaOfDocumentViews-&gt;setDockWindowTransient( <span class="keyword">this</span>, <span class="keyword">true</span> );
<a name="l01508"></a>01508         m_pDockbaseAreaOfDocumentViews-&gt;setEnableDocking( KDockWidget::DockNone );
<a name="l01509"></a>01509         m_pDockbaseAreaOfDocumentViews-&gt;setDockSite( KDockWidget::DockCorner );
<a name="l01510"></a>01510         m_pDockbaseAreaOfDocumentViews-&gt;setWidget( m_pMdi );
<a name="l01511"></a>01511         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;childarea is now covered by a dockwidget&quot;</span> &lt;&lt; endl;
<a name="l01512"></a>01512     }
<a name="l01513"></a>01513     
<a name="l01514"></a>01514     <span class="keywordflow">if</span> ( m_pDockbaseAreaOfDocumentViews-&gt;isTopLevel() )
<a name="l01515"></a>01515     {
<a name="l01516"></a>01516         <span class="comment">// set this dock to main view</span>
<a name="l01517"></a>01517         setView( m_pDockbaseAreaOfDocumentViews );
<a name="l01518"></a>01518         setMainDockWidget( m_pDockbaseAreaOfDocumentViews );
<a name="l01519"></a>01519         m_pDockbaseAreaOfDocumentViews-&gt;setEnableDocking( KDockWidget::DockNone );
<a name="l01520"></a>01520         m_pDockbaseAreaOfDocumentViews-&gt;setDockSite( KDockWidget::DockCorner );
<a name="l01521"></a>01521         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Dock base area has been set to the main view&quot;</span> &lt;&lt; endl;
<a name="l01522"></a>01522     }
<a name="l01523"></a>01523     m_pDockbaseAreaOfDocumentViews-&gt;setWidget( m_pMdi ); <span class="comment">//JW</span>
<a name="l01524"></a>01524     m_pDockbaseAreaOfDocumentViews-&gt;show();
<a name="l01525"></a>01525     
<a name="l01526"></a>01526     <span class="keywordflow">if</span> ( ( m_mdiMode == KMdi::TabPageMode ) || ( m_mdiMode == KMdi::IDEAlMode ) )
<a name="l01527"></a>01527     {
<a name="l01528"></a>01528         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;trying to dock back the undock toolviews&quot;</span> &lt;&lt; endl;
<a name="l01529"></a>01529         <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KDockWidget&gt;</a> it( rootDockWidgetList );
<a name="l01530"></a>01530         <span class="keywordflow">for</span> ( ; ( *it ); ++it )
<a name="l01531"></a>01531             ( *it )-&gt;dockBack();
<a name="l01532"></a>01532     }
<a name="l01533"></a>01533 
<a name="l01534"></a>01534     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::ToplevelMode &amp;&amp; m_pTempDockSession )
<a name="l01535"></a>01535     {
<a name="l01536"></a>01536         <span class="comment">// restore the old dock scenario which we memorized at the time we switched to toplevel mode</span>
<a name="l01537"></a>01537         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Restoring old dock scenario memorized from toplevel mode&quot;</span> &lt;&lt; endl;
<a name="l01538"></a>01538         <a class="codeRef" href="qdomelement.html">QDomElement</a> oldDockState = m_pTempDockSession-&gt;namedItem( <span class="stringliteral">&quot;cur_dock_state&quot;</span> ).toElement();
<a name="l01539"></a>01539         readDockConfig( oldDockState );
<a name="l01540"></a>01540     }
<a name="l01541"></a>01541 
<a name="l01542"></a>01542     KMdi::MdiMode oldMdiMode = m_mdiMode;
<a name="l01543"></a>01543     m_mdiMode = KMdi::ChildframeMode;
<a name="l01544"></a>01544 
<a name="l01545"></a>01545     <span class="comment">//FIXME although i don&#39;t know what to fix.</span>
<a name="l01546"></a>01546     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l01547"></a>01547     <span class="keywordflow">for</span> ( ; ( *it ); ++it )
<a name="l01548"></a>01548     {
<a name="l01549"></a>01549         <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = ( *it );
<a name="l01550"></a>01550         <span class="keywordflow">if</span> ( !pView-&gt;<a class="code" href="classKMdiChildView.html#a534402891b4ef8226235531ca2a19d70" title="Returns if this is added as MDI tool-view.">isToolView</a>() &amp;&amp; pView-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l01551"></a>01551             attachWindow( pView, <span class="keyword">true</span> );
<a name="l01552"></a>01552     }
<a name="l01553"></a>01553     <span class="keywordflow">for</span> ( it.<a class="codeRef" href="qptrlistiterator.html#toFirst">toFirst</a>(); ( *it ); ++it )
<a name="l01554"></a>01554     {
<a name="l01555"></a>01555         <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = ( *it );
<a name="l01556"></a>01556         <span class="keywordflow">if</span> ( !pView-&gt;<a class="code" href="classKMdiChildView.html#a534402891b4ef8226235531ca2a19d70" title="Returns if this is added as MDI tool-view.">isToolView</a>() )
<a name="l01557"></a>01557             pView-&gt;<a class="code" href="classKMdiChildView.html#aa74d747107015dbd5d6f03ca70e13fe0" title="Calls QWidget::show but also for it&#39;s parent widget if attached.">show</a>();
<a name="l01558"></a>01558     }
<a name="l01559"></a>01559     <span class="keywordflow">if</span> ( ( oldMdiMode == KMdi::ToplevelMode ) &amp;&amp; !parentWidget() )
<a name="l01560"></a>01560     {
<a name="l01561"></a>01561         setMinimumHeight( m_oldMainFrmMinHeight );
<a name="l01562"></a>01562         setMaximumHeight( m_oldMainFrmMaxHeight );
<a name="l01563"></a>01563         resize( width(), m_oldMainFrmHeight );
<a name="l01564"></a>01564         m_oldMainFrmHeight = 0;
<a name="l01565"></a>01565         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;left top level mode completely&quot;</span> &lt;&lt; endl;
<a name="l01566"></a>01566         emit leftTopLevelMode();
<a name="l01567"></a>01567     }
<a name="l01568"></a>01568     emit mdiModeHasBeenChangedTo( KMdi::ChildframeMode );
<a name="l01569"></a>01569 }
<a name="l01570"></a>01570 
<a name="l01571"></a>01571 <span class="keywordtype">void</span> KMdiMainFrm::finishChildframeMode()
<a name="l01572"></a>01572 {
<a name="l01573"></a>01573     <span class="comment">// save the old dock scenario of the dockwidget-like tool views to a DOM tree</span>
<a name="l01574"></a>01574     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;saving the current dock scenario&quot;</span> &lt;&lt; endl;
<a name="l01575"></a>01575     <span class="keyword">delete</span> m_pTempDockSession;
<a name="l01576"></a>01576     m_pTempDockSession = <span class="keyword">new</span> <a class="codeRef" href="qdomdocument.html">QDomDocument</a>( <span class="stringliteral">&quot;docksession&quot;</span> );
<a name="l01577"></a>01577     <a class="codeRef" href="qdomelement.html">QDomElement</a> curDockState = m_pTempDockSession-&gt;createElement( <span class="stringliteral">&quot;cur_dock_state&quot;</span> );
<a name="l01578"></a>01578     m_pTempDockSession-&gt;appendChild( curDockState );
<a name="l01579"></a>01579     writeDockConfig( curDockState );
<a name="l01580"></a>01580 
<a name="l01581"></a>01581     <span class="comment">// detach all non-tool-views to toplevel</span>
<a name="l01582"></a>01582     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;detaching all document views and moving them to toplevel&quot;</span> &lt;&lt; endl;
<a name="l01583"></a>01583     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l01584"></a>01584     <span class="keywordflow">for</span> ( ; ( *it ); ++it )
<a name="l01585"></a>01585     {
<a name="l01586"></a>01586         <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = ( *it );
<a name="l01587"></a>01587         <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#a534402891b4ef8226235531ca2a19d70" title="Returns if this is added as MDI tool-view.">isToolView</a>() )
<a name="l01588"></a>01588             <span class="keywordflow">continue</span>;
<a name="l01589"></a>01589         <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l01590"></a>01590         {
<a name="l01591"></a>01591             <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#ab571165055d79a106288053a09801459" title="Tells if the window is minimized when attached to the Mdi manager, otherwise returns false...">isMaximized</a>() )
<a name="l01592"></a>01592                 pView-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>()-&gt;setGeometry( 0, 0, m_pMdi-&gt;width(), m_pMdi-&gt;height() );
<a name="l01593"></a>01593             detachWindow( pView, <span class="keyword">false</span> );
<a name="l01594"></a>01594         }
<a name="l01595"></a>01595     }
<a name="l01596"></a>01596 }
<a name="l01597"></a>01597 
<a name="l01601"></a><a class="code" href="classKMdiMainFrm.html#ace5c30f5986244846ba76942ea98bfa2">01601</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ace5c30f5986244846ba76942ea98bfa2" title="Docks all view windows (Windows-like)">KMdiMainFrm::switchToTabPageMode</a>()
<a name="l01602"></a>01602 {
<a name="l01603"></a>01603     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::TabPageMode )
<a name="l01604"></a>01604     {
<a name="l01605"></a>01605         emit mdiModeHasBeenChangedTo( KMdi::TabPageMode );
<a name="l01606"></a>01606         return ;  <span class="comment">// nothing need to be done</span>
<a name="l01607"></a>01607     }
<a name="l01608"></a>01608 
<a name="l01609"></a>01609     <span class="keywordflow">switch</span>( m_mdiMode )
<a name="l01610"></a>01610     {
<a name="l01611"></a>01611     <span class="keywordflow">case</span> KMdi::ChildframeMode:
<a name="l01612"></a>01612         finishChildframeMode();
<a name="l01613"></a>01613         <span class="keywordflow">break</span>;
<a name="l01614"></a>01614     <span class="keywordflow">case</span> KMdi::ToplevelMode:
<a name="l01615"></a>01615         finishToplevelMode();
<a name="l01616"></a>01616         <span class="keywordflow">break</span>;
<a name="l01617"></a>01617     <span class="keywordflow">case</span> KMdi::IDEAlMode:
<a name="l01618"></a>01618         finishIDEAlMode( <span class="keyword">false</span> );
<a name="l01619"></a>01619         emit mdiModeHasBeenChangedTo( KMdi::TabPageMode );
<a name="l01620"></a>01620         m_mdiMode = KMdi::TabPageMode;
<a name="l01621"></a>01621         <span class="keywordflow">return</span>;
<a name="l01622"></a>01622         <span class="keywordflow">break</span>;
<a name="l01623"></a>01623     <span class="keywordflow">default</span>:
<a name="l01624"></a>01624         <span class="keywordflow">break</span>;
<a name="l01625"></a>01625     }
<a name="l01626"></a>01626     
<a name="l01627"></a>01627     setupTabbedDocumentViewSpace();
<a name="l01628"></a>01628     m_mdiMode = KMdi::TabPageMode;
<a name="l01629"></a>01629     <span class="keywordflow">if</span> ( m_pCurrentWindow )
<a name="l01630"></a>01630         m_pCurrentWindow-&gt;setFocus();
<a name="l01631"></a>01631 
<a name="l01632"></a>01632     m_pTaskBar-&gt;switchOn( <span class="keyword">false</span> );
<a name="l01633"></a>01633 
<a name="l01634"></a>01634     <span class="keywordflow">if</span> ( m_pClose )
<a name="l01635"></a>01635     {
<a name="l01636"></a>01636         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pClose, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( closeViewButtonPressed() ) );
<a name="l01637"></a>01637         <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() &gt; 0 )
<a name="l01638"></a>01638             m_pClose-&gt;show();
<a name="l01639"></a>01639     }
<a name="l01640"></a>01640     <span class="keywordflow">else</span>
<a name="l01641"></a>01641         kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;close button nonexistant. strange things might happen&quot;</span> &lt;&lt; endl;
<a name="l01642"></a>01642     
<a name="l01643"></a>01643     kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;Switch to tab page mode complete&quot;</span> &lt;&lt; endl;
<a name="l01644"></a>01644     emit mdiModeHasBeenChangedTo( KMdi::TabPageMode );
<a name="l01645"></a>01645 }
<a name="l01646"></a>01646 
<a name="l01647"></a>01647 <span class="keywordtype">void</span> KMdiMainFrm::finishTabPageMode()
<a name="l01648"></a>01648 {
<a name="l01649"></a>01649     <span class="comment">// if tabified, release all views from their docking covers</span>
<a name="l01650"></a>01650     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::TabPageMode )
<a name="l01651"></a>01651     {
<a name="l01652"></a>01652         m_pClose-&gt;hide();
<a name="l01653"></a>01653         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pClose, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( closeViewButtonPressed() ) );
<a name="l01654"></a>01654 
<a name="l01655"></a>01655         <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l01656"></a>01656         <span class="keywordflow">for</span> ( ; it.current(); ++it )
<a name="l01657"></a>01657         {
<a name="l01658"></a>01658             <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = it.current();
<a name="l01659"></a>01659             <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#a534402891b4ef8226235531ca2a19d70" title="Returns if this is added as MDI tool-view.">isToolView</a>() )
<a name="l01660"></a>01660                 <span class="keywordflow">continue</span>;
<a name="l01661"></a>01661             kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;KMdiMainFrm::finishTabPageMode: in loop&quot;</span> &lt;&lt; endl;
<a name="l01662"></a>01662             <a class="codeRef" href="qsize.html">QSize</a> mins = pView-&gt;<a class="codeRef" href="qwidget.html#minimumSize">minimumSize</a>();
<a name="l01663"></a>01663             <a class="codeRef" href="qsize.html">QSize</a> maxs = pView-&gt;<a class="codeRef" href="qwidget.html#maximumSize">maximumSize</a>();
<a name="l01664"></a>01664             <a class="codeRef" href="qsize.html">QSize</a> sz = pView-&gt;<a class="codeRef" href="qwidget.html#size">size</a>();
<a name="l01665"></a>01665             <a class="codeRef" href="qwidget.html">QWidget</a>* pParent = pView-&gt;<a class="codeRef" href="qwidget.html#parentWidget">parentWidget</a>();
<a name="l01666"></a>01666             <a class="codeRef" href="qpoint.html">QPoint</a> p( pParent-&gt;<a class="codeRef" href="qwidget.html#mapToGlobal">mapToGlobal</a>( pParent-&gt;<a class="codeRef" href="qwidget.html#pos">pos</a>() ) - pParent-&gt;<a class="codeRef" href="qwidget.html#pos">pos</a>() + m_undockPositioningOffset );
<a name="l01667"></a>01667             m_documentTabWidget-&gt;removePage( pView );
<a name="l01668"></a>01668             pView-&gt;<a class="codeRef" href="qwidget.html#reparent">reparent</a>( 0, 0, p );
<a name="l01669"></a>01669             <span class="comment">//         pView-&gt;reparent(0,0,p);</span>
<a name="l01670"></a>01670             pView-&gt;<a class="codeRef" href="qwidget.html#resize">resize</a>( sz );
<a name="l01671"></a>01671             pView-&gt;<a class="code" href="classKMdiChildView.html#ad80dba92dda841efcf2aba66b5e54a8b" title="Sets the minimum size of the widget to w by h pixels.">setMinimumSize</a>( mins.<a class="codeRef" href="qsize.html#width">width</a>(), mins.<a class="codeRef" href="qsize.html#height">height</a>() );
<a name="l01672"></a>01672             pView-&gt;<a class="code" href="classKMdiChildView.html#af8d5385c7c87dad91cad376eda8f2868" title="Sets the maximum size of the widget to w by h pixels.">setMaximumSize</a>( maxs.<a class="codeRef" href="qsize.html#width">width</a>(), maxs.<a class="codeRef" href="qsize.html#height">height</a>() );
<a name="l01673"></a>01673             <span class="comment">//         ((KDockWidget*)pParent)-&gt;undock(); // this destroys the dockwiget cover, too</span>
<a name="l01674"></a>01674             <span class="comment">//         pParent-&gt;close();</span>
<a name="l01675"></a>01675             <span class="comment">//         delete pParent;</span>
<a name="l01676"></a>01676             <span class="comment">//         if (centralWidget() == pParent) {</span>
<a name="l01677"></a>01677             <span class="comment">//            setCentralWidget(0L); // avoid dangling pointer</span>
<a name="l01678"></a>01678             <span class="comment">//         }</span>
<a name="l01679"></a>01679         }
<a name="l01680"></a>01680         <span class="keyword">delete</span> m_documentTabWidget;
<a name="l01681"></a>01681         m_documentTabWidget = 0;
<a name="l01682"></a>01682         m_pTaskBar-&gt;switchOn( <span class="keyword">true</span> );
<a name="l01683"></a>01683     }
<a name="l01684"></a>01684 }
<a name="l01685"></a>01685 
<a name="l01686"></a>01686 
<a name="l01687"></a>01687 
<a name="l01688"></a>01688 <span class="keywordtype">void</span> KMdiMainFrm::setupTabbedDocumentViewSpace()
<a name="l01689"></a>01689 {
<a name="l01690"></a>01690     <span class="comment">// resize to childframe mode size of the mainwindow if we were in toplevel mode</span>
<a name="l01691"></a>01691     <span class="keywordflow">if</span> ( ( m_mdiMode == KMdi::ToplevelMode ) &amp;&amp; !parentWidget() )
<a name="l01692"></a>01692     {
<a name="l01693"></a>01693         setMinimumHeight( m_oldMainFrmMinHeight );
<a name="l01694"></a>01694         setMaximumHeight( m_oldMainFrmMaxHeight );
<a name="l01695"></a>01695         resize( width(), m_oldMainFrmHeight );
<a name="l01696"></a>01696         m_oldMainFrmHeight = 0;
<a name="l01697"></a>01697         <span class="comment">//qDebug(&quot;TopLevelMode off&quot;);</span>
<a name="l01698"></a>01698         emit leftTopLevelMode();
<a name="l01699"></a>01699         <a class="codeRef" href="qapplication.html#sendPostedEvents-2">QApplication::sendPostedEvents</a>();
<a name="l01700"></a>01700 
<a name="l01701"></a>01701         <span class="comment">// restore the old dock szenario which we memorized at the time we switched to toplevel mode</span>
<a name="l01702"></a>01702         <span class="keywordflow">if</span> ( m_pTempDockSession )
<a name="l01703"></a>01703         {
<a name="l01704"></a>01704             <a class="codeRef" href="qdomelement.html">QDomElement</a> oldDockState = m_pTempDockSession-&gt;namedItem( <span class="stringliteral">&quot;cur_dock_state&quot;</span> ).toElement();
<a name="l01705"></a>01705             readDockConfig( oldDockState );
<a name="l01706"></a>01706         }
<a name="l01707"></a>01707     }
<a name="l01708"></a>01708 
<a name="l01709"></a>01709 <span class="preprocessor">#if 0</span>
<a name="l01710"></a>01710 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( m_pDockbaseOfTabPage != m_pDockbaseAreaOfDocumentViews )
<a name="l01711"></a>01711     {
<a name="l01712"></a>01712         <span class="keyword">delete</span> m_pDockbaseOfTabPage;
<a name="l01713"></a>01713         m_pDockbaseOfTabPage = m_pDockbaseAreaOfDocumentViews;
<a name="l01714"></a>01714     }
<a name="l01715"></a>01715 <span class="preprocessor">#endif</span>
<a name="l01716"></a>01716 <span class="preprocessor"></span>    <span class="keyword">delete</span> m_documentTabWidget;
<a name="l01717"></a>01717     m_documentTabWidget = <span class="keyword">new</span> <a class="code" href="classKMdiDocumentViewTabWidget.html" title="A reimplementation of KTabWidget for KMDI.">KMdiDocumentViewTabWidget</a>( m_pDockbaseAreaOfDocumentViews );
<a name="l01718"></a>01718     connect( m_documentTabWidget, SIGNAL( currentChanged( <a class="codeRef" href="qwidget.html">QWidget</a>* ) ), <span class="keyword">this</span>, SLOT( slotDocCurrentChanged( <a class="codeRef" href="qwidget.html">QWidget</a>* ) ) );
<a name="l01719"></a>01719     m_pDockbaseAreaOfDocumentViews-&gt;setWidget( m_documentTabWidget );
<a name="l01720"></a>01720     m_documentTabWidget-&gt;show();
<a name="l01721"></a>01721     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it4( *m_pDocumentViews );
<a name="l01722"></a>01722     <span class="keywordflow">for</span> ( ; it4.current(); ++it4 )
<a name="l01723"></a>01723     {
<a name="l01724"></a>01724         <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = it4.current();
<a name="l01725"></a>01725         m_documentTabWidget-&gt;addTab( pView, pView-&gt;<a class="codeRef" href="qwidget.html#icon">icon</a>() ? *( pView-&gt;<a class="codeRef" href="qwidget.html#icon">icon</a>() ) : <a class="codeRef" href="qpixmap.html">QPixmap</a>(), pView-&gt;<a class="code" href="classKMdiChildView.html#ac0e1fd56dbf1f6d9659fb14ff8a1b0c5" title="Returns the caption of the button on the taskbar.">tabCaption</a>() );
<a name="l01726"></a>01726         <span class="comment">/*</span>
<a name="l01727"></a>01727 <span class="comment">           connect(pView,SIGNAL(iconOrCaptionUdpated(QWidget*,QPixmap,const QString&amp;)),</span>
<a name="l01728"></a>01728 <span class="comment">           m_documentTabWidget,SLOT(updateView(QWidget*,QPixmap,const QString&amp;)));</span>
<a name="l01729"></a>01729 <span class="comment">         */</span>
<a name="l01730"></a>01730         connect( pView, SIGNAL( iconUpdated( <a class="codeRef" href="qwidget.html">QWidget</a>*, <a class="codeRef" href="qpixmap.html">QPixmap</a> ) ), m_documentTabWidget, SLOT( updateIconInView( <a class="codeRef" href="qwidget.html">QWidget</a>*, <a class="codeRef" href="qpixmap.html">QPixmap</a> ) ) );
<a name="l01731"></a>01731         connect( pView, SIGNAL( captionUpdated( <a class="codeRef" href="qwidget.html">QWidget</a>*, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; ) ), m_documentTabWidget, SLOT( updateCaptionInView( <a class="codeRef" href="qwidget.html">QWidget</a>*, <span class="keyword">const</span> <a class="codeRef" href="qstring.html">QString</a>&amp; ) ) );
<a name="l01732"></a>01732 
<a name="l01733"></a>01733     }
<a name="l01734"></a>01734 }
<a name="l01735"></a>01735 
<a name="l01736"></a>01736 
<a name="l01737"></a><a class="code" href="classKMdiMainFrm.html#a5eb6c1152ce986e8bab84bfe6f71b9b3">01737</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a5eb6c1152ce986e8bab84bfe6f71b9b3" title="Sets the appearance of the IDEAl mode.">KMdiMainFrm::setIDEAlModeStyle</a>( <span class="keywordtype">int</span> flags )
<a name="l01738"></a>01738 {
<a name="l01739"></a>01739     d-&gt;m_styleIDEAlMode = flags; <span class="comment">// see KMultiTabBar for the first 3 bits</span>
<a name="l01740"></a>01740     <span class="keywordflow">if</span> ( m_leftContainer )
<a name="l01741"></a>01741     {
<a name="l01742"></a>01742         KMdiDockContainer * tmpL = ( KMdiDockContainer* ) ( m_leftContainer-&gt;getWidget()-&gt;qt_cast( <span class="stringliteral">&quot;KMdiDockContainer&quot;</span> ) );
<a name="l01743"></a>01743         <span class="keywordflow">if</span> ( tmpL )
<a name="l01744"></a>01744             tmpL-&gt;setStyle( flags );
<a name="l01745"></a>01745     }
<a name="l01746"></a>01746 
<a name="l01747"></a>01747     <span class="keywordflow">if</span> ( m_rightContainer )
<a name="l01748"></a>01748     {
<a name="l01749"></a>01749         KMdiDockContainer * tmpR = ( KMdiDockContainer* ) ( m_rightContainer-&gt;getWidget()-&gt;qt_cast( <span class="stringliteral">&quot;KMdiDockContainer&quot;</span> ) );
<a name="l01750"></a>01750         <span class="keywordflow">if</span> ( tmpR )
<a name="l01751"></a>01751             tmpR-&gt;setStyle( flags );
<a name="l01752"></a>01752     }
<a name="l01753"></a>01753 
<a name="l01754"></a>01754     <span class="keywordflow">if</span> ( m_topContainer )
<a name="l01755"></a>01755     {
<a name="l01756"></a>01756         KMdiDockContainer * tmpT = ( KMdiDockContainer* ) ( m_topContainer-&gt;getWidget()-&gt;qt_cast( <span class="stringliteral">&quot;KMdiDockContainer&quot;</span> ) );
<a name="l01757"></a>01757         <span class="keywordflow">if</span> ( tmpT )
<a name="l01758"></a>01758             tmpT-&gt;setStyle( flags );
<a name="l01759"></a>01759     }
<a name="l01760"></a>01760 
<a name="l01761"></a>01761     <span class="keywordflow">if</span> ( m_bottomContainer )
<a name="l01762"></a>01762     {
<a name="l01763"></a>01763         KMdiDockContainer * tmpB = ( KMdiDockContainer* ) ( m_bottomContainer-&gt;getWidget()-&gt;qt_cast( <span class="stringliteral">&quot;KMdiDockContainer&quot;</span> ) );
<a name="l01764"></a>01764         <span class="keywordflow">if</span> ( tmpB )
<a name="l01765"></a>01765             tmpB-&gt;setStyle( flags );
<a name="l01766"></a>01766     }
<a name="l01767"></a>01767 }
<a name="l01768"></a>01768 
<a name="l01769"></a><a class="code" href="classKMdiMainFrm.html#a0e827000413d0ddb1ce69a517913a75c">01769</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a0e827000413d0ddb1ce69a517913a75c" title="Sets the appearance of the toolview tabs.">KMdiMainFrm::setToolviewStyle</a>( <span class="keywordtype">int</span> flag )
<a name="l01770"></a>01770 {
<a name="l01771"></a>01771     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::IDEAlMode )
<a name="l01772"></a>01772     {
<a name="l01773"></a>01773         setIDEAlModeStyle( flag );
<a name="l01774"></a>01774     }
<a name="l01775"></a>01775     d-&gt;m_toolviewStyle = flag;
<a name="l01776"></a>01776     <span class="keywordtype">bool</span> toolviewExists = <span class="keyword">false</span>;
<a name="l01777"></a>01777     <a class="codeRef" href="qmap.html">QMap&lt;QWidget*, KMdiToolViewAccessor*&gt;::Iterator</a> it;
<a name="l01778"></a>01778     <span class="keywordflow">for</span> ( it = m_pToolViews-&gt;<a class="codeRef" href="qmap.html#begin">begin</a>(); it != m_pToolViews-&gt;<a class="codeRef" href="qmap.html#end">end</a>(); ++it )
<a name="l01779"></a>01779     {
<a name="l01780"></a>01780         KDockWidget *dockWidget = <span class="keyword">dynamic_cast&lt;</span>KDockWidget*<span class="keyword">&gt;</span>( it.data()-&gt;wrapperWidget() );
<a name="l01781"></a>01781         <span class="keywordflow">if</span> ( dockWidget )
<a name="l01782"></a>01782         {
<a name="l01783"></a>01783             <span class="keywordflow">switch</span> ( flag )
<a name="l01784"></a>01784             {
<a name="l01785"></a>01785             <span class="keywordflow">case</span> <a class="code" href="namespaceKMdi.html#ab1cdbac6ebdb5548b1b50de89fd5db6aaa02d4549f758818bb873f121fd19ea90" title="Show only icons on the toolview tabs.">KMdi::IconOnly</a>:
<a name="l01786"></a>01786                 dockWidget-&gt;setTabPageLabel( QString::null );
<a name="l01787"></a>01787                 dockWidget-&gt;setPixmap( *( it.data()-&gt;wrappedWidget()-&gt;icon() ) );
<a name="l01788"></a>01788                 <span class="keywordflow">break</span>;
<a name="l01789"></a>01789             <span class="keywordflow">case</span> <a class="code" href="namespaceKMdi.html#ab1cdbac6ebdb5548b1b50de89fd5db6aaf84c797f174eeebb902c45edc4d1706d" title="Show only the text description on the toolview tabs.">KMdi::TextOnly</a>:
<a name="l01790"></a>01790                 dockWidget-&gt;setPixmap(); <span class="comment">//FIXME: Does not hide the icon in the IDEAl mode.</span>
<a name="l01791"></a>01791                 dockWidget-&gt;setTabPageLabel( it.data()-&gt;wrappedWidget()-&gt;caption() );
<a name="l01792"></a>01792                 <span class="keywordflow">break</span>;
<a name="l01793"></a>01793             <span class="keywordflow">case</span> <a class="code" href="namespaceKMdi.html#ab1cdbac6ebdb5548b1b50de89fd5db6aa9b85b4d0f7c7608cc676ed81aeb893d6" title="Show both the icon and description on the toolview tabs.">KMdi::TextAndIcon</a>:
<a name="l01794"></a>01794                 dockWidget-&gt;setPixmap( *( it.data()-&gt;wrappedWidget()-&gt;icon() ) );
<a name="l01795"></a>01795                 dockWidget-&gt;setTabPageLabel( it.data()-&gt;wrappedWidget()-&gt;caption() );
<a name="l01796"></a>01796             <span class="keywordflow">default</span>:
<a name="l01797"></a>01797                 <span class="keywordflow">break</span>;
<a name="l01798"></a>01798             }
<a name="l01799"></a>01799             toolviewExists = <span class="keyword">true</span>;
<a name="l01800"></a>01800         }
<a name="l01801"></a>01801     }
<a name="l01802"></a>01802     
<a name="l01803"></a>01803     <span class="keywordflow">if</span> ( toolviewExists )
<a name="l01804"></a>01804     {
<a name="l01805"></a>01805         <span class="comment">//workaround for the above FIXME to make switching to TextOnly mode work in IDEAl as well. Be sure that this version of switch* is called.</span>
<a name="l01806"></a>01806         <span class="keywordflow">if</span> ( m_mdiMode == KMdi::IDEAlMode &amp;&amp; flag == <a class="code" href="namespaceKMdi.html#ab1cdbac6ebdb5548b1b50de89fd5db6aaf84c797f174eeebb902c45edc4d1706d" title="Show only the text description on the toolview tabs.">KMdi::TextOnly</a> )
<a name="l01807"></a>01807         {
<a name="l01808"></a>01808             <a class="code" href="classKMdiMainFrm.html#ace5c30f5986244846ba76942ea98bfa2" title="Docks all view windows (Windows-like)">KMdiMainFrm::switchToTabPageMode</a>();
<a name="l01809"></a>01809             <a class="code" href="classKMdiMainFrm.html#a20a370f0bf6238919cbec1e83e562e97" title="Docks all view windows.">KMdiMainFrm::switchToIDEAlMode</a>();
<a name="l01810"></a>01810         }
<a name="l01811"></a>01811         <span class="keywordflow">else</span>
<a name="l01812"></a>01812         {
<a name="l01813"></a>01813             writeDockConfig();
<a name="l01814"></a>01814             readDockConfig();
<a name="l01815"></a>01815         }
<a name="l01816"></a>01816     }
<a name="l01817"></a>01817 }
<a name="l01818"></a>01818 
<a name="l01822"></a><a class="code" href="classKMdiMainFrm.html#a20a370f0bf6238919cbec1e83e562e97">01822</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a20a370f0bf6238919cbec1e83e562e97" title="Docks all view windows.">KMdiMainFrm::switchToIDEAlMode</a>()
<a name="l01823"></a>01823 {
<a name="l01824"></a>01824     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;switching to IDEAl mode&quot;</span> &lt;&lt; endl;
<a name="l01825"></a>01825     
<a name="l01826"></a>01826     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::IDEAlMode )
<a name="l01827"></a>01827     {
<a name="l01828"></a>01828         emit mdiModeHasBeenChangedTo( KMdi::IDEAlMode );
<a name="l01829"></a>01829         return ;  <span class="comment">// nothing need to be done</span>
<a name="l01830"></a>01830     }
<a name="l01831"></a>01831     
<a name="l01832"></a>01832     <span class="keywordflow">switch</span>( m_mdiMode )
<a name="l01833"></a>01833     {
<a name="l01834"></a>01834     <span class="keywordflow">case</span> KMdi::ChildframeMode:
<a name="l01835"></a>01835         finishChildframeMode();
<a name="l01836"></a>01836         <span class="keywordflow">break</span>;
<a name="l01837"></a>01837     <span class="keywordflow">case</span> KMdi::ToplevelMode:
<a name="l01838"></a>01838         finishToplevelMode();
<a name="l01839"></a>01839         <span class="keywordflow">break</span>;
<a name="l01840"></a>01840     <span class="keywordflow">case</span> KMdi::TabPageMode:
<a name="l01841"></a>01841         m_mdiMode = KMdi::IDEAlMode;
<a name="l01842"></a>01842         setupToolViewsForIDEALMode();
<a name="l01843"></a>01843         emit mdiModeHasBeenChangedTo( KMdi::IDEAlMode );
<a name="l01844"></a>01844         <span class="keywordflow">return</span>;
<a name="l01845"></a>01845         <span class="keywordflow">break</span>;
<a name="l01846"></a>01846     <span class="keywordflow">default</span>:
<a name="l01847"></a>01847         <span class="keywordflow">break</span>;
<a name="l01848"></a>01848     }
<a name="l01849"></a>01849 
<a name="l01850"></a>01850     setupTabbedDocumentViewSpace();
<a name="l01851"></a>01851     m_mdiMode = KMdi::IDEAlMode;
<a name="l01852"></a>01852     setupToolViewsForIDEALMode();
<a name="l01853"></a>01853 
<a name="l01854"></a>01854     <span class="keywordflow">if</span> ( m_pCurrentWindow )
<a name="l01855"></a>01855         m_pCurrentWindow-&gt;setFocus();
<a name="l01856"></a>01856 
<a name="l01857"></a>01857     m_pTaskBar-&gt;switchOn( <span class="keyword">false</span> );
<a name="l01858"></a>01858 
<a name="l01859"></a>01859     <span class="keywordflow">if</span> ( m_pClose )
<a name="l01860"></a>01860     {
<a name="l01861"></a>01861         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pClose, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( closeViewButtonPressed() ) );
<a name="l01862"></a>01862         <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;count() &gt; 0 )
<a name="l01863"></a>01863             m_pClose-&gt;show();
<a name="l01864"></a>01864     }
<a name="l01865"></a>01865     <span class="keywordflow">else</span>
<a name="l01866"></a>01866         kdWarning(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;close button pointer does not exist!&quot;</span> &lt;&lt; endl;
<a name="l01867"></a>01867 
<a name="l01868"></a>01868     kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;switch to IDEAl mode complete&quot;</span> &lt;&lt; endl;
<a name="l01869"></a>01869 
<a name="l01870"></a>01870     emit mdiModeHasBeenChangedTo( KMdi::IDEAlMode );
<a name="l01871"></a>01871 }
<a name="l01872"></a>01872 
<a name="l01873"></a>01873 
<a name="l01874"></a>01874 <span class="keywordtype">void</span> KMdiMainFrm::dockToolViewsIntoContainers( <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a>&amp; widgetsToReparent, KDockWidget *container )
<a name="l01875"></a>01875 {
<a name="l01876"></a>01876     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KDockWidget&gt;</a> it( widgetsToReparent );
<a name="l01877"></a>01877     <span class="keywordflow">for</span> ( ; ( *it ); ++it )
<a name="l01878"></a>01878     {
<a name="l01879"></a>01879         ( *it )-&gt;manualDock( container, KDockWidget::DockCenter, 20 );
<a name="l01880"></a>01880         ( *it )-&gt;loseFormerBrotherDockWidget();
<a name="l01881"></a>01881     }
<a name="l01882"></a>01882 }
<a name="l01883"></a>01883 
<a name="l01884"></a>01884 <span class="keywordtype">void</span> KMdiMainFrm::findToolViewsDockedToMain( <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a>* list, KDockWidget::DockPosition dprtmw )
<a name="l01885"></a>01885 {
<a name="l01886"></a>01886     KDockWidget* mainDock = getMainDockWidget();
<a name="l01887"></a>01887     <span class="keywordflow">if</span> ( mainDock-&gt;parentDockTabGroup() )
<a name="l01888"></a>01888     {
<a name="l01889"></a>01889         mainDock = <span class="keyword">dynamic_cast&lt;</span>KDockWidget*<span class="keyword">&gt;</span>( mainDock-&gt;parentDockTabGroup()-&gt;parent() );
<a name="l01890"></a>01890         <span class="comment">// FIXME: will likely crash below due to unchecked cast</span>
<a name="l01891"></a>01891     }
<a name="l01892"></a>01892 
<a name="l01893"></a>01893     <span class="keywordflow">if</span> ( !mainDock )
<a name="l01894"></a>01894     {
<a name="l01895"></a>01895         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;mainDock invalid. No main dock widget found.&quot;</span> &lt;&lt; endl;
<a name="l01896"></a>01896         <span class="keywordflow">return</span>;
<a name="l01897"></a>01897     }
<a name="l01898"></a>01898     
<a name="l01899"></a>01899     KDockWidget* widget = mainDock-&gt;findNearestDockWidget( dprtmw );
<a name="l01900"></a>01900     <span class="keywordflow">if</span> ( widget &amp;&amp; widget-&gt;parentDockTabGroup() )
<a name="l01901"></a>01901     {
<a name="l01902"></a>01902         widget = <span class="keyword">static_cast&lt;</span>KDockWidget*<span class="keyword">&gt;</span>( widget-&gt;parentDockTabGroup() -&gt;parent() );
<a name="l01903"></a>01903 
<a name="l01904"></a>01904         <span class="keywordflow">if</span> ( widget )
<a name="l01905"></a>01905         {
<a name="l01906"></a>01906             KDockTabGroup* tg = <span class="keyword">dynamic_cast&lt;</span>KDockTabGroup*<span class="keyword">&gt;</span>( widget-&gt;getWidget() );
<a name="l01907"></a>01907             <span class="keywordflow">if</span> ( tg )
<a name="l01908"></a>01908             {
<a name="l01909"></a>01909                 kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;KDockTabGroup found&quot;</span> &lt;&lt; endl;
<a name="l01910"></a>01910                 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0;i &lt; tg-&gt;count();i++ )
<a name="l01911"></a>01911                     list-&gt;<a class="codeRef" href="qptrlist.html#append">append</a>( static_cast&lt;KDockWidget*&gt;( tg-&gt;page( i ) ) );
<a name="l01912"></a>01912             }
<a name="l01913"></a>01913             <span class="keywordflow">else</span>
<a name="l01914"></a>01914                 list-&gt;<a class="codeRef" href="qptrlist.html#append">append</a>( widget );
<a name="l01915"></a>01915         }
<a name="l01916"></a>01916         <span class="keywordflow">else</span>
<a name="l01917"></a>01917             kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;no widget found&quot;</span> &lt;&lt; endl;
<a name="l01918"></a>01918     }
<a name="l01919"></a>01919     <span class="keywordflow">else</span>
<a name="l01920"></a>01920         kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;No main dock widget found&quot;</span> &lt;&lt; endl;
<a name="l01921"></a>01921 }
<a name="l01922"></a>01922 
<a name="l01923"></a>01923 
<a name="l01924"></a>01924 <span class="keywordtype">void</span> KMdiMainFrm::setupToolViewsForIDEALMode()
<a name="l01925"></a>01925 {
<a name="l01926"></a>01926     m_leftContainer = createDockWidget( <span class="stringliteral">&quot;KMdiDock::leftDock&quot;</span>, SmallIcon( <span class="stringliteral">&quot;misc&quot;</span> ), 0L, <span class="stringliteral">&quot;Left Dock&quot;</span> );
<a name="l01927"></a>01927     m_rightContainer = createDockWidget( <span class="stringliteral">&quot;KMdiDock::rightDock&quot;</span>, SmallIcon( <span class="stringliteral">&quot;misc&quot;</span> ), 0L, <span class="stringliteral">&quot;Right Dock&quot;</span> );
<a name="l01928"></a>01928     m_topContainer = createDockWidget( <span class="stringliteral">&quot;KMdiDock::topDock&quot;</span>, SmallIcon( <span class="stringliteral">&quot;misc&quot;</span> ), 0L, <span class="stringliteral">&quot;Top Dock&quot;</span> );
<a name="l01929"></a>01929     m_bottomContainer = createDockWidget( <span class="stringliteral">&quot;KMdiDock::bottomDock&quot;</span>, SmallIcon( <span class="stringliteral">&quot;misc&quot;</span> ), 0L, <span class="stringliteral">&quot;Bottom Dock&quot;</span> );
<a name="l01930"></a>01930 
<a name="l01931"></a>01931     KDockWidget *mainDock = getMainDockWidget();
<a name="l01932"></a>01932     KDockWidget *w = mainDock;
<a name="l01933"></a>01933     <span class="keywordflow">if</span> ( mainDock-&gt;parentDockTabGroup() )
<a name="l01934"></a>01934         w = static_cast&lt;KDockWidget*&gt;( mainDock-&gt;parentDockTabGroup()-&gt;parent() );
<a name="l01935"></a>01935 
<a name="l01936"></a>01936     <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a> leftReparentWidgets;
<a name="l01937"></a>01937     <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a> rightReparentWidgets;
<a name="l01938"></a>01938     <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a> bottomReparentWidgets;
<a name="l01939"></a>01939     <a class="codeRef" href="qptrlist.html">QPtrList&lt;KDockWidget&gt;</a> topReparentWidgets;
<a name="l01940"></a>01940 
<a name="l01941"></a>01941     <span class="keywordflow">if</span> ( mainDock-&gt;parentDockTabGroup() )
<a name="l01942"></a>01942         mainDock = static_cast&lt;KDockWidget*&gt;( mainDock-&gt;parentDockTabGroup() -&gt;parent() );
<a name="l01943"></a>01943 
<a name="l01944"></a>01944     findToolViewsDockedToMain( &amp;leftReparentWidgets, KDockWidget::DockLeft );
<a name="l01945"></a>01945     findToolViewsDockedToMain( &amp;rightReparentWidgets, KDockWidget::DockRight );
<a name="l01946"></a>01946     findToolViewsDockedToMain( &amp;bottomReparentWidgets, KDockWidget::DockBottom );
<a name="l01947"></a>01947     findToolViewsDockedToMain( &amp;topReparentWidgets, KDockWidget::DockTop );
<a name="l01948"></a>01948 
<a name="l01949"></a>01949     mainDock-&gt;setEnableDocking( KDockWidget::DockNone ); <span class="comment">//::DockCorner);</span>
<a name="l01950"></a>01950     mainDock-&gt;setDockSite( KDockWidget::DockCorner );
<a name="l01951"></a>01951 
<a name="l01952"></a>01952 
<a name="l01953"></a>01953     KMdiDockContainer *tmpDC;
<a name="l01954"></a>01954     m_leftContainer-&gt;setWidget( tmpDC = <span class="keyword">new</span> KMdiDockContainer( m_leftContainer, <span class="keyword">this</span>, KDockWidget::DockLeft, d-&gt;m_styleIDEAlMode ) );
<a name="l01955"></a>01955     m_leftContainer-&gt;setEnableDocking( KDockWidget::DockLeft );
<a name="l01956"></a>01956     m_leftContainer-&gt;manualDock( mainDock, KDockWidget::DockLeft, 20 );
<a name="l01957"></a>01957     tmpDC-&gt;init();
<a name="l01958"></a>01958     <span class="keywordflow">if</span> ( m_mdiGUIClient )
<a name="l01959"></a>01959         connect ( <span class="keyword">this</span>, SIGNAL( toggleLeft() ), tmpDC, SLOT( toggle() ) );
<a name="l01960"></a>01960     connect( <span class="keyword">this</span>, SIGNAL( collapseOverlapContainers() ), tmpDC, SLOT( collapseOverlapped() ) );
<a name="l01961"></a>01961     connect( tmpDC, SIGNAL( activated( KMdiDockContainer* ) ), <span class="keyword">this</span>, SLOT( setActiveToolDock( KMdiDockContainer* ) ) );
<a name="l01962"></a>01962     connect( tmpDC, SIGNAL( deactivated( KMdiDockContainer* ) ), <span class="keyword">this</span>, SLOT( removeFromActiveDockList( KMdiDockContainer* ) ) );
<a name="l01963"></a>01963 
<a name="l01964"></a>01964     m_rightContainer-&gt;setWidget( tmpDC = <span class="keyword">new</span> KMdiDockContainer( m_rightContainer, <span class="keyword">this</span>, KDockWidget::DockRight, d-&gt;m_styleIDEAlMode ) );
<a name="l01965"></a>01965     m_rightContainer-&gt;setEnableDocking( KDockWidget::DockRight );
<a name="l01966"></a>01966     m_rightContainer-&gt;manualDock( mainDock, KDockWidget::DockRight, 80 );
<a name="l01967"></a>01967     tmpDC-&gt;init();
<a name="l01968"></a>01968     <span class="keywordflow">if</span> ( m_mdiGUIClient )
<a name="l01969"></a>01969         connect ( <span class="keyword">this</span>, SIGNAL( toggleRight() ), tmpDC, SLOT( toggle() ) );
<a name="l01970"></a>01970     connect( <span class="keyword">this</span>, SIGNAL( collapseOverlapContainers() ), tmpDC, SLOT( collapseOverlapped() ) );
<a name="l01971"></a>01971     connect( tmpDC, SIGNAL( activated( KMdiDockContainer* ) ), <span class="keyword">this</span>, SLOT( setActiveToolDock( KMdiDockContainer* ) ) );
<a name="l01972"></a>01972     connect( tmpDC, SIGNAL( deactivated( KMdiDockContainer* ) ), <span class="keyword">this</span>, SLOT( removeFromActiveDockList( KMdiDockContainer* ) ) );
<a name="l01973"></a>01973 
<a name="l01974"></a>01974     m_topContainer-&gt;setWidget( tmpDC = <span class="keyword">new</span> KMdiDockContainer( m_topContainer, <span class="keyword">this</span>, KDockWidget::DockTop, d-&gt;m_styleIDEAlMode ) );
<a name="l01975"></a>01975     m_topContainer-&gt;setEnableDocking( KDockWidget::DockTop );
<a name="l01976"></a>01976     m_topContainer-&gt;manualDock( mainDock, KDockWidget::DockTop, 20 );
<a name="l01977"></a>01977     tmpDC-&gt;init();
<a name="l01978"></a>01978     <span class="keywordflow">if</span> ( m_mdiGUIClient )
<a name="l01979"></a>01979         connect ( <span class="keyword">this</span>, SIGNAL( toggleTop() ), tmpDC, SLOT( toggle() ) );
<a name="l01980"></a>01980     connect( <span class="keyword">this</span>, SIGNAL( collapseOverlapContainers() ), tmpDC, SLOT( collapseOverlapped() ) );
<a name="l01981"></a>01981     connect( tmpDC, SIGNAL( activated( KMdiDockContainer* ) ), <span class="keyword">this</span>, SLOT( setActiveToolDock( KMdiDockContainer* ) ) );
<a name="l01982"></a>01982     connect( tmpDC, SIGNAL( deactivated( KMdiDockContainer* ) ), <span class="keyword">this</span>, SLOT( removeFromActiveDockList( KMdiDockContainer* ) ) );
<a name="l01983"></a>01983 
<a name="l01984"></a>01984     m_bottomContainer-&gt;setWidget( tmpDC = <span class="keyword">new</span> KMdiDockContainer( m_bottomContainer, <span class="keyword">this</span>, KDockWidget::DockBottom, d-&gt;m_styleIDEAlMode ) );
<a name="l01985"></a>01985     m_bottomContainer-&gt;setEnableDocking( KDockWidget::DockBottom );
<a name="l01986"></a>01986     m_bottomContainer-&gt;manualDock( mainDock, KDockWidget::DockBottom, 80 );
<a name="l01987"></a>01987     tmpDC-&gt;init();
<a name="l01988"></a>01988     <span class="keywordflow">if</span> ( m_mdiGUIClient )
<a name="l01989"></a>01989         connect ( <span class="keyword">this</span>, SIGNAL( toggleBottom() ), tmpDC, SLOT( toggle() ) );
<a name="l01990"></a>01990     connect( <span class="keyword">this</span>, SIGNAL( collapseOverlapContainers() ), tmpDC, SLOT( collapseOverlapped() ) );
<a name="l01991"></a>01991     connect( tmpDC, SIGNAL( activated( KMdiDockContainer* ) ), <span class="keyword">this</span>, SLOT( setActiveToolDock( KMdiDockContainer* ) ) );
<a name="l01992"></a>01992     connect( tmpDC, SIGNAL( deactivated( KMdiDockContainer* ) ), <span class="keyword">this</span>, SLOT( removeFromActiveDockList( KMdiDockContainer* ) ) );
<a name="l01993"></a>01993 
<a name="l01994"></a>01994     m_leftContainer-&gt;setDockSite( KDockWidget::DockCenter );
<a name="l01995"></a>01995     m_rightContainer-&gt;setDockSite( KDockWidget::DockCenter );
<a name="l01996"></a>01996     m_topContainer-&gt;setDockSite( KDockWidget::DockCenter );
<a name="l01997"></a>01997     m_bottomContainer-&gt;setDockSite( KDockWidget::DockCenter );
<a name="l01998"></a>01998 
<a name="l01999"></a>01999     dockToolViewsIntoContainers( leftReparentWidgets, m_leftContainer );
<a name="l02000"></a>02000     dockToolViewsIntoContainers( rightReparentWidgets, m_rightContainer );
<a name="l02001"></a>02001     dockToolViewsIntoContainers( bottomReparentWidgets, m_bottomContainer );
<a name="l02002"></a>02002     dockToolViewsIntoContainers( topReparentWidgets, m_topContainer );
<a name="l02003"></a>02003 
<a name="l02004"></a>02004 
<a name="l02005"></a>02005     dockManager-&gt;setSpecialLeftDockContainer( m_leftContainer );
<a name="l02006"></a>02006     dockManager-&gt;setSpecialRightDockContainer( m_rightContainer );
<a name="l02007"></a>02007     dockManager-&gt;setSpecialTopDockContainer( m_topContainer );
<a name="l02008"></a>02008     dockManager-&gt;setSpecialBottomDockContainer( m_bottomContainer );
<a name="l02009"></a>02009 
<a name="l02010"></a>02010 
<a name="l02011"></a>02011     ( ( KMdiDockContainer* ) ( m_leftContainer-&gt;getWidget() ) ) -&gt;hideIfNeeded();
<a name="l02012"></a>02012     ( ( KMdiDockContainer* ) ( m_rightContainer-&gt;getWidget() ) ) -&gt;hideIfNeeded();
<a name="l02013"></a>02013     ( ( KMdiDockContainer* ) ( m_topContainer-&gt;getWidget() ) ) -&gt;hideIfNeeded();
<a name="l02014"></a>02014     ( ( KMdiDockContainer* ) ( m_bottomContainer-&gt;getWidget() ) ) -&gt;hideIfNeeded();
<a name="l02015"></a>02015 
<a name="l02016"></a>02016 }
<a name="l02017"></a>02017 
<a name="l02018"></a>02018 
<a name="l02019"></a>02019 
<a name="l02020"></a>02020 <span class="keywordtype">void</span> KMdiMainFrm::finishIDEAlMode( <span class="keywordtype">bool</span> full )
<a name="l02021"></a>02021 {
<a name="l02022"></a>02022     <span class="comment">// if tabified, release all views from their docking covers</span>
<a name="l02023"></a>02023     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::IDEAlMode )
<a name="l02024"></a>02024     {
<a name="l02025"></a>02025         assert( m_pClose );
<a name="l02026"></a>02026         m_pClose-&gt;hide();
<a name="l02027"></a>02027         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pClose, SIGNAL( clicked() ), <span class="keyword">this</span>, SLOT( closeViewButtonPressed() ) );
<a name="l02028"></a>02028 
<a name="l02029"></a>02029 
<a name="l02030"></a>02030         <a class="codeRef" href="qstringlist.html">QStringList</a> leftNames;
<a name="l02031"></a>02031         leftNames = prepareIdealToTabs( m_leftContainer );
<a name="l02032"></a>02032         <span class="keywordtype">int</span> leftWidth = m_leftContainer-&gt;width();
<a name="l02033"></a>02033 
<a name="l02034"></a>02034         <a class="codeRef" href="qstringlist.html">QStringList</a> rightNames;
<a name="l02035"></a>02035         rightNames = prepareIdealToTabs( m_rightContainer );
<a name="l02036"></a>02036         <span class="keywordtype">int</span> rightWidth = m_rightContainer-&gt;width();
<a name="l02037"></a>02037 
<a name="l02038"></a>02038         <a class="codeRef" href="qstringlist.html">QStringList</a> topNames;
<a name="l02039"></a>02039         topNames = prepareIdealToTabs( m_topContainer );
<a name="l02040"></a>02040         <span class="keywordtype">int</span> topHeight = m_topContainer-&gt;height();
<a name="l02041"></a>02041 
<a name="l02042"></a>02042         <a class="codeRef" href="qstringlist.html">QStringList</a> bottomNames;
<a name="l02043"></a>02043         bottomNames = prepareIdealToTabs( m_bottomContainer );
<a name="l02044"></a>02044         <span class="keywordtype">int</span> bottomHeight = m_bottomContainer-&gt;height();
<a name="l02045"></a>02045 
<a name="l02046"></a>02046 
<a name="l02047"></a>02047         kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;leftNames&quot;</span> &lt;&lt; leftNames &lt;&lt; endl;
<a name="l02048"></a>02048         kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;rightNames&quot;</span> &lt;&lt; rightNames &lt;&lt; endl;
<a name="l02049"></a>02049         kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;topNames&quot;</span> &lt;&lt; topNames &lt;&lt; endl;
<a name="l02050"></a>02050         kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;bottomNames&quot;</span> &lt;&lt; bottomNames &lt;&lt; endl;
<a name="l02051"></a>02051 
<a name="l02052"></a>02052         <span class="keyword">delete</span> m_leftContainer;
<a name="l02053"></a>02053         m_leftContainer = 0;
<a name="l02054"></a>02054         <span class="keyword">delete</span> m_rightContainer;
<a name="l02055"></a>02055         m_rightContainer = 0;
<a name="l02056"></a>02056         <span class="keyword">delete</span> m_bottomContainer;
<a name="l02057"></a>02057         m_bottomContainer = 0;
<a name="l02058"></a>02058         <span class="keyword">delete</span> m_topContainer;
<a name="l02059"></a>02059         m_topContainer = 0;
<a name="l02060"></a>02060 
<a name="l02061"></a>02061 
<a name="l02062"></a>02062         idealToolViewsToStandardTabs( bottomNames, KDockWidget::DockBottom, bottomHeight );
<a name="l02063"></a>02063         idealToolViewsToStandardTabs( leftNames, KDockWidget::DockLeft, leftWidth );
<a name="l02064"></a>02064         idealToolViewsToStandardTabs( rightNames, KDockWidget::DockRight, rightWidth );
<a name="l02065"></a>02065         idealToolViewsToStandardTabs( topNames, KDockWidget::DockTop, topHeight );
<a name="l02066"></a>02066 
<a name="l02067"></a>02067         <a class="codeRef" href="qapplication.html#sendPostedEvents-2">QApplication::sendPostedEvents</a>();
<a name="l02068"></a>02068 
<a name="l02069"></a>02069         <span class="keywordflow">if</span> ( !full )
<a name="l02070"></a>02070             return ;
<a name="l02071"></a>02071 
<a name="l02072"></a>02072         <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l02073"></a>02073         <span class="keywordflow">for</span> ( ; it.current(); ++it )
<a name="l02074"></a>02074         {
<a name="l02075"></a>02075             <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = it.current();
<a name="l02076"></a>02076             <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#a534402891b4ef8226235531ca2a19d70" title="Returns if this is added as MDI tool-view.">isToolView</a>() )
<a name="l02077"></a>02077                 <span class="keywordflow">continue</span>;
<a name="l02078"></a>02078             <a class="codeRef" href="qsize.html">QSize</a> mins = pView-&gt;<a class="codeRef" href="qwidget.html#minimumSize">minimumSize</a>();
<a name="l02079"></a>02079             <a class="codeRef" href="qsize.html">QSize</a> maxs = pView-&gt;<a class="codeRef" href="qwidget.html#maximumSize">maximumSize</a>();
<a name="l02080"></a>02080             <a class="codeRef" href="qsize.html">QSize</a> sz = pView-&gt;<a class="codeRef" href="qwidget.html#size">size</a>();
<a name="l02081"></a>02081             <a class="codeRef" href="qwidget.html">QWidget</a>* pParent = pView-&gt;<a class="codeRef" href="qwidget.html#parentWidget">parentWidget</a>();
<a name="l02082"></a>02082             <a class="codeRef" href="qpoint.html">QPoint</a> p( pParent-&gt;<a class="codeRef" href="qwidget.html#mapToGlobal">mapToGlobal</a>( pParent-&gt;<a class="codeRef" href="qwidget.html#pos">pos</a>() ) - pParent-&gt;<a class="codeRef" href="qwidget.html#pos">pos</a>() + m_undockPositioningOffset );
<a name="l02083"></a>02083             pView-&gt;<a class="codeRef" href="qwidget.html#reparent">reparent</a>( 0, 0, p );
<a name="l02084"></a>02084             pView-&gt;<a class="codeRef" href="qwidget.html#reparent">reparent</a>( 0, 0, p );
<a name="l02085"></a>02085             pView-&gt;<a class="codeRef" href="qwidget.html#resize">resize</a>( sz );
<a name="l02086"></a>02086             pView-&gt;<a class="code" href="classKMdiChildView.html#ad80dba92dda841efcf2aba66b5e54a8b" title="Sets the minimum size of the widget to w by h pixels.">setMinimumSize</a>( mins.<a class="codeRef" href="qsize.html#width">width</a>(), mins.<a class="codeRef" href="qsize.html#height">height</a>() );
<a name="l02087"></a>02087             pView-&gt;<a class="code" href="classKMdiChildView.html#af8d5385c7c87dad91cad376eda8f2868" title="Sets the maximum size of the widget to w by h pixels.">setMaximumSize</a>( maxs.<a class="codeRef" href="qsize.html#width">width</a>(), maxs.<a class="codeRef" href="qsize.html#height">height</a>() );
<a name="l02088"></a>02088             KDockWidget* pDockW = 0L;
<a name="l02089"></a>02089             <span class="comment">// find the oldest ancestor of the current dockwidget that can be undocked</span>
<a name="l02090"></a>02090             <span class="keywordflow">do</span>
<a name="l02091"></a>02091             {
<a name="l02092"></a>02092                 <span class="keywordflow">if</span> ( pParent-&gt;inherits( <span class="stringliteral">&quot;KDockWidget&quot;</span> ) || pParent-&gt;inherits( <span class="stringliteral">&quot;KDockWidget_Compat::KDockWidget&quot;</span> ) )
<a name="l02093"></a>02093                 {
<a name="l02094"></a>02094                     pDockW = ( KDockWidget* ) pParent;
<a name="l02095"></a>02095                     pDockW-&gt;undock(); <span class="comment">// this destroys the dockwiget cover, too</span>
<a name="l02096"></a>02096                     <span class="keywordflow">if</span> ( pParent != m_pDockbaseAreaOfDocumentViews )
<a name="l02097"></a>02097                     {
<a name="l02098"></a>02098                         pParent-&gt;<a class="codeRef" href="qwidget.html#close">close</a>();
<a name="l02099"></a>02099                         <span class="keyword">delete</span> pParent;
<a name="l02100"></a>02100                     }
<a name="l02101"></a>02101                 }
<a name="l02102"></a>02102                 <span class="keywordflow">else</span>
<a name="l02103"></a>02103                 {
<a name="l02104"></a>02104                     pParent = pParent-&gt;<a class="codeRef" href="qwidget.html#parentWidget">parentWidget</a>();
<a name="l02105"></a>02105                 }
<a name="l02106"></a>02106             }
<a name="l02107"></a>02107             <span class="keywordflow">while</span> ( pParent &amp;&amp; !pDockW );
<a name="l02108"></a>02108             <span class="keywordflow">if</span> ( centralWidget() == pParent )
<a name="l02109"></a>02109             {
<a name="l02110"></a>02110                 setCentralWidget( 0L ); <span class="comment">// avoid dangling pointer</span>
<a name="l02111"></a>02111             }
<a name="l02112"></a>02112         }
<a name="l02113"></a>02113         m_pTaskBar-&gt;switchOn( <span class="keyword">true</span> );
<a name="l02114"></a>02114 
<a name="l02115"></a>02115     }
<a name="l02116"></a>02116 
<a name="l02117"></a>02117 }
<a name="l02118"></a>02118 
<a name="l02119"></a>02119 <a class="codeRef" href="qstringlist.html">QStringList</a> KMdiMainFrm::prepareIdealToTabs( KDockWidget* container )
<a name="l02120"></a>02120 {
<a name="l02121"></a>02121     KDockContainer * pDW = <span class="keyword">dynamic_cast&lt;</span>KDockContainer*<span class="keyword">&gt;</span>( container-&gt;getWidget() );
<a name="l02122"></a>02122     <a class="codeRef" href="qstringlist.html">QStringList</a> widgetNames = ( ( KMdiDockContainer* ) pDW ) -&gt;containedWidgets();
<a name="l02123"></a>02123     <span class="keywordflow">for</span> ( QStringList::iterator it = widgetNames.begin();it != widgetNames.end();++it )
<a name="l02124"></a>02124     {
<a name="l02125"></a>02125         KDockWidget* dw = ( KDockWidget* ) manager() -&gt;getDockWidgetFromName( *it );
<a name="l02126"></a>02126         dw-&gt;undock();
<a name="l02127"></a>02127         dw-&gt;setLatestKDockContainer( 0 );
<a name="l02128"></a>02128         dw-&gt;loseFormerBrotherDockWidget();
<a name="l02129"></a>02129     }
<a name="l02130"></a>02130     <span class="keywordflow">return</span> widgetNames;
<a name="l02131"></a>02131 }
<a name="l02132"></a>02132 
<a name="l02133"></a>02133 <span class="keywordtype">void</span> KMdiMainFrm::idealToolViewsToStandardTabs( <a class="codeRef" href="qstringlist.html">QStringList</a> widgetNames, KDockWidget::DockPosition pos, <span class="keywordtype">int</span> size )
<a name="l02134"></a>02134 {
<a name="l02135"></a>02135     Q_UNUSED( size )
<a name="l02136"></a>02136 
<a name="l02137"></a>02137     KDockWidget * mainDock = getMainDockWidget();
<a name="l02138"></a>02138     if ( mainDock-&gt;parentDockTabGroup() )
<a name="l02139"></a>02139     {
<a name="l02140"></a>02140         mainDock = <span class="keyword">static_cast&lt;</span>KDockWidget*<span class="keyword">&gt;</span>( mainDock-&gt;parentDockTabGroup() -&gt;parent() );
<a name="l02141"></a>02141     }
<a name="l02142"></a>02142 
<a name="l02143"></a>02143     <span class="keywordflow">if</span> ( widgetNames.count() &gt; 0 )
<a name="l02144"></a>02144     {
<a name="l02145"></a>02145         QStringList::iterator it = widgetNames.begin();
<a name="l02146"></a>02146         KDockWidget *dwpd = manager() -&gt;getDockWidgetFromName( *it );
<a name="l02147"></a>02147         <span class="keywordflow">if</span> ( !dwpd )
<a name="l02148"></a>02148         {
<a name="l02149"></a>02149             kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;Fatal error in finishIDEAlMode&quot;</span> &lt;&lt; endl;
<a name="l02150"></a>02150             return ;
<a name="l02151"></a>02151         }
<a name="l02152"></a>02152         dwpd-&gt;manualDock( mainDock, pos, 20 );
<a name="l02153"></a>02153         ++it;
<a name="l02154"></a>02154         <span class="keywordflow">for</span> ( ;it != widgetNames.end();++it )
<a name="l02155"></a>02155         {
<a name="l02156"></a>02156             KDockWidget *tmpdw = manager() -&gt;getDockWidgetFromName( *it );
<a name="l02157"></a>02157             <span class="keywordflow">if</span> ( !tmpdw )
<a name="l02158"></a>02158             {
<a name="l02159"></a>02159                 kdDebug(760) &lt;&lt; <span class="stringliteral">&quot;Fatal error in finishIDEAlMode&quot;</span> &lt;&lt; endl;
<a name="l02160"></a>02160                 return ;
<a name="l02161"></a>02161             }
<a name="l02162"></a>02162             tmpdw-&gt;manualDock( dwpd, KDockWidget::DockCenter, 20 );
<a name="l02163"></a>02163         }
<a name="l02164"></a>02164 
<a name="l02165"></a>02165 <span class="preprocessor">#if 0</span>
<a name="l02166"></a>02166 <span class="preprocessor"></span>        <a class="codeRef" href="qwidget.html">QWidget</a> *wid = dwpd-&gt;parentDockTabGroup();
<a name="l02167"></a>02167         <span class="keywordflow">if</span> ( !wid )
<a name="l02168"></a>02168             wid = dwpd;
<a name="l02169"></a>02169         wid-&gt;<a class="codeRef" href="qwidget.html#setGeometry">setGeometry</a>( 0, 0, 20, 20 );
<a name="l02170"></a>02170         <span class="comment">/*  wid-&gt;resize(</span>
<a name="l02171"></a>02171 <span class="comment">            ((pos==KDockWidget::DockLeft) || (pos==KDockWidget::DockRight))?size:wid-&gt;width(),</span>
<a name="l02172"></a>02172 <span class="comment">            ((pos==KDockWidget::DockLeft) || (pos==KDockWidget::DockRight))?wid-&gt;height():size);</span>
<a name="l02173"></a>02173 <span class="comment">         */</span>
<a name="l02174"></a>02174 <span class="preprocessor">#endif</span>
<a name="l02175"></a>02175 <span class="preprocessor"></span>
<a name="l02176"></a>02176     }
<a name="l02177"></a>02177 
<a name="l02178"></a>02178 }
<a name="l02179"></a>02179 
<a name="l02180"></a>02180 
<a name="l02188"></a><a class="code" href="classKMdiMainFrm.html#a8d42ac5771fd824eb02c2ceb4311b3cb">02188</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a8d42ac5771fd824eb02c2ceb4311b3cb" title="Tells the MDI system a QMenu where it can insert buttons for the system menu, undock, minimize, restore actions.">KMdiMainFrm::setMenuForSDIModeSysButtons</a>( KMenuBar* pMenuBar )
<a name="l02189"></a>02189 {
<a name="l02190"></a>02190     <span class="keywordflow">if</span> ( m_bSDIApplication )   <span class="comment">// there are no buttons in the menubar in this mode (although the view is always maximized)</span>
<a name="l02191"></a>02191         return ;
<a name="l02192"></a>02192 
<a name="l02193"></a>02193     m_pMainMenuBar = pMenuBar;
<a name="l02194"></a>02194     <span class="keywordflow">if</span> ( m_pMainMenuBar == 0L )
<a name="l02195"></a>02195         return ;  <span class="comment">// use setMenuForSDIModeSysButtons( 0L) for unsetting the external main menu!</span>
<a name="l02196"></a>02196 
<a name="l02197"></a>02197     <span class="keywordflow">if</span> ( !m_pUndock )
<a name="l02198"></a>02198         m_pUndock = <span class="keyword">new</span> <a class="codeRef" href="qtoolbutton.html">QToolButton</a>( pMenuBar );
<a name="l02199"></a>02199     <span class="keywordflow">if</span> ( !m_pRestore )
<a name="l02200"></a>02200         m_pRestore = <span class="keyword">new</span> <a class="codeRef" href="qtoolbutton.html">QToolButton</a>( pMenuBar );
<a name="l02201"></a>02201     <span class="keywordflow">if</span> ( !m_pMinimize )
<a name="l02202"></a>02202         m_pMinimize = <span class="keyword">new</span> <a class="codeRef" href="qtoolbutton.html">QToolButton</a>( pMenuBar );
<a name="l02203"></a>02203     <span class="keywordflow">if</span> ( !m_pClose )
<a name="l02204"></a>02204         m_pClose = <span class="keyword">new</span> <a class="codeRef" href="qtoolbutton.html">QToolButton</a>( pMenuBar );
<a name="l02205"></a>02205     m_pUndock-&gt;setAutoRaise( <span class="keyword">false</span> );
<a name="l02206"></a>02206     m_pMinimize-&gt;setAutoRaise( <span class="keyword">false</span> );
<a name="l02207"></a>02207     m_pRestore-&gt;setAutoRaise( <span class="keyword">false</span> );
<a name="l02208"></a>02208     m_pClose-&gt;setAutoRaise( <span class="keyword">false</span> );
<a name="l02209"></a>02209 
<a name="l02210"></a>02210     setSysButtonsAtMenuPosition();
<a name="l02211"></a>02211 
<a name="l02212"></a>02212     <span class="keyword">delete</span> m_pUndockButtonPixmap;
<a name="l02213"></a>02213     <span class="keyword">delete</span> m_pMinButtonPixmap;
<a name="l02214"></a>02214     <span class="keyword">delete</span> m_pRestoreButtonPixmap;
<a name="l02215"></a>02215     <span class="keyword">delete</span> m_pCloseButtonPixmap;
<a name="l02216"></a>02216     <span class="comment">// create the decoration pixmaps</span>
<a name="l02217"></a>02217     <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::Win95Look )
<a name="l02218"></a>02218     {
<a name="l02219"></a>02219         m_pUndockButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( win_undockbutton );
<a name="l02220"></a>02220         m_pMinButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( win_minbutton );
<a name="l02221"></a>02221         m_pRestoreButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( win_restorebutton );
<a name="l02222"></a>02222         m_pCloseButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( win_closebutton );
<a name="l02223"></a>02223     }
<a name="l02224"></a>02224     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::KDE1Look )
<a name="l02225"></a>02225     {
<a name="l02226"></a>02226         m_pUndockButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde_undockbutton );
<a name="l02227"></a>02227         m_pMinButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde_minbutton );
<a name="l02228"></a>02228         m_pRestoreButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde_restorebutton );
<a name="l02229"></a>02229         m_pCloseButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde_closebutton );
<a name="l02230"></a>02230         m_pUndock-&gt;setAutoRaise( <span class="keyword">true</span> );
<a name="l02231"></a>02231         m_pMinimize-&gt;setAutoRaise( <span class="keyword">true</span> );
<a name="l02232"></a>02232         m_pRestore-&gt;setAutoRaise( <span class="keyword">true</span> );
<a name="l02233"></a>02233         m_pClose-&gt;setAutoRaise( <span class="keyword">true</span> );
<a name="l02234"></a>02234     }
<a name="l02235"></a>02235     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::KDELook )
<a name="l02236"></a>02236     {
<a name="l02237"></a>02237         m_pUndockButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2_undockbutton );
<a name="l02238"></a>02238         m_pMinButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2_minbutton );
<a name="l02239"></a>02239         m_pRestoreButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2_restorebutton );
<a name="l02240"></a>02240         m_pCloseButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2_closebutton );
<a name="l02241"></a>02241     }
<a name="l02242"></a>02242     <span class="keywordflow">else</span>
<a name="l02243"></a>02243     {   <span class="comment">// kde2laptop look</span>
<a name="l02244"></a>02244         m_pUndockButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2laptop_undockbutton );
<a name="l02245"></a>02245         m_pMinButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2laptop_minbutton );
<a name="l02246"></a>02246         m_pRestoreButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2laptop_restorebutton );
<a name="l02247"></a>02247         m_pCloseButtonPixmap = <span class="keyword">new</span> <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2laptop_closebutton );
<a name="l02248"></a>02248     }
<a name="l02249"></a>02249 
<a name="l02250"></a>02250     m_pUndock-&gt;hide();
<a name="l02251"></a>02251     m_pMinimize-&gt;hide();
<a name="l02252"></a>02252     m_pRestore-&gt;hide();
<a name="l02253"></a>02253     m_pClose-&gt;hide();
<a name="l02254"></a>02254 
<a name="l02255"></a>02255     m_pUndock-&gt;setPixmap( *m_pUndockButtonPixmap );
<a name="l02256"></a>02256     m_pMinimize-&gt;setPixmap( *m_pMinButtonPixmap );
<a name="l02257"></a>02257     m_pRestore-&gt;setPixmap( *m_pRestoreButtonPixmap );
<a name="l02258"></a>02258     m_pClose-&gt;setPixmap( *m_pCloseButtonPixmap );
<a name="l02259"></a>02259 }
<a name="l02260"></a>02260 
<a name="l02261"></a><a class="code" href="classKMdiMainFrm.html#aed0cdce82bca641f64dab9390bdf60c1">02261</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#aed0cdce82bca641f64dab9390bdf60c1" title="If there&#39;s a main menubar given, it will create the 4 maximize mode buttons there (undock...">KMdiMainFrm::setSysButtonsAtMenuPosition</a>()
<a name="l02262"></a>02262 {
<a name="l02263"></a>02263     <span class="keywordflow">if</span> ( m_pMainMenuBar == 0L )
<a name="l02264"></a>02264         return ;
<a name="l02265"></a>02265     <span class="keywordflow">if</span> ( m_pMainMenuBar-&gt;parentWidget() == 0L )
<a name="l02266"></a>02266         <span class="keywordflow">return</span> ;
<a name="l02267"></a>02267 
<a name="l02268"></a>02268     <span class="keywordtype">int</span> menuW = m_pMainMenuBar-&gt;parentWidget() -&gt;width();
<a name="l02269"></a>02269     <span class="keywordtype">int</span> h;
<a name="l02270"></a>02270     <span class="keywordtype">int</span> y;
<a name="l02271"></a>02271     <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::Win95Look )
<a name="l02272"></a>02272         h = 16;
<a name="l02273"></a>02273     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::KDE1Look )
<a name="l02274"></a>02274         h = 20;
<a name="l02275"></a>02275     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::KDELook )
<a name="l02276"></a>02276         h = 16;
<a name="l02277"></a>02277     <span class="keywordflow">else</span>
<a name="l02278"></a>02278         h = 14;
<a name="l02279"></a>02279     y = m_pMainMenuBar-&gt;height() / 2 - h / 2;
<a name="l02280"></a>02280 
<a name="l02281"></a>02281     <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::KDELaptopLook )
<a name="l02282"></a>02282     {
<a name="l02283"></a>02283         <span class="keywordtype">int</span> w = 27;
<a name="l02284"></a>02284         m_pUndock-&gt;setGeometry( ( menuW - ( w * 3 ) - 5 ), y, w, h );
<a name="l02285"></a>02285         m_pMinimize-&gt;setGeometry( ( menuW - ( w * 2 ) - 5 ), y, w, h );
<a name="l02286"></a>02286         m_pRestore-&gt;setGeometry( ( menuW - w - 5 ), y, w, h );
<a name="l02287"></a>02287     }
<a name="l02288"></a>02288     <span class="keywordflow">else</span>
<a name="l02289"></a>02289     {
<a name="l02290"></a>02290         m_pUndock-&gt;setGeometry( ( menuW - ( h * 4 ) - 5 ), y, h, h );
<a name="l02291"></a>02291         m_pMinimize-&gt;setGeometry( ( menuW - ( h * 3 ) - 5 ), y, h, h );
<a name="l02292"></a>02292         m_pRestore-&gt;setGeometry( ( menuW - ( h * 2 ) - 5 ), y, h, h );
<a name="l02293"></a>02293         m_pClose-&gt;setGeometry( ( menuW - h - 5 ), y, h, h );
<a name="l02294"></a>02294     }
<a name="l02295"></a>02295 }
<a name="l02296"></a>02296 
<a name="l02298"></a><a class="code" href="classKMdiMainFrm.html#ae5aec7cf5ea6930921140969e85e5b69">02298</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ae5aec7cf5ea6930921140969e85e5b69" title="Activates the next open view.">KMdiMainFrm::activateNextWin</a>()
<a name="l02299"></a>02299 {
<a name="l02300"></a>02300     KMdiIterator&lt;KMdiChildView*&gt;* it = createIterator();
<a name="l02301"></a>02301     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* aWin = activeWindow();
<a name="l02302"></a>02302     <span class="keywordflow">for</span> ( it-&gt;first(); !it-&gt;isDone(); it-&gt;next() )
<a name="l02303"></a>02303     {
<a name="l02304"></a>02304         <span class="keywordflow">if</span> ( it-&gt;currentItem() == aWin )
<a name="l02305"></a>02305         {
<a name="l02306"></a>02306             it-&gt;next();
<a name="l02307"></a>02307             <span class="keywordflow">if</span> ( !it-&gt;currentItem() )
<a name="l02308"></a>02308             {
<a name="l02309"></a>02309                 it-&gt;first();
<a name="l02310"></a>02310             }
<a name="l02311"></a>02311             <span class="keywordflow">if</span> ( it-&gt;currentItem() )
<a name="l02312"></a>02312             {
<a name="l02313"></a>02313                 activateView( it-&gt;currentItem() );
<a name="l02314"></a>02314             }
<a name="l02315"></a>02315             <span class="keywordflow">break</span>;
<a name="l02316"></a>02316         }
<a name="l02317"></a>02317     }
<a name="l02318"></a>02318     <span class="keyword">delete</span> it;
<a name="l02319"></a>02319 }
<a name="l02320"></a>02320 
<a name="l02322"></a><a class="code" href="classKMdiMainFrm.html#a5d565c49d1e7d3473b7ef787ca8af8ca">02322</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a5d565c49d1e7d3473b7ef787ca8af8ca" title="Activates the previous open view.">KMdiMainFrm::activatePrevWin</a>()
<a name="l02323"></a>02323 {
<a name="l02324"></a>02324     KMdiIterator&lt;KMdiChildView*&gt;* it = createIterator();
<a name="l02325"></a>02325     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* aWin = activeWindow();
<a name="l02326"></a>02326     <span class="keywordflow">for</span> ( it-&gt;first(); !it-&gt;isDone(); it-&gt;next() )
<a name="l02327"></a>02327     {
<a name="l02328"></a>02328         <span class="keywordflow">if</span> ( it-&gt;currentItem() == aWin )
<a name="l02329"></a>02329         {
<a name="l02330"></a>02330             it-&gt;prev();
<a name="l02331"></a>02331             <span class="keywordflow">if</span> ( !it-&gt;currentItem() )
<a name="l02332"></a>02332             {
<a name="l02333"></a>02333                 it-&gt;last();
<a name="l02334"></a>02334             }
<a name="l02335"></a>02335             <span class="keywordflow">if</span> ( it-&gt;currentItem() )
<a name="l02336"></a>02336             {
<a name="l02337"></a>02337                 activateView( it-&gt;currentItem() );
<a name="l02338"></a>02338             }
<a name="l02339"></a>02339             <span class="keywordflow">break</span>;
<a name="l02340"></a>02340         }
<a name="l02341"></a>02341     }
<a name="l02342"></a>02342     <span class="keyword">delete</span> it;
<a name="l02343"></a>02343 }
<a name="l02344"></a>02344 
<a name="l02346"></a><a class="code" href="classKMdiMainFrm.html#a68be9feab1ee2c93dbb36033a0390c21">02346</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a68be9feab1ee2c93dbb36033a0390c21" title="Activates the view first viewed concerning to the access time.">KMdiMainFrm::activateFirstWin</a>()
<a name="l02347"></a>02347 {
<a name="l02348"></a>02348     m_bSwitching= <span class="keyword">true</span>; <span class="comment">// flag that we are currently switching between windows</span>
<a name="l02349"></a>02349     KMdiIterator&lt;KMdiChildView*&gt;* it = createIterator();
<a name="l02350"></a>02350     <a class="codeRef" href="qmap.html">QMap&lt;QDateTime, KMdiChildView*&gt;</a> m;
<a name="l02351"></a>02351     <span class="keywordflow">for</span> ( it-&gt;first(); !it-&gt;isDone(); it-&gt;next() )
<a name="l02352"></a>02352     {
<a name="l02353"></a>02353         m.<a class="codeRef" href="qmap.html#insert">insert</a>( it-&gt;currentItem() -&gt;getTimeStamp(), it-&gt;currentItem() );
<a name="l02354"></a>02354     }
<a name="l02355"></a>02355 
<a name="l02356"></a>02356     <span class="keywordflow">if</span> ( !activeWindow() )
<a name="l02357"></a>02357         <span class="keywordflow">return</span> ;
<a name="l02358"></a>02358 
<a name="l02359"></a>02359     <a class="codeRef" href="qdatetime.html">QDateTime</a> current = activeWindow() -&gt;getTimeStamp();
<a name="l02360"></a>02360     <a class="codeRef" href="qmap.html">QMap&lt;QDateTime, KMdiChildView*&gt;::iterator</a> pos( m.<a class="codeRef" href="qmap.html#find">find</a>( current ) );
<a name="l02361"></a>02361     <a class="codeRef" href="qmap.html">QMap&lt;QDateTime, KMdiChildView*&gt;::iterator</a> newPos = pos;
<a name="l02362"></a>02362     <span class="keywordflow">if</span> ( pos != m.<a class="codeRef" href="qmap.html#end">end</a>() )
<a name="l02363"></a>02363     {
<a name="l02364"></a>02364         ++newPos;
<a name="l02365"></a>02365     }
<a name="l02366"></a>02366     <span class="keywordflow">if</span> ( newPos != m.<a class="codeRef" href="qmap.html#end">end</a>() )
<a name="l02367"></a>02367     { <span class="comment">// look ahead</span>
<a name="l02368"></a>02368         ++pos;
<a name="l02369"></a>02369     }
<a name="l02370"></a>02370     <span class="keywordflow">else</span>
<a name="l02371"></a>02371     {
<a name="l02372"></a>02372         pos = m.<a class="codeRef" href="qmap.html#begin">begin</a>();
<a name="l02373"></a>02373     }
<a name="l02374"></a>02374     activateView( pos.data() );
<a name="l02375"></a>02375     <span class="keyword">delete</span> it;
<a name="l02376"></a>02376 }
<a name="l02377"></a>02377 
<a name="l02379"></a><a class="code" href="classKMdiMainFrm.html#a5b4ee32a32453498dfa662f8969a1c0c">02379</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a5b4ee32a32453498dfa662f8969a1c0c" title="Activates the view last viewed concerning to the access time.">KMdiMainFrm::activateLastWin</a>()
<a name="l02380"></a>02380 {
<a name="l02381"></a>02381     m_bSwitching= <span class="keyword">true</span>; <span class="comment">// flag that we are currently switching between windows</span>
<a name="l02382"></a>02382     KMdiIterator&lt;KMdiChildView*&gt;* it = createIterator();
<a name="l02383"></a>02383     <a class="codeRef" href="qmap.html">QMap&lt;QDateTime, KMdiChildView*&gt;</a> m;
<a name="l02384"></a>02384     <span class="keywordflow">for</span> ( it-&gt;first(); !it-&gt;isDone(); it-&gt;next() )
<a name="l02385"></a>02385     {
<a name="l02386"></a>02386         m.<a class="codeRef" href="qmap.html#insert">insert</a>( it-&gt;currentItem() -&gt;getTimeStamp(), it-&gt;currentItem() );
<a name="l02387"></a>02387     }
<a name="l02388"></a>02388 
<a name="l02389"></a>02389     <span class="keywordflow">if</span> ( !activeWindow() )
<a name="l02390"></a>02390         <span class="keywordflow">return</span> ;
<a name="l02391"></a>02391 
<a name="l02392"></a>02392     <a class="codeRef" href="qdatetime.html">QDateTime</a> current = activeWindow() -&gt;getTimeStamp();
<a name="l02393"></a>02393     <a class="codeRef" href="qmap.html">QMap&lt;QDateTime, KMdiChildView*&gt;::iterator</a> pos( m.<a class="codeRef" href="qmap.html#find">find</a>( current ) );
<a name="l02394"></a>02394     <span class="keywordflow">if</span> ( pos != m.<a class="codeRef" href="qmap.html#begin">begin</a>() )
<a name="l02395"></a>02395     {
<a name="l02396"></a>02396         --pos;
<a name="l02397"></a>02397     }
<a name="l02398"></a>02398     <span class="keywordflow">else</span>
<a name="l02399"></a>02399     {
<a name="l02400"></a>02400         pos = m.<a class="codeRef" href="qmap.html#end">end</a>();
<a name="l02401"></a>02401         --pos;
<a name="l02402"></a>02402     }
<a name="l02403"></a>02403     activateView( pos.data() );
<a name="l02404"></a>02404     <span class="keyword">delete</span> it;
<a name="l02405"></a>02405 }
<a name="l02406"></a>02406 
<a name="l02408"></a><a class="code" href="classKMdiMainFrm.html#a71008f9cc9304e0ac10404ec6ae3d541">02408</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a71008f9cc9304e0ac10404ec6ae3d541" title="Activates the view with the tab page index (TabPage mode only)">KMdiMainFrm::activateView</a>( <span class="keywordtype">int</span> index )
<a name="l02409"></a>02409 {
<a name="l02410"></a>02410     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> * pView = m_pDocumentViews-&gt;first();
<a name="l02411"></a>02411     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; pView &amp;&amp; ( i &lt; index ); i++ )
<a name="l02412"></a>02412     {
<a name="l02413"></a>02413         pView = m_pDocumentViews-&gt;next();
<a name="l02414"></a>02414     }
<a name="l02415"></a>02415     <span class="keywordflow">if</span> ( pView )
<a name="l02416"></a>02416     {
<a name="l02417"></a>02417         pView-&gt;<a class="code" href="classKMdiChildView.html#a41d61200c3004a24ff4c75c5f75a74d7" title="This method does the same as focusInEvent().">activate</a>();
<a name="l02418"></a>02418     }
<a name="l02419"></a>02419 }
<a name="l02420"></a>02420 
<a name="l02422"></a><a class="code" href="classKMdiMainFrm.html#a2aa023554e79651f3b23aad6703dc1c4">02422</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a2aa023554e79651f3b23aad6703dc1c4" title="If in Childframe mode, we can switch between maximized or restored shown MDI views.">KMdiMainFrm::setEnableMaximizedChildFrmMode</a>( <span class="keywordtype">bool</span> enableMaxChildFrameMode )
<a name="l02423"></a>02423 {
<a name="l02424"></a>02424     <span class="keywordflow">if</span> ( enableMaxChildFrameMode )
<a name="l02425"></a>02425     {
<a name="l02426"></a>02426         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Turning on maximized child frame mode&quot;</span> &lt;&lt; endl;
<a name="l02427"></a>02427         m_bMaximizedChildFrmMode = <span class="keyword">true</span>;
<a name="l02428"></a>02428         
<a name="l02429"></a>02429         <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* pCurrentChild = m_pMdi-&gt;topChild();
<a name="l02430"></a>02430         
<a name="l02431"></a>02431         <span class="comment">//If we have no child or there is no menubar, we do nothing</span>
<a name="l02432"></a>02432         <span class="keywordflow">if</span> ( !pCurrentChild || !m_pMainMenuBar )
<a name="l02433"></a>02433             return ;
<a name="l02434"></a>02434 
<a name="l02435"></a>02435         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pUndock, SIGNAL( clicked() ), pCurrentChild, SLOT( undockPressed() ) );
<a name="l02436"></a>02436         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pMinimize, SIGNAL( clicked() ), pCurrentChild, SLOT( minimizePressed() ) );
<a name="l02437"></a>02437         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pRestore, SIGNAL( clicked() ), pCurrentChild, SLOT( maximizePressed() ) );
<a name="l02438"></a>02438         m_pMinimize-&gt;show();
<a name="l02439"></a>02439         m_pUndock-&gt;show();
<a name="l02440"></a>02440         m_pRestore-&gt;show();
<a name="l02441"></a>02441 
<a name="l02442"></a>02442         <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::KDELaptopLook )
<a name="l02443"></a>02443         {
<a name="l02444"></a>02444             m_pMainMenuBar-&gt;insertItem( <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2laptop_closebutton_menu ), m_pMdi-&gt;topChild(), SLOT( closePressed() ), 0, -1, 0 );
<a name="l02445"></a>02445         }
<a name="l02446"></a>02446         <span class="keywordflow">else</span>
<a name="l02447"></a>02447         {
<a name="l02448"></a>02448             m_pMainMenuBar-&gt;insertItem( *pCurrentChild-&gt;<a class="code" href="classKMdiChildFrm.html#ac1c8354a76dde03b5aa52df2c689669f" title="Returns the child frame icon.">icon</a>(), pCurrentChild-&gt;<a class="code" href="classKMdiChildFrm.html#ad7cf5ffa04f91a42199e22c9e39bc97d" title="Returns the system menu.">systemMenu</a>(), -1, 0 );
<a name="l02449"></a>02449             <span class="keywordflow">if</span> ( m_pClose )
<a name="l02450"></a>02450             {
<a name="l02451"></a>02451                 <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pClose, SIGNAL( clicked() ), pCurrentChild, SLOT( closePressed() ) );
<a name="l02452"></a>02452                 m_pClose-&gt;show();
<a name="l02453"></a>02453             }
<a name="l02454"></a>02454             <span class="keywordflow">else</span>
<a name="l02455"></a>02455                 kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;no close button. things won&#39;t behave correctly&quot;</span> &lt;&lt; endl;
<a name="l02456"></a>02456         }
<a name="l02457"></a>02457     }
<a name="l02458"></a>02458     <span class="keywordflow">else</span>
<a name="l02459"></a>02459     {
<a name="l02460"></a>02460         <span class="keywordflow">if</span> ( !m_bMaximizedChildFrmMode )
<a name="l02461"></a>02461             return ;  <span class="comment">// already set, nothing to do</span>
<a name="l02462"></a>02462 
<a name="l02463"></a>02463         kdDebug(760) &lt;&lt; k_funcinfo &lt;&lt; <span class="stringliteral">&quot;Turning off maximized child frame mode&quot;</span> &lt;&lt; endl;
<a name="l02464"></a>02464         m_bMaximizedChildFrmMode = <span class="keyword">false</span>;
<a name="l02465"></a>02465 
<a name="l02466"></a>02466         <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* pFrmChild = m_pMdi-&gt;topChild();
<a name="l02467"></a>02467         <span class="keywordflow">if</span> ( pFrmChild &amp;&amp; pFrmChild-&gt;m_pClient &amp;&amp; pFrmChild-&gt;<a class="code" href="classKMdiChildFrm.html#ab775a728239dff0fb0a267f9e2768164" title="Returns the current state of the window.">state</a>() == KMdiChildFrm::Maximized )
<a name="l02468"></a>02468         {
<a name="l02469"></a>02469             pFrmChild-&gt;m_pClient-&gt;<a class="code" href="classKMdiChildView.html#a3b21b5acdcfe24b542ec677660c89c2d" title="Restores this window to its normal size.">restore</a>();
<a name="l02470"></a>02470             switchOffMaximizeModeForMenu( pFrmChild );
<a name="l02471"></a>02471         }
<a name="l02472"></a>02472     }
<a name="l02473"></a>02473 }
<a name="l02474"></a>02474 
<a name="l02476"></a><a class="code" href="classKMdiMainFrm.html#ad95cc504e820ba4a006174be4af56cba">02476</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ad95cc504e820ba4a006174be4af56cba" title="Turns the system buttons for maximize mode (SDI mode) off, and disconnects them.">KMdiMainFrm::switchOffMaximizeModeForMenu</a>( <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* oldChild )
<a name="l02477"></a>02477 {
<a name="l02478"></a>02478     <span class="comment">// if there is no menubar given, those system buttons aren&#39;t possible</span>
<a name="l02479"></a>02479     <span class="keywordflow">if</span> ( !m_pMainMenuBar )
<a name="l02480"></a>02480         return ;
<a name="l02481"></a>02481     
<a name="l02482"></a>02482     m_pMainMenuBar-&gt;removeItem( m_pMainMenuBar-&gt;idAt( 0 ) );
<a name="l02483"></a>02483     
<a name="l02484"></a>02484     <span class="keywordflow">if</span> ( oldChild )
<a name="l02485"></a>02485     {
<a name="l02486"></a>02486         Q_ASSERT( m_pClose );
<a name="l02487"></a>02487         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pUndock, SIGNAL( clicked() ), oldChild, SLOT( undockPressed() ) );
<a name="l02488"></a>02488         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pMinimize, SIGNAL( clicked() ), oldChild, SLOT( minimizePressed() ) );
<a name="l02489"></a>02489         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pRestore, SIGNAL( clicked() ), oldChild, SLOT( maximizePressed() ) );
<a name="l02490"></a>02490         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pClose, SIGNAL( clicked() ), oldChild, SLOT( closePressed() ) );
<a name="l02491"></a>02491     }
<a name="l02492"></a>02492     m_pUndock-&gt;hide();
<a name="l02493"></a>02493     m_pMinimize-&gt;hide();
<a name="l02494"></a>02494     m_pRestore-&gt;hide();
<a name="l02495"></a>02495     m_pClose-&gt;hide();
<a name="l02496"></a>02496 }
<a name="l02497"></a>02497 
<a name="l02499"></a><a class="code" href="classKMdiMainFrm.html#ac0f1935a40aea3791a9675b097224627">02499</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ac0f1935a40aea3791a9675b097224627" title="Reconnects the system buttons form maximize mode (SDI mode) with the new child frame.">KMdiMainFrm::updateSysButtonConnections</a>( <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* oldChild, <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a>* newChild )
<a name="l02500"></a>02500 {
<a name="l02501"></a>02501     <span class="comment">//qDebug(&quot;updateSysButtonConnections&quot;);</span>
<a name="l02502"></a>02502     <span class="comment">// if there is no menubar given, those system buttons aren&#39;t possible</span>
<a name="l02503"></a>02503     <span class="keywordflow">if</span> ( !m_pMainMenuBar )
<a name="l02504"></a>02504         return ;
<a name="l02505"></a>02505 
<a name="l02506"></a>02506     <span class="keywordflow">if</span> ( newChild )
<a name="l02507"></a>02507     {
<a name="l02508"></a>02508         <span class="keywordflow">if</span> ( frameDecorOfAttachedViews() == KMdi::KDELaptopLook )
<a name="l02509"></a>02509             m_pMainMenuBar-&gt;insertItem( <a class="codeRef" href="qpixmap.html">QPixmap</a>( kde2laptop_closebutton_menu ), newChild, SLOT( closePressed() ), 0, -1, 0 );
<a name="l02510"></a>02510         <span class="keywordflow">else</span>
<a name="l02511"></a>02511             m_pMainMenuBar-&gt;insertItem( *newChild-&gt;<a class="code" href="classKMdiChildFrm.html#ac1c8354a76dde03b5aa52df2c689669f" title="Returns the child frame icon.">icon</a>(), newChild-&gt;<a class="code" href="classKMdiChildFrm.html#ad7cf5ffa04f91a42199e22c9e39bc97d" title="Returns the system menu.">systemMenu</a>(), -1, 0 );
<a name="l02512"></a>02512     }
<a name="l02513"></a>02513     
<a name="l02514"></a>02514     <span class="keywordflow">if</span> ( oldChild )
<a name="l02515"></a>02515     {
<a name="l02516"></a>02516         m_pMainMenuBar-&gt;removeItem( m_pMainMenuBar-&gt;idAt( 1 ) );
<a name="l02517"></a>02517         Q_ASSERT( m_pClose );
<a name="l02518"></a>02518         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pUndock, SIGNAL( clicked() ), oldChild, SLOT( undockPressed() ) );
<a name="l02519"></a>02519         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pMinimize, SIGNAL( clicked() ), oldChild, SLOT( minimizePressed() ) );
<a name="l02520"></a>02520         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pRestore, SIGNAL( clicked() ), oldChild, SLOT( maximizePressed() ) );
<a name="l02521"></a>02521         <a class="codeRef" href="qobject.html#disconnect">QObject::disconnect</a>( m_pClose, SIGNAL( clicked() ), oldChild, SLOT( closePressed() ) );
<a name="l02522"></a>02522     }
<a name="l02523"></a>02523     <span class="keywordflow">if</span> ( newChild )
<a name="l02524"></a>02524     {
<a name="l02525"></a>02525         Q_ASSERT( m_pClose );
<a name="l02526"></a>02526         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pUndock, SIGNAL( clicked() ), newChild, SLOT( undockPressed() ) );
<a name="l02527"></a>02527         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pMinimize, SIGNAL( clicked() ), newChild, SLOT( minimizePressed() ) );
<a name="l02528"></a>02528         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pRestore, SIGNAL( clicked() ), newChild, SLOT( maximizePressed() ) );
<a name="l02529"></a>02529         <a class="codeRef" href="qobject.html#connect">QObject::connect</a>( m_pClose, SIGNAL( clicked() ), newChild, SLOT( closePressed() ) );
<a name="l02530"></a>02530     }
<a name="l02531"></a>02531 }
<a name="l02532"></a>02532 
<a name="l02534"></a><a class="code" href="classKMdiMainFrm.html#a3d3107362757b19ce41ebf5d82c1d7ee">02534</a> <span class="keywordtype">bool</span> <a class="code" href="classKMdiMainFrm.html#a3d3107362757b19ce41ebf5d82c1d7ee" title="Shows the view taskbar.">KMdiMainFrm::isViewTaskBarOn</a>()
<a name="l02535"></a>02535 {
<a name="l02536"></a>02536     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l02537"></a>02537         <span class="keywordflow">return</span> m_pTaskBar-&gt;isSwitchedOn();
<a name="l02538"></a>02538     <span class="keywordflow">else</span>
<a name="l02539"></a>02539         <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l02540"></a>02540 }
<a name="l02541"></a>02541 
<a name="l02543"></a><a class="code" href="classKMdiMainFrm.html#a188d2d329f315dde859a73b9a78cabba">02543</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a188d2d329f315dde859a73b9a78cabba" title="Shows the view taskbar.">KMdiMainFrm::showViewTaskBar</a>()
<a name="l02544"></a>02544 {
<a name="l02545"></a>02545     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l02546"></a>02546         m_pTaskBar-&gt;switchOn( <span class="keyword">true</span> );
<a name="l02547"></a>02547 }
<a name="l02548"></a>02548 
<a name="l02550"></a><a class="code" href="classKMdiMainFrm.html#a0af300e24e6085df14345a26f54eb032">02550</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a0af300e24e6085df14345a26f54eb032" title="Hides the view taskbar.">KMdiMainFrm::hideViewTaskBar</a>()
<a name="l02551"></a>02551 {
<a name="l02552"></a>02552     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l02553"></a>02553         m_pTaskBar-&gt;switchOn( <span class="keyword">false</span> );
<a name="l02554"></a>02554 }
<a name="l02555"></a>02555 
<a name="l02556"></a>02556 <span class="comment">//=============== fillWindowMenu ===============//</span>
<a name="l02557"></a><a class="code" href="classKMdiMainFrm.html#ae77aff293ffa3cbf2cfb42f3e1ce559f">02557</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ae77aff293ffa3cbf2cfb42f3e1ce559f" title="Update of the window menu contents.">KMdiMainFrm::fillWindowMenu</a>()
<a name="l02558"></a>02558 {
<a name="l02559"></a>02559     <span class="keywordtype">bool</span> tabPageMode = <span class="keyword">false</span>;
<a name="l02560"></a>02560     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::TabPageMode )
<a name="l02561"></a>02561         tabPageMode = <span class="keyword">true</span>;
<a name="l02562"></a>02562     
<a name="l02563"></a>02563     <span class="keywordtype">bool</span> IDEAlMode = <span class="keyword">false</span>;
<a name="l02564"></a>02564     <span class="keywordflow">if</span> ( m_mdiMode == KMdi::IDEAlMode )
<a name="l02565"></a>02565         IDEAlMode = <span class="keyword">true</span>;
<a name="l02566"></a>02566 
<a name="l02567"></a>02567     <span class="keywordtype">bool</span> noViewOpened = <span class="keyword">false</span>;
<a name="l02568"></a>02568     <span class="keywordflow">if</span> ( m_pDocumentViews-&gt;isEmpty() )
<a name="l02569"></a>02569         noViewOpened = <span class="keyword">true</span>;
<a name="l02570"></a>02570 
<a name="l02571"></a>02571     <span class="comment">// construct the menu and its submenus</span>
<a name="l02572"></a>02572     <span class="keywordflow">if</span> ( !m_bClearingOfWindowMenuBlocked )
<a name="l02573"></a>02573         m_pWindowMenu-&gt;clear();
<a name="l02574"></a>02574 
<a name="l02575"></a>02575     d-&gt;closeWindowAction-&gt;plug(m_pWindowMenu);
<a name="l02576"></a>02576 
<a name="l02577"></a>02577     <span class="keywordtype">int</span> closeAllId = m_pWindowMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Close &amp;All&quot;</span> ), <span class="keyword">this</span>, SLOT( closeAllViews() ) );
<a name="l02578"></a>02578     <span class="keywordflow">if</span> ( noViewOpened )
<a name="l02579"></a>02579     {
<a name="l02580"></a>02580         d-&gt;closeWindowAction-&gt;setEnabled(<span class="keyword">false</span>);
<a name="l02581"></a>02581         m_pWindowMenu-&gt;setItemEnabled( closeAllId, <span class="keyword">false</span> );
<a name="l02582"></a>02582     }
<a name="l02583"></a>02583     
<a name="l02584"></a>02584     <span class="keywordflow">if</span> ( !tabPageMode &amp;&amp; !IDEAlMode )
<a name="l02585"></a>02585     {
<a name="l02586"></a>02586         <span class="keywordtype">int</span> iconifyId = m_pWindowMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;&amp;Minimize All&quot;</span> ), <span class="keyword">this</span>, SLOT( iconifyAllViews() ) );
<a name="l02587"></a>02587         <span class="keywordflow">if</span> ( noViewOpened )
<a name="l02588"></a>02588             m_pWindowMenu-&gt;setItemEnabled( iconifyId, <span class="keyword">false</span> );
<a name="l02589"></a>02589     }
<a name="l02590"></a>02590     
<a name="l02591"></a>02591     m_pWindowMenu-&gt;insertSeparator();
<a name="l02592"></a>02592     m_pWindowMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;&amp;MDI Mode&quot;</span> ), m_pMdiModeMenu );
<a name="l02593"></a>02593     m_pMdiModeMenu-&gt;clear();
<a name="l02594"></a>02594     m_pMdiModeMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;&amp;Toplevel Mode&quot;</span> ), <span class="keyword">this</span>, SLOT( switchToToplevelMode() ) );
<a name="l02595"></a>02595     m_pMdiModeMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;C&amp;hildframe Mode&quot;</span> ), <span class="keyword">this</span>, SLOT( switchToChildframeMode() ) );
<a name="l02596"></a>02596     m_pMdiModeMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Ta&amp;b Page Mode&quot;</span> ), <span class="keyword">this</span>, SLOT( switchToTabPageMode() ) );
<a name="l02597"></a>02597     m_pMdiModeMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;I&amp;DEAl Mode&quot;</span> ), <span class="keyword">this</span>, SLOT( switchToIDEAlMode() ) );
<a name="l02598"></a>02598     <span class="keywordflow">switch</span> ( m_mdiMode )
<a name="l02599"></a>02599     {
<a name="l02600"></a>02600     <span class="keywordflow">case</span> KMdi::ToplevelMode:
<a name="l02601"></a>02601         m_pMdiModeMenu-&gt;setItemChecked( m_pMdiModeMenu-&gt;idAt( 0 ), true );
<a name="l02602"></a>02602         <span class="keywordflow">break</span>;
<a name="l02603"></a>02603     <span class="keywordflow">case</span> KMdi::ChildframeMode:
<a name="l02604"></a>02604         m_pMdiModeMenu-&gt;setItemChecked( m_pMdiModeMenu-&gt;idAt( 1 ), true );
<a name="l02605"></a>02605         <span class="keywordflow">break</span>;
<a name="l02606"></a>02606     <span class="keywordflow">case</span> KMdi::TabPageMode:
<a name="l02607"></a>02607         m_pMdiModeMenu-&gt;setItemChecked( m_pMdiModeMenu-&gt;idAt( 2 ), true );
<a name="l02608"></a>02608         <span class="keywordflow">break</span>;
<a name="l02609"></a>02609     <span class="keywordflow">case</span> KMdi::IDEAlMode:
<a name="l02610"></a>02610         m_pMdiModeMenu-&gt;setItemChecked( m_pMdiModeMenu-&gt;idAt( 3 ), true );
<a name="l02611"></a>02611         <span class="keywordflow">break</span>;
<a name="l02612"></a>02612     <span class="keywordflow">default</span>:
<a name="l02613"></a>02613         <span class="keywordflow">break</span>;
<a name="l02614"></a>02614     }
<a name="l02615"></a>02615     
<a name="l02616"></a>02616     m_pWindowMenu-&gt;insertSeparator();
<a name="l02617"></a>02617     <span class="keywordflow">if</span> ( !tabPageMode &amp;&amp; !IDEAlMode )
<a name="l02618"></a>02618     {
<a name="l02619"></a>02619         <span class="keywordtype">int</span> placMenuId = m_pWindowMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;&amp;Tile&quot;</span> ), m_pPlacingMenu );
<a name="l02620"></a>02620         m_pPlacingMenu-&gt;clear();
<a name="l02621"></a>02621         m_pPlacingMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Ca&amp;scade Windows&quot;</span> ), m_pMdi, SLOT( cascadeWindows() ) );
<a name="l02622"></a>02622         m_pPlacingMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Cascade &amp;Maximized&quot;</span> ), m_pMdi, SLOT( cascadeMaximized() ) );
<a name="l02623"></a>02623         m_pPlacingMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Expand &amp;Vertically&quot;</span> ), m_pMdi, SLOT( expandVertical() ) );
<a name="l02624"></a>02624         m_pPlacingMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Expand &amp;Horizontally&quot;</span> ), m_pMdi, SLOT( expandHorizontal() ) );
<a name="l02625"></a>02625         m_pPlacingMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Tile &amp;Non-Overlapped&quot;</span> ), m_pMdi, SLOT( tileAnodine() ) );
<a name="l02626"></a>02626         m_pPlacingMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Tile Overla&amp;pped&quot;</span> ), m_pMdi, SLOT( tilePragma() ) );
<a name="l02627"></a>02627         m_pPlacingMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;Tile V&amp;ertically&quot;</span> ), m_pMdi, SLOT( tileVertically() ) );
<a name="l02628"></a>02628         <span class="keywordflow">if</span> ( m_mdiMode == KMdi::ToplevelMode )
<a name="l02629"></a>02629         {
<a name="l02630"></a>02630             m_pWindowMenu-&gt;setItemEnabled( placMenuId, <span class="keyword">false</span> );
<a name="l02631"></a>02631         }
<a name="l02632"></a>02632         m_pWindowMenu-&gt;insertSeparator();
<a name="l02633"></a>02633         <span class="keywordtype">int</span> dockUndockId = m_pWindowMenu-&gt;insertItem( i18n( <span class="stringliteral">&quot;&amp;Dock/Undock&quot;</span> ), m_pDockMenu );
<a name="l02634"></a>02634         m_pDockMenu-&gt;clear();
<a name="l02635"></a>02635         m_pWindowMenu-&gt;insertSeparator();
<a name="l02636"></a>02636         <span class="keywordflow">if</span> ( noViewOpened )
<a name="l02637"></a>02637         {
<a name="l02638"></a>02638             m_pWindowMenu-&gt;setItemEnabled( placMenuId, <span class="keyword">false</span> );
<a name="l02639"></a>02639             m_pWindowMenu-&gt;setItemEnabled( dockUndockId, <span class="keyword">false</span> );
<a name="l02640"></a>02640         }
<a name="l02641"></a>02641     }
<a name="l02642"></a>02642     <span class="keywordtype">int</span> entryCount = m_pWindowMenu-&gt;count();
<a name="l02643"></a>02643 
<a name="l02644"></a>02644     <span class="comment">// for all child frame windows: give an ID to every window and connect them in the end with windowMenuItemActivated()</span>
<a name="l02645"></a>02645     <span class="keywordtype">int</span> i = 100;
<a name="l02646"></a>02646     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = 0L;
<a name="l02647"></a>02647     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l02648"></a>02648     <a class="codeRef" href="qvaluelist.html">QValueList&lt;QDateTime&gt;</a> timeStamps;
<a name="l02649"></a>02649     <span class="keywordflow">for</span> ( ; it.<a class="codeRef" href="qptrlistiterator.html#current">current</a>(); ++it )
<a name="l02650"></a>02650     {
<a name="l02651"></a>02651         pView = it.<a class="codeRef" href="qptrlistiterator.html#current">current</a>();
<a name="l02652"></a>02652         <a class="codeRef" href="qdatetime.html">QDateTime</a> timeStamp( pView-&gt;<a class="code" href="classKMdiChildView.html#abc12e58a23d7b5aae87acf7b50450166" title="Recall a previously remembered time, i.e.">getTimeStamp</a>() );
<a name="l02653"></a>02653 
<a name="l02654"></a>02654         <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#a534402891b4ef8226235531ca2a19d70" title="Returns if this is added as MDI tool-view.">isToolView</a>() )
<a name="l02655"></a>02655         {
<a name="l02656"></a>02656             <span class="keywordflow">continue</span>;
<a name="l02657"></a>02657         }
<a name="l02658"></a>02658 
<a name="l02659"></a>02659         <a class="codeRef" href="qstring.html">QString</a> item;
<a name="l02660"></a>02660         <span class="comment">// set titles of minimized windows in brackets</span>
<a name="l02661"></a>02661         <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#aa1e9a385eb97176fc126346d8a4889d5" title="Tells if the window is minimized when attached to the Mdi manager, or if it is VISIBLE when &#39;floating...">isMinimized</a>() )
<a name="l02662"></a>02662         {
<a name="l02663"></a>02663             item += <span class="stringliteral">&quot;(&quot;</span>;
<a name="l02664"></a>02664             item += pView-&gt;<a class="code" href="classKMdiChildView.html#adc5ca28f73af36d1739cee950af1fb5c" title="Returns the caption of the child window (different from the caption on the button in the taskbar)...">caption</a>();
<a name="l02665"></a>02665             item += <span class="stringliteral">&quot;)&quot;</span>;
<a name="l02666"></a>02666         }
<a name="l02667"></a>02667         <span class="keywordflow">else</span>
<a name="l02668"></a>02668         {
<a name="l02669"></a>02669             item += <span class="stringliteral">&quot; &quot;</span>;
<a name="l02670"></a>02670             item += pView-&gt;<a class="code" href="classKMdiChildView.html#adc5ca28f73af36d1739cee950af1fb5c" title="Returns the caption of the child window (different from the caption on the button in the taskbar)...">caption</a>();
<a name="l02671"></a>02671         }
<a name="l02672"></a>02672 
<a name="l02673"></a>02673         <span class="comment">// insert the window entry sorted by access time</span>
<a name="l02674"></a>02674         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> indx;
<a name="l02675"></a>02675         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> windowItemCount = m_pWindowMenu-&gt;count() - entryCount;
<a name="l02676"></a>02676         <span class="keywordtype">bool</span> inserted = <span class="keyword">false</span>;
<a name="l02677"></a>02677         <a class="codeRef" href="qstring.html">QString</a> tmpString;
<a name="l02678"></a>02678         <a class="codeRef" href="qvaluelist.html">QValueList&lt;QDateTime&gt;::iterator</a> timeStampIterator = timeStamps.<a class="codeRef" href="qvaluelist.html#begin">begin</a>();
<a name="l02679"></a>02679         <span class="keywordflow">for</span> ( indx = 0; indx &lt;= windowItemCount; indx++, ++timeStampIterator )
<a name="l02680"></a>02680         {
<a name="l02681"></a>02681             <span class="keywordtype">bool</span> putHere = <span class="keyword">false</span>;
<a name="l02682"></a>02682             <span class="keywordflow">if</span> ( ( *timeStampIterator ) &lt; timeStamp )
<a name="l02683"></a>02683             {
<a name="l02684"></a>02684                 putHere = <span class="keyword">true</span>;
<a name="l02685"></a>02685                 timeStamps.<a class="codeRef" href="qvaluelist.html#insert">insert</a>( timeStampIterator, timeStamp );
<a name="l02686"></a>02686             }
<a name="l02687"></a>02687             <span class="keywordflow">if</span> ( putHere )
<a name="l02688"></a>02688             {
<a name="l02689"></a>02689                 m_pWindowMenu-&gt;insertItem( item, pView, SLOT( slot_clickedInWindowMenu() ), 0, -1, indx + entryCount );
<a name="l02690"></a>02690                 <span class="keywordflow">if</span> ( pView == m_pCurrentWindow )
<a name="l02691"></a>02691                 {
<a name="l02692"></a>02692                     m_pWindowMenu-&gt;setItemChecked( m_pWindowMenu-&gt;idAt( indx + entryCount ), true );
<a name="l02693"></a>02693                 }
<a name="l02694"></a>02694                 pView-&gt;<a class="code" href="classKMdiChildView.html#a8f0fcbccce9e03b50419e28807cd9f35" title="Internally used for setting an ID for the &#39;Window&#39; menu entry.">setWindowMenuID</a>( i );
<a name="l02695"></a>02695                 <span class="keywordflow">if</span> ( !tabPageMode )
<a name="l02696"></a>02696                 {
<a name="l02697"></a>02697                     m_pDockMenu-&gt;insertItem( item, pView, SLOT( slot_clickedInDockMenu() ), 0, -1, indx );
<a name="l02698"></a>02698                     <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l02699"></a>02699                     {
<a name="l02700"></a>02700                         m_pDockMenu-&gt;setItemChecked( m_pDockMenu-&gt;idAt( indx ), true );
<a name="l02701"></a>02701                     }
<a name="l02702"></a>02702                 }
<a name="l02703"></a>02703                 inserted = <span class="keyword">true</span>;
<a name="l02704"></a>02704                 <span class="keywordflow">break</span>;
<a name="l02705"></a>02705                 indx = windowItemCount + 1;  <span class="comment">// break the loop</span>
<a name="l02706"></a>02706             }
<a name="l02707"></a>02707         }
<a name="l02708"></a>02708         <span class="keywordflow">if</span> ( !inserted )
<a name="l02709"></a>02709         {  <span class="comment">// append it</span>
<a name="l02710"></a>02710             m_pWindowMenu-&gt;insertItem( item, pView, SLOT( slot_clickedInWindowMenu() ), 0, -1, windowItemCount + entryCount );
<a name="l02711"></a>02711             <span class="keywordflow">if</span> ( pView == m_pCurrentWindow )
<a name="l02712"></a>02712             {
<a name="l02713"></a>02713                 m_pWindowMenu-&gt;setItemChecked( m_pWindowMenu-&gt;idAt( windowItemCount + entryCount ), true );
<a name="l02714"></a>02714             }
<a name="l02715"></a>02715             pView-&gt;<a class="code" href="classKMdiChildView.html#a8f0fcbccce9e03b50419e28807cd9f35" title="Internally used for setting an ID for the &#39;Window&#39; menu entry.">setWindowMenuID</a>( i );
<a name="l02716"></a>02716             <span class="keywordflow">if</span> ( !tabPageMode )
<a name="l02717"></a>02717             {
<a name="l02718"></a>02718                 m_pDockMenu-&gt;insertItem( item, pView, SLOT( slot_clickedInDockMenu() ), 0, -1, windowItemCount );
<a name="l02719"></a>02719                 <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l02720"></a>02720                 {
<a name="l02721"></a>02721                     m_pDockMenu-&gt;setItemChecked( m_pDockMenu-&gt;idAt( windowItemCount ), true );
<a name="l02722"></a>02722                 }
<a name="l02723"></a>02723             }
<a name="l02724"></a>02724         }
<a name="l02725"></a>02725         i++;
<a name="l02726"></a>02726     }
<a name="l02727"></a>02727 }
<a name="l02728"></a>02728 
<a name="l02729"></a>02729 <span class="comment">//================ windowMenuItemActivated ===============//</span>
<a name="l02730"></a>02730 
<a name="l02731"></a><a class="code" href="classKMdiMainFrm.html#a11e2db118271fcc594a2d4bb02a0c15e">02731</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a11e2db118271fcc594a2d4bb02a0c15e" title="Usually called when the user clicks an MDI view item in the &quot;Window&quot; menu.">KMdiMainFrm::windowMenuItemActivated</a>( <span class="keywordtype">int</span> <span class="keywordtype">id</span> )
<a name="l02732"></a>02732 {
<a name="l02733"></a>02733     <span class="keywordflow">if</span> ( <span class="keywordtype">id</span> &lt; 100 )
<a name="l02734"></a>02734         return ;
<a name="l02735"></a>02735     <span class="keywordtype">id</span> -= 100;
<a name="l02736"></a>02736     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pView = m_pDocumentViews-&gt;at( <span class="keywordtype">id</span> );
<a name="l02737"></a>02737     <span class="keywordflow">if</span> ( !pView )
<a name="l02738"></a>02738         return ;
<a name="l02739"></a>02739     <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#aa1e9a385eb97176fc126346d8a4889d5" title="Tells if the window is minimized when attached to the Mdi manager, or if it is VISIBLE when &#39;floating...">isMinimized</a>() )
<a name="l02740"></a>02740         pView-&gt;<a class="code" href="classKMdiChildView.html#a3b79ed01a8d357cf01cb90b4f0fe23b7" title="Minimizes this window when it is attached to the Mdi manager.">minimize</a>();
<a name="l02741"></a>02741     <span class="keywordflow">if</span> ( m_mdiMode != KMdi::TabPageMode )
<a name="l02742"></a>02742     {
<a name="l02743"></a>02743         <a class="code" href="classKMdiChildFrm.html" title="Internal class.">KMdiChildFrm</a> * pTopChild = m_pMdi-&gt;topChild();
<a name="l02744"></a>02744         <span class="keywordflow">if</span> ( pTopChild )
<a name="l02745"></a>02745         {
<a name="l02746"></a>02746             <span class="keywordflow">if</span> ( ( pView == pTopChild-&gt;m_pClient ) &amp;&amp; pView-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l02747"></a>02747             {
<a name="l02748"></a>02748                 return ;
<a name="l02749"></a>02749             }
<a name="l02750"></a>02750         }
<a name="l02751"></a>02751     }
<a name="l02752"></a>02752     activateView( pView );
<a name="l02753"></a>02753 }
<a name="l02754"></a>02754 
<a name="l02755"></a>02755 <span class="comment">//================ dockMenuItemActivated ===============//</span>
<a name="l02756"></a>02756 
<a name="l02757"></a><a class="code" href="classKMdiMainFrm.html#abc8bc07f375ebca7f15d060fe7adc198">02757</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#abc8bc07f375ebca7f15d060fe7adc198" title="Usually called when the user clicks an MDI view item in the sub-popup menu &quot;Docking&quot; of the &quot;Window&quot; ...">KMdiMainFrm::dockMenuItemActivated</a>( <span class="keywordtype">int</span> <span class="keywordtype">id</span> )
<a name="l02758"></a>02758 {
<a name="l02759"></a>02759     <span class="keywordflow">if</span> ( <span class="keywordtype">id</span> &lt; 100 )
<a name="l02760"></a>02760         return ;
<a name="l02761"></a>02761     <span class="keywordtype">id</span> -= 100;
<a name="l02762"></a>02762     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> *pView = m_pDocumentViews-&gt;at( <span class="keywordtype">id</span> );
<a name="l02763"></a>02763     <span class="keywordflow">if</span> ( !pView )
<a name="l02764"></a>02764         return ;
<a name="l02765"></a>02765     <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#aa1e9a385eb97176fc126346d8a4889d5" title="Tells if the window is minimized when attached to the Mdi manager, or if it is VISIBLE when &#39;floating...">isMinimized</a>() )
<a name="l02766"></a>02766         pView-&gt;<a class="code" href="classKMdiChildView.html#a3b79ed01a8d357cf01cb90b4f0fe23b7" title="Minimizes this window when it is attached to the Mdi manager.">minimize</a>();
<a name="l02767"></a>02767     <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l02768"></a>02768     {
<a name="l02769"></a>02769         detachWindow( pView, <span class="keyword">true</span> );
<a name="l02770"></a>02770     }
<a name="l02771"></a>02771     <span class="keywordflow">else</span>
<a name="l02772"></a>02772     {   <span class="comment">// is detached</span>
<a name="l02773"></a>02773         attachWindow( pView, <span class="keyword">true</span> );
<a name="l02774"></a>02774     }
<a name="l02775"></a>02775 }
<a name="l02776"></a>02776 
<a name="l02777"></a>02777 <span class="comment">//================ popupWindowMenu ===============//</span>
<a name="l02778"></a>02778 
<a name="l02779"></a><a class="code" href="classKMdiMainFrm.html#ac51753876ccf3048b8c76ed31d6e58dd">02779</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ac51753876ccf3048b8c76ed31d6e58dd" title="Popups the &quot;Window&quot; menu.">KMdiMainFrm::popupWindowMenu</a>( <a class="codeRef" href="qpoint.html">QPoint</a> p )
<a name="l02780"></a>02780 {
<a name="l02781"></a>02781     <span class="keywordflow">if</span> ( !isFakingSDIApplication() )
<a name="l02782"></a>02782     {
<a name="l02783"></a>02783         m_pWindowMenu-&gt;popup( p );
<a name="l02784"></a>02784     }
<a name="l02785"></a>02785 }
<a name="l02786"></a>02786 
<a name="l02787"></a>02787 <span class="comment">//================ dragEndTimeOut ===============//</span>
<a name="l02788"></a><a class="code" href="classKMdiMainFrm.html#aa436fae51143e74b2f954ac75d3eaee1">02788</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#aa436fae51143e74b2f954ac75d3eaee1" title="The timer for main widget moving has elapsed -&gt; send drag end to all concerned views.">KMdiMainFrm::dragEndTimeOut</a>()
<a name="l02789"></a>02789 {
<a name="l02790"></a>02790     <span class="comment">// send drag end to all concerned views.</span>
<a name="l02791"></a>02791     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> * pView;
<a name="l02792"></a>02792     <span class="keywordflow">for</span> ( m_pDocumentViews-&gt;first(); ( pView = m_pDocumentViews-&gt;current() ) != 0L; m_pDocumentViews-&gt;next() )
<a name="l02793"></a>02793     {
<a name="l02794"></a>02794         <a class="code" href="classKMdiChildFrmDragEndEvent.html" title="a QCustomEvent for end of dragging This special event will be useful, to inform view about child fram...">KMdiChildFrmDragEndEvent</a> dragEndEvent( 0L );
<a name="l02795"></a>02795         <a class="codeRef" href="qapplication.html#sendEvent">QApplication::sendEvent</a>( pView, &amp;dragEndEvent );
<a name="l02796"></a>02796     }
<a name="l02797"></a>02797 }
<a name="l02798"></a>02798 
<a name="l02799"></a>02799 <span class="comment">//================ setFrameDecorOfAttachedViews ===============//</span>
<a name="l02800"></a>02800 
<a name="l02801"></a><a class="code" href="classKMdiMainFrm.html#ae238a8787e4e826c351133a960185947">02801</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#ae238a8787e4e826c351133a960185947" title="Sets the decoration of the window frame of docked (attached) MDI views.">KMdiMainFrm::setFrameDecorOfAttachedViews</a>( <span class="keywordtype">int</span> frameDecor )
<a name="l02802"></a>02802 {
<a name="l02803"></a>02803     <span class="keywordflow">switch</span> ( frameDecor )
<a name="l02804"></a>02804     {
<a name="l02805"></a>02805     <span class="keywordflow">case</span> 0:
<a name="l02806"></a>02806         m_frameDecoration = KMdi::Win95Look;
<a name="l02807"></a>02807         <span class="keywordflow">break</span>;
<a name="l02808"></a>02808     <span class="keywordflow">case</span> 1:
<a name="l02809"></a>02809         m_frameDecoration = KMdi::KDE1Look;
<a name="l02810"></a>02810         <span class="keywordflow">break</span>;
<a name="l02811"></a>02811     <span class="keywordflow">case</span> 2:
<a name="l02812"></a>02812         m_frameDecoration = KMdi::KDELook;
<a name="l02813"></a>02813         <span class="keywordflow">break</span>;
<a name="l02814"></a>02814     <span class="keywordflow">case</span> 3:
<a name="l02815"></a>02815         m_frameDecoration = KMdi::KDELaptopLook;
<a name="l02816"></a>02816         <span class="keywordflow">break</span>;
<a name="l02817"></a>02817     <span class="keywordflow">default</span>:
<a name="l02818"></a>02818         qDebug( <span class="stringliteral">&quot;unknown MDI decoration&quot;</span> );
<a name="l02819"></a>02819         <span class="keywordflow">break</span>;
<a name="l02820"></a>02820     }
<a name="l02821"></a>02821     setMenuForSDIModeSysButtons( m_pMainMenuBar );
<a name="l02822"></a>02822     <a class="codeRef" href="qptrlistiterator.html">QPtrListIterator&lt;KMdiChildView&gt;</a> it( *m_pDocumentViews );
<a name="l02823"></a>02823     <span class="keywordflow">for</span> ( ; it.<a class="codeRef" href="qptrlistiterator.html#current">current</a>(); ++it )
<a name="l02824"></a>02824     {
<a name="l02825"></a>02825         <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a>* pView = it.<a class="codeRef" href="qptrlistiterator.html#current">current</a>();
<a name="l02826"></a>02826         <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#a534402891b4ef8226235531ca2a19d70" title="Returns if this is added as MDI tool-view.">isToolView</a>() )
<a name="l02827"></a>02827             <span class="keywordflow">continue</span>;
<a name="l02828"></a>02828         <span class="keywordflow">if</span> ( pView-&gt;<a class="code" href="classKMdiChildView.html#aef62e77b1cbbd807ed91765711e4b259" title="Returns true if the MDI view is a child window within the MDI mainframe widget or false if the MDI vi...">isAttached</a>() )
<a name="l02829"></a>02829             pView-&gt;<a class="code" href="classKMdiChildView.html#a6099527f11467b75d9b9c3205dc95db3" title="Returns the KMdiChildFrm parent widget (or 0 if the window is not attached)">mdiParent</a>() -&gt;<a class="code" href="classKMdiChildFrm.html#ac4e146efa8304e429889a106d7a87fc1" title="sets new raise behavior and pixmaps of the buttons depending on the current decoration style...">redecorateButtons</a>();
<a name="l02830"></a>02830     }
<a name="l02831"></a>02831 }
<a name="l02832"></a>02832 
<a name="l02833"></a><a class="code" href="classKMdiMainFrm.html#a02146b8a6e6907468eec5acd7c149227">02833</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a02146b8a6e6907468eec5acd7c149227" title="An SDI application user interface is faked:">KMdiMainFrm::fakeSDIApplication</a>()
<a name="l02834"></a>02834 {
<a name="l02835"></a>02835     m_bSDIApplication = <span class="keyword">true</span>;
<a name="l02836"></a>02836     <span class="keywordflow">if</span> ( m_pTaskBar )
<a name="l02837"></a>02837         m_pTaskBar-&gt;close();
<a name="l02838"></a>02838     m_pTaskBar = 0L;
<a name="l02839"></a>02839 }
<a name="l02840"></a>02840 
<a name="l02841"></a><a class="code" href="classKMdiMainFrm.html#afe8fcd284794bf3e4635c4dafbf6045e">02841</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#afe8fcd284794bf3e4635c4dafbf6045e" title="internally used to handle click on view close button (TabPage mode, only)">KMdiMainFrm::closeViewButtonPressed</a>()
<a name="l02842"></a>02842 {
<a name="l02843"></a>02843     <a class="code" href="classKMdiChildView.html" title="Base class for all your special view windows.">KMdiChildView</a> * pView = activeWindow();
<a name="l02844"></a>02844     <span class="keywordflow">if</span> ( pView )
<a name="l02845"></a>02845     {
<a name="l02846"></a>02846         pView-&gt;<a class="codeRef" href="qwidget.html#close">close</a>();
<a name="l02847"></a>02847     }
<a name="l02848"></a>02848 }
<a name="l02849"></a>02849 
<a name="l02850"></a>02850 <span class="keywordtype">void</span> KMdiMainFrm::setManagedDockPositionModeEnabled( <span class="keywordtype">bool</span> enabled )
<a name="l02851"></a>02851 {
<a name="l02852"></a>02852     m_managedDockPositionMode = enabled;
<a name="l02853"></a>02853 }
<a name="l02854"></a>02854 
<a name="l02855"></a>02855 <span class="keywordtype">void</span> KMdiMainFrm::setActiveToolDock( KMdiDockContainer* td )
<a name="l02856"></a>02856 {
<a name="l02857"></a>02857     <span class="keywordflow">if</span> ( td == d-&gt;activeDockPriority[ 0 ] )
<a name="l02858"></a>02858         return ;
<a name="l02859"></a>02859     <span class="keywordflow">if</span> ( d-&gt;activeDockPriority[ 0 ] == 0 )
<a name="l02860"></a>02860     {
<a name="l02861"></a>02861         d-&gt;activeDockPriority[ 0 ] = td;
<a name="l02862"></a>02862         <span class="comment">//        d-&gt;focusList=new KMdiFocusList(this);</span>
<a name="l02863"></a>02863         <span class="comment">//        if (m_pMdi)  d-&gt;focusList-&gt;addWidgetTree(m_pMdi);</span>
<a name="l02864"></a>02864         <span class="comment">//        if (m_documentTabWidget) d-&gt;focusList-&gt;addWidgetTree(m_documentTabWidget);</span>
<a name="l02865"></a>02865         return ;
<a name="l02866"></a>02866     }
<a name="l02867"></a>02867     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> dst = 3, src = 2;src &gt;= 0;dst--, src-- )
<a name="l02868"></a>02868     {
<a name="l02869"></a>02869         <span class="keywordflow">if</span> ( d-&gt;activeDockPriority[ src ] == td )
<a name="l02870"></a>02870             src--;
<a name="l02871"></a>02871         <span class="keywordflow">if</span> ( src &lt; 0 )
<a name="l02872"></a>02872             <span class="keywordflow">break</span>;
<a name="l02873"></a>02873         d-&gt;activeDockPriority[ dst ] = d-&gt;activeDockPriority[ src ];
<a name="l02874"></a>02874     }
<a name="l02875"></a>02875     d-&gt;activeDockPriority[ 0 ] = td;
<a name="l02876"></a>02876 }
<a name="l02877"></a>02877 
<a name="l02878"></a>02878 <span class="keywordtype">void</span> KMdiMainFrm::removeFromActiveDockList( KMdiDockContainer* td )
<a name="l02879"></a>02879 {
<a name="l02880"></a>02880     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0;i &lt; 4;i++ )
<a name="l02881"></a>02881     {
<a name="l02882"></a>02882         <span class="keywordflow">if</span> ( d-&gt;activeDockPriority[ i ] == td )
<a name="l02883"></a>02883         {
<a name="l02884"></a>02884             <span class="keywordflow">for</span> ( ;i &lt; 3;i++ )
<a name="l02885"></a>02885                 d-&gt;activeDockPriority[ i ] = d-&gt;activeDockPriority[ i + 1 ];
<a name="l02886"></a>02886             d-&gt;activeDockPriority[ 3 ] = 0;
<a name="l02887"></a>02887             <span class="keywordflow">break</span>;
<a name="l02888"></a>02888         }
<a name="l02889"></a>02889     }
<a name="l02890"></a>02890     <span class="comment">/*</span>
<a name="l02891"></a>02891 <span class="comment">          if (d-&gt;activeDockPriority[0]==0) {</span>
<a name="l02892"></a>02892 <span class="comment">          if (d-&gt;focusList) d-&gt;focusList-&gt;restore();</span>
<a name="l02893"></a>02893 <span class="comment">          delete d-&gt;focusList;</span>
<a name="l02894"></a>02894 <span class="comment">          d-&gt;focusList=0;</span>
<a name="l02895"></a>02895 <span class="comment">          }</span>
<a name="l02896"></a>02896 <span class="comment">     */</span>
<a name="l02897"></a>02897 }
<a name="l02898"></a>02898 
<a name="l02899"></a>02899 <span class="keywordtype">void</span> KMdiMainFrm::prevToolViewInDock()
<a name="l02900"></a>02900 {
<a name="l02901"></a>02901     KMdiDockContainer * td = d-&gt;activeDockPriority[ 0 ];
<a name="l02902"></a>02902     <span class="keywordflow">if</span> ( !td )
<a name="l02903"></a>02903         return ;
<a name="l02904"></a>02904     td-&gt;prevToolView();
<a name="l02905"></a>02905 }
<a name="l02906"></a>02906 
<a name="l02907"></a>02907 <span class="keywordtype">void</span> KMdiMainFrm::nextToolViewInDock()
<a name="l02908"></a>02908 {
<a name="l02909"></a>02909     KMdiDockContainer * td = d-&gt;activeDockPriority[ 0 ];
<a name="l02910"></a>02910     <span class="keywordflow">if</span> ( !td )
<a name="l02911"></a>02911         return ;
<a name="l02912"></a>02912     td-&gt;nextToolView();
<a name="l02913"></a>02913 }
<a name="l02914"></a>02914 
<a name="l02915"></a><a class="code" href="classKMdiMainFrm.html#adb0e4d1d666239e71177afa53c4eb7e8">02915</a> KMdi::TabWidgetVisibility <a class="code" href="classKMdiMainFrm.html#adb0e4d1d666239e71177afa53c4eb7e8" title="Get tabwidget visibility.">KMdiMainFrm::tabWidgetVisibility</a>()
<a name="l02916"></a>02916 {
<a name="l02917"></a>02917     <span class="keywordflow">if</span> ( m_documentTabWidget )
<a name="l02918"></a>02918         <span class="keywordflow">return</span> m_documentTabWidget-&gt;tabWidgetVisibility();
<a name="l02919"></a>02919 
<a name="l02920"></a>02920     <span class="keywordflow">return</span> KMdi::NeverShowTabs;
<a name="l02921"></a>02921 }
<a name="l02922"></a>02922 
<a name="l02923"></a><a class="code" href="classKMdiMainFrm.html#a05fc1811c70c771c681443092fc16799">02923</a> <span class="keywordtype">void</span> <a class="code" href="classKMdiMainFrm.html#a05fc1811c70c771c681443092fc16799" title="Set tabwidget visibility.">KMdiMainFrm::setTabWidgetVisibility</a>( KMdi::TabWidgetVisibility visibility )
<a name="l02924"></a>02924 {
<a name="l02925"></a>02925     <span class="keywordflow">if</span> ( m_documentTabWidget )
<a name="l02926"></a>02926         m_documentTabWidget-&gt;setTabWidgetVisibility( visibility );
<a name="l02927"></a>02927 }
<a name="l02928"></a>02928 
<a name="l02929"></a><a class="code" href="classKMdiMainFrm.html#a4e9495811f622ec81c605dd61843cc91">02929</a> KTabWidget * <a class="code" href="classKMdiMainFrm.html#a4e9495811f622ec81c605dd61843cc91" title="Returns the tabwidget used in IDEAl and Tabbed modes.">KMdiMainFrm::tabWidget</a>()<span class="keyword"> const</span>
<a name="l02930"></a>02930 <span class="keyword"></span>{
<a name="l02931"></a>02931     <span class="keywordflow">return</span> m_documentTabWidget;
<a name="l02932"></a>02932 }
<a name="l02933"></a>02933 
<a name="l02934"></a>02934 <span class="preprocessor">#include &quot;kmdimainfrm.moc&quot;</span>
<a name="l02935"></a>02935 
<a name="l02936"></a>02936 <span class="comment">// vim: ts=2 sw=2 et</span>
<a name="l02937"></a>02937 <span class="comment">// kate: space-indent off; tab-width 4; replace-tabs off; indent-mode csands;</span>
</pre></div></div>
</div>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>kmdi</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="classKMdiChildArea.html">kmdichildarea</option>,  <option value="classKMdiChildFrm.html">kmdichildfrm</option>,  <option value="classKMdiChildFrmCaption.html">kmdichildfrmcaption</option>,  <option value="classKMdiChildFrmDragBeginEvent.html">kmdichildfrmdragbeginevent</option>,  <option value="classKMdiChildFrmDragEndEvent.html">kmdichildfrmdragendevent</option>,  <option value="classKMdiChildFrmMoveEvent.html">kmdichildfrmmoveevent</option>,  <option value="classKMdiChildFrmResizeBeginEvent.html">kmdichildfrmresizebeginevent</option>,  <option value="classKMdiChildFrmResizeEndEvent.html">kmdichildfrmresizeendevent</option>,  <option value="classKMdiChildView.html">kmdichildview</option>,  <option value="classKMdiDocumentViewTabWidget.html">kmdidocumentviewtabwidget</option>,  <option value="classKMdiMainFrm.html">kmdimainfrm</option>,  <option value="classKMDIPrivate_1_1KMDIGUIClient.html">kmdiprivate::kmdiguiclient</option>,  <option value="classKMDIPrivate_1_1ToggleToolViewAction.html">kmdiprivate::toggletoolviewaction</option>,  <option value="classKMdiTaskBar.html">kmditaskbar</option>,  <option value="classKMdiTaskBarButton.html">kmditaskbarbutton</option>,  <option value="classKMdiViewCloseEvent.html">kmdiviewcloseevent</option>,  <option value="classKMdiWin32IconButton.html">kmdiwin32iconbutton</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&#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>