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

Unified Diff: views/controls/table/table_view2.h

Issue 8655001: views: Move table and tree directories to ui/views/controls/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: exclude native_widget_win_unittest too Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « views/controls/table/table_view.cc ('k') | views/controls/table/table_view2.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: views/controls/table/table_view2.h
diff --git a/views/controls/table/table_view2.h b/views/controls/table/table_view2.h
deleted file mode 100644
index 58f5c0b0a8c0450aa6336ad28f47e36f16853f86..0000000000000000000000000000000000000000
--- a/views/controls/table/table_view2.h
+++ /dev/null
@@ -1,268 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef VIEWS_CONTROLS_TABLE_TABLE_VIEW2_H_
-#define VIEWS_CONTROLS_TABLE_TABLE_VIEW2_H_
-#pragma once
-
-#include <map>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "third_party/skia/include/core/SkColor.h"
-#include "ui/base/models/table_model_observer.h"
-#include "ui/gfx/canvas.h"
-#include "views/controls/table/native_table_wrapper.h"
-#include "views/controls/table/table_view.h"
-#include "views/view.h"
-
-namespace ui {
-struct TableColumn;
-class TableModel;
-}
-
-// A TableView2 is a view that displays multiple rows with any number of
-// columns.
-// TableView is driven by a TableModel. The model returns the contents
-// to display. TableModel also has an Observer which is used to notify
-// TableView of changes to the model so that the display may be updated
-// appropriately.
-//
-// TableView2 itself has an observer that is notified when the selection
-// changes.
-//
-// TableView2 is the current port of TableView to use a NativeControl for
-// portability.
-//
-// TODO(jcampan): add sorting.
-// TODO(jcampan): add group support.
-
-namespace views {
-
-class ListView;
-class ListViewParent;
-class TableView;
-class TableViewObserver;
-class View;
-
-class VIEWS_EXPORT TableView2 : public View, public ui::TableModelObserver {
- public:
- typedef TableSelectionIterator iterator;
-
- // A helper struct for GetCellColors. Set |color_is_set| to true if color is
- // set. See OnCustomDraw for more details on why we need this.
- struct ItemColor {
- bool color_is_set;
- SkColor color;
- };
-
- // Bitmasks of options for creating an instance of the table view. See
- // comments next to the corresponding members in TableView2 for details
- // (ex. SINGLE_SELECTION -> single_selection_).
- enum Options {
- NONE = 0,
- SINGLE_SELECTION = 1 << 0,
- RESIZABLE_COLUMNS = 1 << 1,
- AUTOSIZE_COLUMNS = 1 << 2,
- HORIZONTAL_LINES = 1 << 3,
- VERTICAL_LINES = 1 << 4,
- };
-
- // Creates a new table using the model and columns specified.
- // The table type applies to the content of the first column (text, icon and
- // text, checkbox and text).
- // When autosize_columns is true, columns always fill the available width. If
- // false, columns are not resized when the table is resized. An extra empty
- // column at the right fills the remaining space.
- // When resizable_columns is true, users can resize columns by dragging the
- // separator on the column header. NOTE: Right now this is always true. The
- // code to set it false is still in place to be a base for future, better
- // resizing behavior (see http://b/issue?id=874646 ), but no one uses or
- // tests the case where this flag is false.
- // Note that setting both resizable_columns and autosize_columns to false is
- // probably not a good idea, as there is no way for the user to increase a
- // column's size in that case.
- // |options| is a bitmask of options. See comments at Options.
- TableView2(ui::TableModel* model, const std::vector<ui::TableColumn>& columns,
- TableTypes table_type, int options);
- virtual ~TableView2();
-
- // Assigns a new model to the table view, detaching the old one if present.
- // If |model| is NULL, the table view cannot be used after this call. This
- // should be called in the containing view's destructor to avoid destruction
- // issues when the model needs to be deleted before the table.
- void SetModel(ui::TableModel* model);
- ui::TableModel* model() const { return model_; }
-
- // Returns the number of rows in the table.
- int GetRowCount();
-
- // Returns the number of selected rows.
- int SelectedRowCount();
-
- // Makes all row not selected.
- void ClearSelection();
-
- // Makes all row not focused.
- void ClearRowFocus();
-
- // Returns the index of the first selected row.
- int GetFirstSelectedRow();
-
- // Returns the index of the first focused row.
- int GetFirstFocusedRow();
-
- // Selects the specified row, making sure it's visible.
- void SelectRow(int model_row);
-
- // Sets the focus to the row at the given index.
- void FocusRow(int model_row);
-
- // Returns true if the row at the specified index is selected.
- bool IsRowSelected(int model_row);
-
- // Returns true if the row at the specified index has the focus.
- bool IsRowFocused(int model_row);
-
- // Returns an iterator over the selection. The iterator proceeds from the
- // last index to the first.
- //
- // NOTE: the iterator iterates over the visual order (but returns coordinates
- // in terms of the model).
- iterator SelectionBegin();
- iterator SelectionEnd();
-
- // ui::TableModelObserver methods.
- virtual void OnModelChanged();
- virtual void OnItemsChanged(int start, int length);
- virtual void OnItemsAdded(int start, int length);
- virtual void OnItemsRemoved(int start, int length);
-
- void SetObserver(TableViewObserver* observer) {
- table_view_observer_ = observer;
- }
- TableViewObserver* observer() const { return table_view_observer_; }
-
- // Replaces the set of known columns without changing the current visible
- // columns.
- void SetColumns(const std::vector<ui::TableColumn>& columns);
- void AddColumn(const ui::TableColumn& col);
- bool HasColumn(int id);
-
- // Sets which columns (by id) are displayed. All transient size and position
- // information is lost.
- void SetVisibleColumns(const std::vector<int>& columns);
- void SetColumnVisibility(int id, bool is_visible);
- bool IsColumnVisible(int id) const;
-
- ui::TableColumn GetVisibleColumnAt(int index);
- size_t GetVisibleColumnCount();
-
- // Resets the size of the columns based on the sizes passed to the
- // constructor. Your normally needn't invoked this, it's done for you the
- // first time the TableView is given a valid size.
- void ResetColumnSizes();
-
- bool single_selection() const {
- return single_selection_;
- }
-
- TableTypes type() const {
- return table_type_;
- }
-
- bool resizable_columns() const {
- return resizable_columns_;
- }
-
- bool autosize_columns() const {
- return autosize_columns_;
- }
-
- bool horizontal_lines() const {
- return horizontal_lines_;
- }
-
- bool vertical_lines() const {
- return vertical_lines_;
- }
-
- virtual void Layout();
-
- virtual void OnPaintFocusBorder(gfx::Canvas* canvas);
-
- // Used by tests.
- virtual gfx::NativeView GetTestingHandle();
-
- protected:
- virtual void ViewHierarchyChanged(bool is_add,
- View* parent,
- View* child) OVERRIDE;
-
- private:
- friend class ListViewParent;
- friend class TableSelectionIterator;
-
- // Used in the constructors.
- void Init(const std::vector<ui::TableColumn>& columns);
-
- // We need this wrapper to pass the table view to the windows proc handler
- // when subclassing the list view and list view header, as the reinterpret
- // cast from GetWindowLongPtr would break the pointer if it is pointing to a
- // subclass (in the OO sense of TableView).
- struct TableViewWrapper {
- explicit TableViewWrapper(TableView2* view) : table_view(view) {}
- TableView2* table_view;
- };
-
- // Adds a new column.
- void InsertColumn(const ui::TableColumn& tc, int index);
-
- // Update headers and internal state after columns have changed
- void OnColumnsChanged();
-
- ui::TableModel* model_;
- TableTypes table_type_;
- TableViewObserver* table_view_observer_;
-
- // An ordered list of id's into all_columns_ representing current visible
- // columns.
- std::vector<int> visible_columns_;
-
- // Mapping of an int id to a TableColumn representing all possible columns.
- std::map<int, ui::TableColumn> all_columns_;
-
- // Cached value of columns_.size()
- int column_count_;
-
- // Selection mode.
- bool single_selection_;
-
- // Whether or not the user can resize columns.
- bool resizable_columns_;
-
- // Whether or not columns should automatically be resized to fill the
- // the available width when the list view is resized.
- bool autosize_columns_;
-
- // Whether or not horizontal grid lines should be drawn.
- bool horizontal_lines_;
-
- // Whether or not vertical grid lines should be drawn.
- bool vertical_lines_;
-
- // Mappings used when sorted.
- // scoped_array<int> view_to_model_;
- // scoped_array<int> model_to_view_;
-
- // The object that actually implements the table.
- NativeTableWrapper* native_wrapper_;
-
- DISALLOW_COPY_AND_ASSIGN(TableView2);
-};
-
-} // namespace views
-
-#endif // VIEWS_CONTROLS_TABLE_TABLE_VIEW2_H_
« no previous file with comments | « views/controls/table/table_view.cc ('k') | views/controls/table/table_view2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698