00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_SEQUENCE_VIEWER_BASE_VIEW_OBJECT
00020 #define OST_SEQUENCE_VIEWER_BASE_VIEW_OBJECT
00021
00022
00023
00024
00025
00026
00027 #include "base_row.hh"
00028
00029 #include <QObject>
00030 #include <QList>
00031
00032 namespace ost { namespace gui {
00033
00034 class BaseViewObject : public QObject
00035 {
00036 Q_OBJECT
00037
00038
00039 public:
00040 BaseViewObject(QObject* parent = 0);
00041
00042 void InsertRow(int pos, BaseRow* row);
00043 void RemoveRow(BaseRow* row);
00044 BaseRow* GetRow(int pos);
00045 int GetRowCount();
00046 int GetMaxColumnCount() const;
00047
00048 virtual void SetSelection(int row, const QSet<int>& added, const QSet<int>& removed);
00049
00050 virtual QVariant GetData(int row, int column, int role);
00051 virtual bool SetData(int row, int column, const QVariant& value, int role);
00052 virtual Qt::ItemFlags Flags(int row, int column) const;
00053
00054 virtual const QStringList& GetDisplayModes();
00055 virtual const QString& GetCurrentDisplayMode();
00056 virtual void SetDisplayMode(const QString& mode);
00057
00058 void DoubleClicked(int row, int column);
00059 void ZoomIn();
00060 void ZoomOut();
00061
00062 protected:
00063 virtual void AddDisplayMode(const QString& mode);
00064
00065 QList<BaseRow*> rows_;
00066 QString current_display_mode_;
00067 QStringList display_modes_;
00068 };
00069
00070
00071 }}
00072
00073 #endif