//---------------------------------------------------------------------------- // ObjectWindows // (C) Copyright 1992, 1994 by Borland International, All Rights Reserved // // Definition of print preview classes //---------------------------------------------------------------------------- #if !defined(OWL_PREVIEW_H) #define OWL_PREVIEW_H #if !defined(OWL_WINDOW_H) # include #endif #if !defined(OWL_DC_H) # include #endif class _OWLCLASS TPrintout; class _OWLCLASS TPrinter; // // class TPreviewPage // ----- ------------ // class _OWLCLASS TPreviewPage : public TWindow { public: TPreviewPage(TWindow* parent, TPrintout& printout, TPrintDC& prndc, TSize& printExtent, int pagenum = 1); void SetPageNumber(int newNum) {PageNum = newNum; if (HWindow) Invalidate();} void Paint(TDC& dc, bool, TRect& clip); protected: int PageNum; TSize PrintExtent; TPrintout& Printout; TPrintDC& PrintDC; void EvSize(uint sizeType, TSize& size); DECLARE_RESPONSE_TABLE(TPreviewPage); DECLARE_CASTABLE; }; // // class TPrintPreviewDC // ----- --------------- // class _OWLCLASS TPrintPreviewDC : public TPrintDC { public: TPrintPreviewDC(TDC& screen, TPrintDC& printdc, const TRect& client, const TRect& clip); ~TPrintPreviewDC(); // // override virtual TDC select & restore functions // void SelectObject(const TFont& newFont); void SelectStockObject(int index); void RestoreFont(); int GetDeviceCaps(int index) const; // // Dual DC synchronizing functions // virtual void SyncFont(); virtual void ReScale(); virtual void ReOrg(); // // override virtual TDC color matching functions // TColor SetBkColor(TColor color); TColor SetTextColor(TColor color); // // override virtual TDC viewport & window mapping functions // int SetMapMode(int mode); bool SetViewportOrg(const TPoint& origin, TPoint far* oldOrg=0); bool OffsetViewportOrg(const TPoint& delta, TPoint far* oldOrg=0); bool SetViewportExt(const TSize& extent, TSize far* oldExtent=0); bool ScaleViewportExt(int xNum, int xDenom, int yNum, int yDenom, TSize far* oldExtent=0); bool SetWindowExt(const TSize& extent, TSize far* oldExtent=0); bool ScaleWindowExt(int xNum, int xDenom, int yNum, int yDenom, TSize far* oldExtent=0); // // Screen device point to Logical point conversions // bool SDPtoLP(TPoint* points, int count = 1) const; bool SDPtoLP(TRect& rect) const; bool LPtoSDP(TPoint* points, int count = 1) const; bool LPtoSDP(TRect& rect) const; protected: HFONT PrnFont; // Handle of current font in the printer dc TPrintDC& PrnDC; // DC for the printer we are previewing TFont* CurrentPreviewFont; // font object in PrnDC used during preview HDC GetAttributeHDC() const; }; inline bool TPrintPreviewDC::SDPtoLP(TPoint* points, int count) const { return ::DPtoLP(HDC(Handle), points, count); } inline bool TPrintPreviewDC::SDPtoLP(TRect& rect) const { return SDPtoLP(rect, 2); } inline bool TPrintPreviewDC::LPtoSDP(TPoint* points, int count) const { return ::LPtoDP(HDC(Handle), points, count); } inline bool TPrintPreviewDC::LPtoSDP(TRect& rect) const { return LPtoSDP(rect, 2); } #endif // OWL_PREVIEW_H