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

Side by Side Diff: chrome/browser/ui/views/find_bar_view.cc

Issue 7285005: Make Windows FindBar stay within window bounds for narrow windows (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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
« no previous file with comments | « chrome/browser/ui/views/find_bar_host.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/find_bar_view.h" 5 #include "chrome/browser/ui/views/find_bar_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 canvas->TileImageInt(*background_, find_text_x, back_button_origin.y(), 251 canvas->TileImageInt(*background_, find_text_x, back_button_origin.y(),
252 back_button_origin.x() - find_text_x, 252 back_button_origin.x() - find_text_x,
253 background_->height()); 253 background_->height());
254 254
255 PaintAnimatingEdges(canvas, bounds); 255 PaintAnimatingEdges(canvas, bounds);
256 256
257 canvas->Restore(); 257 canvas->Restore();
258 } 258 }
259 259
260 void FindBarView::Layout() { 260 void FindBarView::Layout() {
261 gfx::Size panel_size = GetPreferredSize(); 261 int panel_width = GetPreferredSize().width();
262
263 // Stay within view bounds.
264 int view_width = width();
265 if (view_width && view_width < panel_width)
266 panel_width = view_width;
262 267
263 // First we draw the close button on the far right. 268 // First we draw the close button on the far right.
264 gfx::Size sz = close_button_->GetPreferredSize(); 269 gfx::Size sz = close_button_->GetPreferredSize();
265 close_button_->SetBounds(panel_size.width() - sz.width() - 270 close_button_->SetBounds(panel_width - sz.width() -
266 kMarginRightOfCloseButton, 271 kMarginRightOfCloseButton,
267 (height() - sz.height()) / 2, 272 (height() - sz.height()) / 2,
268 sz.width(), 273 sz.width(),
269 sz.height()); 274 sz.height());
270 // Set the color. 275 // Set the color.
271 OnThemeChanged(); 276 OnThemeChanged();
272 277
273 // Next, the FindNext button to the left the close button. 278 // Next, the FindNext button to the left the close button.
274 sz = find_next_button_->GetPreferredSize(); 279 sz = find_next_button_->GetPreferredSize();
275 find_next_button_->SetBounds(close_button_->x() - 280 find_next_button_->SetBounds(close_button_->x() -
(...skipping 27 matching lines...) Expand all
303 int match_count_x = find_previous_button_->x() - 308 int match_count_x = find_previous_button_->x() -
304 kWhiteSpaceAfterMatchCountLabel - 309 kWhiteSpaceAfterMatchCountLabel -
305 sz.width(); 310 sz.width();
306 match_count_text_->SetBounds(match_count_x, 311 match_count_text_->SetBounds(match_count_x,
307 (height() - sz.height()) / 2, 312 (height() - sz.height()) / 2,
308 sz.width(), 313 sz.width(),
309 sz.height()); 314 sz.height());
310 315
311 // And whatever space is left in between, gets filled up by the find edit box. 316 // And whatever space is left in between, gets filled up by the find edit box.
312 sz = find_text_->GetPreferredSize(); 317 sz = find_text_->GetPreferredSize();
313 sz.set_width(match_count_x - kMarginLeftOfFindTextfield); 318 sz.set_width(std::max(0, match_count_x - kMarginLeftOfFindTextfield));
314 find_text_->SetBounds(match_count_x - sz.width(), 319 int find_text_x = std::max(0, match_count_x - sz.width());
320 find_text_->SetBounds(find_text_x,
315 (height() - sz.height()) / 2 + 1, 321 (height() - sz.height()) / 2 + 1,
316 sz.width(), 322 sz.width(),
317 sz.height()); 323 sz.height());
318 324
319 // The focus forwarder view is a hidden view that should cover the area 325 // The focus forwarder view is a hidden view that should cover the area
320 // between the find text box and the find button so that when the user clicks 326 // between the find text box and the find button so that when the user clicks
321 // in that area we focus on the find text box. 327 // in that area we focus on the find text box.
322 int find_text_edge = find_text_->x() + find_text_->width(); 328 int find_text_edge = find_text_->x() + find_text_->width();
323 focus_forwarder_view_->SetBounds(find_text_edge, 329 focus_forwarder_view_->SetBounds(find_text_edge,
324 find_previous_button_->y(), 330 find_previous_button_->y(),
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 490
485 void FindBarView::OnThemeChanged() { 491 void FindBarView::OnThemeChanged() {
486 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 492 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
487 if (GetThemeProvider()) { 493 if (GetThemeProvider()) {
488 close_button_->SetBackground( 494 close_button_->SetBackground(
489 GetThemeProvider()->GetColor(ThemeService::COLOR_TAB_TEXT), 495 GetThemeProvider()->GetColor(ThemeService::COLOR_TAB_TEXT),
490 rb.GetBitmapNamed(IDR_CLOSE_BAR), 496 rb.GetBitmapNamed(IDR_CLOSE_BAR),
491 rb.GetBitmapNamed(IDR_CLOSE_BAR_MASK)); 497 rb.GetBitmapNamed(IDR_CLOSE_BAR_MASK));
492 } 498 }
493 } 499 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/find_bar_host.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698