home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / owlinc.pak / PREVIEW.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  4KB  |  133 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // (C) Copyright 1992, 1994 by Borland International, All Rights Reserved
  4. //
  5. //   Definition of print preview classes
  6. //----------------------------------------------------------------------------
  7. #if !defined(OWL_PREVIEW_H)
  8. #define OWL_PREVIEW_H
  9.  
  10. #if !defined(OWL_WINDOW_H)
  11. # include <owl/window.h>
  12. #endif
  13.  
  14. #if !defined(OWL_DC_H)
  15. # include <owl/dc.h>
  16. #endif
  17.  
  18. class _OWLCLASS TPrintout;
  19. class _OWLCLASS TPrinter;
  20.  
  21. //
  22. // class TPreviewPage
  23. // ----- ------------
  24. //
  25. class _OWLCLASS TPreviewPage : public TWindow {
  26.   public:
  27.     TPreviewPage(TWindow*   parent,
  28.                  TPrintout& printout,
  29.                  TPrintDC&  prndc,
  30.                  TSize&     printExtent,
  31.                  int        pagenum = 1);
  32.  
  33.     void  SetPageNumber(int newNum) {PageNum = newNum; if (HWindow) Invalidate();}
  34.     void  Paint(TDC& dc, bool, TRect& clip);
  35.  
  36.   protected:
  37.     int        PageNum;
  38.     TSize      PrintExtent;
  39.     TPrintout& Printout;
  40.     TPrintDC&  PrintDC;
  41.  
  42.     void  EvSize(uint sizeType, TSize& size);
  43.  
  44.   DECLARE_RESPONSE_TABLE(TPreviewPage);
  45.   DECLARE_CASTABLE;
  46. };
  47.  
  48. //
  49. // class TPrintPreviewDC
  50. // ----- ---------------
  51. //
  52. class _OWLCLASS TPrintPreviewDC : public TPrintDC {
  53.   public:
  54.     TPrintPreviewDC(TDC&         screen,
  55.                     TPrintDC&    printdc,
  56.                     const TRect& client,
  57.                     const TRect& clip);
  58.    ~TPrintPreviewDC();
  59.  
  60.     //
  61.     // override virtual TDC select & restore functions
  62.     //
  63.     void  SelectObject(const TFont& newFont);
  64.     void  SelectStockObject(int index);
  65.     void  RestoreFont();
  66.     int   GetDeviceCaps(int index) const;
  67.  
  68.     //
  69.     // Dual DC synchronizing functions
  70.     //
  71.     virtual void SyncFont();
  72.     virtual void ReScale();
  73.     virtual void ReOrg();
  74.  
  75.     //
  76.     // override virtual TDC color matching functions
  77.     //
  78.     TColor  SetBkColor(TColor color);
  79.     TColor  SetTextColor(TColor color);
  80.  
  81.     //
  82.     // override virtual TDC viewport & window mapping functions
  83.     //
  84.     int   SetMapMode(int mode);
  85.     bool  SetViewportOrg(const TPoint& origin, TPoint far* oldOrg=0);
  86.     bool  OffsetViewportOrg(const TPoint& delta, TPoint far* oldOrg=0);
  87.  
  88.     bool  SetViewportExt(const TSize& extent, TSize far* oldExtent=0);
  89.     bool  ScaleViewportExt(int xNum, int xDenom, int yNum, int yDenom,
  90.                            TSize far* oldExtent=0);
  91.  
  92.     bool  SetWindowExt(const TSize& extent, TSize far* oldExtent=0);
  93.     bool  ScaleWindowExt(int xNum, int xDenom, int yNum, int yDenom,
  94.                          TSize far* oldExtent=0);
  95.  
  96.     //
  97.     // Screen device point to Logical point conversions
  98.     //
  99.     bool  SDPtoLP(TPoint* points, int count = 1) const;
  100.     bool  SDPtoLP(TRect& rect) const;
  101.     bool  LPtoSDP(TPoint* points, int count = 1) const;
  102.     bool  LPtoSDP(TRect& rect) const;
  103.  
  104.   protected:
  105.     HFONT     PrnFont;              // Handle of current font in the printer dc
  106.     TPrintDC& PrnDC;                // DC for the printer we are previewing
  107.     TFont*    CurrentPreviewFont;   // font object in PrnDC used during preview
  108.  
  109.     HDC   GetAttributeHDC() const;
  110. };
  111.  
  112. inline bool
  113. TPrintPreviewDC::SDPtoLP(TPoint* points, int count) const {
  114.   return ::DPtoLP(HDC(Handle), points, count);
  115. }
  116.  
  117. inline bool
  118. TPrintPreviewDC::SDPtoLP(TRect& rect) const {
  119.   return SDPtoLP(rect, 2);
  120. }
  121.  
  122. inline bool
  123. TPrintPreviewDC::LPtoSDP(TPoint* points, int count) const {
  124.   return ::LPtoDP(HDC(Handle), points, count);
  125. }
  126.  
  127. inline bool
  128. TPrintPreviewDC::LPtoSDP(TRect& rect) const {
  129.   return LPtoSDP(rect, 2);
  130. }
  131.  
  132. #endif  // OWL_PREVIEW_H
  133.