#ifndef DataGridColumnList_h #define DataGridColumnList_h #if ENABLE(DATAGRID) #include "DataGridColumn.h" #include #include #include #include namespace WebCore { class HTMLDataGridElement; class DataGridColumnList : public RefCounted { friend class DataGridColumn; public: static PassRefPtr create(HTMLDataGridElement* grid) { return adoptRef(new DataGridColumnList(grid)); } ~DataGridColumnList(); unsigned length() const { return m_columns.size(); } DataGridColumn* item(unsigned index) const { return m_columns[index].get(); } DataGridColumn* itemWithName(const AtomicString&) const; DataGridColumn* primaryColumn() const { return m_primaryColumn.get(); } DataGridColumn* sortColumn() const { return m_sortColumn.get(); } DataGridColumn* add(const String& id, const String& label, const String& type, bool primary, unsigned short sortable); DataGridColumn* add(DataGridColumn*); void remove(DataGridColumn*); void move(DataGridColumn*, unsigned long index); void clear(); HTMLDataGridElement* dataGrid() const { return m_dataGrid; } void clearDataGrid() { m_dataGrid = 0; } void setDataGridNeedsLayout(); private: DataGridColumnList(HTMLDataGridElement*); void primaryColumnChanged(DataGridColumn*); HTMLDataGridElement* m_dataGrid; // Weak reference. Will be nulled out when our tree goes away. Vector > m_columns; RefPtr m_primaryColumn; RefPtr m_sortColumn; }; } // namespace WebCore #endif #endif // DataGridColumnList_h