You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

755 lines
32 KiB
C++

// XTPTaskPanelGroup.h interface for the CXTPTaskPanelGroup class.
//
// This file is a part of the XTREME TASKPANEL 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(__XTPTASKPANELGROUP_H__)
#define __XTPTASKPANELGROUP_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CXTPTaskPanel;
class CXTPTaskPanelItems;
class CXTPTaskPanelItem;
class CXTPTaskPanelPaintManager;
class CXTPTaskPanelGroupItem;
class CXTPTaskPanelGroupItems;
//===========================================================================
// Summary:
// CXTPTaskPanelGroup is a CXTPTaskPanelItem derived class. It is used in TaskPanel control
// as single group.
//===========================================================================
class _XTP_EXT_CLASS CXTPTaskPanelGroup : public CXTPTaskPanelItem
{
DECLARE_SERIAL(CXTPTaskPanelGroup)
public:
//-------------------------------------------------------------------------
// Summary:
// Constructs a CXTPTaskPanelGroup object
// Parameters:
// pPanel - Parent task panel pointer.
//-------------------------------------------------------------------------
CXTPTaskPanelGroup(CXTPTaskPanel* pPanel = NULL);
//-----------------------------------------------------------------------
// Summary:
// Destroys a CXTPTaskPanelGroup object, handles cleanup and deallocation.
//-----------------------------------------------------------------------
virtual ~CXTPTaskPanelGroup();
public:
//-----------------------------------------------------------------------
// Summary:
// Call this method to get collection of group items.
// Returns:
// Collection of items of group
//-----------------------------------------------------------------------
CXTPTaskPanelItems* GetItems() const;
//-----------------------------------------------------------------------
// Summary:
// This method retrieves an item with the specified index.
// Parameters:
// nIndex - Specifies the zero-based index of the item to retrieve.
// Returns:
// A pointer to a CXTPTaskPanelGroupItem object.
//-----------------------------------------------------------------------
CXTPTaskPanelGroupItem* GetAt(int nIndex) const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to find item with specified identifier.
// Parameters:
// nID - Identifier of the item to be found.
// Returns:
// A pointer to item if successful; otherwise returns NULL.
//-----------------------------------------------------------------------
CXTPTaskPanelGroupItem* FindItem(int nID) const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to add a new link item to group.
// Parameters:
// nID - Identifier of item to be added.
// nImage - Image index in TaskPanel image list.
// Returns:
// A pointer to the created CXTPTaskPanelGroupItem class
//-----------------------------------------------------------------------
CXTPTaskPanelGroupItem* AddLinkItem(UINT nID, int nImage = -1);
//-----------------------------------------------------------------------
// Summary:
// Call this method to add a new text item to group.
// Parameters:
// strText - Items text
// Returns:
// A pointer to created CXTPTaskPanelGroupItem class
//-----------------------------------------------------------------------
CXTPTaskPanelGroupItem* AddTextItem(LPCTSTR strText);
//-----------------------------------------------------------------------
// Summary:
// Call this method to add a new control item to group.
// Parameters:
// hWnd - Window Handle
// Returns:
// A pointer to created CXTPTaskPanelGroupItem class
//-----------------------------------------------------------------------
CXTPTaskPanelGroupItem* AddControlItem(HWND hWnd);
//-----------------------------------------------------------------------
// Summary:
// This method determines where a point lies in a specified item.
// Parameters:
// pt - Specifies the point to be tested.
// lpRect - Retrieves bounding rectangle of the item. Can be NULL if you don't need it.
// Returns:
// A pointer to a CXTPTaskPanelGroupItem item that occupies the specified point or NULL if
// no item occupies the point.
//-----------------------------------------------------------------------
CXTPTaskPanelGroupItem* HitTest(CPoint pt, CRect* lpRect = 0) const;
//-----------------------------------------------------------------------
// Summary:
// This method is called when a group is repositioned.
// Parameters:
// rc - new group's position.
// bRecalcOnly - TRUE to recalculate only.
// Returns:
// Target location of group (m_rcGroupTarget).
// Remarks:
// During animation the groups need to be repositioned. This method
// will return the target location of the group.
// Remarks:
// CXTPTaskPanel::AnimateGroups, CXTPTaskPanel::SetAnimation,
// CXTPTaskPanel::GetAnimation, IsDirty, OnAnimate
//-----------------------------------------------------------------------
CRect OnReposition(CRect rc, BOOL bRecalcOnly = TRUE);
//-----------------------------------------------------------------------
// Summary:
// This method is called when an animation step is executed.
// Parameters:
// nStep - Step of animation.
// Remarks:
// CXTPTaskPanel::AnimateGroups, CXTPTaskPanel::SetAnimation,
// CXTPTaskPanel::GetAnimation, IsDirty, OnReposition
//-----------------------------------------------------------------------
void OnAnimate(int nStep);
//-----------------------------------------------------------------------
// Summary:
// This method is called to draw a group.
// Parameters:
// pDC - Points to the client device context.
// Remarks:
// OnPaint calls CXTPTaskPanelPaintManager::DrawGroupCaption and
// CXTPTaskPanelPaintManager::DrawGroupClient.
//-----------------------------------------------------------------------
void OnPaint(CDC* pDC);
//-----------------------------------------------------------------------
// Summary:
// Call this method to get the rectangle of the caption.
// Returns:
// Caption rectangle.
//-----------------------------------------------------------------------
CRect GetCaptionRect() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to get the current rectangle of the client.
// Returns:
// Client rectangle.
//-----------------------------------------------------------------------
CRect GetClientRect() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to get the target rectangle of the client.
// Returns:
// Target client rectangle
//-----------------------------------------------------------------------
CRect GetTargetClientRect() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to get the target rectangle of caption.
// Returns:
// Target caption rectangle
//-----------------------------------------------------------------------
CRect GetTargetCaptionRect() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to make the group special.
// Parameters:
// bSpecial - TRUE if group is special.
// Remarks:
// If a group is special, it will appear in a different color than the
// other groups. Groups marked as special will be displayed differently
// than normal groups drawing the users attention to that particular
// group. This is an excellent way to show the user the "default" or
// important items.
//-----------------------------------------------------------------------
void SetSpecialGroup(BOOL bSpecial = TRUE);
//-----------------------------------------------------------------------
// Summary:
// Call this function to determine if the group is special. A
// If a group is special, it will appear in a different color than
// the other groups. Groups marked as special will be displayed
// differently than normal groups drawing the users attention to
// that particular group. This is an excellent way to show the
// user the "default" or important items
// Returns:
// TRUE is the groups is special, FALSE otherwise.
//-----------------------------------------------------------------------
BOOL IsSpecialGroup() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to set expandable state of group.
// Parameters:
// bExpandable - TRUE if group is expandable.
//-----------------------------------------------------------------------
void SetExpandable(BOOL bExpandable);
//-----------------------------------------------------------------------
// Summary:
// Call this method to determine if group is expandable.
// Returns:
// TRUE is the groups is expandable, FALSE if it can't be expanded.
//-----------------------------------------------------------------------
BOOL IsExpandable() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to show or hide group's caption.
// Parameters:
// bShow - TRUE to show caption; otherwise FALSE.
//-----------------------------------------------------------------------
void ShowCaption(BOOL bShow);
//-----------------------------------------------------------------------
// Summary:
// Retrieves if caption is visible.
// Returns:
// TRUE if caption is visible, FALSE if caption is hidden.
// See Also: ShowCaption
//-----------------------------------------------------------------------
BOOL IsCaptionVisible() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine if the group is currently expanded.
// Returns:
// TRUE if the group is expanded, FALSE if the group is collapsed.
// See Also:
// SetExpanded, CXTPTaskPanel::AnimateGroups, CXTPTaskPanel::SetAnimation,
// CXTPTaskPanel::GetAnimation, IsDirty, IsExpanding
//-----------------------------------------------------------------------
BOOL IsExpanded() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine if a group is currently expanding.
// Returns:
// TRUE is group is currently in the process of expanding, FALSE otherwise.
// See Also:
// SetExpanded, CXTPTaskPanel::AnimateGroups, CXTPTaskPanel::SetAnimation,
// CXTPTaskPanel::GetAnimation, IsDirty, IsExpanded
//-----------------------------------------------------------------------
BOOL IsExpanding() const;
//-----------------------------------------------------------------------
// Summary:
// Call this function to get the height of expanded group.
// Returns:
// Client height of expanded group.
//-----------------------------------------------------------------------
int GetExpandedClientHeight() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to expand or collapse the group.
// Parameters:
// bExpanded - TRUE to expand group; otherwise FALSE.
// See Also:
// CXTPTaskPanel::AnimateGroups, CXTPTaskPanel::SetAnimation,
// CXTPTaskPanel::GetAnimation, IsDirty, IsExpanding, IsExpanded
//-----------------------------------------------------------------------
void SetExpanded(BOOL bExpanded);
//-----------------------------------------------------------------------
// Summary:
// This member is called to determine if the current group position
// is "dirty" i.e. Moving during animation.
// Returns:
// TRUE if current position of group is dirty.
// Remarks:
// During animation, the group moves from it's old\current position to the new\target
// position. IsDirty indicates that the animation has not finished yet
// and its current position is <> to the target position. The old\current position
// is stored in m_rcGroupCurrent, and the new\target position is stored in
// m_rcGroupTarget.
//
// Animation occurs when the task panel first becomes visible and when
// the expand\collapse button is clicked in the group caption.
// See Also:
// CXTPTaskPanel::AnimateGroups, CXTPTaskPanel::SetAnimation,
// CXTPTaskPanel::GetAnimation, OnAnimate, m_rcGroupTarget, m_rcGroupCurrent
//-----------------------------------------------------------------------
BOOL IsDirty() const;
//-----------------------------------------------------------------------
// Summary:
// Retrieves outer margins of group
// Returns:
// Outer margins
//-----------------------------------------------------------------------
CRect& GetOuterMargins();
//-----------------------------------------------------------------------
// Summary:
// Retrieves inner margins of group
// Returns:
// Inner margins
//-----------------------------------------------------------------------
CRect& GetInnerMargins();
//-----------------------------------------------------------------------
// Summary:
// Retrieves minimum client height for individual group
// Returns:
// Minimum client height
//-----------------------------------------------------------------------
int GetMinimumClientHeight() const;
//-----------------------------------------------------------------------
// Summary:
// Call this method to set minimum client height for individual group
// Parameters:
// nMinClientHeight - Minimum client height
//-----------------------------------------------------------------------
void SetMinimumClientHeight(int nMinClientHeight);
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine if the group can accept focus.
// Returns:
// TRUE if the group can receive focus, FALSE if the group
// cannot receive focus.
//-----------------------------------------------------------------------
BOOL IsAcceptFocus() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to draw a bitmap in the lower right corner of a
// task panel group.
// Parameters:
// nID - Bitmap resource identifier.
// clrTransparent - Color in bitmap to make transparent when bAlpha is
// FALSE.
// nBackgroundAlignemnt - Alignment of bitmap to draw
// Remarks:
// The bitmap will always be in the lower right corner of the group,
// and will not move.
// The bitmap is drawn on the group in the OnFillClient method.
// See Also:
// OnFillClient
//-----------------------------------------------------------------------
void SetClientBitmap(UINT nID, COLORREF clrTransparent, int nBackgroundAlignemnt = DT_RIGHT | DT_BOTTOM);
//-----------------------------------------------------------------------
// Summary:
// This method is called when the task panel group client area is
// drawn.
// Parameters:
// pDC - Pointer to a valid device context.
// rc - CRect object specifying size of area.
// Remarks:
// This method is called from CXTPTaskPanelPaintManager::DrawGroupClientFace
// when the group client face needs filled.
//
// This method checks to see if a bitmap should be drawn in the lower
// right corner of the task panel group. Then it will drawn the bitmap
// if a bitmap was added. A bitmap can be added with the SetClientBitmap
// method.
// See Also:
// SetClientBitmap
//-----------------------------------------------------------------------
virtual void OnFillClient(CDC* pDC, CRect rc);
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine the item layout currently used for this group.
// Returns:
// The currently set XTPTaskPanelItemLayout for this group.
//-----------------------------------------------------------------------
XTPTaskPanelItemLayout GetItemLayout() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to specify the item layout of the XTPTaskPanelItems in
// this group. Layouts include text only, image only, image and text, and
// image with text below the image. This will apply to this group only.
// Parameters:
// itemLayout - The desired XTPTaskPanelItemLayout for this group.
//-----------------------------------------------------------------------
void SetItemLayout(XTPTaskPanelItemLayout itemLayout);
//-----------------------------------------------------------------------
// Summary:
// Call this member to select a task panel group item. Multiple items can have
// focus if CXTPTaskPanel::m_bSelectItemOnFocus is FALSE.
// Parameters:
// pItem - Pointer to a task panel group item.
// Remarks:
// Selected items will appear "pressed" or highlighted depending on
// the selected theme. Selected items will have
// XTPTaskPanelGroupItem::m_bSelected as TRUE.
// See Also: XTPTaskPanelGroupItem::IsItemSelected, XTPTaskPanelGroupItem::SetItemSelected
//-----------------------------------------------------------------------
void SetSelectedItem(CXTPTaskPanelGroupItem* pItem);
//-----------------------------------------------------------------------
// Summary:
// This member is called to check to see if the item currently being
// dragged over the group belongs to the group.
// Returns:
// TRUE if the item belongs to the group, FALSE otherwise.
// Remarks:
// This checks to see if CSTPTaskPanel::m_pItemDragOver belongs to the group.
// This is used in the PaintManager to determine if an inverted rectangle
// must be drawn for the item. An inverted rectangle is only drawn when
// the XTPTaskPanelPaintTheme is set to xtpTaskPanelThemeToolbox.
// See Also:
// XTPTaskPanelPaintTheme, CXTPTaskPanelToolboxTheme::DrawGroupCaption
//-----------------------------------------------------------------------
BOOL IsChildItemDragOver() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine the number of items that are in this group.
// Returns:
// Number of items in this group.
//-----------------------------------------------------------------------
int GetItemCount() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to determine if a group scroll button is enabled.
// Parameters:
// bScrollButtonUp - If TRUE, check to see if the "scroll up" button
// is enabled, If FALSE, check to see if the
// "scroll down" button is enabled.
// Returns:
// TRUE is the group scroll button is enabled, FALSE if the buttons
// is disabled.
// Remarks:
// CXTPTaskPanel::UpdateScrollButtons uses this method to update the
// state of the scroll buttons.
//-----------------------------------------------------------------------
BOOL IsScrollButtonEnabled(BOOL bScrollButtonUp) const;
//-----------------------------------------------------------------------
// Summary:
// This member is called to get the scroll offset of the first visible
// item in the group in pixels.
// Returns:
// Scroll offset of first visible item in group in pixels.
// Remarks:
// GetScrollOffsetPos returns the height in pixels that has been
// scrolled. GetOffsetItem gets the index of the first visible item.
// See Also:
// Scroll, GetOffsetItem, GetItemCount, GetItemsInRow
//-----------------------------------------------------------------------
int GetScrollOffsetPos() const;
//-----------------------------------------------------------------------
// Summary:
// This method is called to set index of the first visible
// item in the group
// Parameters:
// nScrollOffset - First visible item in the group to be set
// bUpdateScrollButtons - TRUE to refresh scroll buttons state.
//-----------------------------------------------------------------------
void SetOffsetItem(int nScrollOffset, BOOL bUpdateScrollButtons = TRUE);
//-----------------------------------------------------------------------
// Summary:
// This method is called to determine if item is visible in the group
// Parameters:
// pItem - Item to test
// bAllowPart - TRUE to allow partially visible item.
// Returns: TRUE if item is visible; FALSE otherwise.
//-----------------------------------------------------------------------
BOOL IsItemVisible(CXTPTaskPanelGroupItem* pItem, BOOL bAllowPart) const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to get the index of the first visible item in group.
// Returns:
// Index of first visible item in group.
// Remarks:
// This will return the index of the first visible item in the group,
// this is helpful when the items in the group are scrolled.
// See Also:
// GetScrollOffsetPos, Scroll, GetItemCount, GetItemsInRow
//-----------------------------------------------------------------------
int GetOffsetItem() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to scroll to an item in the task panel group. When
// the group has scroll buttons.
// Parameters:
// nDelta - Offset of item to scroll to. GetItemCount and
// GetOffsetItem can be used to determine which
// item you need to scroll to.
// Remarks:
// The scroll offset starts at zero. The offset will remain at
// zero until the group's view is too small to display all
// of items. If the group is scrolled, the offset will increment
// by 1 for each item that is scrolled from the top. For example,
// If the top top items in the group are not visible, then the
// scroll offset is 4 (zero based index).
//
// GetItemCount and GetOffsetItem can be used to determine which
// item to scroll to. Setting nDelta to 0 will scroll to the top
// of the group.
//
// Note: If there are more than 1 item in a row like when the XTPTaskPanelItemLayout
// is set to xtpTaskItemLayoutImages, then the offset will
// increment by GetItemsInRow.
// See Also:
// GetScrollOffsetPos, GetOffsetItem, GetItemCount, GetItemsInRow
//-----------------------------------------------------------------------
void Scroll(int nDelta);
//-----------------------------------------------------------------------
// Summary:
// Call this member to make sure that an item is visible in the task panel.
// This will scroll the task panel and group that the item is in
// until the item is visible.
// Parameters:
// pItem - Item that should be visible.
// bUpdateScrollButtons - TRUE to update the scroll buttons, if needed,
// to reflect the position of the group.
//-----------------------------------------------------------------------
void EnsureVisible(CXTPTaskPanelGroupItem* pItem, BOOL bUpdateScrollButtons = TRUE);
//-----------------------------------------------------------------------
// Summary:
// Call this member to get the number of group items per row in the
// task panel group.
// Returns:
// The number of group items per row in the group.
// See Also:
// If the task panel behavior is set to xtpTaskPanelBehaviourExplorer or
// xtpTaskPanelBehaviourList, then the number of items per row is
// always 1. If the behavior is set to xtpTaskPanelBehaviourToolbox, then
// there can be multiple items per row.
//
// If the behavior is set to to xtpTaskPanelBehaviourExplorer or
// xtpTaskPanelBehaviourList, then the layout must be set to
// xtpTaskItemLayoutImages for multiple items on a row.
// See Also:
// XTPTaskPanelBehaviour, XTPTaskPanelItemLayout, Scroll
//-----------------------------------------------------------------------
int GetItemsInRow() const;
//-----------------------------------------------------------------------
// Summary:
// Reads or writes this object from or to an archive.
// Parameters:
// pPX - A CXTPPropExchange object to serialize to or from.
//----------------------------------------------------------------------
virtual void DoPropExchange(CXTPPropExchange* pPX);
//-----------------------------------------------------------------------
// Summary:
// Call this member to retrieve the rectangle of the "tooltip zone"
// while the mouse is positioned over the group caption.
// Returns:
// The rectangle of the "tooltip zone" while the mouse is positioned
// over the group caption.
// Remarks:
// The "tooltip zone" is the area that a tooltip will be displayed
// while the mouse is positioned over the group caption.
// See Also:
// CXTPTaskPanelGroupItem::GetHitTestRect
//-----------------------------------------------------------------------
virtual CRect GetHitTestRect() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to retrieve the rectangle of the "drawing zone"
// See Also:
// CXTPTaskPanelGroupItem::GetHitTestRect
//-----------------------------------------------------------------------
virtual CRect GetInvalidateRect() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to get the height of the group caption.
// Returns:
// Height of group caption.
//-----------------------------------------------------------------------
int GetCaptionHeight() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member too get the size used to draw group item icons.
// Returns:
// Currently set group item icon size.
// See Also:
// SetItemIconSize
//-----------------------------------------------------------------------
CSize GetItemIconSize() const;
//-----------------------------------------------------------------------
// Summary:
// Call this member to set the icon size of the group items.
// Parameters:
// szItemIcon - Item icon size.
// See Also:
// GetItemIconSize
//-----------------------------------------------------------------------
void SetIconSize(CSize szItemIcon);
//-----------------------------------------------------------------------
// Summary:
// This method finds next visible item in specified direction.
// Parameters:
// nIndex - Index of the item to begin the searching with
// nDirection - Direction to find (1 to forward, -1 to backward)
// Returns:
// Next visible item; or NULL if not found.
//-----------------------------------------------------------------------
CXTPTaskPanelGroupItem* GetNextVisibleItem(int nIndex, int nDirection = +1) const;
protected:
//-----------------------------------------------------------------------
// Summary:
// This method is called to determine the area that can be used to draw
// the Active group if the behavior is not xtpTaskPanelBehaviourExplorer.
// Returns:
// Height in pixels after group caption or available area.
// See Also:
// OnCalcClientHeight
//-----------------------------------------------------------------------
int CalcInsideHeight();
//-----------------------------------------------------------------------
// Summary:
// This method is called to calculate the group client area needed to
// display all items.
// Parameters:
// pDC - Pointer to a valid device context.
// rc - Bounding rectangle of the task panel group.
// See Also:
// CalcInsideHeight
//-----------------------------------------------------------------------
virtual void OnCalcClientHeight(CDC* pDC, CRect rc);
//-----------------------------------------------------------------------
// Summary:
// This method is called when group was removed from parent groups collection
//-----------------------------------------------------------------------
void OnRemoved();
protected:
//{{AFX_CODEJOCK_PRIVATE
// System accessibility Support
virtual HRESULT GetAccessibleState(VARIANT varChild, VARIANT* pvarState);
virtual HRESULT GetAccessibleDefaultAction(VARIANT varChild, BSTR* pszDefaultAction);
virtual HRESULT AccessibleDoDefaultAction(VARIANT varChild);
//}}AFX_CODEJOCK_PRIVATE
private:
void RepositionAutoHeightControls(int nHeightOffset);
void RepositionScrollOffset();
protected:
CRect m_rcGroupTarget; // Target rectangle of group during animation.
CRect m_rcGroupCurrent; // Current rectangle of group during animation.
CRect m_rcMarginsOuter; // Outer margins.
CRect m_rcMarginsInner; // Inner margins.
int m_nCaptionHeight; // Height of caption.
BOOL m_bSpecial; // TRUE if group is special.
BOOL m_bExpandable; // TRUE if group is expandable.
BOOL m_bExpanded; // TRUE if group is expanded.
BOOL m_bExpanding; // TRUE if group is expanding now.
int m_nExpandedClientHeight; // Expanded client height.
int m_nMinClientHeight; // Minimum client height.
BOOL m_bCaptionVisible; // TRUE if caption is visible.
int m_nScrollOffset; // Scroll offset of group. Only applies if the task panel behavior is set to xtpTaskPanelBehaviourList or xtpTaskPanelBehaviourToolbox.
int m_nItemsInRow; // Number of group items in a row when using the xtpTaskPanelBehaviourToolbox XTPTaskPanelBehaviour. For all other behaviors it will only be 1 unless the layout is set to to xtpTaskPanelBehaviourExplorer or xtpTaskPanelBehaviourList.
CSize m_szItemIcon; // Size of group item icons.
CXTPTaskPanelGroupItems* m_pItems; // Collection of items.
XTPTaskPanelItemLayout m_itemLayout;// Currently set layout for the group.
int m_nBackgroundImage; // Index of image in ImageManager that will be background for Group
int m_nBackgroundAlignemnt; // Alignment of Background image
private:
friend class CXTPTaskPanel;
};
AFX_INLINE CXTPTaskPanelItems* CXTPTaskPanelGroup::GetItems() const {
ASSERT(m_pItems);
return (CXTPTaskPanelItems*)m_pItems;
}
AFX_INLINE int CXTPTaskPanelGroup::GetExpandedClientHeight() const {
return m_nExpandedClientHeight;
}
AFX_INLINE CRect& CXTPTaskPanelGroup::GetOuterMargins() {
return m_rcMarginsOuter;
}
AFX_INLINE CRect& CXTPTaskPanelGroup::GetInnerMargins() {
return m_rcMarginsInner;
}
AFX_INLINE int CXTPTaskPanelGroup::GetItemsInRow() const {
return m_nItemsInRow;
}
AFX_INLINE int CXTPTaskPanelGroup::GetCaptionHeight() const {
return m_nCaptionHeight;
}
#endif // !defined(__XTPTASKPANELGROUP_H__)