00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MARKEDSCROLLBAR_H
00021 #define MARKEDSCROLLBAR_H
00022
00023 #include <QScrollBar>
00024 #include <QPaintEvent>
00025 #include <QList>
00026
00027 class MarkedScrollBar : public QScrollBar
00028 {
00029 Q_OBJECT
00030
00031 public:
00032 MarkedScrollBar(QWidget *parent = 0);
00033
00034 void addMark(int position, const QColor &colour,
00035 const QString &identifier = "");
00036 void removeMark(int position);
00037 void removeMark(const QString &identifier);
00038 void removeAllMarks();
00039 void removeMarksLessThan(int position);
00040 void removeMarksGreaterThan(int position);
00041 void removeMarksBetween(int startPos, int endPos);
00042
00043 void addShade(int startPos, int endPos, const QColor &colour,
00044 const QString &identifier = "");
00045 void removeShade(const QString &identifier);
00046 void removeAllShades();
00047
00048 bool isClipped() const;
00049 void enableClipping(bool clip);
00050
00051 Q_PROPERTY(bool clipped READ isClipped WRITE enableClipping);
00052
00053 protected:
00054 struct markData
00055 {
00057 int pos;
00058
00060 QColor colour;
00061
00063 QString identifier;
00064 };
00065
00066 struct shadeData
00067 {
00069 int start;
00070
00072 int end;
00073
00075 QColor colour;
00076
00078 QString identifier;
00079 };
00080
00081 QList<markData> m_marks;
00082 QList<shadeData> m_shades;
00083
00084 bool m_isClipped;
00085
00086 virtual void paintEvent(QPaintEvent *event);
00087 };
00088
00089 #endif // MARKEDSCROLLBAR_H
00090