<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="https://syndication.webwiz.net/rss_namespace/">
 <channel>
  <title>Codejock Developer Community : CXTPDockingPaneLayout::DoPropExchange() filtering.</title>
  <link>http://forum.codejock.com/</link>
  <description><![CDATA[This is an XML content feed of; Codejock Developer Community : Docking Pane : CXTPDockingPaneLayout::DoPropExchange() filtering.]]></description>
  <copyright>Copyright (c) 2006-2013 Web Wiz Forums - All Rights Reserved.</copyright>
  <pubDate>Mon, 20 Apr 2026 11:24:12 +0000</pubDate>
  <lastBuildDate>Wed, 11 Sep 2013 08:28:50 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 12.04</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>forum.codejock.com/RSS_post_feed.asp?TID=20611</WebWizForums:feedURL>
  <image>
   <title><![CDATA[Codejock Developer Community]]></title>
   <url>http://forum.codejock.com/forum_images/codejock-logo.gif</url>
   <link>http://forum.codejock.com/</link>
  </image>
  <item>
   <title><![CDATA[CXTPDockingPaneLayout::DoPropExchange() filtering. : Can you not create the cache and...]]></title>
   <link>http://forum.codejock.com/forum_posts.asp?TID=20611&amp;PID=71599&amp;title=cxtpdockingpanelayoutdopropexchange-filtering#71599</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://forum.codejock.com/member_profile.asp?PF=3213">rdhd</a><br /><strong>Subject:</strong> 20611<br /><strong>Posted:</strong> 11 September 2013 at 8:28am<br /><br />Can you not create the cache and remove the panes and then create and save the layout?<br><br>Have you changed the xml to verify it is the count?<br>]]>
   </description>
   <pubDate>Wed, 11 Sep 2013 08:28:50 +0000</pubDate>
   <guid isPermaLink="true">http://forum.codejock.com/forum_posts.asp?TID=20611&amp;PID=71599&amp;title=cxtpdockingpanelayoutdopropexchange-filtering#71599</guid>
  </item> 
  <item>
   <title><![CDATA[CXTPDockingPaneLayout::DoPropExchange() filtering. : Hi AllWhen I&amp;#039;m saving the...]]></title>
   <link>http://forum.codejock.com/forum_posts.asp?TID=20611&amp;PID=69700&amp;title=cxtpdockingpanelayoutdopropexchange-filtering#69700</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://forum.codejock.com/member_profile.asp?PF=7436">Andyman</a><br /><strong>Subject:</strong> 20611<br /><strong>Posted:</strong> 14 February 2013 at 1:25am<br /><br />Hi All<br><br>When I'm saving the layout of my docking panes I want to filter out unwanted panes so that they don't get modified when I do a restore later on. In the following code snippet I'm attempting to do this. I'm creating a new pane layout object, removing the docking panes I don't want from the pane list, and then doing a property exchange on that. <br><br>CXTPPropExchangeSection pxDockingPane(pPX-&gt;GetSection(_T("DockingPane")));<br>if (!pPX-&gt;IsLoading ())<br>&nbsp; {<br>&nbsp; CXTPDockingPaneLayout *pLayout = m_paneManager.CreateLayout ();<br>&nbsp; m_paneManager.GetLayout (pLayout);<br>&nbsp; if (pLayout)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; std::set&lt;int&gt; idSet;<br>&nbsp;&nbsp;&nbsp; idSet.insert (ID_PANE_1);<br>&nbsp;&nbsp;&nbsp; idSet.insert (ID_PANE_2);<br>&nbsp;&nbsp;&nbsp; idSet.insert (ID_PANE_3);<br><br>&nbsp;&nbsp;&nbsp; // Remove unwanted panes before exchange.<br>&nbsp;&nbsp;&nbsp; CXTPDockingPaneInfoList cache;<br>&nbsp;&nbsp;&nbsp; CXTPDockingPaneInfoList &amp;paneList = pLayout-&gt;GetPaneList ();<br>&nbsp;&nbsp;&nbsp; POSITION pos = paneList.GetTailPosition();<br>&nbsp;&nbsp;&nbsp; while (pos)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CXTPDockingPane* pPane = paneList.GetAt (pos);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (idSet.find (pPane-&gt;GetID ()) != idSet.end ())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cache.AddTail (paneList.GetAt (pos));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paneList.RemoveAt (pos);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paneList.GetPrev (pos);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; pLayout-&gt;DoPropExchange (&amp;pxDockingPane);<br>&nbsp;&nbsp;&nbsp; delete pLayout;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }<br><br>And here is the generated layout…<br><br>&lt;Settings CompactMode="1"&gt;<br>&nbsp; &lt;CustomLayout&gt;<br>&nbsp;&nbsp;&nbsp; &lt;DockingPane&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Summary Panes="21" TopContainer="4" Client="9"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-1 Type="0" DockingCX="220" DockingCY="150" Title="Forms\n" ID="40" DockingHolder="7" LastHolder="7" MinTrackX="100" MinTrackY="100"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-2 Type="0" DockingCX="200" DockingCY="120" Title="MyApplication:2\n\n" ID="501" Options="16" DockingHolder="10" FloatingHolder="13" LastHolder="13"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-3 Type="5" Direction="0" Panes="0"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-4 Type="2" Panes="1" Pane-1="5"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-5 Type="2" DockingCX="1280" DockingCY="723" Horiz="1" Panes="2" Pane-1="6" Pane-2="8"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-6 Type="2" DockingCX="223" DockingCY="876" Panes="1" Pane-1="7"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-7 Type="1" DockingCX="220" DockingCY="494" Panes="3" Pane-1="0" Pane-2="0" Pane-3="0"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-8 Type="2" DockingCX="1178" Panes="2" Pane-1="9" Pane-2="10"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-9 Type="4"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-10 Type="1" DockingCX="200" DockingCY="120" Panes="0"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-11 Type="3" WindowRectTopPos="49" WindowRectBottomPos="429" WindowRectLeftPos="775" WindowRectRightPos="1359" TopContaner="12"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-12 Type="2" DockingCX="200" DockingCY="120" Horiz="1" Panes="1" Pane-1="13"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Pane-13 Type="1" DockingCX="200" DockingCY="120" Panes="1" Selected="2" Pane-1="2"/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/DockingPane&gt;<br>&nbsp; &lt;/CustomLayout&gt;<br>&lt;/Settings&gt;<br><br>All good so far. So now for my problem. <br><br>Loading the saved layout crashes. I think that it's because &lt;Summary Panes="21" TopContainer="4" Client="9"/&gt; is wrong (it is still referring to the original number of panes before I removed some of them). Unfortunately that value is retrieved from a private member in the CXTPDockingPaneLayout class so I can't change it. I guess I could just change the XML but that seems pretty hacky. <br><br>Any thoughts / ideas? Ideally I'd like to override CXTPDockingPaneLayout::_Save but obviously that has been abstracted away for good reasons.]]>
   </description>
   <pubDate>Thu, 14 Feb 2013 01:25:03 +0000</pubDate>
   <guid isPermaLink="true">http://forum.codejock.com/forum_posts.asp?TID=20611&amp;PID=69700&amp;title=cxtpdockingpanelayoutdopropexchange-filtering#69700</guid>
  </item> 
 </channel>
</rss>