/* This file is part of KOrganizer. Copyright (c) 1998 Preston Brown Copyright (c) 2003 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 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 CALPRINTPLUGINS_H #define CALPRINTPLUGINS_H #include #include "calprintbase.h" #include "calprintdayconfig_base.h" #include "calprintweekconfig_base.h" #include "calprintmonthconfig_base.h" #include "calprinttodoconfig_base.h" #ifndef KORG_NOPRINTER namespace KCal { class Calendar; } using namespace KCal; class CalPrintDay : public CalPrintBase { Q_OBJECT public: CalPrintDay(KPrinter *printer, Calendar *cal, KConfig *cfg); virtual ~CalPrintDay(); virtual QString description() { return i18n("Print day"); } virtual QString longDescription() { return i18n("Prints all events of a single day on one page"); } virtual QWidget *configWidget( QWidget* ); public slots: void print(QPainter &p, int width, int height); virtual void readSettingsWidget(); virtual void setSettingsWidget(); virtual void loadConfig(); virtual void saveConfig(); virtual void setDateRange( const QDate& from, const QDate& to ); protected: QTime mStartTime, mEndTime; bool mIncludeTodos; bool mIncludeAllEvents; CalPrintDayConfig_Base *mConfigWidget; }; class CalPrintWeek : public CalPrintBase { Q_OBJECT public: CalPrintWeek(KPrinter *printer, Calendar *cal, KConfig *cfg); virtual ~CalPrintWeek(); virtual QString description() { return i18n("Print week"); } virtual QString longDescription() { return i18n("Prints all events of one week on one page"); } virtual QWidget *configWidget(QWidget*); virtual KPrinter::Orientation orientation(); public slots: void print(QPainter &p, int width, int height); virtual void readSettingsWidget(); virtual void setSettingsWidget(); virtual void loadConfig(); virtual void saveConfig(); virtual void setDateRange( const QDate& from, const QDate& to ); protected: enum eWeekPrintType { Filofax=0, Timetable, SplitWeek } mWeekPrintType; QTime mStartTime, mEndTime; bool mIncludeTodos; CalPrintWeekConfig_Base *mConfigWidget; }; class CalPrintMonth : public CalPrintBase { Q_OBJECT public: CalPrintMonth(KPrinter *printer, Calendar *cal, KConfig *cfg); virtual ~CalPrintMonth(); virtual QString description() { return i18n("Print month"); } virtual QString longDescription() { return i18n("Prints all events of one month on one page"); } virtual QWidget *configWidget(QWidget*); virtual KPrinter::Orientation orientation() { return KPrinter::Landscape; } public slots: void print(QPainter &p, int width, int height); virtual void readSettingsWidget(); virtual void setSettingsWidget(); virtual void loadConfig(); virtual void saveConfig(); virtual void setDateRange( const QDate& from, const QDate& to ); protected: bool mWeekNumbers; bool mIncludeTodos; CalPrintMonthConfig_Base *mConfigWidget; }; class CalPrintTodos : public CalPrintBase { Q_OBJECT public: CalPrintTodos(KPrinter *printer, Calendar *cal, KConfig *cfg); virtual ~CalPrintTodos(); virtual QString description() { return i18n("Print todos"); } virtual QString longDescription() { return i18n("Prints all todos in a (tree-like) list"); } virtual QWidget *configWidget(QWidget*); public slots: void print(QPainter &p, int width, int height); virtual void readSettingsWidget(); virtual void setSettingsWidget(); virtual void loadConfig(); virtual void saveConfig(); protected: QString mPageTitle; enum eTodoPrintType { TodosAll = 0, TodosUnfinished, TodosDueRange } mTodoPrintType; bool mIncludeDescription; bool mIncludePriority; bool mIncludeDueDate; bool mConnectSubTodos; CalPrintTodoConfig_Base *mConfigWidget ; }; #endif #endif