![]() |
problems with nested pane managers |
Post Reply ![]() |
Author | |
adrien ![]() Senior Member ![]() Joined: 30 April 2007 Location: New Zealand Status: Offline Points: 449 |
![]() ![]() ![]() ![]() ![]() Posted: 02 March 2011 at 8:50pm |
We have a couple of places in our code where we have a pane manager with multiple docking panes all inside another pane in another pane manager.
In this case, we're finding several problems with the nested panes. a. focus changes don't change pane state. When you click on another window, and an active pane loses focus, the pane header still shows as the active pane. Even if you click in client areas of other panes within the same pane manager, they don't update the pane active state (e.g. the orange caption bar). b. show pane never does anything . Each pane seems to be in its own docking pane container, and so it is the selected pane. So calling ShowPane on it doesn't do anything except set focus to the contained window. This is in 13.4.2. Adrien
|
|
![]() |
|
Oleg ![]() Admin Group ![]() Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
![]() ![]() ![]() ![]() ![]() |
Hi,
Check if OnIdleUpdateCmdUI of CXTPDockingPaneManager is called for second panemanager. If not, you need manually route it - m_paneManager.SendMessage(WM_IDLEUPDATECMDUI, 0, 0);
|
|
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
|
![]() |
|
adrien ![]() Senior Member ![]() Joined: 30 April 2007 Location: New Zealand Status: Offline Points: 449 |
![]() ![]() ![]() ![]() ![]() |
Hi
where do I route this from? Does that mean I need to subclass the pane manager for the parent pane or something? What messages get sent to panes when this idle processing is done?
|
|
![]() |
|
adrien ![]() Senior Member ![]() Joined: 30 April 2007 Location: New Zealand Status: Offline Points: 449 |
![]() ![]() ![]() ![]() ![]() |
looks like (in the context of pane manager code) WM_IDLEUPDATECMDUI is only sent from RecalcFrameLayout where the site is a frame window.
So this is no use to me. In my case, there are 3 layers deep of nesting. I have a pane manager with 3 panes and a client area. in that client area is another pane manager with 2 tabs on one of those tabs there is another pane manager with 3 panes it's the inner-most one that is not updating.
|
|
![]() |
|
adrien ![]() Senior Member ![]() Joined: 30 April 2007 Location: New Zealand Status: Offline Points: 449 |
![]() ![]() ![]() ![]() ![]() |
p.s. I sub-classed the pane manager and OnIdleUpdateCmdUI is not getting hit, but no surprise, since it's not in a frame.
|
|
![]() |
|
Oleg ![]() Admin Group ![]() Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
![]() ![]() ![]() ![]() ![]() |
Hi,
Try catch WM_IDLEUPDATECMDUI in your Client window and pass it to PaneManager
|
|
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
|
![]() |
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 |