summaryrefslogtreecommitdiffstats
path: root/chrome/views
diff options
context:
space:
mode:
authorsky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-29 23:38:06 +0000
committersky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-29 23:38:06 +0000
commit7f856bee73ffdccdbbbbbab4cb79185290d38359 (patch)
treea837328e08a113abdc70b2fc0ae2f2a4a3f804eb /chrome/views
parent281fe14063dd8fb81cea102f5abb7b82f407c3d1 (diff)
downloadchromium_src-7f856bee73ffdccdbbbbbab4cb79185290d38359.zip
chromium_src-7f856bee73ffdccdbbbbbab4cb79185290d38359.tar.gz
chromium_src-7f856bee73ffdccdbbbbbab4cb79185290d38359.tar.bz2
First cut at the bookmark manager. There are still a fair number of
rough edges, but I'm at a good point where I want to land what I have. Here's what is left: . Flicker on show, likely the result of restoring window placement. . tree flickers when dragging splitter. . table/tree need to autoscroll when drop cursor held at bottom of view. . prompts for deleting. . When you move an item the table snaps to the top, this is because I'm sending out model changed. need a better notification. . Operations in menu to add need to change selection. . Remember split location. I would have preferred to split this up into a couple of reviews, but everything is intertwined now. Sorry. BUG=674 TEST=don't test the bookmark manager yet, but make sure bookmark bar still works. Review URL: http://codereview.chromium.org/8197 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4191 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/views')
-rw-r--r--chrome/views/table_view.cc17
-rw-r--r--chrome/views/table_view.h4
2 files changed, 21 insertions, 0 deletions
diff --git a/chrome/views/table_view.cc b/chrome/views/table_view.cc
index bf35e1b..a94b9a3 100644
--- a/chrome/views/table_view.cc
+++ b/chrome/views/table_view.cc
@@ -516,6 +516,7 @@ bool TableView::GetCellColors(int model_row,
return false;
}
+// static
LRESULT CALLBACK TableView::TableWndProc(HWND window,
UINT message,
WPARAM w_param,
@@ -537,6 +538,22 @@ LRESULT CALLBACK TableView::TableWndProc(HWND window,
return result;
}
+ case WM_KEYDOWN: {
+ if (!table_view->single_selection_ && w_param == 'A' &&
+ GetKeyState(VK_CONTROL) < 0 && table_view->RowCount() > 0) {
+ // Select everything.
+ ListView_SetItemState(window, -1, LVIS_SELECTED, LVIS_SELECTED);
+ // And make the first row focused.
+ ListView_SetItemState(window, 0, LVIS_FOCUSED, LVIS_FOCUSED);
+ return 0;
+ } else if (w_param == VK_DELETE && table_view->table_view_observer_) {
+ table_view->table_view_observer_->OnTableViewDelete(table_view);
+ return 0;
+ }
+ // else case: fall through to default processing.
+ break;
+ }
+
default:
break;
}
diff --git a/chrome/views/table_view.h b/chrome/views/table_view.h
index 10c4b65..46e40cb6a 100644
--- a/chrome/views/table_view.h
+++ b/chrome/views/table_view.h
@@ -279,6 +279,9 @@ class TableViewObserver {
// Optional method invoked when the user hits a key with the table in focus.
virtual void OnKeyDown(unsigned short virtual_keycode) {}
+
+ // Invoked when the user presses the delete key.
+ virtual void OnTableViewDelete(TableView* table_view) {}
};
class TableView : public NativeControl,
@@ -387,6 +390,7 @@ class TableView : public NativeControl,
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.