Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(421)

Side by Side Diff: views/controls/table/table_view.cc

Issue 2812026: Auto-size the views version of the options dialog. (Closed)
Patch Set: Fix autosizing issue with gtk pref pages in chromeos options dialog. Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « views/controls/table/table_view.h ('k') | views/examples/tabbed_pane_example.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "views/controls/table/table_view.h" 5 #include "views/controls/table/table_view.h"
6 6
7 #include <commctrl.h> 7 #include <commctrl.h>
8 #include <windowsx.h> 8 #include <windowsx.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 bool autosize_columns) 57 bool autosize_columns)
58 : model_(model), 58 : model_(model),
59 table_view_observer_(NULL), 59 table_view_observer_(NULL),
60 visible_columns_(), 60 visible_columns_(),
61 all_columns_(), 61 all_columns_(),
62 column_count_(static_cast<int>(columns.size())), 62 column_count_(static_cast<int>(columns.size())),
63 table_type_(table_type), 63 table_type_(table_type),
64 single_selection_(single_selection), 64 single_selection_(single_selection),
65 ignore_listview_change_(false), 65 ignore_listview_change_(false),
66 custom_colors_enabled_(false), 66 custom_colors_enabled_(false),
67 sized_columns_(false),
68 autosize_columns_(autosize_columns), 67 autosize_columns_(autosize_columns),
69 resizable_columns_(resizable_columns), 68 resizable_columns_(resizable_columns),
70 list_view_(NULL), 69 list_view_(NULL),
71 header_original_handler_(NULL), 70 header_original_handler_(NULL),
72 original_handler_(NULL), 71 original_handler_(NULL),
73 ALLOW_THIS_IN_INITIALIZER_LIST(table_view_wrapper_(this)), 72 ALLOW_THIS_IN_INITIALIZER_LIST(table_view_wrapper_(this)),
74 custom_cell_font_(NULL), 73 custom_cell_font_(NULL),
75 content_offset_(0) { 74 content_offset_(0) {
76 for (std::vector<TableColumn>::const_iterator i = columns.begin(); 75 for (std::vector<TableColumn>::const_iterator i = columns.begin();
77 i != columns.end(); ++i) { 76 i != columns.end(); ++i) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 125
127 SendMessage(list_view_, WM_SETREDRAW, static_cast<WPARAM>(TRUE), 0); 126 SendMessage(list_view_, WM_SETREDRAW, static_cast<WPARAM>(TRUE), 0);
128 } 127 }
129 128
130 void TableView::DidChangeBounds(const gfx::Rect& previous, 129 void TableView::DidChangeBounds(const gfx::Rect& previous,
131 const gfx::Rect& current) { 130 const gfx::Rect& current) {
132 if (!list_view_) 131 if (!list_view_)
133 return; 132 return;
134 SendMessage(list_view_, WM_SETREDRAW, static_cast<WPARAM>(FALSE), 0); 133 SendMessage(list_view_, WM_SETREDRAW, static_cast<WPARAM>(FALSE), 0);
135 Layout(); 134 Layout();
136 if ((!sized_columns_ || autosize_columns_) && width() > 0) { 135 if (autosize_columns_ && width() > 0)
137 sized_columns_ = true;
138 ResetColumnSizes(); 136 ResetColumnSizes();
139 }
140 UpdateContentOffset(); 137 UpdateContentOffset();
141 SendMessage(list_view_, WM_SETREDRAW, static_cast<WPARAM>(TRUE), 0); 138 SendMessage(list_view_, WM_SETREDRAW, static_cast<WPARAM>(TRUE), 0);
142 } 139 }
143 140
144 int TableView::RowCount() const { 141 int TableView::RowCount() const {
145 if (!list_view_) 142 if (!list_view_)
146 return 0; 143 return 0;
147 return ListView_GetItemCount(list_view_); 144 return ListView_GetItemCount(list_view_);
148 } 145 }
149 146
(...skipping 1394 matching lines...) Expand 10 before | Expand all | Expand 10 after
1544 gfx::Font font = GetAltTextFont(); 1541 gfx::Font font = GetAltTextFont();
1545 // Pad height by 2 for halo. 1542 // Pad height by 2 for halo.
1546 return gfx::Rect(kXOffset, content_offset(), client_rect.width() - kXOffset, 1543 return gfx::Rect(kXOffset, content_offset(), client_rect.width() - kXOffset,
1547 std::max(kImageSize, font.height() + 2)); 1544 std::max(kImageSize, font.height() + 2));
1548 } 1545 }
1549 1546
1550 gfx::Font TableView::GetAltTextFont() { 1547 gfx::Font TableView::GetAltTextFont() {
1551 return ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BaseFont); 1548 return ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BaseFont);
1552 } 1549 }
1553 1550
1551 void TableView::VisibilityChanged(View* starting_from, bool is_visible) {
1552 // GetClientRect as used by ResetColumnSize to obtain the total width
1553 // available to the columns only works when the native control is visible, so
1554 // update the column sizes in case we become visible. This depends on
1555 // VisibilityChanged() being called in post order on the view tree.
1556 if (is_visible && autosize_columns_)
1557 ResetColumnSizes();
1558 }
1559
1554 1560
1555 // 1561 //
1556 // TableSelectionIterator 1562 // TableSelectionIterator
1557 // 1563 //
1558 TableSelectionIterator::TableSelectionIterator(TableView* view, 1564 TableSelectionIterator::TableSelectionIterator(TableView* view,
1559 int view_index) 1565 int view_index)
1560 : table_view_(view), 1566 : table_view_(view),
1561 view_index_(view_index) { 1567 view_index_(view_index) {
1562 UpdateModelIndexFromViewIndex(); 1568 UpdateModelIndexFromViewIndex();
1563 } 1569 }
(...skipping 24 matching lines...) Expand all
1588 } 1594 }
1589 1595
1590 void TableSelectionIterator::UpdateModelIndexFromViewIndex() { 1596 void TableSelectionIterator::UpdateModelIndexFromViewIndex() {
1591 if (view_index_ == -1) 1597 if (view_index_ == -1)
1592 model_index_ = -1; 1598 model_index_ = -1;
1593 else 1599 else
1594 model_index_ = table_view_->ViewToModel(view_index_); 1600 model_index_ = table_view_->ViewToModel(view_index_);
1595 } 1601 }
1596 1602
1597 } // namespace views 1603 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/table/table_view.h ('k') | views/examples/tabbed_pane_example.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698