canvas.h
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:5k
- /*
- * canvas.h
- *
- * Canvas ancestor class.
- *
- * Portable Windows Library
- *
- * Copyright (c) 1993-1998 Equivalence Pty. Ltd.
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and limitations
- * under the License.
- *
- * The Original Code is Portable Windows Library.
- *
- * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
- *
- * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
- * All Rights Reserved.
- *
- * Contributor(s): ______________________________________.
- *
- * $Log: canvas.h,v $
- * Revision 1.9 1998/11/30 02:59:49 robertj
- * New directory structure
- *
- * Revision 1.8 1998/09/24 03:39:32 robertj
- * Added open software license.
- *
- * Revision 1.7 1996/08/08 10:09:27 robertj
- * Directory structure changes for common files.
- *
- * Revision 1.6 1995/01/27 11:20:37 robertj
- * Underscored library variables.
- * "Commonised" DrawRect function.
- * Fixed bugs in drawing filled shapes.
- *
- * Revision 1.5 1995/01/21 05:18:02 robertj
- * Removed redundent function.
- *
- * Revision 1.4 1994/10/30 11:37:58 robertj
- * Improved DC creation in RedrawCanvas.
- *
- * Revision 1.3 1994/10/23 05:44:45 robertj
- * Fixed DrawRect semantics so pen and fill modes are independent.
- *
- * Revision 1.2 1994/08/21 23:43:02 robertj
- * Added MakeFont() function to resolve font bootstrap on canvas creation.
- *
- * Revision 1.1 1994/04/12 08:21:52 robertj
- * Initial revision
- *
- */
- #ifndef _PCANVAS
- ///////////////////////////////////////////////////////////////////////////////
- // PCanvas
- #include "../../canvas.h"
- public:
- // Overrides from class PCanvasState
- virtual BOOL SetPenStyle(PenStyles style);
- // Set the pen style to be used by future drawing operations.
- virtual BOOL SetPenWidth(int width);
- // Set the pen width to be used by future drawing operations.
- virtual BOOL SetPenFgColour(const PColour & colour);
- // Set the pen foreground colour to be used by future drawing operations.
- virtual BOOL SetFillPattern(const PPattern & pattern);
- // Set the fill pattern to be used by future drawing operations.
- virtual BOOL SetPatternOrigin(const PPoint & pt);
- // Set the fill pattern to be used by future drawing operations.
- virtual BOOL SetFillFgColour(const PColour & colour);
- // Set the fill foreground colour to be used by future drawing operations.
- virtual BOOL SetFont(const PFont & newFont);
- // Set the font drawing tool to be used by future drawing operations.
- virtual BOOL SetPolyFillMode(PolyFillMode newMode);
- // Set the polygon fill mode to be used by future drawing operations.
- virtual BOOL SetPalette(const PPalette & newPal);
- // Set the palette drawing tool to be used by future drawing operations.
- virtual BOOL SetMappingRect(const PRect & rect);
- // Set the source rectangle to be used in the coordinate transform in
- // future drawing operations. This is a rectangle in the world
- // coordinates of the application.
- virtual BOOL SetViewportRect(const PRect & rect);
- // Set the destination rectangle to be used in the coordinate transform
- // in future drawing operations. This is a rectangle in the device
- // coordinates (pixels) of the screen, printer etc
- // New functions for class
- virtual HDC GetHDC() const;
- // Return the MS-Windows GDI Device Context.
- void SetHDC(HDC newDC);
- // Function to associate the MS-Windows GDI Device Context to the canvas
- // object.
- BOOL NullHDC() const;
- // Return TRUE if the hDC is NULL, ie not used by any OnRedraw().
- protected:
- void MakePen();
- // Make a MS-Windows GDI pen for the canvas
- void MakeBrush();
- // Make a MS-Windows GDI brush for the canvas
- void MakeFont();
- // Make a MS-Windows GDI font for the canvas
- void SetTransform();
- // Set the coordinate transforms.
- HGDIOBJ SetUpDrawModes(DrawingModes mode,
- const PColour & fg, const PColour & bg,
- HGDIOBJ restoreObj, int saveObj);
- // Set the MS-Windows GDI ROP mode, background colour & background mode.
- LPPOINT MakePOINTArray(const PPointArray & ptArray);
- LPPOINT MakePOINTArray(const PPoint * ptArray, PINDEX numPts);
- // Make an array of POINTs from parameter. Array must be deleted.
- void DrawPolyLine(LPPOINT ptArray, PINDEX numPts);
- // Draw a series of lines represented by the array of points.
- virtual void DrawPolygon(LPPOINT ptArray, PINDEX numPts);
- // Draw a closed polygon represented by the array of points.
- // Member variables
- HDC _hDC;
- // The MS-Windows GDI Device Context creates internal to the canvas.
- HPEN _hPen;
- // The MS-Windows GDI pen object
- HBRUSH _hBrush;
- // The MS-Windows GDI brush object
- HFONT _hFont;
- // The MS-Windows GDI font object
- };
- #endif