// XTPDockingPaneManager.h : interface for the CXTPDockingPaneManager class.
//
// This file is a part of the XTREME DOCKINGPANE MFC class library.
// (c)1998-2012 Codejock Software, All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
// CONSENT OF CODEJOCK SOFTWARE.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
// SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// support@codejock.com
// http://www.codejock.com
//
/////////////////////////////////////////////////////////////////////////////
//{{AFX_CODEJOCK_PRIVATE
#if !defined(__XTPDOCKINGPANEMANAGER_H__)
#define __XTPDOCKINGPANEMANAGER_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
class CXTPDockingPane;
class CXTPDockingPaneBase;
class CXTPDockingPaneBase;
class CXTPDockingPaneManager;
class CXTPDockingPaneSplitterContainer;
class CXTPDockingPaneTabbedContainer;
class CXTPDockingPaneMiniWnd;
class CXTPDockingPaneContext;
class CXTPDockingPaneLayout;
class CXTPDockingPanePaintManager;
class CXTPImageManagerIcon;
class CXTPImageManager;
class CXTPToolTipContext;
class CXTPDockingPaneSidePanel;
class CXTPImageManagerIconHandle;
class CXTPPropExchange;
//===========================================================================
// Summary:
// CXTPDockingPaneManager is a CWnd derived class. It is used to manipulate
// docking panes.
//===========================================================================
class _XTP_EXT_CLASS CXTPDockingPaneManager : public CWnd, public CXTPAccessible
{
public:
//-----------------------------------------------------------------------
// Summary:
// Constructs a CXTPDockingPaneManager object
//-----------------------------------------------------------------------
CXTPDockingPaneManager();
//-----------------------------------------------------------------------
// Summary:
// Destroys a CXTPDockingPaneManager object, handles cleanup and
// deallocation
//-----------------------------------------------------------------------
~CXTPDockingPaneManager();
public:
//-----------------------------------------------------------------------
// Summary:
// Call this member function to install docking panes.
// Parameters:
// pParent - Parent frame of the panes.
// bClipChildren - 'true' to add WS_CLIPCHILDREN and WS_CLIPSIBLING
// styles to frame windows so panes are displayed
// correctly displayed from a hidden state.
// Returns:
// 'true' if the Docking Pane manager was correctly initialized, otherwise
// returns 'false'.
// Remarks:
// You must call this member function first to initialize the Docking Pane
// manager. This must be called first before any other member functions
// are called.
//-----------------------------------------------------------------------
bool InstallDockingPanes(CWnd* pParent, bool bClipChildren=true);
//-----------------------------------------------------------------------
// Summary:
// Call this member function to create a docking pane.
// Parameters:
// nID - Unique identifier of the pane.
// rc - Initial size of the pane.
// direction - Docking direction. Can be any of the values listed in the Remarks section.
// pNeighbour - Pane's Neighbor. It can be NULL to use the frame as a neighbor.
// Remarks:
// direction parameter can be one of the following:
// * xtpPaneDockTop Docks the pane to the top of the neighbor.
// * xtpPaneDockLeft Docks the pane to the left of the neighbor.
// * xtpPaneDockRight Docks the pane to the right of the neighbor.
// * xtpPaneDockBottom Docks the pane to the bottom of the neighbor.
// Returns:
// The pointer to the created pane.
//-----------------------------------------------------------------------
CXTPDockingPane* CreatePane(UINT nID, CRect rc, XTPDockingPaneDirection direction, CXTPDockingPaneBase* pNeighbour = NULL);
//-----------------------------------------------------------------------
// Summary:
// Call this member to dock an existing pane.
// Parameters:
// pPane - Pane to be docked.
// direction - Docking direction. Can be any of the values listed in the Remarks section.
// pNeighbour - Pane's Neighbor.
// Remarks:
// direction parameter can be one of the following:
// * xtpPaneDockTop Docks the pane to the top of the neighbor.
// * xtpPaneDockLeft Docks the pane to the left of the neighbor.
// * xtpPaneDockRight Docks the pane to the right of the neighbor.
// * xtpPaneDockBottom Docks the pane to the bottom of the neighbor.
//-----------------------------------------------------------------------
void DockPane(CXTPDockingPaneBase* pPane, XTPDockingPaneDirection direction, CXTPDockingPaneBase* pNeighbour = NULL);
//-----------------------------------------------------------------------
// Summary:
// Call this member to dock an existing pane to a dock panel.
// Parameters:
// pPane - Pane to be docked.
// direction - Docking direction. Can be any of the values listed in the Remarks section.
// rc - Number of pixels to offset the pane from the inside top edge of the client area. This only has an effect when using the DockLeftOf and DockRightOf direction.
// Remarks:
// DockSidePane will dock a pane to the inside edge of the client using code.
// SideDocking must be enabled for DockSidePane to have any effect.
//
// SideDocking enables or disabled "Visio" style client edge docking.
// Side docking can only occur to the inside edges of the client area.
// When SideDocking is enabled any pane that is dragged to an inside edge
// of the client area will attempt to "snap" to that inside edge of the
// client. The pane will "snap" to the inside edge of the client and
// will leave a margin equal to that specified by SetSideDockingMargin.
//
// SideDocking does not effect normal docking of panes. You will need
// to drag the pane past the side docking margin for normal docking
// algorithms to be used.
// Returns:
// Reference to the side panel the pane is docked to.
//-----------------------------------------------------------------------
CXTPDockingPaneSidePanel* DockSidePane(CXTPDockingPaneBase* pPane, XTPDockingPaneDirection direction, CRect rc);
//-----------------------------------------------------------------------
// Summary:
// Call this member to float an existing pane.
// Parameters:
// pPane - Pane to be floated.
// rc - Floating rectangle.
//-----------------------------------------------------------------------
CXTPDockingPaneMiniWnd* FloatPane(CXTPDockingPaneBase* pPane, CRect rc);
//-----------------------------------------------------------------------
// Summary:
// Call this member to attach a pane to another one.
// Parameters:
// pPane - Pane to be attached.
// pNeighbour - Pane's Neighbor.
//-----------------------------------------------------------------------
void AttachPane(CXTPDockingPaneBase* pPane, CXTPDockingPaneBase* pNeighbour);
//-----------------------------------------------------------------------
// Summary:
// Call this member to switch the pane's position (docking/floating).
// Parameters:
// pPane - Docking Pane.
//-----------------------------------------------------------------------
void ToggleDocking(CXTPDockingPaneBase* pPane);
//-----------------------------------------------------------------------
// Summary:
// Call this member to switch the pane's Auto hide (docking/auto hide).
// Parameters:
// pPane - Docking Pane.
//-----------------------------------------------------------------------
void ToggleAutoHide(CXTPDockingPaneBase* pPane);
//-----------------------------------------------------------------------
// Summary:
// Call this member to show (activate) a pane
// Parameters:
// nID - Pane's identifier.
// pPane - Pane need to show
// bSetFocus - TRUE to set focus to selected pane
//-----------------------------------------------------------------------
void ShowPane(int nID, BOOL bSetFocus = TRUE);
void ShowPane(CXTPDockingPane* pPane, BOOL bSetFocus = TRUE); //
//-----------------------------------------------------------------------
// Summary:
// Call this member to close a pane
// Parameters:
// nID - Pane's identifier.
// pPane - Pane need to close
//-----------------------------------------------------------------------
void ClosePane(int nID);
void ClosePane(CXTPDockingPane* pPane); //
//-----------------------------------------------------------------------
// Summary:
// Call this member to destroy a pane
// Parameters:
// nID - Pane's identifier.
// pPane - Pane need to destroy
// See Also: ClosePane
//-----------------------------------------------------------------------
void DestroyPane(int nID);
void DestroyPane(CXTPDockingPane* pPane); //
//-----------------------------------------------------------------------
// Summary:
// Call this member to hide a pane.
// Parameters:
// nID - Pane's identifier.
// pPane - Pane need to hide
//-----------------------------------------------------------------------
void HidePane(int nID);
void HidePane(CXTPDockingPaneBase* pPane);//
//-----------------------------------------------------------------------
// Summary:
// Call this member to find a pane by its identifier.
// Parameters:
// nID - Pane's identifier.
// Returns:
// A pointer to a CXTPDockingPane object.
//-----------------------------------------------------------------------
CXTPDockingPane* FindPane(int nID) const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to check if the pane is closed.
// Parameters:
// nID - Pane's identifier.
// pPane - Pane need to close.
// Returns:
// TRUE if the pane is closed.
//-----------------------------------------------------------------------
BOOL IsPaneClosed(int nID) const;
BOOL IsPaneClosed(CXTPDockingPane* pPane) const; //
//-----------------------------------------------------------------------
// Summary:
// Call this member to check if the pane is hidden.
// Parameters:
// nID - Pane's identifier.
// pPane - Points to a CXTPDockingPane object.
// Returns:
// TRUE if the pane is hidden.
//-----------------------------------------------------------------------
BOOL IsPaneHidden(int nID) const;
BOOL IsPaneHidden(CXTPDockingPane* pPane) const; //
//-----------------------------------------------------------------------
// Summary:
// Call this member to check if the pane is selected.
// Parameters:
// nID - Pane's identifier.
// pPane - Points to a CXTPDockingPane object.
// Returns:
// TRUE if the pane is selected.
//-----------------------------------------------------------------------
BOOL IsPaneSelected(int nID) const;
BOOL IsPaneSelected(CXTPDockingPane* pPane) const; //
//-----------------------------------------------------------------------
// Summary:
// Call this member to set icons to panes.
// Parameters:
// nIDResource - Resource Identifier.
// nIDs - Pointer to an array of pane Ids.
// nCount - Number of elements in the array pointed to by nIDs.
// clrMask - RGB value of transparent color.
// Returns:
// TRUE if successful, otherwise returns FALSE.
//-----------------------------------------------------------------------
BOOL SetIcons(UINT nIDResource, const int* nIDs, int nCount, COLORREF clrMask = 0xC0C0C0);
//-----------------------------------------------------------------------
// Summary:
// Call this member to set an icon to the pane.
// Parameters:
// nID - Docking pane's identifier.
// hIcon - Icon handle.
//-----------------------------------------------------------------------
void SetIcon(UINT nID, const CXTPImageManagerIconHandle& hIcon);
//-----------------------------------------------------------------------
// Summary:
// Call this member to get an icon of the pane.
// Parameters:
// nID - Docking pane's identifier.
// nWidth - Width of icon to retrieve.
// Returns:
// The docking pane's icon.
//-----------------------------------------------------------------------
CXTPImageManagerIcon* GetIcon(UINT nID, int nWidth = 16) const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to remove all icons.
//-----------------------------------------------------------------------
void ClearIconMap();
//-----------------------------------------------------------------------
// Summary:
// Call this member to set the speed of animation.
// Parameters:
// dAnimationDelay - Must be -1 to use nAnimationDuration and nAnimationInterval.
// nAnimationDuration - Total time of animation, in milliseconds
// nAnimationInterval - Amount of time to rest, in milliseconds, between
// each step.
// Remarks:
// To disable animation set nAnimationDuration = 0.
// See Also: GetAnimationDelay
//-----------------------------------------------------------------------
void SetAnimationDelay(double dAnimationDelay = -1, int nAnimationDuration = 128, int nAnimationInterval = 16);
//-----------------------------------------------------------------------
// Summary:
// Call this member to get the animation speed.
// Parameters:
// pAnimationDuration - Pointer to receive total time of animation, in milliseconds.
// pAnimationInterval - Pointer to receive amount of time to rest, in milliseconds, between
// each step.
// Returns:
// Animation delay.
// See Also: SetAnimationDelay
//-----------------------------------------------------------------------
double GetAnimationDelay(int* pAnimationDuration = NULL, int* pAnimationInterval = NULL) const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to allow user switch and move panes using keyboard.
// Parameters:
// options - available keyboard keys that can be use to navigate items
// Remarks:
// options can be combination of the following:
// * xtpPaneKeyboardUseAltMinus To use Alt+'-' to show context menu
// * xtpPaneKeyboardUseAltF6 To use Alt+F6 to select next pane
// * xtpPaneKeyboardUseAltF7 To use Alt+F7 to show window select dialog
// * xtpPaneKeyboardUseCtrlTab To use Ctrl+Tab to show window select dialog
// * xtpPaneKeyboardUseAll To use all keys
//
// You can call SetKeyboardWindowSelectClass to set custom window for Ctrl-Tab and Alt_F7 operations
// See Also: XTPDockingPaneKeyboardNavigate
//-----------------------------------------------------------------------
void EnableKeyboardNavigate(DWORD options = xtpPaneKeyboardUseAll);
//-----------------------------------------------------------------------
// Summary:
// Determines if Keyboard Navigate options enabled.
// Returns:
// Returns combination of XTPDockingPaneKeyboardNavigate flags indicates which keys can be used
// to navigate panes
// See Also: EnableKeyboardNavigate, XTPDockingPaneKeyboardNavigate
//-----------------------------------------------------------------------
BOOL IsKeyboardNavigateEnabled() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to set custom CXTPDockingPaneWindowSelect window, that will use to show active panes and files.
// Parameters:
// pWindowSelectClass - CRuntimeClass pointer of custom CXTPDockingPaneWindowSelect window.
// See Also: EnableKeyboardNavigate, XTPDockingPaneKeyboardNavigate
//-----------------------------------------------------------------------
void SetKeyboardWindowSelectClass(CRuntimeClass* pWindowSelectClass);
//-----------------------------------------------------------------------
// Summary:
// Determines Runtime class for CXTPDockingPaneWindowSelect window, that shows active panes and files.
// See Also: SetKeyboardWindowSelectClass, EnableKeyboardNavigate, XTPDockingPaneKeyboardNavigate
//-----------------------------------------------------------------------
CRuntimeClass* GetKeyboardWindowSelectClass() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to activate pane in cycle order
// Parameters:
// pPane - Pane to start; NULL to select first pane
// bForward - TRUE to select next pane; FALSE to select previous pane
//-----------------------------------------------------------------------
BOOL ActivateNextPane(CXTPDockingPane* pPane, BOOL bForward);
public:
//-----------------------------------------------------------------------
// Summary:
// Call this member to get the list of the created panes.
// Returns:
// A list of created panes.
// See Also:
// GetPaneStack, CXTPDockingPaneInfoList
//-----------------------------------------------------------------------
CXTPDockingPaneInfoList& GetPaneList() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to get the list of the created panes.including virtual containers
// Returns:
// A list of created panes with its containers.
// See Also: GetPaneList
//-----------------------------------------------------------------------
CXTPDockingPaneBaseList& GetPaneStack() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to return the docking site of the manager.
// Returns:
// The docking site.
//-----------------------------------------------------------------------
CWnd* GetSite() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to switch the visual theme of the panes.
// Parameters:
// theme - New visual theme. Can be any of the values listed in the Remarks section.
// Remarks:
// theme can be one of the following:
// * xtpPaneThemeDefault Enables the default theme.
// * xtpPaneThemeVisualStudio2003 Enables Visual Studio .NET style theme.
// * xtpPaneThemeGrippered Enables Visual Studio 6 style theme.
// * xtpPaneThemeOffice2002Visio Enables Visio style theme.
// * xtpPaneThemeOffice2003 Enables Office 2003 style theme.
// * xtpPaneThemeWinNative Enables XP Theme.
// * xtpPaneThemeVisualStudio2005Beta1 Enables Whidbey theme.
//-----------------------------------------------------------------------
void SetTheme(XTPDockingPanePaintTheme theme);
//-----------------------------------------------------------------------
// Summary:
// Call this member to set a custom theme. See the DockingPane sample
// as a sample of creating a new theme.
// Parameters:
// pTheme - New Theme.
//-----------------------------------------------------------------------
void SetCustomTheme(CXTPDockingPanePaintManager* pTheme);
//-----------------------------------------------------------------------
// Summary:
// Call this member to get the current visual theme.
// Returns:
// The current theme.
//-----------------------------------------------------------------------
XTPDockingPanePaintTheme GetCurrentTheme() const;
//-----------------------------------------------------------------------
// Summary:
// Retrieves paint manager of docking panes.
// Returns:
// Returns paint manager.
//-----------------------------------------------------------------------
CXTPDockingPanePaintManager* GetPaintManager() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to create a new layout.
// Remarks:
// You must delete layout when it no longer used.
// Returns:
// A pointer to a CXTPDockingPaneLayout object.
//-----------------------------------------------------------------------
virtual CXTPDockingPaneLayout* CreateLayout();
//-----------------------------------------------------------------------
// Summary:
// Call this member to get the current layout.
// Parameters:
// pLayout - Pointer to the existing layout.
//-----------------------------------------------------------------------
void GetLayout(CXTPDockingPaneLayout* pLayout) const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to set the layout.
// Parameters:
// pLayout - Pointer to the existing layout.
//-----------------------------------------------------------------------
void SetLayout(const CXTPDockingPaneLayout* pLayout);
//-----------------------------------------------------------------------
// Summary:
// Call this member to redraw all panes.
//-----------------------------------------------------------------------
void RedrawPanes();
//-----------------------------------------------------------------------
// Summary:
// Call this member to retrieve client pane.
// Returns:
// A pointer to a CXTPDockingPaneBase object.
//-----------------------------------------------------------------------
CXTPDockingPaneBase* GetClientPane() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to destroy all panes.
//-----------------------------------------------------------------------
void DestroyAll();
//-----------------------------------------------------------------------
// Summary:
// Call this member to close all panes.
//-----------------------------------------------------------------------
void CloseAll();
//-----------------------------------------------------------------------
// Summary:
// Call this member to retrieve Image Manager of Docking Panes.
// Returns:
// Image Manager of Docking Panes.
//-----------------------------------------------------------------------
CXTPImageManager* GetImageManager() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to set the specified image manager.
// Parameters:
// pImageManager - Points to a CXTPImageManager object.
//-----------------------------------------------------------------------
void SetImageManager(CXTPImageManager* pImageManager);
//-----------------------------------------------------------------------
// Summary:
// Call this member to hide client area.
// Parameters:
// bHide - TRUE to hide client.
//-----------------------------------------------------------------------
void HideClient(BOOL bHide);
//-----------------------------------------------------------------------
// Summary:
// Checks to see if the client is hidden.
// Returns:
// TRUE if the client is hidden, FALSE if otherwise
//-----------------------------------------------------------------------
BOOL IsClientHidden() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to add margins around panes
// Parameters:
// nMargin - Width of margin for panes frame
//-----------------------------------------------------------------------
void SetClientMargin(int nMargin);
//-----------------------------------------------------------------------
// Summary:
// Retrieves width of margin around panes
//-----------------------------------------------------------------------
int GetClientMargin() const;
//-----------------------------------------------------------------------
// Summary:
// Sets the margin between the client area's edge and a docking pane
// docked to the edge of the client area when side docking is enabled.
// Parameters:
// rcMargin - Side docking margins (Margin between the right\top\lef\right
// edge of the client area and any docking panes that are docked
// to the left\top\right\bottom edge of the client area.)
// Remarks:
// SetSideDockingMargin sets the margins between the client ares's edge
// and a docking pane docked to the edge of the client area when side
// docking is enabled.
// See Also: SideDocking
//-----------------------------------------------------------------------
void SetSideDockingMargin(CRect rcMargin);
//-----------------------------------------------------------------------
// Summary:
// Gets the margin between the client area's edge and a docking pane
// docked to the edge of the client area when side docking is enabled.
// Remarks:
// SetSideDockingMargin sets the margins between the client ares's edge
// and a docking pane docked to the edge of the client area when side
// docking is enabled.
// Returns:
// Side docking margins (Margin between the right\top\lef\right
// edge of the client area and any docking panes that are docked
// to the left\top\right\bottom edge of the client area.)
// See Also: SideDocking, SetSideDockingMargin
//-----------------------------------------------------------------------
CRect GetSideDockingMargin() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to use trackers.
// Parameters:
// bSplitterTracker - TRUE to use trackers.
// Remarks:
// This member function will display the contents for child pane
// while the splitter is resized if bSplitterTracker is set to FALSE.
// See Also: IsSplitterTrackerUsed
//-----------------------------------------------------------------------
void UseSplitterTracker(BOOL bSplitterTracker);
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine if the splitter tracker is used.
// Returns:
// TRUE if the splitter tracker is used; otherwise returns FALSE.
// See Also: UseSplitterTracker
//-----------------------------------------------------------------------
BOOL IsSplitterTrackerUsed() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to set direction of captions
// Parameters:
// captionDirection - New direction to be set
// Remarks:
// captionDirection parameter can be one of the following:
// * xtpPaneCaptionHorizontal
// * xtpPaneCaptionVertical
// * xtpPaneCaptionAutoByPosition
// * xtpPaneCaptionAutoBySize
// Example:
// m_paneManager.GetPaintManager()->SetCaptionDirection(xtpPaneCaptionAutoSize);
//-----------------------------------------------------------------------
void SetCaptionDirection(XTPDockingPaneCaptionDirection captionDirection);
//-----------------------------------------------------------------------
// Summary:
// Call this member determine the direction the tab buttons are displayed.
// Remarks:
// Can return one of the following direction:
// * xtpPaneCaptionHorizontal
// * xtpPaneCaptionVertical
// * xtpPaneCaptionAutoByPosition
// * xtpPaneCaptionAutoBySize
// Returns:
// A XTPDockingPaneCaptionDirection flag indicating which direction the
// pane caption is displayed.
// See Also: SetCaptionDirection
//-----------------------------------------------------------------------
XTPDockingPaneCaptionDirection GetCaptionDirection() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to lock splitters.
// Parameters:
// bLock - TRUE to forbid splitter window panes to
// be resized.
//-----------------------------------------------------------------------
void LockSplitters(BOOL bLock = TRUE);
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine if the splitters are locked.
// Returns:
// TRUE if the splitters are locked; otherwise returns FALSE.
//-----------------------------------------------------------------------
BOOL IsSplittersLocked() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to set common caption for floating frames.
// Parameters:
// lpszCaption - Caption to be set.
//-----------------------------------------------------------------------
void SetFloatingFrameCaption(LPCTSTR lpszCaption);
//-----------------------------------------------------------------------
// Summary:
// Call this method to use themes for floating frames.
// Parameters:
// bThemedFloatingFrames - TRUE to use themed floating panes, FALSE otherwise.
//-----------------------------------------------------------------------
void SetThemedFloatingFrames(BOOL bThemedFloatingFrames);
//-----------------------------------------------------------------------
// Summary:
// Determines if themes are used for the floating frames.
// Returns:
// TRUE if they are used; otherwise returns FALSE.
//-----------------------------------------------------------------------
BOOL IsThemedFloatingFrames() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to enable sticky floating frames
// Parameters:
// bSticky - TRUE to use sticky floating frames, FALSE otherwise.
//-----------------------------------------------------------------------
void SetStickyFloatingFrames(BOOL bSticky);
//-----------------------------------------------------------------------
// Summary:
// Determines if sticky floating frames option enabled
//-----------------------------------------------------------------------
BOOL IsStickyFloatingFrames() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to set opacity for inactive floating frames
// Parameters:
// nOpacity - Alpha value. When nOpacity is 0, the window is completely transparent. When nOpacity is 255, the window is opaque.
//-----------------------------------------------------------------------
void SetFloatingFramesOpacity(int nOpacity);
//-----------------------------------------------------------------------
// Summary:
// Determines opacity for inactive floating frames
//-----------------------------------------------------------------------
int GetFloatingFramesOpacity() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to keep the activation of floating frames windows in sync with the activation of the top level frame window.
// Parameters:
// bSyncActiveFloatingFrames - TRUE to synchronizes the activation of the mini-frame window
// to the activation of its parent window.
//-----------------------------------------------------------------------
void SyncActiveFloatingFrames(BOOL bSyncActiveFloatingFrames);
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine if the current layout is Right-to-Left (RTL).
// Returns:
// TRUE if the current layout is Right-to-Left (RTL), FALSE if the
// layout is Left-to-Right.
//-----------------------------------------------------------------------
BOOL IsLayoutRTL() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to return the Right-to-Left (RTL) docking direction
// equivalent to the direction passed in if IsLayoutRTL returns TRUE.
// Parameters:
// direction - Docking direction
// Returns:
// Returns the Righ-to-Left docking direction of the supplied direction
// if IsLayoutRTL returns TRUE. If IsLayoutRTL returns FALSE, then
// the direction passed in remains the same.
//-----------------------------------------------------------------------
XTPDockingPaneDirection GetRTLDirection(XTPDockingPaneDirection direction) const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine the XTPDockingPaneDirection of pPane.
// Parameters:
// pPane - Points to a CXTPDockingPaneBase object
// Returns:
// The current XTPDockingPaneDirection of pPane.
//-----------------------------------------------------------------------
XTPDockingPaneDirection GetPaneDirection(const CXTPDockingPaneBase* pPane) const;
//-----------------------------------------------------------------------
// Summary:
// Retrieves top level virtual container for site window.
// Remarks:
// Top level container always splitter container (xtpPaneTypeSplitterContainer)
// Returns:
// Top level container.
//-----------------------------------------------------------------------
CXTPDockingPaneBase* GetTopPane() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to use custom docking context.
// Parameters:
// pDockingContext - Points to a CXTPDockingPaneContext object
//-----------------------------------------------------------------------
void SetDockingContext(CXTPDockingPaneContext* pDockingContext);
//-----------------------------------------------------------------------
// Summary:
// Retrieves current docking context pointer.
// Returns:
// Pointer to current docking context.
//-----------------------------------------------------------------------
CXTPDockingPaneContext* GetDockingContext() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine if Alpha Docking Context is used when
// panes are being dragged and dropped.
// Returns:
// TRUE if AlphaDockingContext is enabled, FALSE if it is disabled.
// Remarks:
// AlphaDockingContext must be TRUE if Docking Context Stickers will
// be used.
// See Also: SetAlphaDockingContext, IsShowDockingContextStickers, SetShowDockingContextStickers
//-----------------------------------------------------------------------
BOOL IsAlphaDockingContext() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to specify whether an alpha docking context is
// used to indicate where a pane can be docked while dragging the pane.
// Parameters:
// bAlphaDockingContext - TRUE to enable Alpha colorization while docking.
// Remarks:
// Specifies whether the area that a docking pane can occupy is
// shaded in gray as the pane is dragged to its new location. The
// shaded area indicates the area on the application the docking
// pane will occupy if docked in that location.
// AlphaDockingContext must be TRUE if Docking Context Stickers will
// be used.
// See Also: IsAlphaDockingContext, IsShowDockingContextStickers, SetShowDockingContextStickers
//-----------------------------------------------------------------------
void SetAlphaDockingContext(BOOL bAlphaDockingContext);
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine whether Docking Context Stickers are used.
// Returns:
// TRUE if Docking Context Stickers are used, FALSE if they are not used.
// See Also: SetAlphaDockingContext, IsAlphaDockingContext, SetShowDockingContextStickers
//-----------------------------------------------------------------------
BOOL IsShowDockingContextStickers() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to specify whether Visual Studio 2005 style
// Docking Context Stickers are used while dragging a docking pane.
// Parameters:
// bShowDockingContextStickers - If TRUE, docking stickers are drawn
// on the screen indicating all the possible locations that the docking
// pane can be docked while the pane is dragged over the application.
// AlphaDockingContext must also be True to display the stickers.
// Remarks:
// AlphaDockingContext must be TRUE if Docking Context Stickers will
// be used.
// See Also: SetAlphaDockingContext, IsAlphaDockingContext, IsShowDockingContextStickers, SetDockingContextStickerStyle
//-----------------------------------------------------------------------
void SetShowDockingContextStickers(BOOL bShowDockingContextStickers);
//-----------------------------------------------------------------------
// Summary:
// Call this member to set Docking Context Stickers style.
// Parameters:
// style - Style of docking pane stickers.
// Remarks:
// Call SetShowDockingContextStickers to enable Stickers.
// Style parameter can be one of the following:
// * xtpPaneStickerStyleVisualStudio2005Beta Whidbey stickers.
// * xtpPaneStickerStyleVisualStudio2005 Visual Studio 2005 stickers.
// See Also: SetShowDockingContextStickers, GetDockingContextStickerStyle
//-----------------------------------------------------------------------
void SetDockingContextStickerStyle(XTPDockingContextStickerStyle style);
//-----------------------------------------------------------------------
// Summary:
// Call this member to get Docking Context Stickers style.
// Returns:
// Style of docking pane stickers.
// Remarks:
// Call SetShowDockingContextStickers to enable Stickers.
// See Also: SetShowDockingContextStickers, SetDockingContextStickerStyle
//-----------------------------------------------------------------------
XTPDockingContextStickerStyle GetDockingContextStickerStyle() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to set "Show window contents while dragging" option
// Parameters:
// bShow - TRUE to set show contents while dragging
//-----------------------------------------------------------------------
void SetShowContentsWhileDragging(BOOL bShow = TRUE);
//-----------------------------------------------------------------------
// Summary:
// Determines if "Show window contents while dragging" option is enabled
// Returns:
// TRUE if contents is visible while dragging.
//-----------------------------------------------------------------------
BOOL GetShowContentsWhileDragging() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to show Maximize/Restore buttons for docking panes
// Parameters:
// bShowMaximizeButton - TRUE to show maximize buttons for panes
// See Also: IsCaptionMaximizeButtonsVisible
//-----------------------------------------------------------------------
void ShowCaptionMaximizeButton(BOOL bShowMaximizeButton);
//-----------------------------------------------------------------------
// Summary:
// Determines if Maximize/Restore buttons for docking panes are visible
// See Also: ShowCaptionMaximizeButton
//-----------------------------------------------------------------------
BOOL IsCaptionMaximizeButtonsVisible() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to save current splitter positions for all splitter containers
// See Also: CXTPDockingPaneSplitterContainer
//-----------------------------------------------------------------------
void NormalizeSplitters();
//-----------------------------------------------------------------------
// Summary:
// Call this method to recalculate layout for all parent frames of panes.
//-----------------------------------------------------------------------
void RecalcFramesLayout();
//-----------------------------------------------------------------------
// Summary:
// This method updates XTP_DOCKINGPANE_INFO structure for each panes filling
// its members.
//-----------------------------------------------------------------------
void SyncPanesState();
//-----------------------------------------------------------------------
// Summary:
// Call this method to set default options for each pane
// Parameters:
// dwOptions - Option applied for each pane. Can be any of the values listed in the Remarks section.
// Remarks:
// dwOptions parameter can be one or more of the following:
// * xtpPaneNoCloseable Indicates the pane cannot be closed.
// * xtpPaneNoHideable Indicates the pane cannot be hidden.
// * xtpPaneNoFloatable Indicates the pane cannot be floated.
// * xtpPaneNoCaption Indicates the pane has no caption..
// See Also: GetDefaultPaneOptions, CXTPDockingPane::SetOptions, XTPDockingPaneOptions
//-----------------------------------------------------------------------
void SetDefaultPaneOptions(DWORD dwOptions);
//-----------------------------------------------------------------------
// Summary:
// Retrieves default panes options.
// Returns:
// Default options used for each pane.
// See Also: SetDefaultPaneOptions, XTPDockingPaneOptions
//-----------------------------------------------------------------------
DWORD GetDefaultPaneOptions() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member function to set the application's panes into and out of print-preview mode.
// Parameters:
// bPreview - Specifies whether or not to place the application in print-preview mode. Set to TRUE to place in print preview, FALSE to cancel preview mode.
//-----------------------------------------------------------------------
void OnSetPreviewMode (BOOL bPreview);
//-----------------------------------------------------------------------
// Summary:
// Call this member function to get pane currently active (focused)
//-----------------------------------------------------------------------
CXTPDockingPane* GetActivePane() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to get tooltip context pointer.
//-----------------------------------------------------------------------
CXTPToolTipContext* GetToolTipContext() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member function to save/restore the settings of the pane.
// Parameters:
// pPX - Points to a CXTPPropExchange object.
// Returns:
// TRUE if successful; otherwise returns FALSE.
//-----------------------------------------------------------------------
BOOL DoPropExchange(CXTPPropExchange* pPX);
//-----------------------------------------------------------------------
// Summary:
// This method is called to recalculate layout of pane's site.
// Parameters:
// pPane - Pane which site need to recalculate
// bDelay - TRUE to recalculate after small delay
//-----------------------------------------------------------------------
void RecalcFrameLayout(CXTPDockingPaneBase* pPane, BOOL bDelay = FALSE);
//-----------------------------------------------------------------------
// Summary:
// This method is called to update panes state
//-----------------------------------------------------------------------
virtual void UpdatePanes();
//-----------------------------------------------------------------------
// Summary:
// This member is called to notify the parent window that an event
// has occurred in the docking pane.
// Parameters:
// nCode - Specifies which event has occurred.
// lParam - Additional message-specific information.
//-----------------------------------------------------------------------
virtual LRESULT NotifyOwner(UINT nCode, LPARAM lParam);
//-----------------------------------------------------------------------
// Summary:
// Call this method to show and activate pane
// Parameters:
// pPane - pane to show
// See Also: ShowPane
//-----------------------------------------------------------------------
void EnsureVisible(CXTPDockingPaneBase* pPane);
//-----------------------------------------------------------------------
// Summary:
// Enables or disables side docking.
// Parameters:
// bEnable - TRUE to enable side docking, FALSE to disable side docking.
// See Also: SideDocking, SetSideDockingMargin
//-----------------------------------------------------------------------
void EnableSideDocking(BOOL bEnable = TRUE);
//-----------------------------------------------------------------------
// Summary:
// Determines if side docking is enabled.
// Returns:
// TRUE if side docking is enabled, FALSE if side docking is disabled.
// See Also: SideDocking, SetSideDockingMargin, EnableSideDocking
//-----------------------------------------------------------------------
BOOL IsSideDockingEnabled() const;
public:
//-----------------------------------------------------------------------
// Summary:
// This method is called when a pane is created.
// Parameters:
// type - Type of pane that is created.
// pLayout - Points to a CXTPDockingPaneLayout object.
// Returns:
// Created pane.
//-----------------------------------------------------------------------
virtual CXTPDockingPaneBase* OnCreatePane(XTPDockingPaneType type, CXTPDockingPaneLayout* pLayout);
//-----------------------------------------------------------------------
// Summary:
// This method is called when a pane activated/deactivated
// Parameters:
// bActive - TRUE if pane activated, FALSE otherwise;
// pPane - Pane was activated/deactivated.
//-----------------------------------------------------------------------
virtual void OnActivatePane(BOOL bActive, CXTPDockingPane* pPane);
//-----------------------------------------------------------------------
// Summary:
// The framework calls this method when a docking pane is performing an action.
// Parameters:
// action - The action the docking pane is performing.
// pPane - The pane performing the action.
// pDockContainer - Object used to provide additional information about where a Pane will be\has been docked.
// dockDirection - Specifies the direction where a pane is docking.
// Returns:
// TRUE if the action was successful, FALSE if the action was cancelled or failed.
//-----------------------------------------------------------------------
BOOL NotifyAction(XTPDockingPaneAction action, CXTPDockingPane* pPane, CXTPDockingPaneBase* pDockContainer = NULL, XTPDockingPaneDirection dockDirection = xtpPaneDockLeft);
protected:
//{{AFX_CODEJOCK_PRIVATE
DECLARE_MESSAGE_MAP()
//{{AFX_MSG(CXTPDockingPaneManager)
afx_msg void OnSysColorChange();
afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection);
afx_msg LRESULT OnSizeParent(WPARAM, LPARAM lParam);
afx_msg LRESULT OnIdleUpdateCmdUI(WPARAM wParam, LPARAM);
afx_msg void OnInitialUpdate();
afx_msg LRESULT OnGetObject(WPARAM wParam, LPARAM lParam);
BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult);
//}}AFX_MSG
//}}AFX_CODEJOCK_PRIVATE
protected:
//{{AFX_CODEJOCK_PRIVATE
// System accessibility support.
virtual HRESULT GetAccessibleParent(IDispatch** ppdispParent);
virtual HRESULT GetAccessibleChildCount(long* pcountChildren);
virtual HRESULT GetAccessibleChild(VARIANT varChild, IDispatch** ppdispChild);
virtual HRESULT GetAccessibleName(VARIANT varChild, BSTR* pszName);
virtual HRESULT GetAccessibleRole(VARIANT varChild, VARIANT* pvarRole);
virtual HRESULT AccessibleLocation(long *pxLeft, long *pyTop, long *pcxWidth, long* pcyHeight, VARIANT varChild);
virtual HRESULT AccessibleHitTest(long xLeft, long yTop, VARIANT* pvarChild);
virtual HRESULT GetAccessibleState(VARIANT varChild, VARIANT* pvarState);
virtual CCmdTarget* GetAccessible();
DECLARE_INTERFACE_MAP()
//}}AFX_CODEJOCK_PRIVATE
private:
CXTPDockingPaneLayout* GetCurrentLayout() const;
CRect _CalculateResultDockingRect(CXTPDockingPaneBase* pPane, XTPDockingPaneDirection direction, CXTPDockingPaneBase* pNeighbour);
void _InsertPane(CXTPDockingPaneBase* pPane, XTPDockingPaneDirection direction, CXTPDockingPaneBase* pNeighbour);
void _RemovePane(CXTPDockingPaneBase* pPane);
void _AttachPane(CXTPDockingPaneBase* pPane, CXTPDockingPaneBase* pNeighbour);
CXTPDockingPaneBase* _GetHolder(CXTPDockingPaneBase* pPane, BOOL bFloating);
CXTPDockingPaneBase* _Clone(CXTPDockingPaneBase* pPane);
void _TrackPopupContextMenu(CXTPDockingPane* pPane);
void _Redraw();
void _DetachAll();
BOOL _ToggleDocking(CXTPDockingPane* pPane, CXTPDockingPaneBase* pHolder);
public:
int m_nSplitterGap; // Minimum available width of panes.
BOOL m_bCloseGroupOnButtonClick; // If TRUE, when the close button on a group of panes is clicked, then the entire group of panes is closed. If FALSE, the only the currently visible pane in the group will be closed.
BOOL m_bHideGroupOnButtonClick; // If TRUE, when the hide button on a group of panes is clicked, then the entire group of panes is hidden. If FALSE, the only the currently visible pane in the group will be hidden.
BOOL m_bShowSizeCursorWhileDragging; // TRUE to show size cursor while panes are dragged
CPoint m_ptMinClientSize; // Minimum client size
int m_nStickyGap; // Sticky gap
BOOL m_bShowPanelScrollButtons; // TRUE to show scroll buttons for AutoHide Panels.
BOOL m_bAutoInitialUpdate; // TRUE to send WM_INITIIALUPDATE to Pane Children
XTPTabNavigateButtonFlags m_bShowCloseTabButton; // Close Tab Button Flag
protected:
CWnd* m_pSite; // Parent window of docking manager.
CXTPDockingPaneLayout* m_pLayout; // Selected layout.
CXTPDockingPanePaintManager* m_pPaintManager; // Current paint manager.
CXTPDockingPane* m_pActivePane; // Current Active pane;
int m_nClientMargin; // Client margins
CRect m_rcSideDockingMargin; // Side docking margin, this is the margin between the client area's edge and a docking pane docked to the edge of the client area when side docking is enabled.
BOOL m_bStickyFloatingFrames; // TRUE to enable sticky option for floating panes
CXTPImageManager* m_pImageManager; // Image manager of docking panes.
BOOL m_bSideDocking; // TRUE if side docking is enabled, FALSE if disabled.
BOOL m_bHideClient; // If TRUE, the client area is hidden so that only the docking panes are visible and occupy the entire area.
BOOL m_bUseSplitterTracker; // If TRUE, splitter trackers are used. When resizing a docking pane, an outline of the pane is drawn as the splitter is dragged. If FALSE, the docking pane will be resized in "real-time."
BOOL m_bShowMaximizeButton; // Allow panes to be maximized.
BOOL m_bLockSplitters; // If TRUE, you can not resize the panes when they are docked. However, panes can be resized via code and when they are floated.
BOOL m_bAlphaDockingContext; // If TRUE, alpha docking context is used when dragging a pane, the shaded area indicates the panes new location of dropped.
BOOL m_bShowDockingContextStickers; // If TRUE, docking context stickers are drawn when the pane is being dragged and dropped. m_bAlphaDockingContext must be TRUE.
BOOL m_bShowContentsWhileDragging; // If TRUE, window contents is visible while dragging.
BOOL m_bThemedFloatingFrames; // If TRUE, floating docking panes will use the currently set theme.
BOOL m_bSyncActiveFloatingFrames; // Synchronizes the activation of the mini-frame window to the activation of its parent window.
BOOL m_nFloatingFramesOpacity; // Opacity of floating frames
DWORD m_bKeyboardEnabled; // XTPDockingPaneKeyboardNavigate options
DWORD m_dwDefaultPaneOptions; // Default Panes options.
XTPDockingPaneCaptionDirection m_captionDirection; // Caption Direction
CString m_strFloatingFrameCaption; // The caption that is displayed in the title bar of a floating frame that has panes docked. This is the floating frame that contains other docking panes.
XTPDockingContextStickerStyle m_nDockingContextStickerStyle; // Sticker style.
CXTPDockingPaneContext* m_pDockingContext; // Docking context helper.
CXTPDockingPaneLayout* m_pPreviewLayout; // Preview mode layout.
CXTPToolTipContext* m_pToolTipContext; // Tooltip Context.
typedef BOOL (WINAPI *PFNSETLAYEREDWINDOWATTRIBUTES) (HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
PFNSETLAYEREDWINDOWATTRIBUTES m_pfnSetLayeredWindowAttributes; // POinter to SetLayeredWindowAttributes API function
CRuntimeClass* m_pWindowSelectClass; // Runtime class of WindowSelect
private:
HWND m_hwndLastFocus;
BOOL m_bAttachingPane;
BOOL m_bLayoutCreated;
BOOL m_bInitialUpdateCalled;
CString m_strMove;
friend class CXTPDockingPaneBase;
friend class CXTPDockingPaneBaseContainer;
friend class CXTPDockingPaneSplitterContainer;
friend class CXTPDockingPaneTabbedContainer;
friend class CXTPDockingPaneMiniWnd;
friend class CXTPDockingPaneAutoHideWnd;
friend class CXTPDockingPaneContext;
friend class CXTPDockingPane;
friend class CXTPDockingPaneLayout;
friend class CXTPDockingPaneAutoHidePanel;
friend class CDockingPaneSite;
friend class CDockingPaneCtrl;
friend class CDockingPaneOptions;
};
AFX_INLINE CWnd* CXTPDockingPaneManager::GetSite() const {
return m_pSite;
}
AFX_INLINE CXTPDockingPaneLayout* CXTPDockingPaneManager::GetCurrentLayout() const {
return m_pLayout;
}
AFX_INLINE void CXTPDockingPaneManager::RedrawPanes() {
_Redraw();
}
AFX_INLINE CXTPDockingPanePaintManager* CXTPDockingPaneManager::GetPaintManager() const {
return m_pPaintManager;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsClientHidden() const {
return m_bHideClient;
}
AFX_INLINE void CXTPDockingPaneManager::UseSplitterTracker(BOOL bSplitterTracker) {
m_bUseSplitterTracker = bSplitterTracker;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsSplitterTrackerUsed() const {
return m_bUseSplitterTracker;
}
AFX_INLINE CXTPImageManager* CXTPDockingPaneManager::GetImageManager() const {
return m_pImageManager;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsSplittersLocked() const {
return m_bLockSplitters;
}
AFX_INLINE void CXTPDockingPaneManager::SetFloatingFrameCaption(LPCTSTR lpszCaption) {
m_strFloatingFrameCaption = lpszCaption;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsThemedFloatingFrames() const {
return m_bThemedFloatingFrames;
}
AFX_INLINE void CXTPDockingPaneManager::SetStickyFloatingFrames(BOOL bSticky) {
m_bStickyFloatingFrames = bSticky;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsStickyFloatingFrames() const {
return m_bStickyFloatingFrames;
}
AFX_INLINE CXTPDockingPaneContext* CXTPDockingPaneManager::GetDockingContext() const {
return m_pDockingContext;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsAlphaDockingContext() const {
return m_bAlphaDockingContext;
}
AFX_INLINE void CXTPDockingPaneManager::SetAlphaDockingContext(BOOL bAlphaDockingContext) {
m_bAlphaDockingContext = bAlphaDockingContext;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsShowDockingContextStickers() const {
return m_bShowDockingContextStickers;
}
AFX_INLINE void CXTPDockingPaneManager::SetShowDockingContextStickers(BOOL bShowDockingContextStickers) {
m_bShowDockingContextStickers = bShowDockingContextStickers;
}
AFX_INLINE void CXTPDockingPaneManager::SetDefaultPaneOptions(DWORD dwOptions) {
m_dwDefaultPaneOptions = dwOptions;
}
AFX_INLINE DWORD CXTPDockingPaneManager::GetDefaultPaneOptions() const {
return m_dwDefaultPaneOptions;
}
AFX_INLINE void CXTPDockingPaneManager::ClosePane(int nID) {
ClosePane(FindPane(nID));
}
AFX_INLINE void CXTPDockingPaneManager::ShowPane(int nID, BOOL bSetFocus) {
ShowPane(FindPane(nID), bSetFocus);
}
AFX_INLINE void CXTPDockingPaneManager::DestroyPane(int nID) {
DestroyPane(FindPane(nID));
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsPaneClosed(int nID) const {
return IsPaneClosed(FindPane(nID));
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsPaneHidden(int nID) const {
return IsPaneHidden(FindPane(nID));
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsPaneSelected(int nID) const {
return IsPaneSelected(FindPane(nID));
}
AFX_INLINE CXTPDockingPane* CXTPDockingPaneManager::GetActivePane() const {
return m_pActivePane;
}
AFX_INLINE CXTPToolTipContext* CXTPDockingPaneManager::GetToolTipContext() const {
return m_pToolTipContext;
}
AFX_INLINE void CXTPDockingPaneManager::ShowCaptionMaximizeButton(BOOL bShowMaximizeButton) {
m_bShowMaximizeButton = bShowMaximizeButton;
RedrawPanes();
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsCaptionMaximizeButtonsVisible() const {
return m_bShowMaximizeButton;
}
AFX_INLINE void CXTPDockingPaneManager::SetDockingContextStickerStyle(XTPDockingContextStickerStyle style) {
m_nDockingContextStickerStyle = style;
}
AFX_INLINE XTPDockingContextStickerStyle CXTPDockingPaneManager::GetDockingContextStickerStyle() const {
return m_nDockingContextStickerStyle;
}
AFX_INLINE void CXTPDockingPaneManager::SetCaptionDirection(XTPDockingPaneCaptionDirection captionDirection) {
m_captionDirection = captionDirection;
RedrawPanes();
}
AFX_INLINE XTPDockingPaneCaptionDirection CXTPDockingPaneManager::GetCaptionDirection() const {
return m_captionDirection;
}
AFX_INLINE void CXTPDockingPaneManager::SetShowContentsWhileDragging(BOOL bShow) {
m_bShowContentsWhileDragging = bShow;
}
AFX_INLINE BOOL CXTPDockingPaneManager::GetShowContentsWhileDragging() const {
return m_bShowContentsWhileDragging;
}
AFX_INLINE void CXTPDockingPaneManager::SetClientMargin(int nMargin) {
if (m_nClientMargin != nMargin) {
m_nClientMargin = nMargin;
RecalcFrameLayout(NULL, TRUE);
}
}
AFX_INLINE int CXTPDockingPaneManager::GetClientMargin() const {
return m_nClientMargin;
}
AFX_INLINE void CXTPDockingPaneManager::SetSideDockingMargin(CRect rcMargin) {
if (m_rcSideDockingMargin != rcMargin) {
m_rcSideDockingMargin = rcMargin;
RecalcFrameLayout(NULL, TRUE);
}
}
AFX_INLINE CRect CXTPDockingPaneManager::GetSideDockingMargin() const {
return m_rcSideDockingMargin;
}
AFX_INLINE int CXTPDockingPaneManager::GetFloatingFramesOpacity() const {
return m_nFloatingFramesOpacity;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsKeyboardNavigateEnabled() const {
return m_bKeyboardEnabled;
}
AFX_INLINE void CXTPDockingPaneManager::SetKeyboardWindowSelectClass(CRuntimeClass* pWindowSelectClass) {
m_pWindowSelectClass = pWindowSelectClass;
}
AFX_INLINE CRuntimeClass* CXTPDockingPaneManager::GetKeyboardWindowSelectClass() const {
return m_pWindowSelectClass;
}
AFX_INLINE void CXTPDockingPaneManager::EnableSideDocking(BOOL bEnable) {
m_bSideDocking = bEnable;
}
AFX_INLINE BOOL CXTPDockingPaneManager::IsSideDockingEnabled() const {
return m_bSideDocking;
}
#endif //#if !defined(__XTPDOCKINGPANEMANAGER_H__)