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

Side by Side Diff: ui/views/controls/table/table_view_win.cc

Issue 11269022: Add Vector2d classes that represent offsets, instead of using Point. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: RenderText fixup Created 8 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 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/table/table_view_win.h" 5 #include "ui/views/controls/table/table_view_win.h"
6 6
7 #include <commctrl.h> 7 #include <commctrl.h>
8 #include <windowsx.h> 8 #include <windowsx.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 LPARAM l_param) { 510 LPARAM l_param) {
511 TableView* table_view = reinterpret_cast<TableViewWrapper*>( 511 TableView* table_view = reinterpret_cast<TableViewWrapper*>(
512 GetWindowLongPtr(window, GWLP_USERDATA))->table_view; 512 GetWindowLongPtr(window, GWLP_USERDATA))->table_view;
513 513
514 // Is the mouse down on the table? 514 // Is the mouse down on the table?
515 static bool in_mouse_down = false; 515 static bool in_mouse_down = false;
516 // Should we select on mouse up? 516 // Should we select on mouse up?
517 static bool select_on_mouse_up = false; 517 static bool select_on_mouse_up = false;
518 518
519 // If the mouse is down, this is the location of the mouse down message. 519 // If the mouse is down, this is the location of the mouse down message.
520 static int mouse_down_x, mouse_down_y; 520 CR_DEFINE_STATIC_LOCAL(gfx::Point, mouse_down_pos, ());
521 521
522 switch (message) { 522 switch (message) {
523 case WM_CONTEXTMENU: { 523 case WM_CONTEXTMENU: {
524 // This addresses two problems seen with context menus in right to left 524 // This addresses two problems seen with context menus in right to left
525 // locales: 525 // locales:
526 // 1. The mouse coordinates in the l_param were occasionally wrong in 526 // 1. The mouse coordinates in the l_param were occasionally wrong in
527 // weird ways. This is most often seen when right clicking on the 527 // weird ways. This is most often seen when right clicking on the
528 // list-view twice in a row. 528 // list-view twice in a row.
529 // 2. Right clicking on the icon would show the scrollbar menu. 529 // 2. Right clicking on the icon would show the scrollbar menu.
530 // 530 //
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 if ((w_param | (MK_LBUTTON | MK_CONTROL | MK_SHIFT)) == 640 if ((w_param | (MK_LBUTTON | MK_CONTROL | MK_SHIFT)) ==
641 (MK_LBUTTON | MK_CONTROL | MK_SHIFT)) { 641 (MK_LBUTTON | MK_CONTROL | MK_SHIFT)) {
642 if (in_mouse_down) 642 if (in_mouse_down)
643 return 0; 643 return 0;
644 644
645 int view_index = GetViewIndexFromPoint(window, gfx::Point(l_param)); 645 int view_index = GetViewIndexFromPoint(window, gfx::Point(l_param));
646 if (view_index != -1) { 646 if (view_index != -1) {
647 table_view->ignore_listview_change_ = true; 647 table_view->ignore_listview_change_ = true;
648 in_mouse_down = true; 648 in_mouse_down = true;
649 select_on_mouse_up = false; 649 select_on_mouse_up = false;
650 mouse_down_x = GET_X_LPARAM(l_param); 650 mouse_down_pos.set_x(GET_X_LPARAM(l_param));
651 mouse_down_y = GET_Y_LPARAM(l_param); 651 mouse_down_pos.set_y(GET_Y_LPARAM(l_param));
652 int model_index = table_view->ViewToModel(view_index); 652 int model_index = table_view->ViewToModel(view_index);
653 bool select = true; 653 bool select = true;
654 if (w_param & MK_CONTROL) { 654 if (w_param & MK_CONTROL) {
655 select = false; 655 select = false;
656 if (!table_view->IsItemSelected(model_index)) { 656 if (!table_view->IsItemSelected(model_index)) {
657 if (table_view->single_selection_) { 657 if (table_view->single_selection_) {
658 // Single selection mode and the row isn't selected, select 658 // Single selection mode and the row isn't selected, select
659 // only it. 659 // only it.
660 table_view->Select(model_index); 660 table_view->Select(model_index);
661 } else { 661 } else {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 SetCapture(window); 702 SetCapture(window);
703 return 0; 703 return 0;
704 } 704 }
705 // else case, continue on to default handler 705 // else case, continue on to default handler
706 } 706 }
707 break; 707 break;
708 } 708 }
709 709
710 case WM_MOUSEMOVE: { 710 case WM_MOUSEMOVE: {
711 if (in_mouse_down) { 711 if (in_mouse_down) {
712 int x = GET_X_LPARAM(l_param); 712 gfx::Point mouse_pos(GET_X_LPARAM(l_param), GET_Y_LPARAM(l_param));
713 int y = GET_Y_LPARAM(l_param); 713 if (View::ExceededDragThreshold(mouse_pos - mouse_down_pos)) {
714 if (View::ExceededDragThreshold(x - mouse_down_x, y - mouse_down_y)) {
715 // We're about to start drag and drop, which results in no mouse up. 714 // We're about to start drag and drop, which results in no mouse up.
716 // Release capture and reset state. 715 // Release capture and reset state.
717 ReleaseCapture(); 716 ReleaseCapture();
718 in_mouse_down = false; 717 in_mouse_down = false;
719 718
720 NMLISTVIEW details; 719 NMLISTVIEW details;
721 memset(&details, 0, sizeof(details)); 720 memset(&details, 0, sizeof(details));
722 details.hdr.code = LVN_BEGINDRAG; 721 details.hdr.code = LVN_BEGINDRAG;
723 SendMessage(::GetParent(window), WM_NOTIFY, 0, 722 SendMessage(::GetParent(window), WM_NOTIFY, 0,
724 reinterpret_cast<LPARAM>(&details)); 723 reinterpret_cast<LPARAM>(&details));
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 } 1640 }
1642 1641
1643 void TableSelectionIterator::UpdateModelIndexFromViewIndex() { 1642 void TableSelectionIterator::UpdateModelIndexFromViewIndex() {
1644 if (view_index_ == -1) 1643 if (view_index_ == -1)
1645 model_index_ = -1; 1644 model_index_ = -1;
1646 else 1645 else
1647 model_index_ = table_view_->ViewToModel(view_index_); 1646 model_index_ = table_view_->ViewToModel(view_index_);
1648 } 1647 }
1649 1648
1650 } // namespace views 1649 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698