/* This file is part of KOrganizer. Copyright (c) 1998 Preston Brown Copyright (C) 2003-2004 Reinhold Kainhofer This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. As a special exception, permission is given to link this program with any edition of TQt, and distribute the resulting executable, without including the source code for TQt in the source distribution. */ #ifndef _CALPRINTER_H #define _CALPRINTER_H #ifndef KORG_NOPRINTER #include #include #include #include #include namespace KOrg { class CoreHelper; } using namespace KCal; class TQVButtonGroup; class TQWidgetStack; class CalPrintDialog; class TDEConfig; class TQComboBox; class TQLabel; /** CalPrinter is a class for printing Calendars. It can print in several different formats (day, week, month). It also provides a way for setting up the printer and remembering these preferences. */ class KDE_EXPORT CalPrinter : public TQObject, public KOrg::CalPrinterBase { Q_OBJECT public: enum ePrintOrientation { eOrientPlugin=0, eOrientPrinter, eOrientPortrait, eOrientLandscape }; public: /** \param par parent widget for dialogs \param cal calendar to be printed \param helper is a pointer to the KOrg::CoreHelper object */ CalPrinter( TQWidget *par, Calendar *cal, KOrg::CoreHelper *helper ); virtual ~CalPrinter(); void init( Calendar *calendar ); /** Set date range to be printed. \param start Start date \param end End date */ void setDateRange( const TQDate &start, const TQDate &end ); public slots: void updateConfig(); private slots: void doPrint( KOrg::PrintPlugin *selectedStyle, CalPrinter::ePrintOrientation dlgorientation, bool preview = false ); public: void print( int type, const TQDate &fd, const TQDate &td, Incidence::List selectedIncidences = Incidence::List(), bool preview = false ); Calendar *calendar() const; TDEConfig *config() const; protected: KOrg::PrintPlugin::List mPrintPlugins; private: Calendar *mCalendar; TQWidget *mParent; TDEConfig *mConfig; KOrg::CoreHelper *mCoreHelper; }; class CalPrintDialog : public KDialogBase { Q_OBJECT public: CalPrintDialog( KOrg::PrintPlugin::List plugins, TQWidget *parent = 0, const char *name = 0 ); virtual ~CalPrintDialog(); KOrg::PrintPlugin *selectedPlugin(); void setOrientation( CalPrinter::ePrintOrientation orientation ); CalPrinter::ePrintOrientation orientation() { return mOrientation; } public slots: void setPrintType( int ); void setPreview( bool ); protected slots: void slotOk(); private: TQVButtonGroup *mTypeGroup; TQWidgetStack *mConfigArea; TQMap mPluginIDs; TQString mPreviewText; TQComboBox *mOrientationSelection; CalPrinter::ePrintOrientation mOrientation; }; #endif #endif