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

Side by Side Diff: ui/gfx/canvas_skia.cc

Issue 11293194: ui: Prefer +/- operators to apply offsets. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: floats 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/gfx/canvas.h" 5 #include "ui/gfx/canvas.h"
6 6
7 #include "base/i18n/rtl.h" 7 #include "base/i18n/rtl.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "ui/base/range/range.h" 10 #include "ui/base/range/range.h"
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 for (size_t i = 0; i < strings.size(); i++) { 281 for (size_t i = 0; i < strings.size(); i++) {
282 ui::Range range = StripAcceleratorChars(flags, &strings[i]); 282 ui::Range range = StripAcceleratorChars(flags, &strings[i]);
283 UpdateRenderText(rect, strings[i], font, flags, color, render_text.get()); 283 UpdateRenderText(rect, strings[i], font, flags, color, render_text.get());
284 const int line_height = render_text->GetStringSize().height(); 284 const int line_height = render_text->GetStringSize().height();
285 285
286 // TODO(msw|asvitkine): Center Windows multi-line text: crbug.com/107357 286 // TODO(msw|asvitkine): Center Windows multi-line text: crbug.com/107357
287 #if !defined(OS_WIN) 287 #if !defined(OS_WIN)
288 if (i == 0) { 288 if (i == 0) {
289 // TODO(msw|asvitkine): Support multi-line text with varied heights. 289 // TODO(msw|asvitkine): Support multi-line text with varied heights.
290 const int aggregate_height = strings.size() * line_height; 290 const int aggregate_height = strings.size() * line_height;
291 rect.Offset(0, (text_bounds.height() - aggregate_height) / 2); 291 rect += gfx::Vector2d(0, (text_bounds.height() - aggregate_height) / 2);
292 } 292 }
293 #endif 293 #endif
294 294
295 rect.set_height(line_height); 295 rect.set_height(line_height);
296 296
297 ApplyUnderlineStyle(range, render_text.get()); 297 ApplyUnderlineStyle(range, render_text.get());
298 render_text->SetDisplayRect(rect); 298 render_text->SetDisplayRect(rect);
299 render_text->Draw(this); 299 render_text->Draw(this);
300 rect.Offset(0, line_height); 300 rect += gfx::Vector2d(0, line_height);
301 } 301 }
302 } else { 302 } else {
303 ui::Range range = StripAcceleratorChars(flags, &adjusted_text); 303 ui::Range range = StripAcceleratorChars(flags, &adjusted_text);
304 bool elide_text = ((flags & NO_ELLIPSIS) == 0); 304 bool elide_text = ((flags & NO_ELLIPSIS) == 0);
305 305
306 #if defined(OS_LINUX) 306 #if defined(OS_LINUX)
307 // On Linux, eliding really means fading the end of the string. But only 307 // On Linux, eliding really means fading the end of the string. But only
308 // for LTR text. RTL text is still elided (on the left) with "...". 308 // for LTR text. RTL text is still elided (on the left) with "...".
309 if (elide_text) { 309 if (elide_text) {
310 render_text->SetText(adjusted_text); 310 render_text->SetText(adjusted_text);
311 if (render_text->GetTextDirection() == base::i18n::LEFT_TO_RIGHT) { 311 if (render_text->GetTextDirection() == base::i18n::LEFT_TO_RIGHT) {
312 render_text->set_fade_tail(true); 312 render_text->set_fade_tail(true);
313 elide_text = false; 313 elide_text = false;
314 } 314 }
315 } 315 }
316 #endif 316 #endif
317 317
318 if (elide_text) { 318 if (elide_text) {
319 ElideTextAndAdjustRange(font, 319 ElideTextAndAdjustRange(font,
320 text_bounds.width(), 320 text_bounds.width(),
321 &adjusted_text, 321 &adjusted_text,
322 &range); 322 &range);
323 } 323 }
324 324
325 UpdateRenderText(rect, adjusted_text, font, flags, color, 325 UpdateRenderText(rect, adjusted_text, font, flags, color,
326 render_text.get()); 326 render_text.get());
327 327
328 const int line_height = render_text->GetStringSize().height(); 328 const int line_height = render_text->GetStringSize().height();
329 // Center the text vertically. 329 // Center the text vertically.
330 rect.Offset(0, (text_bounds.height() - line_height) / 2); 330 rect += gfx::Vector2d(0, (text_bounds.height() - line_height) / 2);
331 rect.set_height(line_height); 331 rect.set_height(line_height);
332 render_text->SetDisplayRect(rect); 332 render_text->SetDisplayRect(rect);
333 333
334 ApplyUnderlineStyle(range, render_text.get()); 334 ApplyUnderlineStyle(range, render_text.get());
335 render_text->Draw(this); 335 render_text->Draw(this);
336 } 336 }
337 337
338 canvas_->restore(); 338 canvas_->restore();
339 } 339 }
340 340
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 439
440 // Default to left alignment unless right alignment was chosen above. 440 // Default to left alignment unless right alignment was chosen above.
441 if (!(flags & TEXT_ALIGN_RIGHT)) 441 if (!(flags & TEXT_ALIGN_RIGHT))
442 flags |= TEXT_ALIGN_LEFT; 442 flags |= TEXT_ALIGN_LEFT;
443 443
444 gfx::Rect rect = display_rect; 444 gfx::Rect rect = display_rect;
445 UpdateRenderText(rect, clipped_text, font, flags, color, render_text.get()); 445 UpdateRenderText(rect, clipped_text, font, flags, color, render_text.get());
446 446
447 const int line_height = render_text->GetStringSize().height(); 447 const int line_height = render_text->GetStringSize().height();
448 // Center the text vertically. 448 // Center the text vertically.
449 rect.Offset(0, (display_rect.height() - line_height) / 2); 449 rect += gfx::Vector2d(0, (display_rect.height() - line_height) / 2);
450 rect.set_height(line_height); 450 rect.set_height(line_height);
451 render_text->SetDisplayRect(rect); 451 render_text->SetDisplayRect(rect);
452 452
453 canvas_->save(SkCanvas::kClip_SaveFlag); 453 canvas_->save(SkCanvas::kClip_SaveFlag);
454 ClipRect(display_rect); 454 ClipRect(display_rect);
455 render_text->Draw(this); 455 render_text->Draw(this);
456 canvas_->restore(); 456 canvas_->restore();
457 } 457 }
458 458
459 } // namespace gfx 459 } // namespace gfx
OLDNEW
« .gitmodules ('K') | « ui/gfx/blit.cc ('k') | ui/gfx/pango_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698