00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef YQMultiProgressMeter_h
00022 #define YQMultiProgressMeter_h
00023
00024
00025 #include "YMultiProgressMeter.h"
00026 #include <qwidget.h>
00027 #include <qpainter.h>
00028
00029
00030 class QPaintEvent;
00031 class QMouseEvent;
00032
00033
00034 class YQMultiProgressMeter : public QWidget, public YMultiProgressMeter
00035 {
00036 Q_OBJECT
00037
00038 public:
00039
00043 YQMultiProgressMeter( QWidget * parent,
00044 const YWidgetOpt & opt,
00045 bool horizontal,
00046 const YCPList & maxValues );
00047
00053 void setEnabling( bool enabled );
00054
00060 long nicesize( YUIDimension dim );
00061
00065 void setSize( long newWidth, long newHeight );
00066
00070 int margin() const { return _margin; }
00071
00076 void setMargin( int value ) { _margin = value; }
00077
00081 int spacing() const { return _spacing; }
00082
00087 void setSpacing( int value ) { _spacing = value; }
00088
00092 int segmentMinLength() const { return _segmentMinLength; }
00093
00097 void setSegmentMinLength( int val ) { _segmentMinLength = val; }
00098
00105 int triThickness() const { return _triThickness; }
00106
00117 void setTriThickness( int value );
00118
00123 int triSpacing() const { return _triSpacing; }
00124
00129 void setTriSpacing( int value ) { _triSpacing = value; }
00130
00134 bool triangularShaped() const { return _triangularShaped; }
00135
00140 void setTriangularShaped( bool triangular = true );
00141
00142
00143 protected:
00144
00148 void init();
00149
00154 virtual void doUpdate();
00155
00160 virtual void paintEvent ( QPaintEvent * );
00161
00167 virtual void mouseDoubleClickEvent ( QMouseEvent * e );
00168
00175 void drawSegment( int segment,
00176 QPainter & painter,
00177 int offset,
00178 int length,
00179 int thickness,
00180 int indent );
00181
00185 void drawMarkers( QPainter & painter, int offset, int thickness );
00186
00187
00188 private:
00189
00190 bool _triangularShaped;
00191 int _margin;
00192 int _spacing;
00193 int _segmentMinLength;
00194 int _triThickness;
00195 int _triSpacing;
00196 };
00197
00198
00199 #endif // YQMultiProgressMeter_h