summaryrefslogtreecommitdiffstats
path: root/kpresenter/KPrWebPresentation.h
diff options
context:
space:
mode:
Diffstat (limited to 'kpresenter/KPrWebPresentation.h')
-rw-r--r--kpresenter/KPrWebPresentation.h227
1 files changed, 227 insertions, 0 deletions
diff --git a/kpresenter/KPrWebPresentation.h b/kpresenter/KPrWebPresentation.h
new file mode 100644
index 00000000..873c4927
--- /dev/null
+++ b/kpresenter/KPrWebPresentation.h
@@ -0,0 +1,227 @@
+// -*- Mode: c++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4; -*-
+/* This file is part of the KDE project
+ Copyright (C) 1998, 1999 Reginald Stadlbauer <reggie@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef webpresentation_h
+#define webpresentation_h
+
+#include <kwizard.h>
+
+#include <qdialog.h>
+#include <qvaluelist.h>
+
+
+class KPrDocument;
+class KPrView;
+
+class KURLRequester;
+class KColorButton;
+class KListView;
+class KIntNumInput;
+class KLineEdit;
+class KComboBox;
+
+class QVBox;
+class QHBox;
+
+class QListViewItem;
+class QCloseEvent;
+class KProgress;
+class QLabel;
+
+class QCheckBox;
+
+class KPrWebPresentation
+{
+public:
+
+ KPrWebPresentation( KPrDocument *_doc, KPrView *_view );
+ KPrWebPresentation( const QString &_config, KPrDocument *_doc, KPrView *_view );
+ KPrWebPresentation( const KPrWebPresentation &webPres );
+
+ void setAuthor( const QString &_author )
+ { author = _author; }
+ void setEMail( const QString &_email )
+ { email = _email; }
+ void setTitle( const QString &_title )
+ { title = _title; }
+ void setBackColor( const QColor &_backColor )
+ { backColor = _backColor; }
+ void setTitleColor( const QColor &_titleColor )
+ { titleColor = _titleColor; }
+ void setTextColor( const QColor &_textColor )
+ { textColor = _textColor; }
+ void setXML( bool _xml )
+ { xml = _xml; }
+ void setWriteHeader( bool _writeHeader )
+ { m_bWriteHeader = _writeHeader; }
+ void setWriteFooter( bool _writeFooter )
+ { m_bWriteFooter = _writeFooter; }
+ void setLoopSlides( bool _loopSlides )
+ { m_bLoopSlides = _loopSlides; }
+ void setPath( const QString &_path )
+ { path = _path; }
+ void setZoom( int _zoom )
+ { zoom = _zoom; }
+ void setTimeBetweenSlides( int _timeBetweenSlides )
+ { timeBetweenSlides = _timeBetweenSlides; } // PAU
+ void setEncoding( const QString &_encoding ) { m_encoding = _encoding; }
+
+ QString getAuthor() const { return author; }
+ QString getEmail() const { return email; }
+ QString getTitle() const { return title; }
+ QColor getBackColor() const { return backColor; }
+ QColor getTitleColor() const { return titleColor; }
+ QColor getTextColor() const { return textColor; }
+ bool isXML() const { return xml; }
+ bool wantHeader() const { return m_bWriteHeader; }
+ bool wantFooter() const { return m_bWriteFooter; }
+ bool wantLoopSlides() const { return m_bLoopSlides; }
+ QString getPath() const { return path; }
+ int getZoom() const { return zoom; }
+ int getTimeBetweenSlides() const { return timeBetweenSlides; } // PAU
+ QString getEncoding() const { return m_encoding; }
+
+ struct SlideInfo {
+ int pageNumber; /* 0-based */
+ QString slideTitle;
+ };
+ // Each entry in this list is a page (number+title).
+ // This allows to skip pages.
+ QValueList<SlideInfo> getSlideInfos() const { return slideInfos; }
+
+ void setSlideTitle( int i, const QString &slideTitle )
+ { slideInfos[i].slideTitle = slideTitle; }
+
+ void setConfig( const QString &_config )
+ { config = _config; }
+ QString getConfig() const { return config; }
+
+ void loadConfig();
+ void saveConfig();
+
+ int initSteps() const { return 7; }
+ int slides1Steps() { return slideInfos.count(); }
+ int slides2Steps() { return slideInfos.count(); }
+ int mainSteps() const { return 1; }
+
+ void initCreation( KProgress *progressBar );
+ void createSlidesPictures( KProgress *progressBar );
+ void createSlidesHTML( KProgress *progressBar );
+ void createMainPage( KProgress *progressBar );
+
+protected:
+ void init();
+ QString escapeHtmlText( QTextCodec *codec, const QString& strText ) const;
+ void writeStartOfHeader(QTextStream& streamOut, QTextCodec *codec,
+ const QString& subtitle, const QString& dest );
+
+ KPrDocument *doc;
+ KPrView *view;
+ QString config;
+ QString author, title, email;
+ QValueList<SlideInfo> slideInfos;
+ QColor backColor, titleColor, textColor;
+ QString path;
+ bool xml;
+ bool m_bWriteHeader, m_bWriteFooter, m_bLoopSlides;
+ int timeBetweenSlides;
+ int zoom;
+ QString m_encoding;
+};
+
+class KPrWebPresentationWizard : public KWizard
+{
+ Q_OBJECT
+
+public:
+ KPrWebPresentationWizard( const QString &_config, KPrDocument *_doc, KPrView *_view );
+ ~KPrWebPresentationWizard();
+
+ static void createWebPresentation( const QString &_config, KPrDocument *_doc, KPrView *_view );
+
+protected:
+
+ void setupPage1();
+ void setupPage2();
+ void setupPage3();
+ void setupPage4();
+ void setupPage5(); // PAU
+
+ void closeEvent( QCloseEvent *e );
+
+ QString config;
+ KPrDocument *doc;
+ KPrView *view;
+ KPrWebPresentation webPres;
+
+ QHBox *page1, *page2, *page3, *page4, *page5; // PAU
+ QCheckBox *writeHeader, *writeFooter, *loopSlides; // PAU
+ KLineEdit *author, *title, *email;
+ KColorButton *textColor, *titleColor, *backColor;
+ KComboBox *encoding, *doctype;
+ KIntNumInput *zoom, *timeBetweenSlides; // PAU
+ KURLRequester *path;
+ KListView *slideTitles;
+ KLineEdit *slideTitle;
+
+protected slots:
+ virtual void finish();
+ void pageChanged();
+ void slotChoosePath(const QString &);
+ void slideTitleChanged( const QString & );
+ void slideTitleChanged( QListViewItem * );
+
+};
+
+class KPrWebPresentationCreateDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ KPrWebPresentationCreateDialog( KPrDocument *_doc, KPrView *_view, const KPrWebPresentation &_webPres );
+ ~KPrWebPresentationCreateDialog();
+
+ static void createWebPresentation( KPrDocument *_doc, KPrView *_view, const KPrWebPresentation &_webPres );
+
+ void start();
+
+ void initCreation();
+ void createSlidesPictures();
+ void createSlidesHTML();
+ void createMainPage();
+
+protected:
+ void setupGUI();
+ void resizeEvent( QResizeEvent *e );
+
+ KPrView *view;
+ KPrDocument *doc;
+ KPrWebPresentation webPres;
+
+ KProgress *progressBar;
+ QLabel *step1, *step2, *step3, *step4, *step5;
+ QPushButton *bDone, *bSave;
+ QVBox *back;
+
+protected slots:
+ void saveConfig();
+
+};
+#endif