diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
commit | 8362bf63dea22bbf6736609b0f49c152f975eb63 (patch) | |
tree | 0eea3928e39e50fae91d4e68b21b1e6cbae25604 /lib/kwmf/kowmfwrite.h | |
download | koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip |
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'lib/kwmf/kowmfwrite.h')
-rw-r--r-- | lib/kwmf/kowmfwrite.h | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/lib/kwmf/kowmfwrite.h b/lib/kwmf/kowmfwrite.h new file mode 100644 index 00000000..1063ef76 --- /dev/null +++ b/lib/kwmf/kowmfwrite.h @@ -0,0 +1,142 @@ +/* This file is part of the KDE libraries + Copyright (c) 2003 thierry lorthiois ([email protected]) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ +#ifndef _KOWMFWRITE_H_ +#define _KOWMFWRITE_H_ + +#include <qpen.h> +#include <qbrush.h> +#include <qcolor.h> +#include <qfont.h> +#include <qrect.h> +#include <qbuffer.h> +#include <qregion.h> +#include <qstring.h> +#include <qwmatrix.h> +#include <qimage.h> +#include <qptrlist.h> +#include <qpointarray.h> +#include <koffice_export.h> +class KoWmfWritePrivate; + +/** + * KoWmfWrite allows to create a windows placeable meta file (WMF). + * Most of the functions are compatible with QPainter format. + * + * sample of utilization: + * <pre> + * KoWmfWrite wmf("/home/test.wmf"); + * wmf.begin(); + * wmf.setWindow(0, 0, 200, 200); + * wmf.drawRect(10, 20, 50, 120); + * wmf.end(); + * </pre> + */ +class KOWMF_EXPORT KoWmfWrite +{ +public: + KoWmfWrite( const QString& fileName ); + virtual ~KoWmfWrite(); + + + // ------------------------------------------------------------------------- + // virtual Painter + // for a good documentation : check QPainter documentation + /** + * Open the file. Returns true on success. + */ + bool begin(); + /** + * Close the file. Returns true on success. + */ + bool end(); + void save(); + void restore(); + + /** + * Placeable WMF's use logical coordinates and have a default DPI. + * This function set the dot per inch ratio. + * If not specified the dpi is 1024. + */ + void setDefaultDpi( int dpi ); + + // Drawing tools + void setFont( const QFont& f ); + // the width of the pen is in logical coordinate + void setPen( const QPen& p ); + void setBrush( const QBrush& b ); + + // Drawing attributes/modes + void setBackgroundColor( const QColor& r ); + void setBackgroundMode( Qt::BGMode ); + void setRasterOp( Qt::RasterOp ); + + // Change logical Coordinate + void setWindow( int left, int top , int width, int height ); + + // Clipping + // the 'CoordinateMode' parameter is ommitted : always CoordPainter in wmf + // not yet implemented + void setClipRegion( const QRegion& r ); + void clipping( bool enable ); + + // Graphics drawing functions + void moveTo( int left, int top ); + void lineTo( int left, int top ); + void drawRect( int left, int top, int width, int height ); + void drawRoundRect( int left, int top, int width, int height, int = 25, int = 25 ); + void drawEllipse( int left, int top, int width, int height ); + void drawArc( int left, int top, int width, int height, int a, int alen ); + void drawPie( int left, int top, int width, int height, int a, int alen ); + void drawChord( int left, int top, int width, int height, int a, int alen ); + void drawPolyline( const QPointArray& pa ); + void drawPolygon( const QPointArray& pa, bool winding=FALSE ); + // drawPolyPolygon draw the XOR of a list of polygons + // listPa : list of polygons + void drawPolyPolygon( QPtrList<QPointArray>& listPa, bool winding=FALSE ); + void drawImage( int left, int top, const QImage &, int sx = 0, int sy = 0, int sw = -1, int sh = -1 ); + + // Text drawing functions + // rotation = the degrees of rotation in counterclockwise + // not yet implemented + void drawText( int x, int y, int w, int h, int flags, const QString &s, double rotation ); + +private: + //----------------------------------------------------------------------------- + // Utilities and conversion Qt --> Wmf + + /** Convert QPointArray into Q_INT16 position (result in mSt) */ + void pointArray( const QPointArray& pa ); + + /** Convertion between windows color and QColor */ + Q_UINT32 winColor( QColor color ); + + /** Convert angle a and alen in coordinate (xStart,yStart) and (xEnd, yEnd) */ + void angleToxy( int& xStart, int& yStart, int& xEnd, int& yEnd, int a, int alen ); + + /** Convert windows rasterOp in QT rasterOp */ + Q_UINT16 qtRasterToWin16( Qt::RasterOp op ) const; + Q_UINT32 qtRasterToWin32( Qt::RasterOp op ) const; + + +private: + KoWmfWritePrivate *d; + +}; + +#endif + |