Extending Layout Capability |
Post Reply |
Author | |
mrmathis
Senior Member Joined: 17 May 2007 Location: United States Status: Offline Points: 105 |
Post Options
Thanks(0)
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
|
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |