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

Side by Side Diff: chrome/browser/ui/cocoa/autofill/simple_grid_layout.h

Issue 2606293002: Remove ScopedVector from chrome/browser/ui. (Closed)
Patch Set: nits Created 3 years, 11 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #ifndef CHROME_BROWSER_UI_COCOA_AUTOFILL_SIMPLE_GRID_LAYOUT_H_ 5 #ifndef CHROME_BROWSER_UI_COCOA_AUTOFILL_SIMPLE_GRID_LAYOUT_H_
6 #define CHROME_BROWSER_UI_COCOA_AUTOFILL_SIMPLE_GRID_LAYOUT_H_ 6 #define CHROME_BROWSER_UI_COCOA_AUTOFILL_SIMPLE_GRID_LAYOUT_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 9
10 #include <memory> 10 #include <memory>
11 #include <vector>
11 12
12 #include "base/memory/scoped_vector.h" 13 #include "base/logging.h"
13 14
14 class Column; 15 class Column;
15 class ColumnSet; 16 class ColumnSet;
16 class Row; 17 class Row;
17 class ViewState; 18 class ViewState;
18 19
19 // SimpleGridLayout is a layout manager that positions child views in a grid. 20 // SimpleGridLayout is a layout manager that positions child views in a grid.
20 // Each row has exactly one ColumnSet, ColumnSets can be shared between rows. 21 // Each row has exactly one ColumnSet, ColumnSets can be shared between rows.
21 // See ui/views/layout/grid_layout.h for more details - this is a very 22 // See ui/views/layout/grid_layout.h for more details - this is a very
22 // simplified version of the views class. 23 // simplified version of the views class.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 float GetPreferredHeightForWidth(float with); 81 float GetPreferredHeightForWidth(float with);
81 82
82 int num_rows() const { return static_cast<int>(rows_.size()); } 83 int num_rows() const { return static_cast<int>(rows_.size()); }
83 84
84 // These functions are mostly for testing & deviate from Views Layout class. 85 // These functions are mostly for testing & deviate from Views Layout class.
85 int next_column() { return next_column_; } 86 int next_column() { return next_column_; }
86 void AdvanceColumn() { next_column_++; } 87 void AdvanceColumn() { next_column_++; }
87 88
88 private: 89 private:
89 // Adds a new row, updating associated counters and positions. 90 // Adds a new row, updating associated counters and positions.
90 void AddRow(Row* row); 91 void AddRow(std::unique_ptr<Row> row);
91 92
92 // Next column in the current ColumnSet. 93 // Next column in the current ColumnSet.
93 int next_column_; 94 int next_column_;
94 95
95 int current_auto_id_; // Starting value for autogenerated columnset ids. 96 int current_auto_id_; // Starting value for autogenerated columnset ids.
96 ScopedVector<ViewState> view_states_; 97 std::vector<std::unique_ptr<ViewState>> view_states_;
97 ScopedVector<ColumnSet> column_sets_; 98 std::vector<std::unique_ptr<ColumnSet>> column_sets_;
98 ScopedVector<Row> rows_; 99 std::vector<std::unique_ptr<Row>> rows_;
99 100
100 NSView* host_; 101 NSView* host_;
101 }; 102 };
102 103
103 // ColumnSet is used to define a set of columns. 104 // ColumnSet is used to define a set of columns.
104 // You don't create a ColumnSet directly, instead use the AddRow method 105 // You don't create a ColumnSet directly, instead use the AddRow method
105 // of SimpleGridLayout. 106 // of SimpleGridLayout.
106 class ColumnSet { 107 class ColumnSet {
107 public: 108 public:
108 explicit ColumnSet(int id); 109 explicit ColumnSet(int id);
109 ~ColumnSet(); 110 ~ColumnSet();
110 111
111 void AddPaddingColumn(int fixed_width); 112 void AddPaddingColumn(int fixed_width);
112 void AddColumn(float resize_percent); 113 void AddColumn(float resize_percent);
113 114
114 void CalculateSize(float width); 115 void CalculateSize(float width);
115 void ResetColumnXCoordinates(); 116 void ResetColumnXCoordinates();
116 117
117 // ID of this ColumnSet. 118 // ID of this ColumnSet.
118 int id() const { return id_; } 119 int id() const { return id_; }
119 120
120 int num_columns() const { return static_cast<int>(columns_.size()); } 121 int num_columns() const { return static_cast<int>(columns_.size()); }
121 122
122 // Returns the width of the specified columns. 123 // Returns the width of the specified columns.
123 float GetColumnWidth(int column); 124 float GetColumnWidth(int column);
124 125
125 Column* GetColumn(int column_index) { 126 Column* GetColumn(int column_index) {
126 DCHECK(column_index >=0 && column_index < num_columns()); 127 DCHECK(column_index >=0 && column_index < num_columns());
127 return columns_[column_index]; 128 return columns_[column_index].get();
128 } 129 }
129 130
130 // These functions are mostly for testing & deviate from Views Layout class. 131 // These functions are mostly for testing & deviate from Views Layout class.
131 float ColumnLocation(int column_index); 132 float ColumnLocation(int column_index);
132 133
133 private: 134 private:
134 float CalculateRemainingWidth(float width); 135 float CalculateRemainingWidth(float width);
135 void DistributeRemainingWidth(float width); 136 void DistributeRemainingWidth(float width);
136 137
137 ScopedVector<Column> columns_; 138 std::vector<std::unique_ptr<Column>> columns_;
138 int id_; 139 int id_;
139 }; 140 };
140 141
141 #endif // CHROME_BROWSER_UI_COCOA_AUTOFILL_SIMPLE_GRID_LAYOUT_H_ 142 #endif // CHROME_BROWSER_UI_COCOA_AUTOFILL_SIMPLE_GRID_LAYOUT_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser_instant_controller_unittest.cc ('k') | chrome/browser/ui/cocoa/autofill/simple_grid_layout.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698