summaryrefslogtreecommitdiffstats
path: root/chrome/views
diff options
context:
space:
mode:
authorpetersont@google.com <petersont@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-10 22:12:19 +0000
committerpetersont@google.com <petersont@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-10 22:12:19 +0000
commitb7937d5ba2a47d0016933fae4f856e83e5a57afb (patch)
treed8d77aa380b72a5d92a810ebe41e9fb312808a4d /chrome/views
parent2f668e22a495259d53772c6cc055547cd26cd7f1 (diff)
downloadchromium_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.cc1
-rw-r--r--chrome/views/table_view.cc8
-rw-r--r--chrome/views/table_view.h32
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_