Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Docking Pane
  New Posts New Posts RSS Feed - Extending Layout Capability
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Extending Layout Capability

 Post Reply Post Reply
Author
Message
mrmathis View Drop Down
Senior Member
Senior Member
Avatar

Joined: 17 May 2007
Location: United States
Status: Offline
Points: 105
Post Options Post Options   Thanks (0) Thanks(0)   Quote mrmathis Quote  Post ReplyReply Direct Link To This Post Topic: Extending Layout Capability
    Posted: 27 February 2008 at 6:15pm
My product has a number of discrete tasks.  Each of them has their own unique set of docking panes.  As I move from Task A to Task B, I save a layout for Task A so that the next time I visit that stage I can do so with all the panes displayed and positioned as they were in my last visit.  The user is free to close any panes they choose at any time if they are not of interest to that particular user, and can turn them back on manually as well.  This general workflow has been in place for years using a homegrown docking pane system, but I am replacing it with Codejock's docking panes because they are very much superior to the old system.
 
That is all working reasonably well, but of course I wouldn't be posting if that were the end of the story.  There are points in my workflow where the software (as opposed to the user) hides one or more panes for various reasons.  Actually, there are a lot of points and a lot of reasons.  However, those reasons might not hold upon the next visit to a given task.  My problem is that when I leave a task and save a layout, the layout cannot distinguish between system- and user-hidden panes.  It just sees hidden panes.  Therefore, I would like to validate or override some of the layout's show/hide information when it is applied later, based on the state of the software at that point in time.
 
To minimize any potential flashing of windows, I thought I would try manipulating the layout before applying it.  I used CXTPDockingPaneLayout::GetPaneList and enumerated the panes, but I don't see how their future display is controllable from there.  Is there something I can do here to do that?
 
I also tried eumerating all panes after applying the layout, using a couple of different approaches to turn panes back on: pPaneMgr->EnsureVisible and pPaneMgr->ShowPane.  Both work, but both also bring those panes to the top if they happen to be docked with other panes.  That is something I can't live with.  Is there some other way I can get the pane turned on that would just leave it there in the list of tabs?
--Mike
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

This page was generated in 0.156 seconds.