diff options
author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-29 23:38:06 +0000 |
---|---|---|
committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-29 23:38:06 +0000 |
commit | 7f856bee73ffdccdbbbbbab4cb79185290d38359 (patch) | |
tree | a837328e08a113abdc70b2fc0ae2f2a4a3f804eb /chrome/views | |
parent | 281fe14063dd8fb81cea102f5abb7b82f407c3d1 (diff) | |
download | chromium_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.cc | 17 | ||||
-rw-r--r-- | chrome/views/table_view.h | 4 |
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. |