diff options
author | petersont@google.com <petersont@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-10 22:12:19 +0000 |
---|---|---|
committer | petersont@google.com <petersont@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-10 22:12:19 +0000 |
commit | b7937d5ba2a47d0016933fae4f856e83e5a57afb (patch) | |
tree | d8d77aa380b72a5d92a810ebe41e9fb312808a4d /chrome/views | |
parent | 2f668e22a495259d53772c6cc055547cd26cd7f1 (diff) | |
download | chromium_src-b7937d5ba2a47d0016933fae4f856e83e5a57afb.zip chromium_src-b7937d5ba2a47d0016933fae4f856e83e5a57afb.tar.gz chromium_src-b7937d5ba2a47d0016933fae4f856e83e5a57afb.tar.bz2 |
Double clicking on an item in the task manager should bring the relevant tab forward.
Review URL: http://codereview.chromium.org/1822
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2026 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views')
-rw-r--r-- | chrome/views/group_table_view.cc | 1 | ||||
-rw-r--r-- | chrome/views/table_view.cc | 8 | ||||
-rw-r--r-- | chrome/views/table_view.h | 32 |
3 files changed, 31 insertions, 10 deletions
diff --git a/chrome/views/group_table_view.cc b/chrome/views/group_table_view.cc index 4bc3f2b..5088997 100644 --- a/chrome/views/group_table_view.cc +++ b/chrome/views/group_table_view.cc @@ -87,6 +87,7 @@ void GroupTableView::OnKeyDown(unsigned short virtual_keycode) { // for the list view control to actually switch the focus, the right item // will be selected. if ((virtual_keycode != VK_UP) && (virtual_keycode != VK_DOWN)) { + TableView::OnKeyDown(virtual_keycode); return; } diff --git a/chrome/views/table_view.cc b/chrome/views/table_view.cc index 2ca2f37..6d1bc60 100644 --- a/chrome/views/table_view.cc +++ b/chrome/views/table_view.cc @@ -880,7 +880,7 @@ void TableView::UpdateListViewCache0(int start, int length, bool add) { std::wstring text = model_->GetText(i, visible_columns_[0]); item.iItem = i; item.pszText = const_cast<LPWSTR>(text.c_str()); - item.state = INDEXTOSTATEIMAGEMASK(model_->IsChecked(i) ? 2 : 1) ; + item.state = INDEXTOSTATEIMAGEMASK(model_->IsChecked(i) ? 2 : 1); ListView_SetItem(list_view_, &item); } } @@ -935,6 +935,12 @@ void TableView::OnSelectedStateChanged(int item, bool is_selected) { } } +void TableView::OnKeyDown(unsigned short virtual_keycode) { + if (!ignore_listview_change_ && table_view_observer_) { + table_view_observer_->OnKeyDown(virtual_keycode); + } +} + void TableView::OnCheckedStateChanged(int item, bool is_checked) { if (!ignore_listview_change_) { model_->SetChecked(item, is_checked); diff --git a/chrome/views/table_view.h b/chrome/views/table_view.h index db86537..30f28f8 100644 --- a/chrome/views/table_view.h +++ b/chrome/views/table_view.h @@ -7,6 +7,9 @@ #include <windows.h> +#include <map> +#include <vector> + #include "base/logging.h" #include "chrome/common/l10n_util.h" #include "chrome/views/native_control.h" @@ -130,8 +133,14 @@ struct TableColumn { LEFT, RIGHT, CENTER }; - TableColumn() : id(0), title(), alignment(LEFT), width(-1), percent(), min_visible_width(0) {} - + TableColumn() + : id(0), + title(), + alignment(LEFT), + width(-1), + percent(), + min_visible_width(0) { + } TableColumn(int id, const std::wstring title, Alignment alignment, int width) : id(id), title(title), @@ -194,7 +203,8 @@ struct TableColumn { int width; float percent; - // The minimum width required for all items in this column (including the header) + // The minimum width required for all items in this column + // (including the header) // to be visible. int min_visible_width; }; @@ -217,11 +227,16 @@ class TableSelectionIterator { // TableViewObserver is notified about the TableView selection. class TableViewObserver { public: + virtual ~TableViewObserver() {} + // Invoked when the selection changes. virtual void OnSelectionChanged() = 0; // Optional method invoked when the user double clicks on the table. virtual void OnDoubleClick() {} + + // Optional method invoked when the user hits a key with the table in focus. + virtual void OnKeyDown(unsigned short virtual_keycode) {} }; class TableView : public NativeControl, @@ -340,6 +355,10 @@ class TableView : public NativeControl, // Notification from the ListView that the used double clicked the table. virtual void OnDoubleClick(); + // Subclasses can implement this method if they need to be notified of a key + // press event. Other wise, it appeals to table_view_observer_ + virtual void OnKeyDown(unsigned short virtual_keycode); + // Invoked to customize the colors or font at a particular cell. If you // change the colors or font, return true. This is only invoked if // SetCustomColorsEnabled(true) has been invoked. @@ -357,10 +376,6 @@ class TableView : public NativeControl, virtual void PostPaint(int row, int column, bool selected, const CRect& bounds, HDC device_context) { } - // Subclasses can implement this method if they need to be notified of a key - // press event. - virtual void OnKeyDown(unsigned short virtual_keycode) {} - virtual HWND CreateNativeControl(HWND parent_container); virtual LRESULT OnNotify(int w_param, LPNMHDR l_param); @@ -374,7 +389,7 @@ class TableView : public NativeControl, // cast from GetWindowLongPtr would break the pointer if it is pointing to a // subclass (in the OO sense of TableView). struct TableViewWrapper { - TableViewWrapper(TableView* view) : table_view(view) { } + explicit TableViewWrapper(TableView* view) : table_view(view) { } TableView* table_view; }; @@ -496,7 +511,6 @@ class TableView : public NativeControl, DISALLOW_COPY_AND_ASSIGN(TableView); }; - } #endif // CHROME_VIEWS_TABLE_VIEW_H_ |