kmwizard.h

00001 /*
00002  *  This file is part of the KDE libraries
00003  *  Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be>
00004  *
00005  *  This library is free software; you can redistribute it and/or
00006  *  modify it under the terms of the GNU Library General Public
00007  *  License version 2 as published by the Free Software Foundation.
00008  *
00009  *  This library is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  *  Library General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Library General Public License
00015  *  along with this library; see the file COPYING.LIB.  If not, write to
00016  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  *  Boston, MA 02110-1301, USA.
00018  **/
00019 
00020 #ifndef KMWIZARD_H
00021 #define KMWIZARD_H
00022 
00023 #include <qdialog.h>
00024 #include <qintdict.h>
00025 #include <qvaluestack.h>
00026 
00027 #include <kdelibs_export.h>
00028 
00029 class QWidgetStack;
00030 class QLabel;
00031 class QPushButton;
00032 class KMWizardPage;
00033 class KMPrinter;
00034 class KMWBackend;
00035 class SidePixmap;
00036 
00037 class KDEPRINT_EXPORT KMWizard : public QDialog
00038 {
00039     Q_OBJECT
00040 public:
00041     enum PageType {
00042         Start   = 0,
00043         End,
00044         Error,
00045         Backend,
00046         Driver,
00047         File,
00048         SMB,
00049         TCP,
00050         Local,
00051         LPD,
00052         IPP,
00053         IPPSelect,
00054         Class,
00055         Password,
00056         DriverTest,
00057         DriverSelect,
00058         Name,
00059         Banners,
00060         Custom  = 100
00061     };
00062 
00063     KMWizard(QWidget *parent = 0, const char *name = 0);
00064     ~KMWizard();
00065 
00066     void configure(int start, int end, bool inclusive = true);
00067     void setCurrentPage(int ID, bool back = false);
00068     void setPrinter(KMPrinter*);
00069     KMPrinter* printer()        { return m_printer; }
00070     void addPage(KMWizardPage*);
00071     KMWBackend* backendPage()   { return m_backend; }
00072     void setNextPage(int page, int next);
00073 
00074 public slots:
00075     void enableWizard();
00076     void disableWizard();
00077 
00078 protected slots:
00079     void slotNext();
00080     void slotPrev();
00081     void slotHelp();
00082 
00083 private:
00084     QIntDict<KMWizardPage>  m_pagepool;
00085     QValueStack<int>    m_pagestack;
00086 
00087     QWidgetStack        *m_stack;
00088     QLabel          *m_title;
00089     QPushButton     *m_next, *m_prev;
00090     int         m_start, m_end;
00091     bool            m_inclusive;
00092     KMPrinter       *m_printer;
00093 
00094     // backend page
00095     KMWBackend      *m_backend;
00096 
00097     // side pixmap
00098     SidePixmap      *m_side;
00099 };
00100 
00101 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys