00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_SEQUENCE_VIEWER_BASE_ROW
00020 #define OST_SEQUENCE_VIEWER_BASE_ROW
00021
00022
00023
00024
00025
00026
00027 #include "painter.hh"
00028
00029 #include <QObject>
00030 #include <QModelIndex>
00031 #include <QList>
00032 namespace ost { namespace gui {
00033
00034 class BaseRow : public QObject
00035 {
00036 Q_OBJECT
00037
00038 public:
00039 BaseRow(QObject *parent = 0);
00040 BaseRow(QFont font, QObject *parent = 0);
00041
00042 void Init();
00043
00044 virtual int GetColumnCount() const;
00045
00046 void InsertPainter(Painter* painter, int pos = -1);
00047 void RemovePainter(Painter* painter);
00048 Painter* GetPainter(int pos);
00049 int GetPainterCount();
00050 const PainterList& GetPainters() const;
00051
00052 const QFont& GetFont() const;
00053 void SetFont(const QFont& font);
00054 const QSize& GetFontSize() const;
00055
00056 virtual const QSize& GetCellSize() const;
00057
00058 virtual QVariant GetData(int column, int role) const;
00059 virtual bool SetData(int column, const QVariant& value, int role);
00060 virtual Qt::ItemFlags Flags(int column) const;
00061 virtual void DoubleClicked(int column);
00062 virtual void SetSelection(const QSet<int>& added, const QSet<int>& removed);
00063
00064 virtual void ZoomIn();
00065 virtual void ZoomOut();
00066
00067 private:
00068 bool IsPainterPosValid(int pos);
00069 PainterList painter_;
00070 QFont font_;
00071 QSize default_font_size_;
00072 QSize default_cell_size_;
00073 };
00074
00075 typedef QList<BaseRow*> BaseRowList;
00076
00077 }}
00078
00079 #endif