diff options
Diffstat (limited to 'kooka/kookaprint.h')
-rw-r--r-- | kooka/kookaprint.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/kooka/kookaprint.h b/kooka/kookaprint.h new file mode 100644 index 00000000..5f87d973 --- /dev/null +++ b/kooka/kookaprint.h @@ -0,0 +1,95 @@ +/*************************************************************************** + kookaprint.h - Printing from the gallery + ------------------- + begin : Tue May 13 2003 + copyright : (C) 1999 by Klaas Freitag + email : [email protected] + ***************************************************************************/ + +/*************************************************************************** + * * + * This file may be distributed and/or modified under the terms of the * + * GNU General Public License version 2 as published by the Free Software * + * Foundation and appearing in the file COPYING included in the * + * packaging of this file. * + * + * As a special exception, permission is given to link this program * + * with any version of the KADMOS ocr/icr engine of reRecognition GmbH, * + * Kreuzlingen and distribute the resulting executable without * + * including the source code for KADMOS in the source distribution. * + * + * As a special exception, permission is given to link this program * + * with any edition of Qt, and distribute the resulting executable, * + * without including the source code for Qt in the source distribution. * + * * + ***************************************************************************/ + +#ifndef __KOOKA_PRINT_H__ +#define __KOOKA_PRINT_H__ + +#include <qobject.h> +#include <qmap.h> +#include <qstring.h> +#include <kprinter.h> +#include <kdeprint/kprintdialogpage.h> + +class KookaImage; +class KPrinter; +class QPainter; +class KLineEdit; + + +class ImageSettings : public KPrintDialogPage +{ +public: + void setOptions( const QMap<QString, QString>& opts ); + void getOptions( QMap<QString, QString>& opts, bool include_def = false ); + bool isValid( QString& msg ); + +private: + KLineEdit *m_width, *m_height; + +}; + + +class KookaPrint:public QObject +{ + Q_OBJECT +public: + KookaPrint(KPrinter*); + + /** + * The top left edge of the required print position + */ + virtual QPoint printPosTopLeft(const QSize&) const; + virtual QPoint printPosTopRight(const QSize&) const; + virtual QPoint printPosBottomLeft(const QSize&) const; + virtual QPoint printPosBottomRight(const QSize&) const; + + virtual int extraMarginPix() const; + + /** + * The maximum pixel size of the image (or imagepart) on + * the current page + */ + virtual QSize maxPageSize( int extraShrinkPercent = 0 ) const; + +public slots: + + bool printImage( KookaImage* ); + void printFittingToPage(KookaImage *img); +protected: + typedef enum { SW, NW, NO, SO } MarkerDirection; + + virtual void drawMarkerAroundPoint( const QPoint& ); + virtual void drawCutSign( const QPoint&, int, MarkerDirection ); + virtual void drawCornerMarker( const QSize&, int, int, int, int ); + +private: + + KPrinter *m_printer; + QPainter *m_painter; + int m_extraMarginPercent; +}; + +#endif |