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

Unified Diff: chrome/browser/bookmarks/bookmark_drop_info.cc

Issue 9042: Adds support for autoscrolling on drag to bookmark tree/table.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 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
Index: chrome/browser/bookmarks/bookmark_drop_info.cc
===================================================================
--- chrome/browser/bookmarks/bookmark_drop_info.cc (revision 0)
+++ chrome/browser/bookmarks/bookmark_drop_info.cc (revision 0)
@@ -0,0 +1,44 @@
+// Copyright (c) 2006-2008 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.
+
+#include "chrome/browser/bookmarks/bookmark_drop_info.h"
+
+#include "chrome/views/event.h"
+#include "chrome/views/view_constants.h"
+
+BookmarkDropInfo::BookmarkDropInfo(HWND hwnd, int top_margin)
+ : source_operations_(0),
+ is_control_down_(false),
+ last_y_(0),
+ drop_operation_(0),
+ hwnd_(hwnd),
+ top_margin_(top_margin),
+ scroll_up_(false) {
+}
+
+void BookmarkDropInfo::Update(const views::DropTargetEvent& event) {
+ source_operations_ = event.GetSourceOperations();
+ is_control_down_ = event.IsControlDown();
+ last_y_ = event.y();
+
+ RECT client_rect;
+ GetClientRect(hwnd_, &client_rect);
+ scroll_up_ = (last_y_ <= top_margin_ + views::kAutoscrollSize);
+ bool scroll_down = (last_y_ >= client_rect.bottom - views::kAutoscrollSize);
+ if (scroll_up_ || scroll_down) {
+ if (!scroll_timer_.IsRunning()) {
+ scroll_timer_.Start(
+ base::TimeDelta::FromMilliseconds(views::kAutoscrollRowTimerMS),
+ this,
+ &BookmarkDropInfo::Scroll);
+ }
+ } else {
+ scroll_timer_.Stop();
+ }
+}
+
+void BookmarkDropInfo::Scroll() {
+ SendMessage(hwnd_, WM_VSCROLL, scroll_up_ ? SB_LINEUP : SB_LINEDOWN, NULL);
+ Scrolled();
+}
Property changes on: chrome\browser\bookmarks\bookmark_drop_info.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698