Print Page | Close Window

problems with nested pane managers

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Docking Pane
Forum Description: Topics Related to Codejock Docking Pane
URL: http://forum.codejock.com/forum_posts.asp?TID=17989
Printed Date: 28 April 2024 at 3:55am
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: problems with nested pane managers
Posted By: adrien
Subject: problems with nested pane managers
Date 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


-------------
http://www.wingate.com - http://www.wingate.com



Replies:
Posted By: Oleg
Date Posted: 03 March 2011 at 2:42am
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


Posted By: adrien
Date Posted: 03 March 2011 at 4:01pm
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?


-------------
http://www.wingate.com - http://www.wingate.com


Posted By: adrien
Date Posted: 03 March 2011 at 4:18pm
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.


-------------
http://www.wingate.com - http://www.wingate.com


Posted By: adrien
Date Posted: 03 March 2011 at 4:18pm
p.s. I sub-classed the pane manager and OnIdleUpdateCmdUI is not getting hit, but no surprise, since it's not in a frame.

-------------
http://www.wingate.com - http://www.wingate.com


Posted By: Oleg
Date Posted: 04 March 2011 at 6:41am
Hi,

Try catch WM_IDLEUPDATECMDUI in your Client window and pass it to PaneManager


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net