You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdepim/korganizer/printing/calprinter.h

139 lines
3.7 KiB

/*
This file is part of KOrganizer.
Copyright (c) 1998 Preston Brown <pbrown@kde.org>
Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
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 <tqptrlist.h>
#include <kdialogbase.h>
#include <korganizer/baseview.h>
#include <korganizer/printplugin.h>
#include <kdemacros.h>
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
{
TQ_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
{
TQ_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<int, KOrg::PrintPlugin*> mPluginIDs;
TQString mPreviewText;
TQComboBox *mOrientationSelection;
CalPrinter::ePrintOrientation mOrientation;
};
#endif
#endif