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

Side by Side Diff: chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc

Issue 6622002: Do all OOLing in the views code. linux_views now builds clean with the clang plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/ui/views/autocomplete/autocomplete_result_view.h" 5 #include "chrome/browser/ui/views/autocomplete/autocomplete_result_view.h"
6 6
7 #include "base/i18n/bidi_line_iterator.h" 7 #include "base/i18n/bidi_line_iterator.h"
8 #include "chrome/browser/ui/views/autocomplete/autocomplete_result_view_model.h" 8 #include "chrome/browser/ui/views/autocomplete/autocomplete_result_view_model.h"
9 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" 9 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
10 #include "grit/generated_resources.h" 10 #include "grit/generated_resources.h"
(...skipping 16 matching lines...) Expand all
27 // The minimum distance between the top and bottom of the {icon|text} and the 27 // The minimum distance between the top and bottom of the {icon|text} and the
28 // top or bottom of the row. 28 // top or bottom of the row.
29 const int kMinimumIconVerticalPadding = 2; 29 const int kMinimumIconVerticalPadding = 2;
30 const int kMinimumTextVerticalPadding = 3; 30 const int kMinimumTextVerticalPadding = 3;
31 31
32 } // namespace 32 } // namespace
33 33
34 //////////////////////////////////////////////////////////////////////////////// 34 ////////////////////////////////////////////////////////////////////////////////
35 // AutocompleteResultView, public: 35 // AutocompleteResultView, public:
36 36
37 // Precalculated data used to draw the portion of a match classification that
38 // fits entirely within one run.
39 struct AutocompleteResultView::ClassificationData {
40 string16 text;
41 const gfx::Font* font;
42 SkColor color;
43 int pixel_width;
44 };
45
46 // Precalculated data used to draw a complete visual run within the match.
47 // This will include all or part of at leasdt one, and possibly several,
48 // classifications.
49 struct AutocompleteResultView::RunData {
50 size_t run_start; // Offset within the match text where this run begins.
51 int visual_order; // Where this run occurs in visual order. The earliest
52 // run drawn is run 0.
53 bool is_rtl;
54 int pixel_width;
55 Classifications classifications; // Classification pieces within this run,
56 // in logical order.
Nico 2011/03/04 22:53:02 align with // on prev line
57 };
58
37 // This class is a utility class for calculations affected by whether the result 59 // This class is a utility class for calculations affected by whether the result
38 // view is horizontally mirrored. The drawing functions can be written as if 60 // view is horizontally mirrored. The drawing functions can be written as if
39 // all drawing occurs left-to-right, and then use this class to get the actual 61 // all drawing occurs left-to-right, and then use this class to get the actual
40 // coordinates to begin drawing onscreen. 62 // coordinates to begin drawing onscreen.
41 class AutocompleteResultView::MirroringContext { 63 class AutocompleteResultView::MirroringContext {
42 public: 64 public:
43 MirroringContext() : center_(0), right_(0) {} 65 MirroringContext() : center_(0), right_(0) {}
44 66
45 // Tells the mirroring context to use the provided range as the physical 67 // Tells the mirroring context to use the provided range as the physical
46 // bounds of the drawing region. When coordinate mirroring is needed, the 68 // bounds of the drawing region. When coordinate mirroring is needed, the
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 // * It's normal, and will be able to draw successfully with the 489 // * It's normal, and will be able to draw successfully with the
468 // ellipsis we'll append to it, or 490 // ellipsis we'll append to it, or
469 // * It is also bold, in which case we don't want to fall back 491 // * It is also bold, in which case we don't want to fall back
470 // to a normal ellipsis anyway (see comment above). 492 // to a normal ellipsis anyway (see comment above).
471 } 493 }
472 } 494 }
473 495
474 // We couldn't draw anything. 496 // We couldn't draw anything.
475 runs->clear(); 497 runs->clear();
476 } 498 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698