| Index: ui/views/controls/table/table_view_views.cc
|
| diff --git a/ui/views/controls/table/table_view_views.cc b/ui/views/controls/table/table_view_views.cc
|
| index 5e861676f1b32e45aa16c7e876b6db7bb204fd84..3dbdeb54829871952cf9724b1d6a93252bcbc401 100644
|
| --- a/ui/views/controls/table/table_view_views.cc
|
| +++ b/ui/views/controls/table/table_view_views.cc
|
| @@ -238,6 +238,19 @@ bool TableView::IsColumnVisible(int id) const {
|
| return false;
|
| }
|
|
|
| +void TableView::AddColumn(const ui::TableColumn& col) {
|
| + DCHECK(!HasColumn(col.id));
|
| + columns_.push_back(col);
|
| +}
|
| +
|
| +bool TableView::HasColumn(int id) const {
|
| + for (size_t i = 0; i < columns_.size(); ++i) {
|
| + if (columns_[i].id == id)
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| void TableView::SetVisibleColumnWidth(int index, int width) {
|
| DCHECK(index >= 0 && index < static_cast<int>(visible_columns_.size()));
|
| if (visible_columns_[index].width == width)
|
| @@ -273,9 +286,12 @@ void TableView::Layout() {
|
| // parent()->parent() is the scrollview. When its width changes we force
|
| // recalculating column sizes.
|
| View* scroll_view = parent() ? parent()->parent() : NULL;
|
| - if (scroll_view && scroll_view->width() != last_parent_width_) {
|
| - last_parent_width_ = scroll_view->width();
|
| - UpdateVisibleColumnSizes();
|
| + if (scroll_view) {
|
| + const int scroll_view_width = scroll_view->GetContentsBounds().width();
|
| + if (scroll_view_width != last_parent_width_) {
|
| + last_parent_width_ = scroll_view_width;
|
| + UpdateVisibleColumnSizes();
|
| + }
|
| }
|
| // We have to override Layout like this since we're contained in a ScrollView.
|
| gfx::Size pref = GetPreferredSize();
|
| @@ -442,7 +458,8 @@ void TableView::OnPaint(gfx::Canvas* canvas) {
|
| canvas->DrawStringInt(
|
| model_->GetText(model_index, visible_columns_[j].column.id), font_,
|
| kTextColor,
|
| - GetMirroredXWithWidthInView(text_x, cell_bounds.right() - text_x),
|
| + GetMirroredXWithWidthInView(text_x, cell_bounds.right() - text_x -
|
| + kTextHorizontalPadding),
|
| cell_bounds.y() + kTextVerticalPadding,
|
| cell_bounds.right() - text_x,
|
| cell_bounds.height() - kTextVerticalPadding * 2,
|
| @@ -536,10 +553,10 @@ void TableView::UpdateVisibleColumnSizes() {
|
| std::vector<ui::TableColumn> columns;
|
| for (size_t i = 0; i < visible_columns_.size(); ++i)
|
| columns.push_back(visible_columns_[i].column);
|
| - std::vector<int> sizes =
|
| - views::CalculateTableColumnSizes(last_parent_width_, header_->font(),
|
| - font_, 0, // TODO: fix this
|
| - columns, model_);
|
| + std::vector<int> sizes = views::CalculateTableColumnSizes(
|
| + last_parent_width_, header_->font(), font_,
|
| + std::max(kTextHorizontalPadding, TableHeader::kHorizontalPadding) * 2,
|
| + columns, model_);
|
| DCHECK_EQ(visible_columns_.size(), sizes.size());
|
| int x = 0;
|
| for (size_t i = 0; i < visible_columns_.size(); ++i) {
|
|
|