summaryrefslogtreecommitdiffstats
path: root/tdeio/tdeio/statusbarprogress.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdeio/tdeio/statusbarprogress.h')
-rw-r--r--tdeio/tdeio/statusbarprogress.h112
1 files changed, 112 insertions, 0 deletions
diff --git a/tdeio/tdeio/statusbarprogress.h b/tdeio/tdeio/statusbarprogress.h
new file mode 100644
index 000000000..d1d591fbe
--- /dev/null
+++ b/tdeio/tdeio/statusbarprogress.h
@@ -0,0 +1,112 @@
+/* This file is part of the KDE libraries
+ Copyright (C) 2000 Matej Koss <koss@miesto.sk>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2 as published by the Free Software Foundation.
+
+ 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 __statusbarprogress_h__
+#define __statusbarprogress_h__
+
+#include "progressbase.h"
+
+class TQWidgetStack;
+class TQBoxLayout;
+class TQPushButton;
+class TQLabel;
+class KProgress;
+
+namespace TDEIO {
+
+class Job;
+
+/**
+* This is a special IO progress widget.
+*
+* Similarly to DefaultProgress,
+* it's purpose is to show a progress of the IO operation.
+*
+* Instead of creating a separate window, this is only a widget that can be
+* easily embedded in a statusbar.
+*
+* Usage of StatusbarProgress is little different.
+* This dialog will be a part of some application.
+* \code
+* // create a dialog
+* StatusbarProgress *statusProgress;
+* statusProgress = new StatusbarProgress( statusBar() );
+* statusBar()->insertWidget( statusProgress, statusProgress->width() , 0 );
+* ...
+* // create job and connect it to the progress
+* CopyJob* job = TDEIO::copy(...);
+* statusProgress->setJob( job );
+* ...
+* \endcode
+*
+* @short IO progress widget for embedding in a statusbar.
+* @author Matej Koss <koss@miesto.sk>
+*/
+class TDEIO_EXPORT StatusbarProgress : public ProgressBase {
+
+ Q_OBJECT
+
+public:
+
+ /**
+ * Creates a new StatusbarProgress.
+ * @param parent the parent of this widget
+ * @param button true to add an abort button. The button will be
+ * connected to ProgressBase::slotStop()
+ */
+ StatusbarProgress( TQWidget* parent, bool button = true );
+ ~StatusbarProgress() {}
+
+ /**
+ * Sets the job to monitor.
+ * @param job the job to monitor
+ */
+ void setJob( TDEIO::Job *job );
+
+public slots:
+ virtual void slotClean();
+ virtual void slotTotalSize( TDEIO::Job* job, TDEIO::filesize_t size );
+ virtual void slotPercent( TDEIO::Job* job, unsigned long percent );
+ virtual void slotSpeed( TDEIO::Job* job, unsigned long speed );
+
+protected:
+ KProgress* m_pProgressBar;
+ TQLabel* m_pLabel;
+ TQPushButton* m_pButton;
+
+ TDEIO::filesize_t m_iTotalSize;
+
+ enum Mode { None, Label, Progress };
+
+ uint mode;
+ bool m_bShowButton;
+
+ void setMode();
+
+ virtual bool eventFilter( TQObject *, TQEvent * );
+ TQBoxLayout *box;
+ TQWidgetStack *stack;
+protected:
+ virtual void virtual_hook( int id, void* data );
+private:
+ class StatusbarProgressPrivate* d;
+};
+
+} /* namespace */
+
+#endif // __statusbarprogress_h__