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.
2537 lines
115 KiB
C
2537 lines
115 KiB
C
2 years ago
|
// XTPPaintManager.h : interface for the CXTPPaintManager class.
|
||
|
//
|
||
|
// This file is a part of the XTREME COMMANDBARS 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(__XTPPAINTMANAGER_H__)
|
||
|
#define __XTPPAINTMANAGER_H__
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER >= 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER >= 1000
|
||
|
|
||
|
class CXTPWinThemeWrapper;
|
||
|
class CXTPControlButton;
|
||
|
class CXTPControlPopup;
|
||
|
class CXTPControl;
|
||
|
class CXTPToolBar;
|
||
|
class CXTPCommandBar;
|
||
|
class CXTPCommandBars;
|
||
|
class CXTPPopupBar;
|
||
|
class CXTPControlComboBox;
|
||
|
class CXTPTabControl;
|
||
|
class CXTPDockBar;
|
||
|
class CXTPControlEdit;
|
||
|
class CXTPImageManagerIcon;
|
||
|
class CXTPStatusBar;
|
||
|
class CXTPStatusBarPane;
|
||
|
class CXTPStatusBarSwitchPane;
|
||
|
class CXTPDialogBar;
|
||
|
class CXTPMessageBar;
|
||
|
class CXTPMessageBarButton;
|
||
|
class CXTPCommandBarKeyboardTip;
|
||
|
class CXTPRibbonPaintManager;
|
||
|
class CXTPControlGalleryPaintManager;
|
||
|
class CXTPSliderPaintManager;
|
||
|
class CXTPShadowManager;
|
||
|
class CXTPProgressPaintManager;
|
||
|
class CXTPFramePaintManager;
|
||
|
class CXTPCommandBarsFrameHook;
|
||
|
class CXTPResourceImages;
|
||
|
class CXTPResourceImage;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Special control with extended drawing.
|
||
|
// See Also: CXTPPaintManager::DrawSpecialControl
|
||
|
//
|
||
|
// <KEYWORDS xtpButtonExpandToolbar, xtpButtonExpandMenu, xtpButtonHideFloating, xtpButtonExpandFloating, xtpButtonCustomize>
|
||
|
//-----------------------------------------------------------------------
|
||
|
enum XTPSpecialControl
|
||
|
{
|
||
|
xtpButtonExpandToolbar, // Control is option button of docking toolbar.
|
||
|
xtpButtonExpandMenu, // Control is expand button of popup bar.
|
||
|
xtpButtonHideFloating, // Control is hide button of floating toolbar.
|
||
|
xtpButtonExpandFloating // Control is option button of floating toolbar.
|
||
|
};
|
||
|
|
||
|
|
||
|
//------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This structure collect icons options for command bars.
|
||
|
// Example:
|
||
|
// <code>XTPPaintManager()->GetIconsInfo()->bIconsWithShadow = FALSE;</code>
|
||
|
// See Also: CXTPPaintManager::GetIconsInfo
|
||
|
//------------------------------------------------------------------------
|
||
|
struct XTP_COMMANDBARS_ICONSINFO
|
||
|
{
|
||
|
BOOL bUseFadedIcons; // If TRUE, Icons will appear faded.
|
||
|
BOOL bUseDisabledIcons; // If TRUE, disabled icons will be used when the control is disabled.
|
||
|
BOOL bIconsWithShadow; // If TRUE, when the mouse pointer is moved over a command bar control, the icons will appear to "jump" away from the screen casting a shadow.
|
||
|
BOOL bOfficeStyleDisabledIcons; // If TRUE, Office 2003 style disabled icons will be drawn when using disabled icons.
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// PaintManagers used CFont wrapper.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPPaintManagerFont : public CFont
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPPaintManagerFont object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPPaintManagerFont()
|
||
|
{
|
||
|
m_bStandardFont = TRUE;
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Sets application defined font
|
||
|
// Parameters:
|
||
|
// lpLogFont - Application defined font
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL SetCustomFont(const LOGFONT* lpLogFont)
|
||
|
{
|
||
|
m_bStandardFont = (lpLogFont == NULL);
|
||
|
if (lpLogFont)
|
||
|
{
|
||
|
DeleteObject();
|
||
|
return CreateFontIndirect(lpLogFont);
|
||
|
}
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to set custom font
|
||
|
// Parameters:
|
||
|
// bCustomFont - TRUE if custom font used
|
||
|
// See Also: SetStandardFont
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetCustomFont(BOOL bCustomFont)
|
||
|
{
|
||
|
m_bStandardFont = !bCustomFont;
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Sets paint manager's font
|
||
|
// Parameters:
|
||
|
// lpLogFont - PaintManager's defined font
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL SetStandardFont(const LOGFONT* lpLogFont)
|
||
|
{
|
||
|
if (lpLogFont && (m_bStandardFont || !GetSafeHandle()))
|
||
|
{
|
||
|
DeleteObject();
|
||
|
return CreateFontIndirect(lpLogFont);
|
||
|
}
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
protected:
|
||
|
BOOL m_bStandardFont; // TRUE to use standard font;
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// Paint manager of the command bars.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPPaintManager : public CXTPCmdTarget
|
||
|
{
|
||
|
DECLARE_DYNAMIC(CXTPPaintManager)
|
||
|
private:
|
||
|
friend class CXTPPaintManager* XTPPaintManager();
|
||
|
class CPaintManagerDestructor;
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CSize DrawControl(CDC* pDC, CXTPControl* pButton, BOOL bDraw = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control placed on the PopupBar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlPopupParent(CDC* pDC, CXTPControl* pButton, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control placed on the ToolBar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlToolBarParent(CDC* pDC, CXTPControl* pButton, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the frame for the SplitButton
|
||
|
// control
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// rc - Bounding rectangle to draw
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawSplitButtonFrame(CDC* pDC, CXTPControl* pButton, CRect rc) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pCombo - ComboBox to draw.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlComboBox(CDC* pDC, CXTPControlComboBox* pCombo, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method returns the edit control back color to draw.
|
||
|
// Parameters:
|
||
|
// pControl - Points to a CXTPControl object to get the back color from.
|
||
|
// Returns: Edit control back color.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual COLORREF GetControlEditBackColor(CXTPControl* pControl);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// pEdit - Edit control to draw.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlEdit(CDC* pDC, CXTPControlEdit* pEdit, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control placed on the ListBox.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// rc - Bounding rectangle to draw.
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// pCommandBars - CommandBars object which metrics need to use.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawListBoxControl(CDC* pDC, CXTPControl* pButton, CRect rc, BOOL bSelected, BOOL bDraw, CXTPCommandBars* pCommandBars = 0) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the command bar's face.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillCommandBarEntry(CDC* pDC, CXTPCommandBar* pBar) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the control's face
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlEntry(CDC* pDC, CXTPControl* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method returns control text color to draw
|
||
|
// Parameters:
|
||
|
// pButton - Points to a CXTPControl object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual COLORREF GetControlTextColor(CXTPControl* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method retrieves buttons text color
|
||
|
// Parameters:
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// barType - Parent's bar type
|
||
|
// barPosition - Parent's bar position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual COLORREF GetRectangleTextColor(BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the control's face
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Rectangle to draw.
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// barType - Parent's bar type
|
||
|
// barPosition - Parent's bar position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawRectangle(CDC* pDC, CRect rc, BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the command bar's gripper.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the gripper.
|
||
|
// Returns:
|
||
|
// Size of the gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawCommandBarGripper(CDC* pDC, CXTPCommandBar* pBar, BOOL bDraw = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw a command bar's separator.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the separator.
|
||
|
// Returns:
|
||
|
// This method is called to draw a command bar's separator.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawCommandBarSeparator(CDC* pDC, CXTPCommandBar* pBar, CXTPControl* pControl, BOOL bDraw = TRUE) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determine offset of popuped bar.
|
||
|
// Parameters:
|
||
|
// rc - Control's bounding rectangle.
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// bVertical - TRUE if control docked vertically.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void AdjustExcludeRect(CRect& rc, CXTPControl* pControl, BOOL bVertical) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw a single pane text of the status bar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context.
|
||
|
// pPane - The status bar pane need to draw.
|
||
|
// rcItem - Item rectangle.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawStatusBarPaneEntry(CDC* pDC, CRect rcItem, CXTPStatusBarPane* pPane);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// rcItem - Item rectangle.
|
||
|
// pPane - The status bar pane need to draw.
|
||
|
// Summary: This method is called to draw a status bar button.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawStatusBarButtonFace(CDC* pDC, CRect rcItem, CXTPStatusBarPane* pPane);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// rcItem - Item rectangle.
|
||
|
// pPane - The status bar pane need to draw.
|
||
|
// Summary: This method is called to draw a status bar switch pane.
|
||
|
// Returns: Returns width of switch pane
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int DrawStatusBarSwitchPane(CDC* pDC, CRect rcItem, CXTPStatusBarSwitchPane* pPane);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw frame of single cell of status bar.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// rc - CRect object specifying size of area.
|
||
|
// pPane - The status bar pane need to draw.
|
||
|
// bGripperPane - TRUE if pane is last cell of status bar
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawStatusBarPaneBorder(CDC* pDC, CRect rc, CXTPStatusBarPane* pPane, BOOL bGripperPane);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// rc - CRect object specifying size of area.
|
||
|
// pPane - The status bar pane need to draw.
|
||
|
// Summary: This method is called to draw a status bar switch pane separator.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawStatusBarPaneSeparator(CDC* pDC, CRect rc, CXTPStatusBarPane* pPane);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the status bar's gripper.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rcClient - Client rectangle of the status bar.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawStatusBarGripper(CDC* pDC, CRect rcClient);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill a dockbar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPDockBar object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillDockBar(CDC* pDC, CXTPDockBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// pBar - Points to a CXTPMessageBar object.
|
||
|
// Summary: Draws the message bar.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillMessageBar(CDC* pDC, CXTPMessageBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// pButton - Button to draw.
|
||
|
// Summary: Call this member to draw a button in the message bar.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawMessageBarButton(CDC* pDC, CXTPMessageBarButton* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill a status bar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPStatusBar object
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillStatusBar(CDC* pDC, CXTPStatusBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to refresh the visual metrics of the manager.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void RefreshMetrics();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Determines the kind of shadow to use.
|
||
|
// Returns:
|
||
|
// TRUE to use alpha and solid shadow; otherwise returns FALSE
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetShadowOptions() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the specified controls.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// controlType - Special control enumerator.
|
||
|
// pButton - Points to a CXTPControl object to draw.
|
||
|
// pBar - Parent CXTPCommandBar object.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the
|
||
|
// control.
|
||
|
// lpParam - Specified parameter.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawSpecialControl(CDC* pDC, XTPSpecialControl controlType, CXTPControl* pButton, CXTPCommandBar* pBar, BOOL bDraw, LPVOID lpParam);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to retrieve the command bar's borders.
|
||
|
// Parameters:
|
||
|
// pBar - Points to a CXTPCommandBar object that the borders need to get.
|
||
|
// Returns:
|
||
|
// Borders of the command bar.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CRect GetCommandBarBorders(CXTPCommandBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw a tear-off gripper of Popup Bar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rcGripper - Bounding rectangle of the gripper.
|
||
|
// bSelected - True if the gripper is selected.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the gripper.
|
||
|
// Returns:
|
||
|
// Size of the gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawTearOffGripper(CDC* pDC, CRect rcGripper, BOOL bSelected, BOOL bDraw) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary: This method is called to draw popup bar resize gripper.
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// rcGripper - Bounding rectangle of the gripper.
|
||
|
// nFlags - Position of resize gripper
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupResizeGripper(CDC* pDC, CRect rcGripper, int nFlags) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the image of the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pt - Position to draw.
|
||
|
// sz - Size of the image.
|
||
|
// pImage - Points to a CXTPImageManagerIcon object
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// bToolBarImage - TRUE if it is a toolbar image.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawImage(CDC* pDC, CPoint pt, CSize sz, CXTPImageManagerIcon* pImage, BOOL bSelected, BOOL bPressed, BOOL bEnabled = TRUE, BOOL bChecked = FALSE, BOOL bPopuped = FALSE, BOOL bToolBarImage = TRUE) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to draw gripper of dialog bar.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// pBar - Dialog Bar pointer
|
||
|
// bDraw - TRUE to draw gripper, FALSE to calculate size.
|
||
|
// Returns:
|
||
|
// Size of gripper to be drawn.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawDialogBarGripper(CDC* pDC, CXTPDialogBar* pBar, BOOL bDraw) = 0;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Determines split button command rectangle
|
||
|
// Parameters:
|
||
|
// pButton - Button to test
|
||
|
// Returns:
|
||
|
// Bounding rectangle of command part of split button
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CRect GetSplitButtonCommandRect(CXTPControl* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to set bounding region for popup bars
|
||
|
// Parameters:
|
||
|
// pCommandBar - Pointer to popup bar which region need to set
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void SetCommandBarRegion(CXTPCommandBar* pCommandBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw check box mark area
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Bounding rectangle
|
||
|
// bDraw - TRUE to draw; FALSE to find size
|
||
|
// bSelected - TRUE if control is selected
|
||
|
// bPressed - TRUE if control is pressed
|
||
|
// bChecked - TRUE if control is checked
|
||
|
// bEnabled - TRUE if control is enabled
|
||
|
// Returns: Size of check box mark
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlCheckBoxMark(CDC* pDC, CRect rc, BOOL bDraw, BOOL bSelected, BOOL bPressed, BOOL bChecked, BOOL bEnabled);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw radio button mark area
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Bounding rectangle
|
||
|
// bDraw - TRUE to draw; FALSE to find size
|
||
|
// bSelected - TRUE if control is selected
|
||
|
// bPressed - TRUE if control is pressed
|
||
|
// bChecked - TRUE if control is checked
|
||
|
// bEnabled - TRUE if control is enabled
|
||
|
// Returns: Size of radio button mark
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlRadioButtonMark(CDC* pDC, CRect rc, BOOL bDraw, BOOL bSelected, BOOL bPressed, BOOL bChecked, BOOL bEnabled);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw popup bar right gripper.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// xPos - Specifies the logical x coordinate of the upper-left corner of the rectangle.
|
||
|
// yPos - Specifies the logical y coordinate of the upper-left corner of the destination rectangle.
|
||
|
// cx - Specifies the width of the rectangle.
|
||
|
// cy - Specifies the height of the rectangle.
|
||
|
// bExpanded - TRUE if expanded.gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupBarGripper(CDC* pDC, int xPos, int yPos, int cx, int cy, BOOL bExpanded = FALSE);
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Creates new PaintManager pointer.
|
||
|
// Parameters:
|
||
|
// paintTheme - Theme to be created.
|
||
|
// Returns:
|
||
|
// Pointer to new CXTPPaintManager object.
|
||
|
// Example:
|
||
|
// <code>pCommandBars->SetPaintManager(CXTPPaintManager::CreateTheme(xtpThemeOfficeXP);</code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
static CXTPPaintManager* AFX_CDECL CreateTheme(XTPPaintTheme paintTheme);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to switch the visual theme of the Command Bars.
|
||
|
// Parameters:
|
||
|
// paintTheme - Theme to be set. Can be any of the values listed in
|
||
|
// the Remarks section.
|
||
|
// Remarks:
|
||
|
// paintTheme can be one of following:
|
||
|
// * <b>xtpThemeOfficeXP</b> Enables Office XP theme.
|
||
|
// * <b>xtpThemeOffice2000</b> Enables Office 2000 theme.
|
||
|
// * <b>xtpThemeOffice2003</b> Enables Office 2003 theme.
|
||
|
// * <b>xtpThemeNativeWinXP</b> Enables Windows XP themes support.
|
||
|
// * <b>xtpThemeWhidbey</b> Enables Visual Studio 2005 theme.
|
||
|
//-----------------------------------------------------------------------
|
||
|
static void AFX_CDECL SetTheme(XTPPaintTheme paintTheme);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to set a custom theme.
|
||
|
// Parameters:
|
||
|
// pTheme - theme to be set.
|
||
|
//-----------------------------------------------------------------------
|
||
|
static void AFX_CDECL SetCustomTheme(CXTPPaintManager* pTheme);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to get the current visual theme.
|
||
|
// Returns:
|
||
|
// The current theme.
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPPaintTheme GetCurrentTheme() { return m_themeCurrent;}
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to destroy a paint manager object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
static void AFX_CDECL Done();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves the base theme of the manager.
|
||
|
// Returns:
|
||
|
// Returns the base theme.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual XTPPaintTheme BaseTheme() = 0;
|
||
|
|
||
|
public:
|
||
|
|
||
|
// ---------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to retrieve the font of the command bar control.
|
||
|
// Parameters:
|
||
|
// pControl : Points to a CXTPCommandBar object.
|
||
|
// Returns:
|
||
|
// A pointer to a CFont object.
|
||
|
// ---------------------------------------------------------------------
|
||
|
virtual CFont* GetControlFont(CXTPControl* pControl);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pCommandBar - Points to a CXTPCommandBar object to determine
|
||
|
// the font used to draw text.
|
||
|
// Summary: Call this member to retrieve the font of the command bar.
|
||
|
// Returns: A pointer to a CFont object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CFont* GetCommandBarFont(CXTPCommandBar* pCommandBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to determine how to draw text
|
||
|
// Parameters:
|
||
|
// pControl - Points to a CXTPControl object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual XTPBarTextOrientation GetControlTextOrientation(CXTPControl* pControl);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws a triangle.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pt0 - Specifies the logical coordinates of the first point.
|
||
|
// pt1 - Specifies the logical coordinates of the second point.
|
||
|
// pt2 - Specifies the logical coordinates of the third point.
|
||
|
// clr - Color to fill.
|
||
|
//-----------------------------------------------------------------------
|
||
|
static void AFX_CDECL Triangle(CDC* pDC, CPoint pt0, CPoint pt1, CPoint pt2, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Refreshes the fonts to use.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void UpdateFonts();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Refreshes the standard colors to use.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void UpdateColors();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to set command bars font.
|
||
|
// Parameters:
|
||
|
// pLogFont - New LOGFONT to use for text.
|
||
|
// bUseStandardFont - When calling SetCommandBarsFontIndirect, always
|
||
|
// use FALSE, this will indicate that pLogFont
|
||
|
// should be used as the new font.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetCommandBarsFontIndirect(LOGFONT* pLogFont, BOOL bUseStandardFont = FALSE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the general font.
|
||
|
// Returns:
|
||
|
// A Pointer to a CFont object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CFont* GetRegularFont();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the general bold font.
|
||
|
// Returns:
|
||
|
// A Pointer to a CFont object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CFont* GetRegularBoldFont();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the icon font.
|
||
|
// Returns:
|
||
|
// A pointer to a CFont object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CFont* GetIconFont();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to retrieve caption of floating mini frame.
|
||
|
// Returns:
|
||
|
// A pointer to a CFont object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CFont* GetSmCaptionFont();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to use Tahoma font despite system metrics.
|
||
|
// Parameters:
|
||
|
// bUseOfficeFont - TRUE to use office font.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void UseOfficeFont(bool bUseOfficeFont);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method returns the common controls height.
|
||
|
// Returns:
|
||
|
// Controls height.
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetControlHeight() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws a rectangle.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Specifies the rectangle in logical units.
|
||
|
// nPen - Specifies the color used to paint the rectangle.
|
||
|
// nBrush - Specifies the color used to fill the rectangle.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Rectangle(CDC* pDC, LPCRECT rc, int nPen, int nBrush);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to draw a three-dimensional rectangle.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Specifies the rectangle in logical units.
|
||
|
// nTopLeft - Specifies the color of the top and left sides
|
||
|
// of the three-dimensional rectangle.
|
||
|
// nBottomRight - Specifies the color of the bottom and right sides
|
||
|
// of the three-dimensional rectangle.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Draw3dRect(CDC* pDC, LPCRECT rc, int nTopLeft, int nBottomRight);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to draw a check mark.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rcCheck - Specifies the rectangle in logical units.
|
||
|
// clr - Color to fill.
|
||
|
// bEnabled - TRUE to enable, FALSE to disable the button.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupBarCheckMark(CDC* pDC, CRect rcCheck, BOOL bEnabled, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// rcCheck - Specifies the rectangle in logical units.
|
||
|
// clr - Color to fill.
|
||
|
// Summary: Call this member function to draw a check mark.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DrawCheckMark(CDC* pDC, CRect rcCheck, COLORREF clr = 0) {
|
||
|
DrawPopupBarCheckMark(pDC, rcCheck, TRUE, clr);
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to draw a radio button.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rcCheck - Specifies the rectangle in logical units.
|
||
|
// clr - Color to fill.
|
||
|
// bEnabled - TRUE to enable, FALSE to disable the button.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupBarRadioMark(CDC* pDC, CRect rcCheck, BOOL bEnabled, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to draw a combo box expand symbol
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Specifies the rectangle in logical units.
|
||
|
// clr - Color to fill.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawComboExpandMark(CDC* pDC, CRect rc, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to draw Menu MDI buttons
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Button to draw
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlMDIButton(CDC* pDC, CXTPControlButton* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws a line.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// p0 - Specifies the logical coordinates of the start position.
|
||
|
// p1 - Specifies the logical coordinates of the endpoint for the line.
|
||
|
// x0 - Specifies the logical x coordinate of the start position.
|
||
|
// y0 - Specifies the logical y coordinate of the start position.
|
||
|
// x1 - Specifies the logical x coordinate of the endpoint for the line.
|
||
|
// y1 - Specifies the logical y coordinate of the endpoint for the line.
|
||
|
// nPen - Specifies the color used to paint the line.
|
||
|
// clrPen - Specifies the color used to paint the line.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Line(CDC* pDC, CPoint p0, CPoint p1);
|
||
|
void Line(CDC* pDC, int x0, int y0, int x1, int y1, int nPen); //<combine CXTPPaintManager::Line@CDC*@CPoint@CPoint>
|
||
|
void HorizontalLine(CDC* pDC, int x0, int y0, int x1, COLORREF clrPen); //<combine CXTPPaintManager::Line@CDC*@CPoint@CPoint>
|
||
|
void VerticalLine(CDC* pDC, int x0, int y0, int y1, COLORREF clrPen); //<combine CXTPPaintManager::Line@CDC*@CPoint@CPoint>
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This member function is called to draw a split button expand symbol
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// pt - Position of expand symbol
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bVert - TRUE if control is vertical
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawDropDownGlyph(CDC* pDC, CXTPControl* pControl, CPoint pt, BOOL bSelected, BOOL bPopuped, BOOL bEnabled, BOOL bVert);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Sets the pixel at the point.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// xPos - Specifies the logical x coordinate of the point to be set.
|
||
|
// yPos - Specifies the logical y coordinate of the point to be set.
|
||
|
// nPen - Specifies the color used to paint the point
|
||
|
//-----------------------------------------------------------------------
|
||
|
void Pixel(CDC* pDC, int xPos, int yPos, int nPen);
|
||
|
|
||
|
// -------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Gradient fills the rectangle.
|
||
|
// Parameters:
|
||
|
// pDC : Pointer to a valid device context
|
||
|
// lpRect : Specifies the rectangle in logical units.
|
||
|
// crFrom : Start color.
|
||
|
// crTo : Endpoint color.
|
||
|
// bHorz : TRUE to fill horizontally.
|
||
|
// lpRectClip : Pointer to a RECT structure that contains a clipping
|
||
|
// rectangle. This parameter is optional and may be set to
|
||
|
// NULL.
|
||
|
// -------------------------------------------------------------------------
|
||
|
void GradientFill(CDC* pDC, LPRECT lpRect, COLORREF crFrom, COLORREF crTo, BOOL bHorz, LPCRECT lpRectClip = NULL);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves specific icon's options.
|
||
|
// See Also: XTP_COMMANDBARS_ICONSINFO
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTP_COMMANDBARS_ICONSINFO* GetIconsInfo();
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
/// Animation Routines
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to animate the PopupBar.
|
||
|
// Parameters:
|
||
|
// pDestDC - Pointer to device context you must draw to.
|
||
|
// pSrcDC - Device context that contains the bitmap you must
|
||
|
// take.
|
||
|
// rc - Bounding rectangle.
|
||
|
// animationType - Type of animation to perform.
|
||
|
// See Also: SetAnimationDelay
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void Animate(CDC* pDestDC, CDC* pSrcDC, CRect rc, XTPAnimationType animationType);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to animate the expanding process.
|
||
|
// Parameters:
|
||
|
// pCommandBar - Command bar to animate.
|
||
|
// pDestDC - Pointer to device context you must draw to.
|
||
|
// pSrcDC - Device context that contains the bitmap you must
|
||
|
// take.
|
||
|
// bExpandDown - TRUE to animate expanding top-to-bottom; FALSE to animate bottom-to-top.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void AnimateExpanding(CXTPCommandBar* pCommandBar, CDC* pDestDC, CDC* pSrcDC, BOOL bExpandDown);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to set animation delay.
|
||
|
// Parameters:
|
||
|
// nAnimationSteps - Number of steps to take during animation.
|
||
|
// nAnimationTime - Amount of time to rest, in milliseconds, between
|
||
|
// each step.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetAnimationDelay(int nAnimationSteps, int nAnimationTime);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This function retrieves the current color of the specified XP
|
||
|
// display element. Display elements are the parts of a window
|
||
|
// and the display that appear on the system display screen.
|
||
|
// The function returns the red, green, blue (RGB) color value
|
||
|
// of the given element. To provide a consistent look to all
|
||
|
// Windows applications, the operating system provides and
|
||
|
// maintains global settings that define the colors of various
|
||
|
// aspects of the display. These settings as a group are sometimes
|
||
|
// referred to as a "color scheme." To view the current color
|
||
|
// settings, click Control Panel, double-click the Display icon,
|
||
|
// and then click the "Appearance" tab.
|
||
|
// Parameters:
|
||
|
// nIndex - Specifies the display element whose color is to be
|
||
|
// retrieved. This parameter can be one of the
|
||
|
// following values displayed in the table below:
|
||
|
// Remarks:
|
||
|
// <TABLE>
|
||
|
// <b>Constant</b> <b>Value</b> <b>Description</b>
|
||
|
// -------------------------------- ============ ------------------------------------------------------------
|
||
|
// COLOR_SCROLLBAR 0 Scroll bar color
|
||
|
// COLOR_BACKGROUND 1 Desktop color
|
||
|
// COLOR_ACTIVECAPTION 2 Color of the title bar for the active window, Specifies the left side color in the color gradient of an active window's title bar if the gradient effect is enabled.
|
||
|
// COLOR_INACTIVECAPTION 3 Color of the title bar for the inactive window, Specifies the left side color in the color gradient of an inactive window's title bar if the gradient effect is enabled.
|
||
|
// COLOR_MENU 4 Menu background color
|
||
|
// COLOR_WINDOW 5 Window background color
|
||
|
// COLOR_WINDOWFRAME 6 Window frame color
|
||
|
// COLOR_MENUTEXT 7 Color of text on menus
|
||
|
// COLOR_WINDOWTEXT 8 Color of text in windows
|
||
|
// COLOR_CAPTIONTEXT 9 Color of text in caption, size box, and scroll arrow
|
||
|
// COLOR_ACTIVEBORDER 10 Border color of active window
|
||
|
// COLOR_INACTIVEBORDER 11 Border color of inactive window
|
||
|
// COLOR_APPWORKSPACE 12 Background color of multiple-document interface (MDI) applications
|
||
|
// COLOR_HIGHLIGHT 13 Background color of items selected in a control
|
||
|
// COLOR_HIGHLIGHTTEXT 14 Text color of items selected in a control
|
||
|
// COLOR_BTNFACE 15 Face color for three-dimensional display elements and for dialog box backgrounds.
|
||
|
// COLOR_BTNSHADOW 16 Color of shading on the edge of command buttons
|
||
|
// COLOR_GRAYTEXT 17 Grayed (disabled) text
|
||
|
// COLOR_BTNTEXT 18 Text color on push buttons
|
||
|
// COLOR_INACTIVECAPTIONTEXT 19 Color of text in an inactive caption
|
||
|
// COLOR_BTNHIGHLIGHT 20 Highlight color for 3-D display elements
|
||
|
// COLOR_3DDKSHADOW 21 Darkest shadow color for 3-D display elements
|
||
|
// COLOR_3DLIGHT 22 Second lightest 3-D color after 3DHighlight, Light color for three-dimensional display elements (for edges facing the light source.)
|
||
|
// COLOR_INFOTEXT 23 Color of text in ToolTips
|
||
|
// COLOR_INFOBK 24 Background color of ToolTips
|
||
|
// COLOR_HOTLIGHT 26 Color for a hot-tracked item. Single clicking a hot-tracked item executes the item.
|
||
|
// COLOR_GRADIENTACTIVECAPTION 27 Right side color in the color gradient of an active window's title bar. COLOR_ACTIVECAPTION specifies the left side color.
|
||
|
// COLOR_GRADIENTINACTIVECAPTION 28 Right side color in the color gradient of an inactive window's title bar. COLOR_INACTIVECAPTION specifies the left side color.
|
||
|
// XPCOLOR_TOOLBAR_FACE 30 XP toolbar background color.
|
||
|
// XPCOLOR_HIGHLIGHT 31 XP menu item selected color.
|
||
|
// XPCOLOR_HIGHLIGHT_BORDER 32 XP menu item selected border color.
|
||
|
// XPCOLOR_HIGHLIGHT_PUSHED 33 XP menu item pushed color.
|
||
|
// XPCOLOR_HIGHLIGHT_CHECKED 36 XP menu item checked color.
|
||
|
// XPCOLOR_HIGHLIGHT_CHECKED_BORDER 37 An RGB value that represents the XP menu item checked border color.
|
||
|
// XPCOLOR_ICONSHADDOW 34 XP menu item icon shadow.
|
||
|
// XPCOLOR_GRAYTEXT 35 XP menu item disabled text color.
|
||
|
// XPCOLOR_TOOLBAR_GRIPPER 38 XP toolbar gripper color.
|
||
|
// XPCOLOR_SEPARATOR 39 XP toolbar separator color.
|
||
|
// XPCOLOR_DISABLED 40 XP menu icon disabled color.
|
||
|
// XPCOLOR_MENUBAR_FACE 41 XP menu item text background color.
|
||
|
// XPCOLOR_MENUBAR_EXPANDED 42 XP hidden menu commands background color.
|
||
|
// XPCOLOR_MENUBAR_BORDER 43 XP menu border color.
|
||
|
// XPCOLOR_MENUBAR_TEXT 44 XP menu item text color.
|
||
|
// XPCOLOR_HIGHLIGHT_TEXT 45 XP menu item selected text color.
|
||
|
// XPCOLOR_TOOLBAR_TEXT 46 XP toolbar text color.
|
||
|
// XPCOLOR_PUSHED_TEXT 47 XP toolbar pushed text color.
|
||
|
// XPCOLOR_TAB_INACTIVE_BACK 48 XP inactive tab background color.
|
||
|
// XPCOLOR_TAB_INACTIVE_TEXT 49 XP inactive tab text color.
|
||
|
// XPCOLOR_HIGHLIGHT_PUSHED_BORDER 50 An RGB value that represents the XP border color for pushed in 3D elements.
|
||
|
// XPCOLOR_CHECKED_TEXT 45 XP color for text displayed in a checked button.
|
||
|
// XPCOLOR_3DFACE 51 XP face color for three- dimensional display elements and for dialog box backgrounds.
|
||
|
// XPCOLOR_3DSHADOW 52 XP shadow color for three-dimensional display elements (for edges facing away from the light source).
|
||
|
// XPCOLOR_EDITCTRLBORDER 53 XP color for the border color of edit controls.
|
||
|
// XPCOLOR_FRAME 54 Office 2003 frame color.
|
||
|
// XPCOLOR_SPLITTER_FACE 55 XP splitter face color.
|
||
|
// XPCOLOR_LABEL 56 Color for label control (xtpControlLabel)
|
||
|
// XPCOLOR_STATICFRAME 57 WinXP Static frame color
|
||
|
// </TABLE>
|
||
|
// Returns:
|
||
|
// The red, green, blue (RGB) color value of the given element.
|
||
|
//-----------------------------------------------------------------------
|
||
|
COLORREF GetXtremeColor(UINT nIndex);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to set the colors for each element to the
|
||
|
// color in the specified color array.
|
||
|
// Parameters:
|
||
|
// cElements - Number of elements in array.
|
||
|
// lpaElements - Array of elements.
|
||
|
// lpaRgbValues - Array of RGB values.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetColors(int cElements, CONST INT* lpaElements, CONST COLORREF* lpaRgbValues);
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw control text
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to valid device context
|
||
|
// pControl - Pointer to control to draw
|
||
|
// rcText - Bounding rectangle of the text
|
||
|
// bDraw - TRUE to draw text; FALSE to calculate size
|
||
|
// bVert - TRUE if text is vertical
|
||
|
// bCentered - TRUE if text is centered
|
||
|
// bTriangled - TRUE if triangle drawn
|
||
|
// Returns: Size of the text
|
||
|
//-----------------------------------------------------------------------
|
||
|
CSize DrawControlText(CDC* pDC, CXTPControl* pControl, CRect rcText, BOOL bDraw, BOOL bVert, BOOL bCentered, BOOL bTriangled);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Determines if the font exists in the system.
|
||
|
// Parameters:
|
||
|
// lpszFaceName - Font needed to test.
|
||
|
// Returns:
|
||
|
// TRUE if font exists; otherwise returns FALSE
|
||
|
//-----------------------------------------------------------------------
|
||
|
static BOOL AFX_CDECL FontExists(LPCTSTR lpszFaceName);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This member function will search a string, strip off the mnemonic
|
||
|
// '&', and reformat the string.
|
||
|
// Parameters:
|
||
|
// strClear - Text needed to strip.
|
||
|
//-----------------------------------------------------------------------
|
||
|
static void AFX_CDECL StripMnemonics(CString& strClear);
|
||
|
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to prepare caption fro Right-To-Left draw
|
||
|
// Parameters:
|
||
|
// strCaption - Caption to modify
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void UpdateRTLCaption(CString& strCaption);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to determine the current Windows XP
|
||
|
// theme in use.
|
||
|
// Returns:
|
||
|
// A XTPCurrentSystemTheme enumeration that represents the
|
||
|
// current Windows theme in use, can be one of the following
|
||
|
// values:
|
||
|
// * <b>xtpSystemThemeUnknown</b> Indicates no known theme in use
|
||
|
// * <b>xtpSystemThemeBlue</b> Indicates blue theme in use
|
||
|
// * <b>xtpSystemThemeOlive</b> Indicates olive theme in use
|
||
|
// * <b>xtpSystemThemeSilver</b> Indicates silver theme in use
|
||
|
// See Also: SetLunaTheme, RefreshLunaColors
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPCurrentSystemTheme GetCurrentSystemTheme();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to force system theme.
|
||
|
// Parameters:
|
||
|
// systemTheme - theme to use. Can be any of the values listed in the Remarks section.
|
||
|
// Remarks:
|
||
|
// theme can be one of the following:
|
||
|
// * <b>xtpSystemThemeUnknown</b> Disables <i>luna</i> theme support.
|
||
|
// * <b>xtpSystemThemeBlue</b> Enables blue theme
|
||
|
// * <b>xtpSystemThemeOlive</b> Enables olive theme
|
||
|
// * <b>xtpSystemThemeSilver</b> Enables silver theme
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetLunaTheme(XTPCurrentSystemTheme systemTheme);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Calculates gripper of popup bar.
|
||
|
// Parameters:
|
||
|
// pBar - Popup bar.
|
||
|
// Returns:
|
||
|
// Width of gripper to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int GetPopupBarGripperWidth(CXTPCommandBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns paint manager used to draw galleries.
|
||
|
// Returns:
|
||
|
// Returns paint manager used to draw galleries.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CXTPControlGalleryPaintManager* GetGalleryPaintManager() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns paint manager used to draw slider panes.
|
||
|
// Returns:
|
||
|
// Returns paint manager used to draw slider panes.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CXTPSliderPaintManager* GetSliderPaintManager() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns paint manager used to draw progress bars.
|
||
|
// Returns:
|
||
|
// Returns paint manager used to draw progress bars.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CXTPProgressPaintManager* GetProgressPaintManager() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns paint manager used to draw frames.
|
||
|
// Returns:
|
||
|
// Returns paint manager used to draw frames.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CXTPFramePaintManager* GetFramePaintManager();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves ribbon paint manager.
|
||
|
// Returns:
|
||
|
// Pointer to CXTPRibbonPaintManager object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CXTPRibbonPaintManager* GetRibbonPaintManager();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns shadow manager used to draw shadows.
|
||
|
// Returns:
|
||
|
// Returns shadow manager used to draw shadows.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPShadowManager* GetShadowManager() const;
|
||
|
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
public:
|
||
|
// deprecated.
|
||
|
void ShowKeyboardCues(BOOL bShow);
|
||
|
|
||
|
CFont* GetIconBoldFont()
|
||
|
{
|
||
|
return &m_fontIconBold;
|
||
|
}
|
||
|
virtual void FillWorkspace(CDC* pDC, CRect rc, CRect rcExclude);
|
||
|
|
||
|
virtual void DrawKeyboardTip(CDC* pDC, CXTPCommandBarKeyboardTip* pWnd, BOOL bSetRegion);
|
||
|
|
||
|
CSize GetAutoIconSize(BOOL bLarge) const;
|
||
|
|
||
|
void FillCompositeRect(CDC* pDC, LPCRECT lpRect, COLORREF clr);
|
||
|
|
||
|
static void AFX_CDECL FillCompositeAlpha(CDC* pDC, CRect rc);
|
||
|
_XTP_DEPRECATE("This function or variable is no longer available. Please use 'DrawControlText' instead")
|
||
|
CSize DrawTextEx(CDC*, CString, CRect, BOOL, BOOL, BOOL, BOOL, BOOL = FALSE, BOOL = FALSE) {
|
||
|
return CSize(0, 0);
|
||
|
}
|
||
|
int GetSplitDropDownHeight() const;
|
||
|
void AlphaEllipse(CDC* pDC, CRect rc, COLORREF clrBorder, COLORREF clrFace);
|
||
|
|
||
|
static void AFX_CDECL DrawTextApi(CDC* pDC, const CString& str, LPRECT lpRect, UINT format, BOOL bComposited);
|
||
|
int GetEditHeight() const;
|
||
|
CSize DrawControlText2(CDC* pDC, CXTPControl* pControl, CRect rcText, BOOL bDraw, BOOL bVert, BOOL bTrangled);
|
||
|
|
||
|
void SetFontHeight(int nFontHeight);
|
||
|
|
||
|
protected:
|
||
|
virtual BOOL IsFlatToolBar(CXTPCommandBar* pCommandBar);
|
||
|
|
||
|
void AlphaBlendU(PBYTE pDest, PBYTE pSrcBack, int cx, int cy, PBYTE pSrc, BYTE byAlpha);
|
||
|
void _DrawCheckMark(CDC* pDC, CRect rcCheck, COLORREF clr = 0, BOOL bLayoutRTL = FALSE);
|
||
|
|
||
|
void DrawControlText3(CDC* pDC, CXTPControl* pControl, const CString& str, const CString& strClear, CRect rcText, BOOL bVert, BOOL bCentered);
|
||
|
void SplitString(const CString& str, CString& strFirstRow, CString& strSecondRow);
|
||
|
|
||
|
CSize DrawControlText(CDC* pDC, CXTPControl* pControl, CRect rcText, BOOL bDraw, BOOL bTriangled, CSize szButton, BOOL bDrawImage);
|
||
|
CSize GetControlSize(CXTPControl* pControl, CSize sz, BOOL bVert);
|
||
|
virtual CSize GetPopupBarImageSize(CXTPCommandBar* pBar);
|
||
|
virtual void DrawPopupBarText(CDC* pDC, const CString& strText, CRect& rcText, UINT nFlags, BOOL bDraw, BOOL bSelected, BOOL bEnabled);
|
||
|
|
||
|
CSize GetIconSize(CXTPControl* pButton);
|
||
|
|
||
|
CSize GetStretchIconSize(CXTPImageManagerIcon* pImage, CSize szIcon);
|
||
|
|
||
|
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
public:
|
||
|
COLORREF m_clrStatusTextColor; // Status bar test color
|
||
|
COLORREF m_clrStatusTextGrayColor; // Status bar gray text color.
|
||
|
COLORREF m_clrMessageBarText; // Message bar text color
|
||
|
CXTPPaintManagerColorGradient m_clrDisabledIcon; // Disabled icons color
|
||
|
CXTPPaintManagerColor m_clrFloatingGripper; // Gripper color of floating toolbar.
|
||
|
CXTPPaintManagerColor m_clrFloatingGripperText; // Gripper text color of floating toolbar.
|
||
|
|
||
|
BOOL m_bThickCheckMark; // TRUE to draw thick check mark
|
||
|
BOOL m_bShowShadow; // TRUE to show shadow
|
||
|
BOOL m_bThemedStatusBar; // TRUE to draw status bar using WinXP theme.
|
||
|
BOOL m_bThemedCheckBox; // TRUE to draw check box using WinXP theme.
|
||
|
BOOL m_bClearTypeTextQuality; // TRUE to enable ClearType text for the font.
|
||
|
|
||
|
BOOL m_bFlatToolBar; // TRUE to draw toolbars flat
|
||
|
BOOL m_bFlatMenuBar; // TRUE to draw menubar flat
|
||
|
int m_nPopupBarTextPadding; // Distance between gripper and control text.
|
||
|
BOOL m_bSelectImageInPopupBar; // TRUE to select image as in explorer theme.
|
||
|
BOOL m_bEnableAnimation; // TRUE to enable animation for all toolbars
|
||
|
|
||
|
BOOL m_bOffice2007Padding; // TRUE if Office2007 metrics used
|
||
|
BOOL m_bOffsetPopupLabelText; // TRUE if labels in popups drawn with offset
|
||
|
BOOL m_bWrapCaptionBelowText; // Wrap text for xtpButtonIconAndCaptionBelow buttons
|
||
|
|
||
|
CXTPPaintManagerFont m_fontSmCaption; // Small caption font.
|
||
|
CXTPPaintManagerFont m_fontIcon; // Icon font.
|
||
|
CXTPPaintManagerFont m_fontIconBold; // Icon bold font.
|
||
|
CXTPPaintManagerFont m_fontToolTip; // Tooltip font
|
||
|
|
||
|
int m_nSplitButtonDropDownWidth; // Split button drop down width in toolbars
|
||
|
int m_nSplitButtonPopupWidth; // Split button drop down width in popups
|
||
|
BOOL m_bAutoResizeIcons; // TRUE to automatically resize icons using current DPI
|
||
|
int m_nStatusBarMinHeight; // Minimum height for the status bar
|
||
|
CXTPControlGalleryPaintManager* m_pGalleryPaintManager; // Gallery paint manager
|
||
|
CXTPSliderPaintManager* m_pSliderPaintManager; // Slider pane paint manager
|
||
|
CXTPProgressPaintManager* m_pProgressPaintManager; // Progress bar paint manager
|
||
|
CXTPRibbonPaintManager* m_pRibbonPaintManager; // Ribbon Paint Manager
|
||
|
|
||
|
CXTPFramePaintManager* m_pFramePaintManager; // Frame paint manager
|
||
|
|
||
|
PVOID m_pfnSetLayeredWindowAttributes; // point to Transparency proc in USER32.dll module
|
||
|
|
||
|
CRect m_rcStatusBarBorder; // Bounding rectangle of the status bar border
|
||
|
|
||
|
BOOL m_bUseOfficeFont; // TRUE to use Tahoma font.
|
||
|
CString m_strOfficeFont; // Office font
|
||
|
int m_nTextHeight; // Text height of the regular font.
|
||
|
|
||
|
protected:
|
||
|
CFont m_fontRegular; // Regular font.
|
||
|
CFont m_fontRegularBold; // Regular bold font.
|
||
|
CFont m_fontVert; // Vertical font.
|
||
|
CFont m_fontVertBold; // Vertical font.
|
||
|
|
||
|
int m_nEditHeight; // Edit text height.
|
||
|
int m_nFontHeight; // Font Height.
|
||
|
BOOL m_bUseStandardFont; // TRUE to use system font.
|
||
|
BOOL m_bEmbossedDisabledText; // TRUE to draw disabled text embossed
|
||
|
|
||
|
CXTPWinThemeWrapper* m_themeStatusBar; // StatusBar theme helper.
|
||
|
CXTPWinThemeWrapper* m_themeButton; // Buttons theme helper.
|
||
|
|
||
|
XTPPaintTheme m_themeCurrent; // Current theme.
|
||
|
static CXTPPaintManager* s_pInstance; // Instance of the manager.
|
||
|
|
||
|
XTP_COMMANDBARS_ICONSINFO m_iconsInfo; // Specific icons options.
|
||
|
|
||
|
|
||
|
int m_nAnimationSteps; // Steps of the animation.
|
||
|
int m_nAnimationTime; // Time of the animation.
|
||
|
|
||
|
BOOL m_bShowKeyboardCues; // TRUE to show keyboard cues - deprecated.
|
||
|
|
||
|
CXTPPaintManagerColor m_arrColor[XPCOLOR_LAST + 1]; // Self colors array.
|
||
|
XTPCurrentSystemTheme m_systemTheme; // Current system theme.
|
||
|
|
||
|
CXTPShadowManager* m_pShadowManager; // Shadow manager
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPPaintManager object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPPaintManager();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Destroys a CXTPPaintManager object, handles cleanup and deallocation.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual ~CXTPPaintManager();
|
||
|
|
||
|
public:
|
||
|
//---------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// CLogFont is a self initializing LOGFONT derived class. It
|
||
|
// will allow you to create or copy a LOGFONT object, and defines the
|
||
|
// attributes of a font.
|
||
|
//---------------------------------------------------------------------------
|
||
|
struct _XTP_EXT_CLASS CLogFont : public LOGFONT
|
||
|
{
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs an CLogFont object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CLogFont();
|
||
|
};
|
||
|
|
||
|
//---------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// CNonClientMetrics is a self initializing NONCLIENTMETRICS derived
|
||
|
// class. It contains the scalable metrics associated with the
|
||
|
// non-client area of a non-minimized window. This class is used by
|
||
|
// the SPI_GETNONCLIENTMETRICS and SPI_SETNONCLIENTMETRICS actions of
|
||
|
// SystemParametersInfo.
|
||
|
//---------------------------------------------------------------------------
|
||
|
struct _XTP_EXT_CLASS CNonClientMetrics : public NONCLIENTMETRICS
|
||
|
{
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CNonClientMetrics object
|
||
|
//-----------------------------------------------------------------------
|
||
|
CNonClientMetrics();
|
||
|
};
|
||
|
|
||
|
|
||
|
friend class CCommandBarsCtrl;
|
||
|
friend class CXTPCommandBarsOptions;
|
||
|
friend class CXTPCommandBars;
|
||
|
friend class CXTPRibbonPaintManager;
|
||
|
};
|
||
|
|
||
|
|
||
|
//---------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to access CXTPPaintManager members.
|
||
|
// Since this class is designed as a single instance object you can
|
||
|
// only access version info through this method. You <b>cannot</b>
|
||
|
// directly instantiate an object of type CXTPPaintManager.
|
||
|
// Example:
|
||
|
// <code>XTPPaintManager()->GetIconsInfo()->bIconsWithShadow = FALSE;</code>
|
||
|
//---------------------------------------------------------------------------
|
||
|
CXTPPaintManager* XTPPaintManager();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary: Call this function to access CXTPPaintManager members. Since
|
||
|
// this class is designed as a single instance object you can
|
||
|
// only access version info through this method. You cannot
|
||
|
// directly instantiate an object of type CXTPPaintManager.
|
||
|
|
||
|
// Returns: A CXTPPaintManager object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
AFX_INLINE CXTPPaintManager* XTPPaintManager() {
|
||
|
if (CXTPPaintManager::s_pInstance == NULL)
|
||
|
{
|
||
|
CXTPPaintManager::SetTheme(xtpThemeOffice2000);
|
||
|
}
|
||
|
return CXTPPaintManager::s_pInstance;
|
||
|
}
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// The CXTPOfficeTheme class is used to enable an Office XP style theme for Command Bars
|
||
|
// See Also: CXTPPaintManager::SetTheme
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPOfficeTheme : public CXTPPaintManager
|
||
|
{
|
||
|
DECLARE_DYNAMIC(CXTPOfficeTheme)
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPOfficeTheme object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPOfficeTheme();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the command bar's face.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillCommandBarEntry(CDC* pDC, CXTPCommandBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method retrieves buttons text color
|
||
|
// Parameters:
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// barType - Parent's bar type
|
||
|
// barPosition - Parent's bar position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual COLORREF GetRectangleTextColor(BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the command bar's gripper.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the gripper.
|
||
|
// Returns:
|
||
|
// Size of the gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawCommandBarGripper(CDC* pDC, CXTPCommandBar* pBar, BOOL bDraw = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw a command bar's separator.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the separator.
|
||
|
// Returns:
|
||
|
// This method is called to draw a command bar's separator.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawCommandBarSeparator(CDC* pDC, CXTPCommandBar* pBar, CXTPControl* pControl, BOOL bDraw = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control placed on the ListBox.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// rc - Bounding rectangle to draw.
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// pCommandBars - CommandBars object which metrics need to use.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawListBoxControl(CDC* pDC, CXTPControl* pButton, CRect rc, BOOL bSelected, BOOL bDraw, CXTPCommandBars* pCommandBars = 0);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determine offset of popuped bar.
|
||
|
// Parameters:
|
||
|
// rc - Control's bounding rectangle.
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// bVertical - TRUE if control docked vertically.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void AdjustExcludeRect(CRect& rc, CXTPControl* pControl, BOOL bVertical);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw a tear-off gripper of a Popup Bar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rcGripper - Bounding rectangle of the gripper.
|
||
|
// bSelected - True if the gripper is selected.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the gripper.
|
||
|
// Returns:
|
||
|
// Size of the gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawTearOffGripper(CDC* pDC, CRect rcGripper, BOOL bSelected, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary: This method is called to draw a resize gripper of a Popup Bar.
|
||
|
// Input: pDC - Pointer to a valid device context
|
||
|
// rcGripper - Bounding rectangle of the gripper.
|
||
|
// nFlags - Position of resize gripper
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupResizeGripper(CDC* pDC, CRect rcGripper, int nFlags);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to draw gripper of dialog bar.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// pBar - Dialog Bar pointer
|
||
|
// bDraw - TRUE to draw gripper, FALSE to calculate size.
|
||
|
// Returns:
|
||
|
// Size of gripper to be drawn.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawDialogBarGripper(CDC* pDC, CXTPDialogBar* pBar, BOOL bDraw);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw popup bar right gripper.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// xPos - Specifies the logical x coordinate of the upper-left corner of the rectangle.
|
||
|
// yPos - Specifies the logical y coordinate of the upper-left corner of the destination rectangle.
|
||
|
// cx - Specifies the width of the rectangle.
|
||
|
// cy - Specifies the height of the rectangle.
|
||
|
// bExpanded - TRUE if expanded.gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupBarGripper(CDC* pDC, int xPos, int yPos, int cx, int cy, BOOL bExpanded = FALSE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control placed on the PopupBar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlPopupParent(CDC* pDC, CXTPControl* pButton, BOOL bDraw);
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the control's face
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Rectangle to draw.
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// barType - Parent's bar type
|
||
|
// barPosition - Parent's bar position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawRectangle(CDC* pDC, CRect rc, BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the image of the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pt - Position to draw.
|
||
|
// sz - Size of the image.
|
||
|
// pImage - Points to a CXTPImageManagerIcon object
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// bToolBarImage - TRUE if it is a toolbar image.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawImage(CDC* pDC, CPoint pt, CSize sz, CXTPImageManagerIcon* pImage, BOOL bSelected, BOOL bPressed, BOOL bEnabled = TRUE, BOOL bChecked = FALSE, BOOL bPopuped = FALSE, BOOL bToolBarImage = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// pComboBox - CXTPControlComboBox pointer need to draw.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlComboBox(CDC* pDC, CXTPControlComboBox* pComboBox, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// pEdit - Edit control to draw.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlEdit(CDC* pDC, CXTPControlEdit* pEdit, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws intersect rectangle of popup bar and its control.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// pPopupBar - Popup bar pointer.
|
||
|
// clr - COLORREF specifies RGB color value.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void FillIntersectRect(CDC* pDC, CXTPPopupBar* pPopupBar, COLORREF clr);
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw frame of single cell of status bar.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// rc - CRect object specifying size of area.
|
||
|
// pPane - The status bar pane need to draw
|
||
|
// bGripperPane - TRUE if pane is last cell of status bar
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawStatusBarPaneBorder(CDC* pDC, CRect rc, CXTPStatusBarPane* pPane, BOOL bGripperPane);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// rc - CRect object specifying size of area.
|
||
|
// pPane - The status bar pane need to draw.
|
||
|
// Summary: This method is called to draw a status bar switch pane separator.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawStatusBarPaneSeparator(CDC* pDC, CRect rc, CXTPStatusBarPane* pPane);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves the base theme of the manager.
|
||
|
// Returns:
|
||
|
// Returns the base theme.
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPPaintTheme BaseTheme() { return xtpThemeOfficeXP; }
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the frame for the SplitButton
|
||
|
// control
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// rc - Bounding rectangle to draw
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawSplitButtonFrame(CDC* pDC, CXTPControl* pButton, CRect rc);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw check box mark area
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Bounding rectangle
|
||
|
// bDraw - TRUE to draw; FALSE to find size
|
||
|
// bSelected - TRUE if control is selected
|
||
|
// bPressed - TRUE if control is pressed
|
||
|
// bChecked - TRUE if control is checked
|
||
|
// bEnabled - TRUE if control is enabled
|
||
|
// Returns: Size of check box mark
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlCheckBoxMark(CDC* pDC, CRect rc, BOOL bDraw, BOOL bSelected, BOOL bPressed, BOOL bChecked, BOOL bEnabled);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw radio button mark area
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Bounding rectangle
|
||
|
// bDraw - TRUE to draw; FALSE to find size
|
||
|
// bSelected - TRUE if control is selected
|
||
|
// bPressed - TRUE if control is pressed
|
||
|
// bChecked - TRUE if control is checked
|
||
|
// bEnabled - TRUE if control is enabled
|
||
|
// Returns: Size of radio button mark
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlRadioButtonMark(CDC* pDC, CRect rc, BOOL bDraw, BOOL bSelected, BOOL bPressed, BOOL bChecked, BOOL bEnabled);
|
||
|
protected:
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
virtual void DrawSplitButtonPopup(CDC* pDC, CXTPControl* pButton);
|
||
|
virtual void DrawControlPopupGlyph(CDC* pDC, CXTPControl* pButton);
|
||
|
virtual void FillPopupLabelEntry(CDC* pDC, CRect rc);
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// The CXTPDefaultTheme class is used to enable an Office 2000 style theme for Command Bars
|
||
|
// See Also: CXTPPaintManager::SetTheme
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPDefaultTheme : public CXTPPaintManager
|
||
|
{
|
||
|
DECLARE_DYNAMIC(CXTPDefaultTheme)
|
||
|
public:
|
||
|
//-------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPDefaultTheme object.
|
||
|
//-------------------------------------------------------------------------
|
||
|
CXTPDefaultTheme();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to refresh the visual metrics of the manager.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void RefreshMetrics();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the command bar's face.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillCommandBarEntry(CDC* pDC, CXTPCommandBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method retrieves buttons text color
|
||
|
// Parameters:
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// barType - Parent's bar type
|
||
|
// barPosition - Parent's bar position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual COLORREF GetRectangleTextColor(BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the command bar's gripper.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the gripper.
|
||
|
// Returns:
|
||
|
// Size of the gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawCommandBarGripper(CDC* pDC, CXTPCommandBar* pBar, BOOL bDraw = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw a command bar's separator.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the separator.
|
||
|
// Returns:
|
||
|
// This method is called to draw a command bar's separator.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawCommandBarSeparator(CDC* pDC, CXTPCommandBar* pBar, CXTPControl* pControl, BOOL bDraw = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determine offset of popuped bar.
|
||
|
// Parameters:
|
||
|
// rc - Control's bounding rectangle.
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// bVertical - TRUE if control docked vertically.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void AdjustExcludeRect(CRect& rc, CXTPControl* pControl, BOOL bVertical);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to retrieve the command bar's borders.
|
||
|
// Parameters:
|
||
|
// pBar - Points to a CXTPCommandBar object that the borders need to get.
|
||
|
// Returns:
|
||
|
// Borders of the command bar.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CRect GetCommandBarBorders(CXTPCommandBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control placed on the ListBox.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// rc - Bounding rectangle to draw.
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// pCommandBars - CommandBars object which metrics need to use.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawListBoxControl(CDC* pDC, CXTPControl* pButton, CRect rc, BOOL bSelected, BOOL bDraw, CXTPCommandBars* pCommandBars = 0);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the specified controls.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// controlType - Special control enumerator.
|
||
|
// pButton - Points to a CXTPControl object to draw.
|
||
|
// pBar - Parent CXTPCommandBar object.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the
|
||
|
// control.
|
||
|
// lpParam - Specified parameter.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
// See Also: XTPSpecialControl
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawSpecialControl(CDC* pDC, XTPSpecialControl controlType, CXTPControl* pButton, CXTPCommandBar* pBar, BOOL bDraw, LPVOID lpParam);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw a tear-off gripper of Popup Bar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rcGripper - Bounding rectangle of the gripper.
|
||
|
// bSelected - True if the gripper is selected.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the gripper.
|
||
|
// Returns:
|
||
|
// Size of the gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawTearOffGripper(CDC* pDC, CRect rcGripper, BOOL bSelected, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary: This method is called to draw popup bar resize gripper.
|
||
|
// Input: pDC - Pointer to a valid device context.
|
||
|
// rcGripper - Bounding rectangle of the gripper.
|
||
|
// nFlags - Position of resize gripper
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupResizeGripper(CDC* pDC, CRect rcGripper, int nFlags);
|
||
|
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control placed on the PopupBar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlPopupParent(CDC* pDC, CXTPControl* pButton, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws split button frame
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// pButton - Pointer to split button to draw.
|
||
|
// rcButton - Bounding rectangle to draw
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawSplitButtonFrame(CDC* pDC, CXTPControl* pButton, CRect rcButton);
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the control's face
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Rectangle to draw.
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// barType - Parent's bar type
|
||
|
// barPosition - Parent's bar position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawRectangle(CDC* pDC, CRect rc, BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the image of the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pt - Position to draw.
|
||
|
// sz - Size of the image.
|
||
|
// pImage - Points to a CXTPImageManagerIcon object
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// bToolBarImage - TRUE if it is a toolbar image.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawImage(CDC* pDC, CPoint pt, CSize sz, CXTPImageManagerIcon* pImage, BOOL bSelected, BOOL bPressed, BOOL bEnabled = TRUE, BOOL bChecked = FALSE, BOOL bPopuped = FALSE, BOOL bToolBarImage = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pComboBox - ComboBox to draw.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlComboBox(CDC* pDC, CXTPControlComboBox* pComboBox, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the control.
|
||
|
// pEdit - Edit control to draw.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawControlEdit(CDC* pDC, CXTPControlEdit* pEdit, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to draw gripper of dialog bar.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// pBar - Dialog Bar pointer
|
||
|
// bDraw - TRUE to draw gripper, FALSE to calculate size.
|
||
|
// Returns:
|
||
|
// Size of gripper to be drawn.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawDialogBarGripper(CDC* pDC, CXTPDialogBar* pBar, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw frame of edit control.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// rc - CRect object specifying size of area.
|
||
|
// bEnabled - TRUE if control is enabled.
|
||
|
// bSelected - TRUE if control is selected.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlEditFrame(CDC* pDC, CRect rc, BOOL bEnabled, BOOL bSelected);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw button od combo box control.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// rcBtn - Button bounding rectangle.
|
||
|
// bEnabled - TRUE if combo box is enabled
|
||
|
// bSelected - TRUE if combo box is selected
|
||
|
// bDropped - TRUE TRUE if combo box is dropped.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlComboBoxButton(CDC* pDC, CRect rcBtn, BOOL bEnabled, BOOL bSelected, BOOL bDropped);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method draws edit control spin buttons
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context
|
||
|
// pControlEdit - Edit control
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlEditSpin(CDC* pDC, CXTPControlEdit* pControlEdit);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves the base theme of the manager.
|
||
|
// Returns:
|
||
|
// Returns the base theme.
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPPaintTheme BaseTheme() { return xtpThemeOffice2000; }
|
||
|
|
||
|
|
||
|
protected:
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
void DrawShadedRect(CDC* pDC, CRect& rect);
|
||
|
virtual CSize GetPopupBarImageSize(CXTPCommandBar* pBar);
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
protected:
|
||
|
int m_nPopupBarText; // Popup bar text index.
|
||
|
};
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// The CXTPNativeXPTheme class is used to enable a Windows XP style theme for Command Bars
|
||
|
// See Also: CXTPPaintManager::SetTheme
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPNativeXPTheme : public CXTPDefaultTheme
|
||
|
{
|
||
|
DECLARE_DYNAMIC(CXTPNativeXPTheme)
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPNativeXPTheme object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPNativeXPTheme();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Destroys a CXTPNativeXPTheme object, handles cleanup and deallocation
|
||
|
//-----------------------------------------------------------------------
|
||
|
~CXTPNativeXPTheme();
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to refresh the visual metrics of the manager.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void RefreshMetrics();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the command bar's face.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillCommandBarEntry(CDC* pDC, CXTPCommandBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the control's face
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rc - Rectangle to draw.
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// barType - Parent's bar type
|
||
|
// barPosition - Parent's bar position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawRectangle(CDC* pDC, CRect rc, BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the control's face
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Points to a CXTPControl object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DrawControlEntry(CDC* pDC, CXTPControl* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method returns control text color to draw
|
||
|
// Parameters:
|
||
|
// pButton - Points to a CXTPControl object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
COLORREF GetControlTextColor(CXTPControl* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the command bar's gripper.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the gripper.
|
||
|
// Returns:
|
||
|
// Size of the gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawCommandBarGripper(CDC* pDC, CXTPCommandBar* pBar, BOOL bDraw = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill a dockbar.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPDockBar object
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillDockBar(CDC* pDC, CXTPDockBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill a dockbar.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// pWnd - Client area to fill.
|
||
|
// pFrame - Parent frame window.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void FillDockBarRect(CDC* pDC, CWnd* pWnd, CWnd* pFrame);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determine offset of popuped bar.
|
||
|
// Parameters:
|
||
|
// rc - Control's bounding rectangle.
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// bVertical - TRUE if control docked vertically.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void AdjustExcludeRect(CRect& rc, CXTPControl* pControl, BOOL bVertical);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws split button frame
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// pButton - Pointer to split button to draw.
|
||
|
// rcButton - Bounding rectangle to draw
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DrawSplitButtonFrame(CDC* pDC, CXTPControl* pButton, CRect rcButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw frame of edit control.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// rc - CRect object specifying size of area.
|
||
|
// bEnabled - TRUE if control is enabled.
|
||
|
// bSelected - TRUE if control is selected.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlEditFrame(CDC* pDC, CRect rc, BOOL bEnabled, BOOL bSelected);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw button od combo box control.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// rcBtn - Button bounding rectangle.
|
||
|
// bEnabled - TRUE if combo box is enabled
|
||
|
// bSelected - TRUE if combo box is selected
|
||
|
// bDropped - TRUE TRUE if combo box is dropped.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlComboBoxButton(CDC* pDC, CRect rcBtn, BOOL bEnabled, BOOL bSelected, BOOL bDropped);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member to draw gripper of dialog bar.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// pBar - Dialog Bar pointer
|
||
|
// bDraw - TRUE to draw gripper, FALSE to calculate size.
|
||
|
// Returns:
|
||
|
// Size of gripper to be drawn.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawDialogBarGripper(CDC* pDC, CXTPDialogBar* pBar, BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw a command bar's separator.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object
|
||
|
// pControl - Points to a CXTPControl object
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the separator.
|
||
|
// Returns:
|
||
|
// This method is called to draw a command bar's separator.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawCommandBarSeparator(CDC* pDC, CXTPCommandBar* pBar, CXTPControl* pControl, BOOL bDraw = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method retrieves buttons text color
|
||
|
// Parameters:
|
||
|
// bSelected - TRUE if the control is selected.
|
||
|
// bPressed - TRUE if the control is pushed.
|
||
|
// bEnabled - TRUE if the control is enabled.
|
||
|
// bChecked - TRUE if the control is checked.
|
||
|
// bPopuped - TRUE if the control is popuped.
|
||
|
// barType - Parent's bar type
|
||
|
// barPosition - Parent's bar position.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual COLORREF GetRectangleTextColor(BOOL bSelected, BOOL bPressed, BOOL bEnabled, BOOL bChecked, BOOL bPopuped, XTPBarType barType, XTPBarPosition barPosition);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves the base theme of the manager.
|
||
|
// Returns:
|
||
|
// Returns the base theme.
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPPaintTheme BaseTheme() { return xtpThemeNativeWinXP; }
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Determines if theme is enabled
|
||
|
// Returns:
|
||
|
// TRUE if WinXP theme is enabled
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsThemeEnabled() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method draws edit control spin buttons
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context
|
||
|
// pControlEdit - Edit control
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlEditSpin(CDC* pDC, CXTPControlEdit* pControlEdit);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw the specified controls.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// controlType - Special control enumerator.
|
||
|
// pButton - Points to a CXTPControl object to draw.
|
||
|
// pBar - Parent CXTPCommandBar object.
|
||
|
// bDraw - TRUE to draw; FALSE to retrieve the size of the
|
||
|
// control.
|
||
|
// lpParam - Specified parameter.
|
||
|
// Returns:
|
||
|
// Size of the control.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawSpecialControl(CDC* pDC, XTPSpecialControl controlType, CXTPControl* pButton, CXTPCommandBar* pBar, BOOL bDraw, LPVOID lpParam);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw popup bar right gripper.
|
||
|
// Parameters:
|
||
|
// pDC - Points to a valid device context.
|
||
|
// xPos - Specifies the logical x coordinate of the upper-left corner of the rectangle.
|
||
|
// yPos - Specifies the logical y coordinate of the upper-left corner of the destination rectangle.
|
||
|
// cx - Specifies the width of the rectangle.
|
||
|
// cy - Specifies the height of the rectangle.
|
||
|
// bExpanded - TRUE if expanded.gripper.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupBarGripper(CDC* pDC, int xPos, int yPos, int cx, int cy, BOOL bExpanded = FALSE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to draw a check mark.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rcCheck - Specifies the rectangle in logical units.
|
||
|
// clr - Color to fill.
|
||
|
// bEnabled - TRUE to enable, FALSE to disable the button.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupBarCheckMark(CDC* pDC, CRect rcCheck, BOOL bEnabled, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to draw a radio button.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// rcCheck - Specifies the rectangle in logical units.
|
||
|
// clr - Color to fill.
|
||
|
// bEnabled - TRUE to enable, FALSE to disable the button.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawPopupBarRadioMark(CDC* pDC, CRect rcCheck, BOOL bEnabled, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Input: pBar - Popup bar.
|
||
|
// Summary: Calculates gripper of popup bar.
|
||
|
// Returns: Width of gripper to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int GetPopupBarGripperWidth(CXTPCommandBar* pBar);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this member function to draw Menu MDI buttons
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pButton - Button to draw
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawControlMDIButton(CDC* pDC, CXTPControlButton* pButton);
|
||
|
|
||
|
|
||
|
protected:
|
||
|
CXTPWinThemeWrapper* m_themeRebar; // Rebar theme helper
|
||
|
CXTPWinThemeWrapper* m_themeToolbar; // Toolbar theme helper
|
||
|
CXTPWinThemeWrapper* m_themeCombo; // ComboBox theme helper
|
||
|
CXTPWinThemeWrapper* m_themeWindow; // Window theme helper
|
||
|
CXTPWinThemeWrapper* m_themeSpin; // Window theme helper
|
||
|
CXTPWinThemeWrapper* m_themeMenu; // Menu theme helper
|
||
|
COLORREF m_clrEdgeShadowColor; // Color of toolbar bottom line
|
||
|
COLORREF m_clrEdgeHighLightColor;// Color of toolbar top line
|
||
|
BOOL m_bFlatMenus; // TRUE if OS flat menu option enabled
|
||
|
|
||
|
COLORREF m_clrSelectedText; // Selectext text color
|
||
|
COLORREF m_clrPressedText; // Pressed text color.
|
||
|
};
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// The CXTPReBarPaintManager template class is used to enable a ReBar theme for Command Bars
|
||
|
// See Also: CXTPPaintManager::SetTheme
|
||
|
//===========================================================================
|
||
|
template <class TBase>
|
||
|
class CXTPReBarPaintManager : public TBase
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Constructs a CXTPReBarPaintManager object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPReBarPaintManager()
|
||
|
{
|
||
|
RefreshMetrics();
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to refresh the visual metrics of the manager.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void RefreshMetrics()
|
||
|
{
|
||
|
TBase::RefreshMetrics();
|
||
|
|
||
|
m_themeRebar.OpenThemeData(0, L"REBAR");
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to fill the command bar's face.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to a valid device context
|
||
|
// pBar - Points to a CXTPCommandBar object to draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void FillCommandBarEntry (CDC* pDC, CXTPCommandBar* pBar)
|
||
|
{
|
||
|
if (pBar->GetPosition() != xtpBarFloating && pBar->GetPosition() != xtpBarPopup)
|
||
|
{
|
||
|
if (m_themeRebar.IsAppThemed())
|
||
|
{
|
||
|
CXTPWindowRect rcClient(pBar->GetParent());
|
||
|
pBar->ScreenToClient(&rcClient);
|
||
|
|
||
|
m_themeRebar.DrawThemeBackground(pDC->GetSafeHdc(), 0, 0, &rcClient, 0);
|
||
|
}
|
||
|
else
|
||
|
pDC->FillSolidRect(CXTPClientRect(pBar), GetSysColor(COLOR_3DFACE));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
TBase::FillCommandBarEntry(pDC, pBar);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected:
|
||
|
CXTPWinThemeWrapper m_themeRebar; // ReBar theme helper.
|
||
|
};
|
||
|
|
||
|
|
||
|
class CXTPVisualStudio6Theme : public CXTPDefaultTheme
|
||
|
{
|
||
|
CSize DrawCommandBarGripper(CDC* pDC, CXTPCommandBar* pBar, BOOL bDraw);
|
||
|
};
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary: Paint manager for the Office 2007 style window frame.
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPFramePaintManager
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary: Constructs a CXTPFramePaintManager object.
|
||
|
// Input: pPaintManager - Reference to a CXTPPaintManager object.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPFramePaintManager(CXTPPaintManager* pPaintManager);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Destroys a CXTPFramePaintManager object, handles cleanup and
|
||
|
// deallocation
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual ~CXTPFramePaintManager();
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to create window region
|
||
|
// Parameters:
|
||
|
// pFrameHook - CXTPCommandBarsFrameHook hook object
|
||
|
// sz - Window size
|
||
|
// Returns: Region of window to be set
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual HRGN CalcFrameRegion(CXTPCommandBarsFrameHook* pFrameHook, CSize sz);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw frame if Ribbon was found
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context
|
||
|
// pFrameHook - CXTPCommandBarsFrameHook hook object
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawFrame(CDC* pDC, CXTPCommandBarsFrameHook* pFrameHook);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw caption button
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context
|
||
|
// rc - Bounding rectangle of the button
|
||
|
// nId - Identifier of the button
|
||
|
// bSelected - TURE if button is highlighted
|
||
|
// bPressed - TURE if button is pressed
|
||
|
// bActive - TURE if frame is active
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawFrameCaptionButton(CDC* pDC, CRect rc, int nId, BOOL bSelected, BOOL bPressed, BOOL bActive);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves height of caption.
|
||
|
// Returns:
|
||
|
// Frame Caption's height.
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetFrameCaptionHeight() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to refresh the visual metrics of the manager.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void RefreshMetrics();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to get CXTPResourceImages pointer.
|
||
|
// Returns:
|
||
|
// Pointer to image collection of the class.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPResourceImages* GetImages() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw frame caption text
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context
|
||
|
// rcCaptionText - Bounding rectangle of window text
|
||
|
// pSite - Frame to draw
|
||
|
// bActive - TRUE if frame is active
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawCaptionText(CDC* pDC, CRect rcCaptionText, CWnd* pSite, BOOL bActive);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Loads a bitmap image from the specified path.
|
||
|
// Parameters:
|
||
|
// lpszFileName - The name of the file that contains the bitmaps
|
||
|
// to load.
|
||
|
// Remarks:
|
||
|
// The images are the bitmaps that represent all the visual components
|
||
|
// of the Ribbon Bar. For example tab buttons, group buttons, menu buttons,
|
||
|
// toolbar buttons, option button, toolbar dropdown, etc.
|
||
|
// The images are loaded using LoadImage and are stored in the m_pImages
|
||
|
// image collection.
|
||
|
// Images for the Office 2007 theme can be found in the \Source\Ribbon\Res
|
||
|
// folder.
|
||
|
// Returns: New CXTPResourceImage containing the loaded bitmap.
|
||
|
// See Also: SetImageHandle, m_pImages
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPResourceImage* LoadImage(LPCTSTR lpszFileName);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves frame small icon.
|
||
|
// Parameters:
|
||
|
// pFrame - Window to retrieve icon.
|
||
|
// Returns:
|
||
|
// Frame small icon.
|
||
|
// See Also: GetFrameLargeIcon
|
||
|
//-----------------------------------------------------------------------
|
||
|
HICON GetFrameSmallIcon(CWnd* pFrame);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Retrieves frame large icon.
|
||
|
// Parameters:
|
||
|
// pFrame - Window to retrieve icon.
|
||
|
// Returns:
|
||
|
// Frame large icon.
|
||
|
// See Also: GetFrameLargeIcon
|
||
|
//-----------------------------------------------------------------------
|
||
|
HICON GetFrameLargeIcon(CWnd* pFrame);
|
||
|
|
||
|
|
||
|
public:
|
||
|
BOOL m_bFrameStatusBar; // TRUE if status bar used to draw.
|
||
|
BOOL m_bRoundedCornersAlways;
|
||
|
|
||
|
CXTPPaintManagerFont m_fontFrameCaption; // Font used to draw text in the frame caption
|
||
|
|
||
|
public:
|
||
|
int m_nFrameCaptionHeight; // Frame caption
|
||
|
|
||
|
COLORREF m_clrFrameBorderActive0; // Border color
|
||
|
COLORREF m_clrFrameBorderActive1; // Border color
|
||
|
COLORREF m_clrFrameBorderActive2; // Border color
|
||
|
COLORREF m_clrFrameBorderActive3; // Border color
|
||
|
COLORREF m_clrFrameBorderInactive0; // Border color
|
||
|
COLORREF m_clrFrameBorderInactive1; // Border color
|
||
|
COLORREF m_clrFrameBorderInactive2; // Border color
|
||
|
COLORREF m_clrFrameBorderInactive3; // Border color
|
||
|
COLORREF m_clrFrameCaptionTextActive; // Caption text color
|
||
|
COLORREF m_clrFrameCaptionTextInActive; // Caption text color
|
||
|
COLORREF m_clrFrameCaptionTextActiveTitle; // Caption text color
|
||
|
CXTPPaintManager* m_pPaintManager; // Parent Paint Manager.
|
||
|
|
||
|
BOOL m_bFlatFrame; // TRUE to use a flat frame, FALSE otherwise.
|
||
|
};
|
||
|
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
namespace XTPPaintThemes
|
||
|
{
|
||
|
|
||
|
}
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
AFX_INLINE void CXTPPaintManager::SetAnimationDelay(int nAnimationSteps, int nAnimationTime) {
|
||
|
m_nAnimationSteps = nAnimationSteps;
|
||
|
m_nAnimationTime = nAnimationTime;
|
||
|
}
|
||
|
AFX_INLINE CFont* CXTPPaintManager::GetRegularFont() {
|
||
|
return this == NULL ? CFont ::FromHandle((HFONT)::GetStockObject(DEFAULT_GUI_FONT)): &m_fontRegular;
|
||
|
}
|
||
|
AFX_INLINE CFont* CXTPPaintManager::GetRegularBoldFont() {
|
||
|
return &m_fontRegularBold;
|
||
|
}
|
||
|
AFX_INLINE CFont* CXTPPaintManager::GetIconFont() {
|
||
|
return &m_fontIcon;
|
||
|
}
|
||
|
AFX_INLINE CFont* CXTPPaintManager::GetSmCaptionFont() {
|
||
|
return &m_fontSmCaption;
|
||
|
}
|
||
|
AFX_INLINE void CXTPPaintManager::ShowKeyboardCues(BOOL bShow) {
|
||
|
m_bShowKeyboardCues = bShow;
|
||
|
}
|
||
|
AFX_INLINE CXTPControlGalleryPaintManager* CXTPPaintManager::GetGalleryPaintManager() const {
|
||
|
return m_pGalleryPaintManager;
|
||
|
}
|
||
|
AFX_INLINE CXTPSliderPaintManager* CXTPPaintManager::GetSliderPaintManager() const {
|
||
|
return m_pSliderPaintManager;
|
||
|
}
|
||
|
AFX_INLINE CXTPProgressPaintManager* CXTPPaintManager::GetProgressPaintManager() const {
|
||
|
return m_pProgressPaintManager;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE CXTPShadowManager* CXTPPaintManager::GetShadowManager() const {
|
||
|
return m_pShadowManager;
|
||
|
}
|
||
|
AFX_INLINE int CXTPPaintManager::GetEditHeight() const {
|
||
|
return m_nEditHeight;
|
||
|
}
|
||
|
|
||
|
|
||
|
AFX_INLINE int CXTPFramePaintManager::GetFrameCaptionHeight() const {
|
||
|
return m_nFrameCaptionHeight;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
#endif // #if !defined(__XTPPAINTMANAGER_H__)
|