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