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.
1767 lines
74 KiB
C
1767 lines
74 KiB
C
2 years ago
|
// XTPReportPaintManager.h: interface for the CXTPReportPaintManager class.
|
||
|
//
|
||
|
// This file is a part of the XTREME REPORTCONTROL 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(__XTPREPORTPAINTMANAGER_H__)
|
||
|
#define __XTPREPORTPAINTMANAGER_H__
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
#if _MSC_VER > 1000
|
||
|
#pragma once
|
||
|
#endif // _MSC_VER > 1000
|
||
|
|
||
|
|
||
|
class CXTPMarkupUIElement;
|
||
|
class CXTPImageManager;
|
||
|
class CXTPWinThemeWrapper;
|
||
|
|
||
|
struct XTP_REPORTRECORDITEM_DRAWARGS;
|
||
|
struct XTP_REPORTRECORDITEM_METRICS;
|
||
|
|
||
|
class CXTPReportControl;
|
||
|
class CXTPReportRow;
|
||
|
class CXTPReportHeader;
|
||
|
class CXTPReportColumn;
|
||
|
class CXTPReportGroupRow;
|
||
|
class CXTPReportInplaceButton;
|
||
|
class CXTPReportHyperlink;
|
||
|
class CXTPReportRecordItem;
|
||
|
class CXTPReportRecordItemControl;
|
||
|
class CXTPReportHyperlinkStyle;
|
||
|
class CXTPReportBorder;
|
||
|
|
||
|
|
||
|
//===========================================================================
|
||
|
// Summary:
|
||
|
// Utility class, handling most of the drawing activities. It stores
|
||
|
// all settings, needed by a control to perform drawing operations:
|
||
|
// fonts, colors, styles for all other classes of control.
|
||
|
// It also implements all functions for drawing typical graphical
|
||
|
// primitives, functions that directly work with device context.
|
||
|
// Remarks:
|
||
|
// Could be overridden to provide another look and feel for the control.
|
||
|
// Thus you have an easy way to change "skin" of your control; just provide
|
||
|
// your own implementation of CXTPReportPaintManager and there's no need to touch
|
||
|
// functionality all others classes of control
|
||
|
//
|
||
|
// You create ReportPaintManager by calling its constructor,
|
||
|
// further you can call getter and setter functions to change
|
||
|
// every setting as you wish.
|
||
|
// See Also: CXTPReportControl overview, CXTPReportRow, CXTPReportGroupRow,
|
||
|
// CXTPReportColumn, CXTPReportHeader
|
||
|
//===========================================================================
|
||
|
class _XTP_EXT_CLASS CXTPReportPaintManager : public CXTPCmdTarget
|
||
|
{
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
friend class CXTPReportControl;
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Default paint manager constructor, handles properties initialization.
|
||
|
// See Also: RefreshMetrics
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPReportPaintManager();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Default paint manager destructor, handles member items deallocation.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual ~CXTPReportPaintManager();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// SetReportControl
|
||
|
// Parameters:
|
||
|
// pControl - pointer to Report Control
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void SetReportControl(CXTPReportControl* pControl);
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Initializes all drawings defaults (fonts, colors, etc.). Most
|
||
|
// of them are system defaults.
|
||
|
// See Also: CXTPReportPaintManager
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void RefreshMetrics();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns default row height for print mode.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pRow - Pointer to CXTPReportRow object.
|
||
|
// nTotalWidth - Width of the row
|
||
|
// Returns:
|
||
|
// The height of the default rectangle where row's items will draw.
|
||
|
// Example:
|
||
|
// <code>int nRowHeight = GetRowHeight(pDC, pRow)</code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int GetRowHeight(CDC* pDC, CXTPReportRow* pRow);
|
||
|
virtual int GetRowHeight(CDC* pDC, CXTPReportRow* pRow, int nTotalWidth); // <combine CXTPReportPaintManager::GetRowHeight@CDC*@CXTPReportRow*>
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns preview item height for print mode.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pRow - Pointer to CXTPReportRow object.
|
||
|
// nWidth - Width of the preview item.
|
||
|
// nHeight - Height of the preview item.
|
||
|
// Returns:
|
||
|
// The height of the default rectangle where preview item will draw.
|
||
|
// Example:
|
||
|
// <code>int nPreviewItemHeight = GetPreviewItemHeight(pDC, pRow, nWidth, nHeight)</code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int GetPreviewItemHeight(CDC* pDC, CXTPReportRow* pRow, int nWidth, int nHeight);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the default column header height.
|
||
|
// Returns:
|
||
|
// The current height of the rectangle where column's headers draw.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int GetHeaderHeight();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Calculate optimal header height.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context.
|
||
|
// pControl - Pointer to a report control.
|
||
|
// nTotalWidth - Total header with. Used for printing only.
|
||
|
// Returns:
|
||
|
// Optimal header height.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int GetHeaderHeight(CXTPReportControl* pControl, CDC* pDC, int nTotalWidth = 0);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Sets new column header height.
|
||
|
// Parameters:
|
||
|
// nHeight - Header Height to use.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void SetHeaderHeight(int nHeight);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Calculate optimal footer height.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context.
|
||
|
// pControl - Pointer to a report control.
|
||
|
// nTotalWidth - Total header with. Used for printing only.
|
||
|
// Returns:
|
||
|
// Optimal footer height.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int GetFooterHeight(CXTPReportControl* pControl, CDC* pDC, int nTotalWidth = 0);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns control background color.
|
||
|
// Parameters:
|
||
|
// pControl - Pointer to the parent report control object.
|
||
|
// Returns:
|
||
|
// Color that is used for filling client rect.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual COLORREF GetControlBackColor(CXTPReportControl* pControl);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Fills the provided row with its background color.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pRow - Pointer to the Row.
|
||
|
// rcRow - Row area rectangle coordinates.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// // paint row background
|
||
|
// pPaintManager->FillRow(pDC, this, rcRow);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillRow(CDC* pDC, CXTPReportRow* pRow, CRect rcRow);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws control's grid.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// bVertical - BOOL value determines orientation of grid
|
||
|
// rc - Row area rectangle coordinates.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// // draw vertical grid in Row
|
||
|
// CRect rcGridItem(rcRowRect);
|
||
|
// pPaintManager->DrawGrid(pDC, TRUE, rcGridItem);
|
||
|
//
|
||
|
// // draw horizontal grid in Row
|
||
|
// CPaintDC pDC(this);
|
||
|
// CRect rcGridItem(rcRowRect);
|
||
|
// pPaintManager->DrawGrid(pDC, FALSE, rcGridItem);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawGrid(CDC *pDC, XTPReportOrientation orientation, CRect rcGrid);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws the freeze column divider.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rc - Rectangle coordinates.
|
||
|
// pControl - Pointer to a report control.
|
||
|
// pRow - Pointer to the Row.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawFreezeColsDivider(CDC* pDC, const CRect& rc, CXTPReportControl* pControl,
|
||
|
CXTPReportRow* pRow = NULL);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws the vertical TimeLine Marker
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rc - Rectangle coordinates.
|
||
|
// pControl - Pointer to a report control.
|
||
|
// color - The color of the marker.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawVerticalTimeLineMarker(CDC* pDC, int xPos, CXTPReportControl* pControl, COLORREF color = RGB(0,255,0));
|
||
|
|
||
|
//Return current Print Page Width after Preview mode was call and set value
|
||
|
int GetPrintPageWidth();
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws group row.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pRow - Pointer to the Group Row.
|
||
|
// rcRow - Group Row area rectangle coordinates.
|
||
|
// pMetrics - Pointer to a XTP_REPORTRECORDITEM_METRICS object.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// CXTPReportPaintManager* pPaintManager = m_pControl->GetPaintManager();
|
||
|
// pDC->SetBkMode(TRANSPARENT);
|
||
|
// pPaintManager->DrawGroupRow(pDC, this, rcRow);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawGroupRow(CDC* pDC, CXTPReportGroupRow* pRow, CRect rcRow, XTP_REPORTRECORDITEM_METRICS* pMetrics);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Fill font and colors members of the metrics structure
|
||
|
// for the specified group row.
|
||
|
// Parameters:
|
||
|
// pRow - Pointer to the Group Row.
|
||
|
// pMetrics - Pointer to the metrics structure to be filled.
|
||
|
// bPrinting - Is printing mode.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillGroupRowMetrics(CXTPReportGroupRow* pRow, XTP_REPORTRECORDITEM_METRICS* pMetrics, BOOL bPrinting);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Fills indent area by its background.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcRow - Row area rectangle coordinates.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// CXTPReportPaintManager* pPaintManager = m_pControl->GetPaintManager();
|
||
|
// CRect rcRow(rcClient);
|
||
|
// // Get default row height
|
||
|
// int nRowHeight = m_pControl->GetRowHeight(FALSE)
|
||
|
// rcRow.bottom = rcRow.top + nRowHeight;
|
||
|
// pPaintManager->FillIndent(pDC, rcRow);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillIndent(CDC* pDC, CRect rcRow);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Fills item shade by its background if necessary.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcItem - Item area rectangle coordinates.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// CXTPReportPaintManager* pPaintManager = m_pControl->GetPaintManager();
|
||
|
// CRect rcItem(m_rcRow);
|
||
|
// pPaintManager->FillItemShade(pDC, rcItem);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillItemShade(CDC* pDC, CRect rcItem);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Fills column header control area by its background.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcHeader - Header area rectangle coordinates.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// CXTPReportPaintManager* pPaintManager = m_pControl->GetPaintManager();
|
||
|
// CRect rcHeader(rcClient);
|
||
|
// int nHeaderHeight = m_pControl->GetHeaderHeight();
|
||
|
// rcHeader.bottom = rcHeader.top + nHeaderHeight;
|
||
|
// pPaintManager->FillHeaderControl(pDC, rcHeader);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillHeaderControl(CDC* pDC, CRect rcHeader);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Fills column footer control area by its background.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcFooter - Footer area rectangle coordinates.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillFooter(CDC* pDC, CRect rcFooter);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws column header with all related attributes (sort order, icon, etc).
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pColumn - Column header area rectangle coordinates.
|
||
|
// pHeader - Pointer to report header.
|
||
|
// rcColumn - Column area rectangle coordinates.
|
||
|
// bDrawExternal - whether draw Column on Header area, default is FALSE.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// CXTPReportPaintManager* pPaintManager = m_pControl->GetPaintManager();
|
||
|
// CXTPReportColumn* pColumn = CXTPReportColumn* pColumn = m_pColumns->GetAt(1);
|
||
|
// CRect rcHeader(rcClient);
|
||
|
// int nHeaderHeight = m_pControl->GetHeaderHeight();
|
||
|
// rcHeader.bottom = rcHeader.top + nHeaderHeight;
|
||
|
// GetPaintManager()->DrawColumn(pDC, pColumn, this, rcHeader);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawColumn(CDC* pDC, CXTPReportColumn* pColumn, CXTPReportHeader* pHeader,
|
||
|
CRect rcColumn, BOOL bDrawExternal = FALSE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws column footer with all related attributes (footer text).
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pColumn - Column header area rectangle coordinates.
|
||
|
// pHeader - Pointer to report header.
|
||
|
// rcColumn - Column area rectangle coordinates.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawColumnFooter(CDC* pDC, CXTPReportColumn* pColumn, CXTPReportHeader* pHeader, CRect rcColumn);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to determine if hot tracking is enabled for current column style.
|
||
|
// Returns:
|
||
|
// TRUE if enabled; FALSE otherwise
|
||
|
// Remarks:
|
||
|
// Hot Tracking can be used only for xtpReportColumnOffice2003 and xtpReportColumnExplorer styles.
|
||
|
// See Also:
|
||
|
// m_columnStyle, m_bHotTracking
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsColumHotTrackingEnabled() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws rows that were focused.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcRow - Area rectangle coordinates.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// CRect rcClient(GetParent()->GetClientRect());
|
||
|
// CXTPReportHeader* pHeader = m_pColumns->GetReportHeader();
|
||
|
// CXTPReportPaintManager* pPaintManager = m_pControl->GetPaintManager();
|
||
|
// GetPaintManager()->DrawResizingRect(pDC, pHeader, rcClient);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawFocusedRow(CDC* pDC, CRect rcRow);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws Group By box.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcGroupBy - Reference to Group By box area rectangle coordinates.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// CXTPReportPaintManager* pPaintManager = m_pControl->GetPaintManager();
|
||
|
// pPaintManager->FillGroupByControl(pDC, rcGroupBy);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void FillGroupByControl(CDC* pDC, CRect& rcGroupBy);
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns point to additional image list with Glyphs
|
||
|
// Remarks:
|
||
|
// Additional image list usually used for bitmaps of collapsed icons, etc
|
||
|
// You call this member function to get a pointer to list and manipulate
|
||
|
// its content as you wish
|
||
|
// Returns:
|
||
|
// Pointer to the instantiated object of CXTPImageManager class
|
||
|
//-----------------------------------------------------------------------
|
||
|
CXTPImageManager* GetGlyphs() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws Horizontal line.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// xPos - Horizontal coordinate of the beginning of line.
|
||
|
// yPos - Vertical coordinate of the beginning of line.
|
||
|
// cx - Length of line.
|
||
|
// clr - Color of line.
|
||
|
// Remarks:
|
||
|
// This member function is called in the control everywhere we need to
|
||
|
// draw a simple horizontal line
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DrawHorizontalLine(CDC* pDC, int xPos, int yPos, int cx, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws vertical line.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// xPos - Horizontal coordinate of the beginning of line.
|
||
|
// yPos - Vertical coordinate of the beginning of line.
|
||
|
// cy - Length of line.
|
||
|
// clr - Color of line.
|
||
|
// Remarks:
|
||
|
// This member function is called in the control everywhere we need to
|
||
|
// draw a simple vertical line
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DrawVerticalLine(CDC* pDC, int xPos, int yPos, int cy, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws triangle that shows the sort order of column.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcTriangle - Triangle area rectangle coordinates.
|
||
|
// bToDown - If TRUE the top of triangle turn downward, otherwise upward.
|
||
|
// Remarks:
|
||
|
// You use this function to draw a triangle image on the header of the column
|
||
|
// that is sorted. Triangle represents the direction of sorting: ascending or descending.
|
||
|
// Sizes of the triangle depend on the rectangle area that is provided to draw
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// // draw ascendant triangle
|
||
|
// CRect rcTriangle;
|
||
|
// rcTriangle.CopyRect(rcHeader);
|
||
|
// rcTriangle.DeflateRect(40, 5, 5, 5);
|
||
|
// DrawTriangle(pDC, rcTriangle, TRUE);
|
||
|
//
|
||
|
// // draw descendant triangle
|
||
|
// CRect rcTriangle;
|
||
|
// rcTriangle.CopyRect(rcHeader);
|
||
|
// rcTriangle.DeflateRect(40, 5, 5, 5);
|
||
|
// DrawTriangle(pDC, rcTriangle, FALSE);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DrawTriangle(CDC* pDC, CRect rcTriangle, BOOL bToDown, int nShadowWidth = 0);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws a column connector for Group By box.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// ptFrom - Source point of the connector.
|
||
|
// ptTo - Target point of the connector.
|
||
|
// Remarks:
|
||
|
// You use this function to draw a line that represents a
|
||
|
// chain of columns in GroupBy box. It connects columns
|
||
|
// in GroupBy box altogether
|
||
|
// Example:
|
||
|
// <code>DrawConnector(pDC, CPoint(rcItem.right - 5, rcItem.bottom), CPoint(x, rcItem.bottom + 4));</code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DrawConnector(CDC* pDC, CPoint ptFrom, CPoint ptTo);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws collapsed bitmap.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pRow - Pointer to the Row.
|
||
|
// rcBitmap - Bitmap area rectangle coordinates.
|
||
|
// Returns:
|
||
|
// Size of drawn bitmap.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CSize DrawCollapsedBitmap(CDC* pDC, const CXTPReportRow* pRow, CRect& rcBitmap);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws image of Report Control.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pControl - Pointer to report control which image will be drawn.
|
||
|
// rcColumn - Bitmap area rectangle coordinates.
|
||
|
// iImage - Image index.
|
||
|
// Remarks
|
||
|
// You use this function to draw a bitmap in the column rectangle.
|
||
|
// If the provided rectangle is too small, the bitmap will not be drawn.
|
||
|
// Generally, the column rectangle must be big enough to contain
|
||
|
// text (if presented) and bitmap
|
||
|
// Returns:
|
||
|
// Width of drawn bitmap.
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// // draws bitmap with id ID_READ
|
||
|
// pPaintManager->DrawBitmap(pDC, pControl, rcColumn, ID_READ);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int DrawBitmap(CDC* pDC, CXTPReportControl* pControl, CRect rcColumn, int iImage);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws image for a column.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// pColumn - Pointer to a column object.
|
||
|
// rcColumn - Column rectangle.
|
||
|
// rcIcon - Image bounding rectangle.
|
||
|
// iIcon - Image index.
|
||
|
// Returns:
|
||
|
// Width of drawn bitmap.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int DrawColumnIcon(CDC* pDC, CXTPReportColumn* pColumn, CRect rcColumn, CRect rcIcon, int iIcon);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw standard glyphs of report control
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcColumn - Bitmap area rectangle coordinates.
|
||
|
// iImage - Image index.
|
||
|
// Returns:
|
||
|
// Size of drawn bitmap.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual CSize DrawGlyph(CDC* pDC, CRect rcColumn, int iImage);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to draw the shell icon.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcColumn - Bitmap area rectangle coordinates.
|
||
|
// iImage - Image index.
|
||
|
// Returns:
|
||
|
// Size of drawn bitmap.
|
||
|
virtual CSize DrawShellIcon(CDC* pDC, CRect rcColumn, int iImage);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Changes the preview mode state for the control.
|
||
|
// Parameters:
|
||
|
// bIsPreviewMode - New preview mode (TRUE or FALSE).
|
||
|
// Remarks:
|
||
|
// Preview mode has two states: enable and disabled. When preview is
|
||
|
// enabled, the control tries to show additional bands with preview text
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// // enable preview mode
|
||
|
// EnablePreviewMode(TRUE);
|
||
|
//
|
||
|
// // disable preview mode
|
||
|
// EnablePreviewMode(FALSE);
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
void EnablePreviewMode(BOOL bIsPreviewMode);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns preview mode state for the control.
|
||
|
// Remarks:
|
||
|
// You use this member function to programmatically identify
|
||
|
// in which mode the control is
|
||
|
// Returns:
|
||
|
// Current preview mode state.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsPreviewMode() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the default text font for the control items.
|
||
|
// Returns:
|
||
|
// Pointer to the current font used for drawing test.
|
||
|
//-----------------------------------------------------------------------
|
||
|
CFont* GetTextFont();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Set count of max lines of the preview text.
|
||
|
// Parameters:
|
||
|
// nMaxLines - New value of max lines of text for a preview item.
|
||
|
// Remarks:
|
||
|
// You use this member function to bound the height of a textPreview item
|
||
|
// by setting the maximum rows of text for it
|
||
|
// Returns:
|
||
|
// Previous value of max lines of text for a preview item.
|
||
|
// Example:
|
||
|
// <code>int nOldMaxLines = SetMaxPreviewLines(4);</code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
int SetMaxPreviewLines(int nMaxLines);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Get the count of max lines of preview text.
|
||
|
// Returns:
|
||
|
// Current value of max lines of text for a preview item.
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetMaxPreviewLines();
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Calculates the line count for preview text, takes into account max lines.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcText - Reference to text area rectangle coordinates.
|
||
|
// strText - String of text.
|
||
|
// Remarks:
|
||
|
// This function calculates the count of preview text lines based on the length
|
||
|
// of preview text string, preview text font and width of provided rectangle.
|
||
|
// If default max lines count less than count of calculate lines,
|
||
|
// returns default max lines
|
||
|
// Returns:
|
||
|
// Returns the count of lines needed to draw preview text.
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetPreviewLinesCount(CDC* pDC, CRect& rcText, const CString& strText);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Return visibility of grid line
|
||
|
// Parameters:
|
||
|
// bVertical - determines which grid lines will be tested,
|
||
|
// vertical or horizontal.
|
||
|
// Returns:
|
||
|
// BOOL value which identifies the visibility of the line
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsGridVisible(BOOL bVertical) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Return visibility of grid line
|
||
|
// Parameters:
|
||
|
// orientation - determines which grid lines will be tested,
|
||
|
// vertical or horizontal.
|
||
|
// Returns:
|
||
|
// BOOL value which identifies the visibility of the line
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsGridVisible(XTPReportOrientation orientation) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Use this member function to set a header style.
|
||
|
// Parameters:
|
||
|
// columnStyle - A value from XTPReportColumnStyle enum.
|
||
|
// See Also: GetColumnStyle, XTPReportColumnStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetColumnStyle(XTPReportColumnStyle columnStyle);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Use this member function to get a header style.
|
||
|
// Returns:
|
||
|
// A value from XTPReportColumnStyle enum.
|
||
|
// See Also: SetColumnStyle, XTPReportColumnStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPReportColumnStyle GetColumnStyle() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Use this member function to set a header's custom theme base color
|
||
|
// for Office2007 column style.
|
||
|
// Parameters:
|
||
|
// clrBaseColor - A COLORREF value representing the custom theme base color.
|
||
|
// Set this value as -1 to use standard theme.
|
||
|
// See Also: GetColumnOffice2007CustomThemeBaseColor
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetColumnOffice2007CustomThemeBaseColor(COLORREF clrBaseColor);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Use this member function to get a header's custom theme base color
|
||
|
// for Office2007 column style.
|
||
|
// Returns:
|
||
|
// A COLORREF value representing the custom theme base color for
|
||
|
// Office2007 column style. Value -1 means that standard theme is used.
|
||
|
// See Also: SetColumnOffice2007CustomThemeBaseColor
|
||
|
//-----------------------------------------------------------------------
|
||
|
COLORREF GetColumnOffice2007CustomThemeBaseColor() const;
|
||
|
|
||
|
//--------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Creates and sets default text font
|
||
|
// Parameters:
|
||
|
// lf - Reference to LOGFONT structure
|
||
|
// See Also: LOGFONT, SetCaptionFont
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetTextFont(LOGFONT& lf);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Creates and sets the default caption font
|
||
|
// Parameters:
|
||
|
// lf - Reference to LOGFONT structure
|
||
|
// See Also: LOGFONT, SetTextFont
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetCaptionFont(LOGFONT& lf);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this method to set the preview item indent.
|
||
|
// Parameters:
|
||
|
// nLeft - Left indent to be used
|
||
|
// nTop - Top indent to be used
|
||
|
// nRight - Right indent to be used
|
||
|
// nBottom - Bottom indent to be used
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetPreviewIndent(int nLeft, int nTop, int nRight, int nBottom);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw in-place button of the report
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the device context
|
||
|
// pButton - Pointer to in-place button to draw
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawInplaceButton(CDC* pDC, CXTPReportInplaceButton* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw Combo Button of the report
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the device context
|
||
|
// pRc - Pointer to rectangle to draw
|
||
|
// Returns:
|
||
|
// TRUE if the operation is successful and FALSE else.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL DrawInplaceComboButton(CDC* pDC, CRect* pRc);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw Expand Button of the report
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the device context
|
||
|
// pRc - Pointer to rectangle to draw
|
||
|
// Returns:
|
||
|
// TRUE if the operation is successful and FALSE else.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL DrawInplaceExpandButton(CDC* pDC, CRect* pRc);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw Spin Button of the report
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the device context
|
||
|
// pRc - Pointer to rectangle to draw
|
||
|
// Returns:
|
||
|
// TRUE if the operation is successful and FALSE else.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL DrawInplaceSpinButton(CDC* pDC, CRect* pRc);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw tree elements of report control.
|
||
|
// Parameters:
|
||
|
// pDrawArgs - pointer to structure with drawing arguments
|
||
|
// pMetrics - Metrics of the item
|
||
|
// rcItem - Item area rectangle coordinates.
|
||
|
// sizeGlyph - Item glyph rectangle coordinates.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawTreeStructure(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, XTP_REPORTRECORDITEM_METRICS* pMetrics, CRect rcItem, CSize sizeGlyph);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draw Item Bitmap. Override this method to draw custom bitmap.
|
||
|
// Parameters:
|
||
|
// pDrawArgs - pointer to structure with drawing arguments
|
||
|
// rcItem - Item rectangle.
|
||
|
// nImage - Image index.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawItemBitmap(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, CRect& rcItem, int nImage);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draw Item Caption. Override this method to draw custom caption.
|
||
|
// Parameters:
|
||
|
// pDrawArgs - pointer to structure with drawing arguments
|
||
|
// pMetrics - Metrics of the item
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawItemCaption(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs, XTP_REPORTRECORDITEM_METRICS* pMetrics);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draw row number. Override this method to draw differently.
|
||
|
// Parameters:
|
||
|
// pDrawArgs - pointer to structure with drawing arguments
|
||
|
// rcItem - rectangle to draw
|
||
|
// pRow - Pointer to the report row.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawRowNumber(CDC* pDC, CRect rcNumber, CXTPReportRow* pRow);
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draw Item Control. Override this method to draw custom control.
|
||
|
// Parameters:
|
||
|
// pDrawArgs - pointer to structure with drawing arguments
|
||
|
// pControl - control to draw
|
||
|
// rcItem - rectangle to draw
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawItemControl(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs,
|
||
|
CXTPReportRecordItemControl* pControl, CRect& rcItem);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determines if paint manager supports
|
||
|
// variable height of row
|
||
|
// Returns:
|
||
|
// TRUE if GetRowHeight retrieves same value for each row.
|
||
|
// See Also: GetRowHeight
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsFixedRowHeight() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to set if paint manager supports
|
||
|
// variable height of row
|
||
|
// Parameters:
|
||
|
// bFixedRowHeight - TRUE to set Fixed Row height, FALSE to set variable
|
||
|
// See Also: GetRowHeight
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetFixedRowHeight(BOOL bFixedRowHeight);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determines if paint manager supports
|
||
|
// Column Width WYSIWYG mode
|
||
|
// Returns:
|
||
|
// TRUE if the column width support WYSIWYG mode FALSE else.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsColumnWidthWYSIWYG() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determines if paint manager supports
|
||
|
// Last Column Width WYSIWYG mode
|
||
|
// Returns:
|
||
|
// TRUE if the last column width support WYSIWYG mode FALSE else.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsLastColumnWidthWYSIWYG() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determines if paint manager
|
||
|
// Show WYSIWYG Page-end Markers
|
||
|
// Returns:
|
||
|
// TRUE if the WYSIWYG markers are shown FALSE else.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL CXTPReportPaintManager::IsShowWYSIWYGMarkers() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to set paint manager to
|
||
|
// Show WYSIWYG Page-end Markers
|
||
|
// Parameters:
|
||
|
// bSet - BOOL flag to show or not
|
||
|
//-----------------------------------------------------------------------
|
||
|
void CXTPReportPaintManager::ShowWYSIWYGMarkers(BOOL bSet);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to set if paint manager supports
|
||
|
// Column Width WYSIWYG mode
|
||
|
// Parameters:
|
||
|
// bColumnWidthWYSIWYG - BOOL flag to use or not
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetColumnWidthWYSIWYG(BOOL bColumnWidthWYSIWYG);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to set if paint manager supports
|
||
|
// Last Column Width WYSIWYG mode
|
||
|
// Parameters:
|
||
|
// bColumnWidthWYSIWYG - BOOL flag to use or not
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetLastColumnWidthWYSIWYG(BOOL bColumnWidthWYSIWYG);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determines if paint manager supports
|
||
|
// variable height of in place buttons.
|
||
|
// Returns:
|
||
|
// TRUE if height of in place buttons is fixed, FALSE if it is the same
|
||
|
// as row height.
|
||
|
// See Also: SetInplaceButtonHeight
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsFixedInplaceButtonHeight() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to set if paint manager supports
|
||
|
// fixed height of in place buttons.
|
||
|
// Parameters:
|
||
|
// bFixedInplaceButtonHeight - TRUE to set Fixed button height,
|
||
|
// FALSE to set variable (the same as row height).
|
||
|
// See Also: IsFixedInplaceButtonHeight
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetInplaceButtonHeight(BOOL bFixedInplaceButtonHeight);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Get style of Freeze Columns Divider line.
|
||
|
// Returns:
|
||
|
// A value from enum XTPReportFreezeColsDividerStyle.
|
||
|
// See Also:
|
||
|
// XTPReportFreezeColsDividerStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetFreezeColsDividerStyle() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Set style of Freeze Columns Divider line.
|
||
|
// Parameters:
|
||
|
// nStyle - A value from enum XTPReportFreezeColsDividerStyle.
|
||
|
// See Also:
|
||
|
// XTPReportFreezeColsDividerStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetFreezeColsDividerStyle(int nStyle);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Override this method to do custom activities for the item before processing it.
|
||
|
// Parameters:
|
||
|
// pDrawArgs - pointer to structure with drawing arguments
|
||
|
// Returns:
|
||
|
// BOOL value - TRUE means that the item needs further processing
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL OnDrawAction(XTP_REPORTRECORDITEM_DRAWARGS* pDrawArgs);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method used to draw "No items" text message in Group By area
|
||
|
// when there are no items inside it. Override it for custom drawing.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rcItem - Reference to text area rectangle coordinates.
|
||
|
// See Also:
|
||
|
// CXTPReportPaintManager::m_strNoGroupBy
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawNoGroupByText(CDC* pDC, CRect rcItem);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to determine if grid fills empty space after the body rows.
|
||
|
// Returns:
|
||
|
// TRUE if grid fills empty space after the body rows, FALSE - otherwise (default).
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsDrawGridForEmptySpace() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// SetDrawGridForEmptySpace
|
||
|
// Parameters:
|
||
|
// bDrawGrid - BOOL flag to use or not
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetDrawGridForEmptySpace(BOOL bDrawGrid);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method get flag is group row collapse-expand icon draw in print mode.
|
||
|
// Returns:
|
||
|
// TRUE if GroupRowIcon used during printing
|
||
|
BOOL IsPrintGroupRowIcon() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method set flag is group row collapse-expand icon draw in print mode.
|
||
|
// Parameters:
|
||
|
// bDraw - BOOL flag to use or not
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetPrintGroupRowIcon(BOOL bDraw);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method get flag of ColumnPlusMinusSign
|
||
|
// Returns:
|
||
|
// TRUE if [+] or [-] icon used
|
||
|
BOOL IsColumnPlusMinusSign() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method set ColumnPlusMinusSign flag (if TRUE) as [+] or [-] instead of arrows.
|
||
|
// Parameters:
|
||
|
// bDraw - BOOL flag to use or not
|
||
|
void SetColumnPlusMinusSign(BOOL bDraw);
|
||
|
|
||
|
|
||
|
CXTPReportBorder* GetDefaultItemBorder() const;
|
||
|
|
||
|
CXTPReportBorder* GetItemBorder(const CXTPReportRecordItem *pItem) const;
|
||
|
|
||
|
#if XTP_REPORT_DEPRECATED()
|
||
|
|
||
|
//--------------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to get the grid style.
|
||
|
// Parameters:
|
||
|
// bVertical - TRUE to get the vertical grid style and FALSE to get the
|
||
|
// horizontal grid style.
|
||
|
// Returns:
|
||
|
// A XTPReportLineStyle denoting the grid style.
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPReportLineStyle GetGridStyle(BOOL bVertical) const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Sets one of the predefined grid line styles
|
||
|
// Parameters:
|
||
|
// bVertical - Determines which grid lines settings,
|
||
|
// vertical or horizontal
|
||
|
// gridStyle - Grid style. Can be one of the values listed
|
||
|
// in the remarks section.
|
||
|
// Remarks:
|
||
|
// Grid style can be one of the following:
|
||
|
// * <b>xtpReportGridNoLines</b> Empty line
|
||
|
// * <b>xtpReportGridSmallDots</b> Line drawn by small dots
|
||
|
// * <b>xtpReportGridLargeDots</b> Line drawn by large dots
|
||
|
// * <b>xtpReportGridDashes</b> Line drawn by dashes
|
||
|
// * <b>xtpReportGridSolid</b> Draws solid line
|
||
|
// See Also: XTPReportGridStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetGridStyle(BOOL bVertical, XTPReportLineStyle lineStyle);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Returns the current grid line color.
|
||
|
//-----------------------------------------------------------------------
|
||
|
COLORREF GetGridColor() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Changes report control grid lines color.
|
||
|
// Parameters:
|
||
|
// clrGridLine - New grid color.
|
||
|
// Returns:
|
||
|
// Previous grid color
|
||
|
// Example:
|
||
|
// <code>
|
||
|
// // Set new color, save old one
|
||
|
// COLORREF clrOld;
|
||
|
// clrOld = SetGridColor(RGB(0, 255, 0));
|
||
|
// </code>
|
||
|
//-----------------------------------------------------------------------
|
||
|
COLORREF SetGridColor(COLORREF clrGridLine);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draw a line of text with respect to the drawing rect
|
||
|
// Parameters:
|
||
|
// pDrawArgs - Pointer to structure with drawing arguments.
|
||
|
// strText - String of text.
|
||
|
// rcItem - Item area rectangle coordinates.
|
||
|
// nFlag - Flag can allow next values:
|
||
|
// DT_END_ELLIPSIS - truncate text by ellipses
|
||
|
// DT_WORDBREAK - - truncate text by word end
|
||
|
// nCharCounter - Reference to printed char counted, accepts value before, returns value after drawing
|
||
|
// nHyperlinkCounter- Reference to printed hyperlinks counted, accepts value before, returns value after drawing
|
||
|
// Remarks:
|
||
|
// Its member function is internally used by DrawText() and draws one line of text.
|
||
|
// It processes plain text/ hyperlink text for one line. For multi-line text
|
||
|
// process last line - the truncate by ellipses, otherwise truncate by word
|
||
|
// Returns:
|
||
|
// Position in CString where drawing of one line of text was stopped
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawTextLine(
|
||
|
XTP_REPORTRECORDITEM_DRAWARGS *pDrawArgs,
|
||
|
XTP_REPORTRECORDITEM_METRICS *pMetrics,
|
||
|
const CString& strText,
|
||
|
CRect rcItem,
|
||
|
int nFlag,
|
||
|
int& nCharCounter,
|
||
|
int& nHyperlinkCounter);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draw simple string into rectangle
|
||
|
// Parameters:
|
||
|
// pnCurrDrawPos - Pointer to current drawing position (is updated after each call of function)
|
||
|
// pDC - Point to used Device Context
|
||
|
// strDraw - String of text
|
||
|
// rcDraw - Text area rectangle coordinates
|
||
|
// nFormat - Flag can allow next values:
|
||
|
// DT_END_ELLIPSIS - truncate text by ellipses
|
||
|
// DT_WORDBREAK - truncate text by word end
|
||
|
// Remarks:
|
||
|
// Its member function is internally used by DrawTextLine and draws a plain chunk of
|
||
|
// text string.
|
||
|
// Returns:
|
||
|
// Position in CString where drawing of one string of text line was stopped
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int DrawString(int* pnCurrDrawPos,
|
||
|
CDC* pDC,
|
||
|
const CString& strDraw,
|
||
|
CRect rcDraw,
|
||
|
UINT nFormat);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// This method is called to draw background of the column using current column style
|
||
|
// Parameters:
|
||
|
// pDC - Point to used Device Context
|
||
|
// pColumn - Column needs to draw
|
||
|
// rcColumn - Bounding rectangle of the column
|
||
|
// bColumnPressed - TRUE if column is pressed by user.
|
||
|
// pHeader - Pointer to a header the column belongs to.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawColumnBackground(CDC* pDC,
|
||
|
CXTPReportColumn* pColumn,
|
||
|
CRect rcColumn,
|
||
|
BOOL& bColumnPressed,
|
||
|
CXTPReportHeader* pHeader = NULL);
|
||
|
protected:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Generates a custom grid pattern
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context.
|
||
|
// pBrush - Pointer to brush object.
|
||
|
// rc - Rectangle area.
|
||
|
// pPattern - Points to a short-integer array that contains the
|
||
|
// initial bitmap bit values. If it is NULL, the new
|
||
|
// bitmap is left uninitialized.
|
||
|
// clr - COLORREF object representing the pattern color.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawGridPattern(CDC* pDC, CBrush* pBrush, CRect rc, const void *pPattern, COLORREF clr);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws in-place button frame
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context.
|
||
|
// pButton - Pointer to in-place button
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawInplaceButtonFrame(CDC* pDC, CXTPReportInplaceButton* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws in-place button icon
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context.
|
||
|
// pButton - Pointer to in-place button
|
||
|
// Returns:
|
||
|
// TRUE if icon has been drawn, FALSE otherwise.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual BOOL DrawInplaceButtonIcon(CDC* pDC, CXTPReportInplaceButton* pButton);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Calculate optimal height for specified column.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context.
|
||
|
// pColumn - Pointer to a column object.
|
||
|
// nTotalWidth - Total header with. Used for printing only.
|
||
|
// Returns:
|
||
|
// Optimal height for specified column.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int CalcColumnHeight(CDC* pDC, CXTPReportColumn* pColumn, int nTotalWidth = 0);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws multi-line text (keeping hyperlinks active).
|
||
|
// Parameters:
|
||
|
// pDrawArgs - Pointer to structure with drawing arguments.
|
||
|
// strText - String of text.
|
||
|
// rcItem - Item area rectangle coordinates.
|
||
|
// bWordBreak - Whether to break the line by words. If FALSE - only new line characters force new lines.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawMultiLineText(
|
||
|
XTP_REPORTRECORDITEM_DRAWARGS *pDrawArgs,
|
||
|
XTP_REPORTRECORDITEM_METRICS *pMetrics,
|
||
|
const CString& strText,
|
||
|
CRect rcItem, BOOL bWordBreak = TRUE);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws single-line text (keeping hyperlinks active).
|
||
|
// Parameters:
|
||
|
// pDrawArgs - Pointer to structure with drawing arguments.
|
||
|
// strText - String of text.
|
||
|
// rcItem - Item area rectangle coordinates.
|
||
|
// nStartPos - Start position in strText.
|
||
|
// nEndPos - End position in strText.
|
||
|
// nActualWidth - Width of text to be drawn.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual void DrawSingleLineText(
|
||
|
XTP_REPORTRECORDITEM_DRAWARGS *pDrawArgs,
|
||
|
XTP_REPORTRECORDITEM_METRICS *pMetrics,
|
||
|
const CString& strText,
|
||
|
CRect rcItem, int nStartPos, int nEndPos,int nActualWidth);
|
||
|
|
||
|
public:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Calculates height of the rectangle, bounding the multiline text, when the width is fixed.
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to device context.
|
||
|
// strText - String of text.
|
||
|
// nMaxWidth - Max width of the rectangle, bounding the text.
|
||
|
// bWordBreak - Whether to break the line by words. If FALSE - only new line characters can increase the row height.
|
||
|
// Returns:
|
||
|
// Necessary height to draw the multiline text.
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int CalculateRowHeight(CDC* pDC, const CString& strText, int nMaxWidth, BOOL bWordBreak = TRUE);
|
||
|
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
virtual CRect CalculateMaxTextRect(CDC* pDC, const CString& strText, const CRect& rcMaxRect,
|
||
|
BOOL bWordBreak = TRUE, BOOL bLimitSize = TRUE, UINT uiFlags = 0);
|
||
|
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
protected:
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draw hyperlink string using hyperlinks text settings (removing blanks).
|
||
|
// Parameters:
|
||
|
// pnCurrDrawPos - pointer to current drawing position (is updated after each call of function)
|
||
|
// pDrawArgs - pointer to structure with drawing arguments
|
||
|
// pHyperlink - pointer to hyperlink object
|
||
|
// strText - string of text
|
||
|
// rcLink - link hot spot area rectangle coordinates
|
||
|
// nFlag - Flag can allow next values:
|
||
|
// DT_END_ELLIPSIS - truncate text by ellipses
|
||
|
// DT_WORDBREAK - - truncate text by word end
|
||
|
// bTrim - whether to trim the hyperlink
|
||
|
// Remarks:
|
||
|
// Its member function is internally used by DrawTextLine and draws hyperlink
|
||
|
// chunk of text string, updates hyperlink's hot spot.
|
||
|
// If the hyperlink begins\ends with blanks, they are removed.
|
||
|
// Returns:
|
||
|
// Position in CString where drawing of one link text was stopped
|
||
|
//-----------------------------------------------------------------------
|
||
|
virtual int DrawLink(int* pnCurrDrawPos,
|
||
|
XTP_REPORTRECORDITEM_DRAWARGS *pDrawArgs,
|
||
|
XTP_REPORTRECORDITEM_METRICS *pMetrics,
|
||
|
CXTPReportHyperlink *pHyperlink,
|
||
|
CString strText,
|
||
|
CRect rcLink,
|
||
|
int nFlag,
|
||
|
BOOL bTrim = FALSE);
|
||
|
|
||
|
public:
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Draws the Fixed Rows divider (for ex. dividing header record rows and body rows).
|
||
|
// Parameters:
|
||
|
// pDC - Pointer to the used Device Context.
|
||
|
// rc - Rectangle coordinates.
|
||
|
// pControl - Pointer to a report control.
|
||
|
// bHeaderRows - whether the divider is under header rows or above footer rows.
|
||
|
// bVScrollBarVisible - TRUE, if vertical scrollbar is visible, FALSE otherwise.
|
||
|
//-----------------------------------------------------------------------
|
||
|
void DrawSectionDivider(CDC* pDC,
|
||
|
const CRect& rc,
|
||
|
XTPReportSectionDividerPosition dividerPosition,
|
||
|
XTPReportSectionDividerStyle dividerStyle,
|
||
|
CXTPPaintManagerColor dividerColor);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Get height of section divider.
|
||
|
// Returns:
|
||
|
// Section divider height.
|
||
|
// See Also:
|
||
|
// XTPReportFixedRowsDividerStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
int GetSectionDividerHeight(XTPReportFixedRowsDividerStyle dividerStyle);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Call this function to know whether a drop marker will be used when
|
||
|
// dragging and dropping.
|
||
|
// Returns:
|
||
|
// FALSE if no markers are used.
|
||
|
//-----------------------------------------------------------------------
|
||
|
BOOL IsUseDropMarker() const;
|
||
|
|
||
|
//private:
|
||
|
//{{AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
COLORREF MixColor(COLORREF clrLight, COLORREF clrDark, double dFactor);
|
||
|
|
||
|
void Line(CDC* pDC, int x, int y, int cx, int cy, CPen* pPen);
|
||
|
|
||
|
virtual void DrawTreeStructureLine(CDC* pDC, int x, int y, int cx, int cy, COLORREF clr);
|
||
|
|
||
|
virtual void ReplaceInHyperLinks(CXTPReportRecordItem* pItem, CString& rstrText, TCHAR chReplace);
|
||
|
|
||
|
//}}AFX_CODEJOCK_PRIVATE
|
||
|
|
||
|
public:
|
||
|
CFont m_fontText; // Report items default text.
|
||
|
CFont m_fontBoldText; // Report items default bold text.
|
||
|
CFont m_fontCaption; // Column header caption font.
|
||
|
CFont m_fontPreview; // Column header caption font.
|
||
|
|
||
|
CXTPReportHyperlinkStyle* m_pHyperlinkStyle; // Style for links
|
||
|
CXTPReportHyperlinkStyle* m_pHyperlinkHoverStyle; // Style for hovered links
|
||
|
|
||
|
CXTPPaintManagerColor m_clrHighlight; // Background color of the highlighted row.
|
||
|
CXTPPaintManagerColor m_clrWindowText; // Report items default text color.
|
||
|
CXTPPaintManagerColor m_clrHighlightText; // Text color of the highlighted text.
|
||
|
CXTPPaintManagerColor m_clrHeaderControl; // Background color of the report header.
|
||
|
CXTPPaintManagerColor m_clrCaptionText; // Column header text color.
|
||
|
CXTPPaintManagerColor m_clrControlBack; // Background color of the control report area.
|
||
|
CXTPPaintManagerColor m_clrGroupRowText; // Row text color.
|
||
|
CXTPPaintManagerColor m_clrGroupShadeBack; // Group row background color when indentation shade is enabled.
|
||
|
CXTPPaintManagerColor m_clrGroupShadeText; // Group row foreground color when indentation shade is enabled.
|
||
|
CXTPPaintManagerColor m_clrGroupShadeBorder;// Color for group border's shade.
|
||
|
|
||
|
CXTPPaintManagerColor m_clrGroupBoxBack; // Color of group box.
|
||
|
CXTPPaintManagerColor m_clrControlDark; // Dark background color of the report control (used on Group By area).
|
||
|
CXTPPaintManagerColor m_clrControlLightLight;// Light background color used for drawing shades (used on column header area).
|
||
|
CXTPPaintManagerColor m_clrHotDivider; // Color of the column hot divider window (2 arrows).
|
||
|
CXTPPaintManagerColor m_clrIndentControl; // Color of the tree indentation area.
|
||
|
CXTPPaintManagerColor m_clrItemShade; // Color of the shade on sorted by column items.
|
||
|
CXTPPaintManagerColor m_clrBtnFace; // Standard button face color.
|
||
|
CXTPPaintManagerColor m_clrBtnText; // Standard button text color.
|
||
|
CXTPPaintManagerColor m_clrPreviewText; // Preview text color.
|
||
|
CXTPPaintManagerColor m_clrSelectedRow; // Selected row background color.
|
||
|
CXTPPaintManagerColor m_clrSelectedRowText; // Selected row text color.
|
||
|
|
||
|
|
||
|
#if XTP_REPORT_DEPRECATED()
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Get style of header divider line.
|
||
|
// Returns:
|
||
|
// A value from enum XTPReportFixedRowsDividerStyle.
|
||
|
// See Also:
|
||
|
// XTPReportFixedRowsDividerStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPReportFixedRowsDividerStyle GetHeaderRowsDividerStyle() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Set style of header divider line.
|
||
|
// Parameters:
|
||
|
// nStyle - A value from enum XTPReportFixedRowsDividerStyle.
|
||
|
// See Also:
|
||
|
// XTPReportFixedRowsDividerStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetHeaderRowsDividerStyle(XTPReportFixedRowsDividerStyle style);
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Get style of footer divider line.
|
||
|
// Returns:
|
||
|
// A value from enum XTPReportFixedRowsDividerStyle.
|
||
|
// See Also:
|
||
|
// XTPReportFixedRowsDividerStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
XTPReportFixedRowsDividerStyle GetFooterRowsDividerStyle() const;
|
||
|
|
||
|
//-----------------------------------------------------------------------
|
||
|
// Summary:
|
||
|
// Set style of footer divider line.
|
||
|
// Parameters:
|
||
|
// nStyle - A value from enum XTPReportFixedRowsDividerStyle.
|
||
|
// See Also:
|
||
|
// XTPReportFixedRowsDividerStyle
|
||
|
//-----------------------------------------------------------------------
|
||
|
void SetFooterRowsDividerStyle(XTPReportFixedRowsDividerStyle style);
|
||
|
|
||
|
__declspec(property(
|
||
|
get=GetHeaderRowsDividerStyle,
|
||
|
put=SetHeaderRowsDividerStyle)
|
||
|
) XTPReportFixedRowsDividerStyle m_HeaderRowsDividerStyle; // Style of a divider line between the header and body rows.
|
||
|
|
||
|
__declspec(property(
|
||
|
get=GetFooterRowsDividerStyle,
|
||
|
put=SetFooterRowsDividerStyle)
|
||
|
) XTPReportFixedRowsDividerStyle m_FooterRowsDividerStyle; // Style of a divider line between the footer and body rows.
|
||
|
|
||
|
#endif // XTP_REPORT_DEPRECATED()
|
||
|
|
||
|
#if XTP_REPORT_DEPRECATED()
|
||
|
|
||
|
CXTPPaintManagerColor GetHeaderRowsDividerColor() const;
|
||
|
void SetHeaderRowsDividerColor(CXTPPaintManagerColor clrDivider);
|
||
|
|
||
|
CXTPPaintManagerColor GetFooterRowsDividerColor() const;
|
||
|
void SetFooterRowsDividerColor(CXTPPaintManagerColor clrDivider);
|
||
|
|
||
|
__declspec(property(
|
||
|
get=GetHeaderRowsDividerColor,
|
||
|
put=SetHeaderRowsDividerColor)
|
||
|
) CXTPPaintManagerColor m_clrHeaderRowsDivider;
|
||
|
|
||
|
__declspec(property(
|
||
|
get=GetFooterRowsDividerColor,
|
||
|
put=SetFooterRowsDividerColor)
|
||
|
) CXTPPaintManagerColor m_clrFooterRowsDivider;
|
||
|
|
||
|
__declspec(property(
|
||
|
get=GetGridColor,
|
||
|
put=SetGridColor)
|
||
|
) COLORREF m_clrGridLine;
|
||
|
#endif
|
||
|
|
||
|
CXTPPaintManagerColorGradient m_grcGradientColumn; // Color of column used with xtpReportColumnOffice2003 style
|
||
|
CXTPPaintManagerColorGradient m_grcGradientColumnHot; // HotTracking Color of column used with xtpReportColumnOffice2003 style
|
||
|
CXTPPaintManagerColorGradient m_grcGradientColumnPushed; // Pushed Color of column used with xtpReportColumnOffice2003 style
|
||
|
CXTPPaintManagerColor m_clrGradientColumnShadow; // Bottom shadow of column used with xtpReportColumnOffice2003 style
|
||
|
CXTPPaintManagerColor m_clrGradientColumnSeparator; // Separator of column used with xtpReportColumnOffice2003 style
|
||
|
CXTPPaintManagerColor m_crlNoGroupByText; // A color for "No items" text in GroupBy area (see m_strNoGroupBy member)
|
||
|
CXTPPaintManagerColor m_clrFreezeColsDivider; // Freeze Columns Divider color.
|
||
|
COLORREF m_clrColumnOffice2007CustomTheme; // Base color for Office2007 custom theme.
|
||
|
|
||
|
COLORREF m_clrFormulaSum; // Color for Formula Sum fields
|
||
|
COLORREF m_clrFormulaSubSum; // Color for Formula SubSum fields
|
||
|
|
||
|
COLORREF m_clrAlternativeBackground; // Color for Alternative Row Background
|
||
|
BOOL m_bUseAlternativeBackground; // Flag to use for Alternative Row Background
|
||
|
BOOL m_bAllowMergeCells; // Flag to Allow or not Merge Cells
|
||
|
|
||
|
int m_nTextIndentForGroupRowsWithNoIcon; // Specifies Text indent if a group row icon is not used
|
||
|
|
||
|
int m_nTreeIndent; // Tree indentation.
|
||
|
int m_nTreeStructureStyle; // Tree structure style.
|
||
|
int m_nTreeTextIndentRowParent; // Text indent in pixels for rows with children
|
||
|
int m_nTreeTextIndentRowChildren; // Text indent in pixels for rows without children
|
||
|
int m_nTreeTextIndentGroupRow; // Text indent in pixels for group rows
|
||
|
|
||
|
BOOL m_bGroupRowTextBold; // TRUE to draw group rows with bold text.
|
||
|
|
||
|
|
||
|
BOOL m_bShadeGroupHeadings; // Show or not show the indentation shade.
|
||
|
BOOL m_bShadeSortColumn; // Show or not show the items shade in the sorted by column.
|
||
|
BOOL m_bHotTracking; // TRUE to allow column hot tracking
|
||
|
BOOL m_bInvertColumnOnClick; // TRUE to invert column on click
|
||
|
|
||
|
CString m_strNoItems; // A string which contains customized "No Items" text for displaying in view when there are no visible rows.
|
||
|
CString m_strSortBy; // A string which contains customized "Sort By" text for displaying in tooltip
|
||
|
CString m_strIncreasing; // A string which contains customized "Increasing" text for displaying in tooltip
|
||
|
CString m_strDecreasing; // A string which contains customized "Decreasing" text for displaying in tooltip
|
||
|
CString m_strNoGroupBy; // A string which contains customized "No items" text message for displaying in Group By area when there are no items inside it.
|
||
|
CString m_strNoFieldsAvailable; // A string which contains customized "No Fields Available" text message for displaying in Field Chooser.
|
||
|
CString m_strExpand; // A string which contains customized "Expand" text for displaying in tooltip
|
||
|
CString m_strCollapse; // A string which contains customized "Collapse" text for displaying in tooltip
|
||
|
BOOL m_bHideSelection; // TRUE when hiding report control's selection by drawing selected items as others, FALSE otherwise.
|
||
|
BOOL m_bPrintSortTriangle; //If true - show sort triangle in printout also
|
||
|
XTPReportDrawSortTriangleStyle m_DrawSortTriangleStyle;
|
||
|
//xtpReportDrawSortTriangleAlways - the sort triangle displayed in column header when a column is sorted and
|
||
|
//the caption will cut will ellipsis
|
||
|
//xtpReportDrawSortTriangleDefault - the triangle will be removed when the column size is too small to display
|
||
|
//the full caption and triangle
|
||
|
//xtpReportDrawSortTriangleNever - the sort triangle never used
|
||
|
BOOL m_bUseColumnTextAlignment; // TRUE to draw caption text accordingly to its alignment
|
||
|
|
||
|
BOOL m_bRevertAlignment; // TRUE to revert column alignments
|
||
|
BOOL m_bUseEditTextAlignment; // TRUE to automatically apply edit alignment using column alignment
|
||
|
|
||
|
BOOL m_bShowLockIcon; //TRUE to show the lock icon FALSE to hide.
|
||
|
BOOL m_bUseShellIcon; //TRUE to use the shell icon FALSE else.
|
||
|
int m_iRecOrRowStart; //start position in numbering (0 or 1 or something user want)
|
||
|
BOOL m_bRecOrRowNum; // flag for Record (TRUE) or Row (FALSE) number to display if supported mode used
|
||
|
|
||
|
|
||
|
XTPReportTreeStructureStyle m_treeStructureStyle; // Tree structure style
|
||
|
|
||
|
CRect m_rcPreviewIndent; // Preview indentation.
|
||
|
int m_nFixedColumnsIndent; // Fixed Column total width.
|
||
|
BOOL m_bMoveScrollbarOnFixedColumnsIndent; //Move Scrollbar right follow FixedColumnsIndent
|
||
|
|
||
|
BOOL m_bThemedInplaceButtons; // Draw in-place buttons using current theme settings.
|
||
|
BOOL m_bBaseTreeIndent; // Flag to add Extra Tree indentation to cover initial TreeColumn.
|
||
|
|
||
|
CUIntArray m_arStartCol; //hold start column in each virtual page
|
||
|
|
||
|
int m_PrintPageWidth; //width of print page (run-time)
|
||
|
BOOL m_bPrintVirtualPageNumber; //print horizontal page #
|
||
|
BOOL m_bPrintPageRectangle; //flag to draw rectangle around page
|
||
|
int m_RecordNumberWidth; //column width for row / record numbers
|
||
|
BOOL m_bForceDynamicMarkupForCell; // TRUE if use Markup for Report Record Item
|
||
|
BOOL m_bForceShowDropMarker; // TRUE if Force Show Drop Marker
|
||
|
//used to support external (OLE) drag & drop handler and take care of drop marker line drawing and auto-scrolling
|
||
|
BOOL m_bShowNonActiveInPlaceButton; // TRUE if use Show NonActive InPlace Button (Combo, Expand, Spin)
|
||
|
BOOL m_bPrintWatermark; //flag to print watermark
|
||
|
BOOL m_bUseGroupRowSelectionState; // TRUE if use GroupSelectionState Glyph
|
||
|
BOOL m_bForceShowTooltip; // TRUE if use show tooltip for any cell width case
|
||
|
BOOL m_bCleanTooltip; // TRUE if use show tooltip without markup
|
||
|
BOOL m_bGrayIfDisable; //TRUE is disable draw in gray (standard behavior)
|
||
|
int m_nRowHeightDefault; //The default row height.
|
||
|
BOOL m_bCompactText; // Flag to ignore Icon for Narrow column to show more text
|
||
|
|
||
|
BOOL m_bUseDropMarker; // FALSE to not draw drop marked when dragging\dropping, TRUE by default
|
||
|
BOOL m_bSortTriangleOffsetFromRight; // Offset of sort triangle
|
||
|
int m_nTreeColumnLineLength; // This is the extra line length to apply to tree column lines if there is no expand button
|
||
|
int m_nBaseParentRecordIndent; // This is initial number of pixels a parent node will be indented when in a group
|
||
|
|
||
|
|
||
|
protected:
|
||
|
|
||
|
int m_nRowHeight; // Report row default height.
|
||
|
int m_nHeaderHeight; // Column header height.
|
||
|
int m_nFooterHeight; // Column footer height.
|
||
|
int m_nGroupGridLineHeight; // The height of the group grid line.
|
||
|
|
||
|
CXTPImageManager* m_pGlyphs; // Contains an additional image list for report control
|
||
|
BOOL m_bIsPreviewMode; // Show or not show the item preview.
|
||
|
int m_nResizingWidth; // The width of the column resizing marker area.
|
||
|
int m_nMaxPreviewLines; // Restrict maximum lines for preview text
|
||
|
CSize m_szGlyph; // Glyph size
|
||
|
CBrush m_brushTreeStructure; // Stores brush to draw tree nodes
|
||
|
CBrush m_brushGroupGridLineStyle; // Stores brush to draw group row grid lines
|
||
|
|
||
|
int m_nFreezeColsDividerStyle; // A set of flags from XTPReportFreezeColsDividerStyle
|
||
|
|
||
|
BOOL m_bFixedRowHeight; // TRUE if fixed rows used.
|
||
|
BOOL m_bColumnWidthWYSIWYG; // TRUE if columns width WYSIWYG mode used.
|
||
|
BOOL m_bShowWYSIWYGMarkers; // TRUE if in non-print mode header show red page-end markers
|
||
|
BOOL m_bLastColumnWidthWYSIWYG; // TRUE if last column width WYSIWYG mode used.
|
||
|
BOOL m_bDrawGridForEmptySpace; // TRUE if grid fills the empty space (if any) after the body rows.
|
||
|
BOOL m_bPrintGroupRowIcon; // TRUE if printout draw collapse-expand icon for group row
|
||
|
BOOL m_bColumnPlusMinusSign; // TRUE if use Expand/Collapse icon, FALSE if use DirectionalArrows
|
||
|
|
||
|
BOOL m_bFixedInplaceButtonHeight; // TRUE if fixed In place Buttons height used.
|
||
|
|
||
|
XTPReportGridStyle m_nGroupGridLineStyle; // Stores current style for group row grid lines
|
||
|
XTPReportColumnStyle m_columnStyle; // Contains column drawing style.
|
||
|
|
||
|
CXTPReportBorder *m_pBorder;
|
||
|
|
||
|
CXTPWinThemeWrapper *m_themeHeader; // Header theme wrapper.
|
||
|
CXTPWinThemeWrapper *m_themeButton; // In-place button theme wrapper.
|
||
|
CXTPWinThemeWrapper *m_themeCombo; // Combo box in-place button theme wrapper.
|
||
|
CXTPWinThemeWrapper *m_themeSpin; // Spin in-place button theme wrapper.
|
||
|
|
||
|
CXTPReportControl* m_pControl; //Pointer to the report control object.
|
||
|
|
||
|
CXTPMarkupUIElement* m_pMarkupUIElement_NoGroupBy; //The no group by markup UI element.
|
||
|
CString m_strMarkupUIElement_NoGroupBy; //The no group by markup UI element string.
|
||
|
|
||
|
void DrawPattern(CDC *pDC, XTPReportLineStyle lineStyle, XTPReportOrientation orientation, CRect rcLine);
|
||
|
void CreateLineStyleBrushes();
|
||
|
CBrush m_brushDotsSmallH;
|
||
|
CBrush m_brushDotsLargeH;
|
||
|
CBrush m_brushDashH;
|
||
|
CBrush m_brushDotsSmallV;
|
||
|
CBrush m_brushDotsLargeV;
|
||
|
CBrush m_brushDashV;
|
||
|
|
||
|
CBrush m_brushVeriticalGrid; // Stores brush to draw vertical grid lines
|
||
|
CBrush m_brushHorizontalGrid; // Stores brush to draw horizontal grid lines
|
||
|
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsUseDropMarker() const
|
||
|
{
|
||
|
return m_bUseDropMarker;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE int CXTPReportPaintManager::GetHeaderHeight()
|
||
|
{
|
||
|
return m_nHeaderHeight;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::EnablePreviewMode(BOOL bIsPreviewMode)
|
||
|
{
|
||
|
m_bIsPreviewMode = bIsPreviewMode;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsPreviewMode() const
|
||
|
{
|
||
|
return m_bIsPreviewMode;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE CFont* CXTPReportPaintManager::GetTextFont()
|
||
|
{
|
||
|
return &m_fontText;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE int CXTPReportPaintManager::SetMaxPreviewLines(int nMaxLines)
|
||
|
{
|
||
|
int nOldMaxLines = m_nMaxPreviewLines;
|
||
|
m_nMaxPreviewLines = nMaxLines;
|
||
|
return nOldMaxLines;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE int CXTPReportPaintManager::GetMaxPreviewLines()
|
||
|
{
|
||
|
return m_nMaxPreviewLines;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE int CXTPReportPaintManager::GetPreviewItemHeight(CDC* /*pDC*/, CXTPReportRow* /*pRow*/, int /*nWidth*/, int nHeight)
|
||
|
{
|
||
|
return nHeight;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE CXTPImageManager* CXTPReportPaintManager::GetGlyphs() const
|
||
|
{
|
||
|
return m_pGlyphs;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsFixedRowHeight() const
|
||
|
{
|
||
|
return m_bFixedRowHeight;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetFixedRowHeight(BOOL bFixedRowHeight)
|
||
|
{
|
||
|
m_bFixedRowHeight = bFixedRowHeight;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsLastColumnWidthWYSIWYG() const
|
||
|
{
|
||
|
return m_bLastColumnWidthWYSIWYG;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsColumnWidthWYSIWYG() const
|
||
|
{
|
||
|
return m_bColumnWidthWYSIWYG;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsShowWYSIWYGMarkers() const
|
||
|
{
|
||
|
return m_bShowWYSIWYGMarkers;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::ShowWYSIWYGMarkers(BOOL bSet)
|
||
|
{
|
||
|
m_bShowWYSIWYGMarkers = bSet;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetColumnWidthWYSIWYG(BOOL bColumnWidthWYSIWYG)
|
||
|
{
|
||
|
m_bColumnWidthWYSIWYG = bColumnWidthWYSIWYG;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetLastColumnWidthWYSIWYG(BOOL bColumnWidthWYSIWYG)
|
||
|
{
|
||
|
m_bLastColumnWidthWYSIWYG = bColumnWidthWYSIWYG;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsFixedInplaceButtonHeight() const
|
||
|
{
|
||
|
return m_bFixedInplaceButtonHeight;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetInplaceButtonHeight(BOOL bFixedInplaceButtonHeight)
|
||
|
{
|
||
|
m_bFixedInplaceButtonHeight= bFixedInplaceButtonHeight;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE int CXTPReportPaintManager::GetFreezeColsDividerStyle() const
|
||
|
{
|
||
|
return m_nFreezeColsDividerStyle;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetFreezeColsDividerStyle(int nStyle)
|
||
|
{
|
||
|
m_nFreezeColsDividerStyle = nStyle;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE COLORREF CXTPReportPaintManager::MixColor(COLORREF clrLight, COLORREF clrDark, double dFactor)
|
||
|
{
|
||
|
return RGB(GetRValue(clrLight) - dFactor * (GetRValue(clrLight) - GetRValue(clrDark)),
|
||
|
GetGValue(clrLight) - dFactor * (GetGValue(clrLight) - GetGValue(clrDark)),
|
||
|
GetBValue(clrLight) - dFactor * (GetBValue(clrLight) - GetBValue(clrDark)));
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::Line(CDC *pDC, int x, int y, int cx, int cy, CPen *pPen)
|
||
|
{
|
||
|
CPen *pOldPen = pDC->SelectObject(pPen);
|
||
|
pDC->MoveTo(x, y);
|
||
|
pDC->LineTo(x + cx, y + cy);
|
||
|
pDC->SelectObject(pOldPen);
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::OnDrawAction(XTP_REPORTRECORDITEM_DRAWARGS *pDrawArgs)
|
||
|
{
|
||
|
UNREFERENCED_PARAMETER(pDrawArgs);
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE XTPReportColumnStyle CXTPReportPaintManager::GetColumnStyle() const
|
||
|
{
|
||
|
return m_columnStyle;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsColumnPlusMinusSign() const
|
||
|
{
|
||
|
return m_bColumnPlusMinusSign;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetColumnPlusMinusSign(BOOL bDraw)
|
||
|
{
|
||
|
m_bColumnPlusMinusSign = bDraw;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsPrintGroupRowIcon() const
|
||
|
{
|
||
|
return m_bPrintGroupRowIcon;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetPrintGroupRowIcon(BOOL bDraw)
|
||
|
{
|
||
|
m_bPrintGroupRowIcon = bDraw;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE BOOL CXTPReportPaintManager::IsDrawGridForEmptySpace() const
|
||
|
{
|
||
|
return m_bDrawGridForEmptySpace;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetDrawGridForEmptySpace(BOOL bDrawGrid)
|
||
|
{
|
||
|
m_bDrawGridForEmptySpace = bDrawGrid;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetColumnOffice2007CustomThemeBaseColor(COLORREF clrBaseColor)
|
||
|
{
|
||
|
m_clrColumnOffice2007CustomTheme = clrBaseColor;
|
||
|
RefreshMetrics();
|
||
|
}
|
||
|
|
||
|
AFX_INLINE COLORREF CXTPReportPaintManager::GetColumnOffice2007CustomThemeBaseColor() const
|
||
|
{
|
||
|
return m_clrColumnOffice2007CustomTheme;
|
||
|
}
|
||
|
|
||
|
AFX_INLINE void CXTPReportPaintManager::SetReportControl(CXTPReportControl *pControl)
|
||
|
{
|
||
|
m_pControl = pControl;
|
||
|
}
|
||
|
|
||
|
|
||
|
#define m_bDrawSortTriangleAlways m_bPrintSortTriangle
|
||
|
|
||
|
#endif //#if !defined(__XTPREPORTPAINTMANAGER_H__)
|