OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/gtk/tabs/tab_renderer_gtk.h" | 5 #include "chrome/browser/gtk/tabs/tab_renderer_gtk.h" |
6 | 6 |
7 #include "app/gfx/canvas_paint.h" | 7 #include "app/gfx/canvas_paint.h" |
8 #include "app/l10n_util.h" | 8 #include "app/l10n_util.h" |
9 #include "app/resource_bundle.h" | 9 #include "app/resource_bundle.h" |
10 #include "chrome/browser/browser.h" | 10 #include "chrome/browser/browser.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 | 22 |
23 const int kLeftPadding = 16; | 23 const int kLeftPadding = 16; |
24 const int kTopPadding = 6; | 24 const int kTopPadding = 6; |
25 const int kRightPadding = 15; | 25 const int kRightPadding = 15; |
26 const int kBottomPadding = 5; | 26 const int kBottomPadding = 5; |
27 const int kFavIconTitleSpacing = 4; | 27 const int kFavIconTitleSpacing = 4; |
28 const int kTitleCloseButtonSpacing = 5; | 28 const int kTitleCloseButtonSpacing = 5; |
29 const int kStandardTitleWidth = 175; | 29 const int kStandardTitleWidth = 175; |
30 const int kFavIconSize = 16; | 30 const int kFavIconSize = 16; |
31 const int kDropShadowOffset = 2; | 31 const int kDropShadowOffset = 2; |
32 const int kSelectedTitleColor = SK_ColorBLACK; | |
33 const int kUnselectedTitleColor = SkColorSetRGB(64, 64, 64); | |
34 | 32 |
35 // How long the hover state takes. | 33 // How long the hover state takes. |
36 const int kHoverDurationMs = 90; | 34 const int kHoverDurationMs = 90; |
37 | 35 |
38 // How opaque to make the hover state (out of 1). | 36 // How opaque to make the hover state (out of 1). |
39 const double kHoverOpacity = 0.33; | 37 const double kHoverOpacity = 0.33; |
40 | 38 |
41 const SkScalar kTabCapWidth = 15; | 39 const SkScalar kTabCapWidth = 15; |
42 const SkScalar kTabTopCurveWidth = 4; | 40 const SkScalar kTabTopCurveWidth = 4; |
43 const SkScalar kTabBottomCurveWidth = 3; | 41 const SkScalar kTabBottomCurveWidth = 3; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 | 86 |
89 bool TabRendererGtk::initialized_ = false; | 87 bool TabRendererGtk::initialized_ = false; |
90 TabRendererGtk::TabImage TabRendererGtk::tab_active_ = {0}; | 88 TabRendererGtk::TabImage TabRendererGtk::tab_active_ = {0}; |
91 TabRendererGtk::TabImage TabRendererGtk::tab_inactive_ = {0}; | 89 TabRendererGtk::TabImage TabRendererGtk::tab_inactive_ = {0}; |
92 TabRendererGtk::TabImage TabRendererGtk::tab_alpha = {0}; | 90 TabRendererGtk::TabImage TabRendererGtk::tab_alpha = {0}; |
93 TabRendererGtk::TabImage TabRendererGtk::tab_hover_ = {0}; | 91 TabRendererGtk::TabImage TabRendererGtk::tab_hover_ = {0}; |
94 gfx::Font* TabRendererGtk::title_font_ = NULL; | 92 gfx::Font* TabRendererGtk::title_font_ = NULL; |
95 int TabRendererGtk::title_font_height_ = 0; | 93 int TabRendererGtk::title_font_height_ = 0; |
96 int TabRendererGtk::close_button_width_ = 0; | 94 int TabRendererGtk::close_button_width_ = 0; |
97 int TabRendererGtk::close_button_height_ = 0; | 95 int TabRendererGtk::close_button_height_ = 0; |
| 96 SkColor TabRendererGtk::selected_title_color_ = SK_ColorBLACK; |
| 97 SkColor TabRendererGtk::unselected_title_color_ = SkColorSetRGB(64, 64, 64); |
98 | 98 |
99 //////////////////////////////////////////////////////////////////////////////// | 99 //////////////////////////////////////////////////////////////////////////////// |
100 // TabRendererGtk::LoadingAnimation, public: | 100 // TabRendererGtk::LoadingAnimation, public: |
101 // | 101 // |
102 TabRendererGtk::LoadingAnimation::LoadingAnimation(const Data* data) | 102 TabRendererGtk::LoadingAnimation::LoadingAnimation(const Data* data) |
103 : data_(data), animation_state_(ANIMATION_NONE), animation_frame_(0) { | 103 : data_(data), animation_state_(ANIMATION_NONE), animation_frame_(0) { |
104 } | 104 } |
105 | 105 |
106 void TabRendererGtk::LoadingAnimation::ValidateLoadingAnimation( | 106 void TabRendererGtk::LoadingAnimation::ValidateLoadingAnimation( |
107 AnimationState animation_state) { | 107 AnimationState animation_state) { |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 tab_inactive_.image_l = rb.GetBitmapNamed(IDR_TAB_INACTIVE_LEFT); | 295 tab_inactive_.image_l = rb.GetBitmapNamed(IDR_TAB_INACTIVE_LEFT); |
296 tab_inactive_.image_c = rb.GetBitmapNamed(IDR_TAB_INACTIVE_CENTER); | 296 tab_inactive_.image_c = rb.GetBitmapNamed(IDR_TAB_INACTIVE_CENTER); |
297 tab_inactive_.image_r = rb.GetBitmapNamed(IDR_TAB_INACTIVE_RIGHT); | 297 tab_inactive_.image_r = rb.GetBitmapNamed(IDR_TAB_INACTIVE_RIGHT); |
298 tab_inactive_.l_width = tab_inactive_.image_l->width(); | 298 tab_inactive_.l_width = tab_inactive_.image_l->width(); |
299 tab_inactive_.r_width = tab_inactive_.image_r->width(); | 299 tab_inactive_.r_width = tab_inactive_.image_r->width(); |
300 | 300 |
301 close_button_width_ = rb.GetBitmapNamed(IDR_TAB_CLOSE)->width(); | 301 close_button_width_ = rb.GetBitmapNamed(IDR_TAB_CLOSE)->width(); |
302 close_button_height_ = rb.GetBitmapNamed(IDR_TAB_CLOSE)->height(); | 302 close_button_height_ = rb.GetBitmapNamed(IDR_TAB_CLOSE)->height(); |
303 } | 303 } |
304 | 304 |
| 305 // static |
| 306 void TabRendererGtk::SetSelectedTitleColor(SkColor color) { |
| 307 selected_title_color_ = color; |
| 308 } |
| 309 |
| 310 // static |
| 311 void TabRendererGtk::SetUnselectedTitleColor(SkColor color) { |
| 312 unselected_title_color_ = color; |
| 313 } |
| 314 |
305 void TabRendererGtk::SetBounds(const gfx::Rect& bounds) { | 315 void TabRendererGtk::SetBounds(const gfx::Rect& bounds) { |
306 gtk_widget_set_size_request(tab_.get(), bounds.width(), bounds.height()); | 316 gtk_widget_set_size_request(tab_.get(), bounds.width(), bounds.height()); |
307 bounds_ = bounds; | 317 bounds_ = bounds; |
308 Layout(); | 318 Layout(); |
309 } | 319 } |
310 | 320 |
311 //////////////////////////////////////////////////////////////////////////////// | 321 //////////////////////////////////////////////////////////////////////////////// |
312 // TabRendererGtk, protected: | 322 // TabRendererGtk, protected: |
313 | 323 |
314 std::wstring TabRendererGtk::GetTitle() const { | 324 std::wstring TabRendererGtk::GetTitle() const { |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 if (title.empty()) { | 424 if (title.empty()) { |
415 if (data_.loading) { | 425 if (data_.loading) { |
416 title = l10n_util::GetString(IDS_TAB_LOADING_TITLE); | 426 title = l10n_util::GetString(IDS_TAB_LOADING_TITLE); |
417 } else { | 427 } else { |
418 title = l10n_util::GetString(IDS_TAB_UNTITLED_TITLE); | 428 title = l10n_util::GetString(IDS_TAB_UNTITLED_TITLE); |
419 } | 429 } |
420 } else { | 430 } else { |
421 Browser::FormatTitleForDisplay(&title); | 431 Browser::FormatTitleForDisplay(&title); |
422 } | 432 } |
423 | 433 |
424 SkColor title_color = IsSelected() ? kSelectedTitleColor | 434 SkColor title_color = IsSelected() ? selected_title_color_ |
425 : kUnselectedTitleColor; | 435 : unselected_title_color_; |
426 canvas->DrawStringInt(title, *title_font_, title_color, title_bounds_.x(), | 436 canvas->DrawStringInt(title, *title_font_, title_color, title_bounds_.x(), |
427 title_bounds_.y(), title_bounds_.width(), | 437 title_bounds_.y(), title_bounds_.width(), |
428 title_bounds_.height()); | 438 title_bounds_.height()); |
429 } | 439 } |
430 | 440 |
431 SkBitmap TabRendererGtk::PaintBitmap() { | 441 SkBitmap TabRendererGtk::PaintBitmap() { |
432 gfx::Canvas canvas(width(), height(), false); | 442 gfx::Canvas canvas(width(), height(), false); |
433 Paint(&canvas); | 443 Paint(&canvas); |
434 return canvas.ExtractBitmap(); | 444 return canvas.ExtractBitmap(); |
435 } | 445 } |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
746 gfx::Font base_font = rb.GetFont(ResourceBundle::BaseFont); | 756 gfx::Font base_font = rb.GetFont(ResourceBundle::BaseFont); |
747 title_font_ = new gfx::Font(gfx::Font::CreateFont(base_font.FontName(), 10)); | 757 title_font_ = new gfx::Font(gfx::Font::CreateFont(base_font.FontName(), 10)); |
748 title_font_height_ = title_font_->height(); | 758 title_font_height_ = title_font_->height(); |
749 | 759 |
750 InitializeLoadingAnimationData(&rb, &loading_animation_data); | 760 InitializeLoadingAnimationData(&rb, &loading_animation_data); |
751 | 761 |
752 crashed_fav_icon = rb.GetBitmapNamed(IDR_SAD_FAVICON); | 762 crashed_fav_icon = rb.GetBitmapNamed(IDR_SAD_FAVICON); |
753 | 763 |
754 initialized_ = true; | 764 initialized_ = true; |
755 } | 765 } |
OLD | NEW |