// XTPPreviewView.h : header file // // This file is a part of the XTREME TOOLKIT PRO 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(__XTPPREVIEWVIEW_H__) #define __XTPPREVIEWVIEW_H__ //}}AFX_CODEJOCK_PRIVATE #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 ///////////////////////////////////////////////////////////////////////////// // CXTPPreviewView view #define XTP_ZOOM_WHOLEPAGE 0 // Fit the entire preview page on the screen. #define XTP_ZOOM_PAGEWIDTH 1 // Fit the preview page to the width of the screen. //=========================================================================== // Summary: CXTPPreviewView is CPreviewView derived class that represents Print Preview window with themed toolBar. //=========================================================================== class _XTP_EXT_CLASS CXTPPreviewView : public CPreviewView { DECLARE_DYNCREATE(CXTPPreviewView) protected: //------------------------------------------------------------------------- // Summary: // Constructs a CXTPPreviewView object. // Parameters: // nPageCount - Number of pages to be displayed in print preview mode. // You must increase the page count to make sure there is // an entry available for each page that can be displayed. //------------------------------------------------------------------------- CXTPPreviewView(int nPageCount = 9); //----------------------------------------------------------------------- // Summary: // Destroys a CXTPPreviewView object, handles cleanup and deallocation //----------------------------------------------------------------------- virtual ~CXTPPreviewView(); public: //----------------------------------------------------------------------- // Summary: // Sets the zoom state of the preview window. // Parameters: // nNewState - Zoom state to use. Possible values (XPT_ZOOM_WHOLEPAGE, XPT_ZOOM_PAGEWIDTH) // Or you can specify an in integer that represents a percentage to zoom the page. // nPage - Page number to zoom. // point - Point on page to zoom. //----------------------------------------------------------------------- void SetZoomState(UINT nNewState, UINT nPage, CPoint point); //----------------------------------------------------------------------- // Summary: // Returns the current zoom state of the preview window. // Returns: // Current zoom state of the preview window. //----------------------------------------------------------------------- int GetZoomState() const; //{{AFX_CODEJOCK_PRIVATE private: CXTPControl* FindToolbarButton(UINT nCommandID); virtual void PositionPage(UINT nPage); void SetScaledSize(UINT nPage); void DoZoom(UINT nPage, CPoint point); CSize CalcPageDisplaySize() ; void SetupScrollbar() ; void ZoomIn(UINT nPage, CPoint point); protected: #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif //}}AFX_CODEJOCK_PRIVATE protected: //{{AFX_CODEJOCK_PRIVATE //{{AFX_VIRTUAL(CXTPPreviewView) public: void RecalLayout(); virtual BOOL PreCreateWindow(CREATESTRUCT& cs); //}}AFX_VIRTUAL //{{AFX_MSG(CXTPPreviewView) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos); afx_msg void OnPaint(); afx_msg BOOL OnEraseBkgnd(CDC*); afx_msg void OnNumPageChange(); afx_msg void OnZoomIn(); afx_msg void OnZoomOut(); afx_msg void OnUpdateNumPageChange(CCmdUI* pCmdUI); afx_msg void OnUpdateZoomIn(CCmdUI* pCmdUI); afx_msg void OnUpdateZoomOut(CCmdUI* pCmdUI); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); afx_msg void OnPreviewPages(); afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) ; afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnGotoPageSetFocus(NMHDR* pNMHDR, LRESULT* pRes); afx_msg void OnGotoPageKillFocus(NMHDR* pNMHDR, LRESULT* pRes); afx_msg void OnUpdateGotoPage(CCmdUI* pCmdUI); afx_msg void OnZoomCombo(NMHDR* pNMHDR, LRESULT* pRes); afx_msg void OnOnePage(); afx_msg void OnTwoPage(NMHDR* pNMHDR, LRESULT* pRes); //}}AFX_MSG DECLARE_MESSAGE_MAP() //}}AFX_CODEJOCK_PRIVATE protected: PAGE_INFO* m_pPageInfo2; // Embedded array for the default implementation - replaces MFC one of size 2! CXTPToolBar* m_pCommandBar; // Pointer to the "built-in" print preview toolbar. int m_cxPixelsPerInch; // Width of pixels in preview mode. int m_cyPixelsPerInch; // Height of pixels in preview mode. // these variables are used in the page layout algorithm int m_Across ; // number across the page, >= 1 int m_Down ; // number down the page, >= 1 CPoint m_PageOffset; // amount to move the page from one position to the next COLORREF m_clrBackColor; }; AFX_INLINE int CXTPPreviewView::GetZoomState() const { return m_nZoomState; } #endif // !defined(__XTPPREVIEWVIEW_H__)