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

Side by Side Diff: ui/views/controls/tree/tree_view.cc

Issue 16979002: Add ContextMenuSourceType to views::ContextMenuController::ShowContextMenuForView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/controls/tree/tree_view.h" 5 #include "ui/views/controls/tree/tree_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 return selector_.get(); 373 return selector_.get();
374 } 374 }
375 375
376 void TreeView::OnGestureEvent(ui::GestureEvent* event) { 376 void TreeView::OnGestureEvent(ui::GestureEvent* event) {
377 if (event->type() == ui::ET_GESTURE_TAP) { 377 if (event->type() == ui::ET_GESTURE_TAP) {
378 if (OnClickOrTap(*event)) 378 if (OnClickOrTap(*event))
379 event->SetHandled(); 379 event->SetHandled();
380 } 380 }
381 } 381 }
382 382
383 void TreeView::ShowContextMenu(const gfx::Point& p, bool is_mouse_gesture) { 383 void TreeView::ShowContextMenu(const gfx::Point& p,
384 ui::ContextMenuSourceType source_type) {
384 if (!model_) 385 if (!model_)
385 return; 386 return;
386 if (is_mouse_gesture) { 387 if (source_type == ui::CONTEXT_MENU_SOURCE_MOUSE) {
387 // Only invoke View's implementation (which notifies the 388 // Only invoke View's implementation (which notifies the
388 // ContextMenuController) if over a node. 389 // ContextMenuController) if over a node.
389 gfx::Point local_point(p); 390 gfx::Point local_point(p);
390 ConvertPointToTarget(NULL, this, &local_point); 391 ConvertPointToTarget(NULL, this, &local_point);
391 int row = (local_point.y() - kVerticalInset) / row_height_; 392 int row = (local_point.y() - kVerticalInset) / row_height_;
392 int depth = 0; 393 int depth = 0;
393 InternalNode* node = GetNodeByRow(row, &depth); 394 InternalNode* node = GetNodeByRow(row, &depth);
394 if (!node) 395 if (!node)
395 return; 396 return;
396 gfx::Rect bounds(GetBoundsForNodeImpl(node, row, depth)); 397 gfx::Rect bounds(GetBoundsForNodeImpl(node, row, depth));
397 if (!bounds.Contains(local_point)) 398 if (!bounds.Contains(local_point))
398 return; 399 return;
399 } 400 }
400 View::ShowContextMenu(p, is_mouse_gesture); 401 View::ShowContextMenu(p, source_type);
401 } 402 }
402 403
403 void TreeView::GetAccessibleState(ui::AccessibleViewState* state) { 404 void TreeView::GetAccessibleState(ui::AccessibleViewState* state) {
404 state->role = ui::AccessibilityTypes::ROLE_OUTLINE; 405 state->role = ui::AccessibilityTypes::ROLE_OUTLINE;
405 state->state = ui::AccessibilityTypes::STATE_READONLY; 406 state->state = ui::AccessibilityTypes::STATE_READONLY;
406 } 407 }
407 408
408 void TreeView::TreeNodesAdded(TreeModel* model, 409 void TreeView::TreeNodesAdded(TreeModel* model,
409 TreeModelNode* parent, 410 TreeModelNode* parent,
410 int start, 411 int start,
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after
998 if (!is_expanded_) 999 if (!is_expanded_)
999 return max_width; 1000 return max_width;
1000 for (int i = 0; i < child_count(); ++i) { 1001 for (int i = 0; i < child_count(); ++i) {
1001 max_width = std::max(max_width, 1002 max_width = std::max(max_width,
1002 GetChild(i)->GetMaxWidth(indent, depth + 1)); 1003 GetChild(i)->GetMaxWidth(indent, depth + 1));
1003 } 1004 }
1004 return max_width; 1005 return max_width;
1005 } 1006 }
1006 1007
1007 } // namespace views 1008 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698