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

Unified Diff: chrome/browser/ui/panels/panel_browser_frame_view.cc

Issue 8664021: Update Panel UI looks on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Created 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/panels/panel_browser_frame_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/panels/panel_browser_frame_view.cc
diff --git a/chrome/browser/ui/panels/panel_browser_frame_view.cc b/chrome/browser/ui/panels/panel_browser_frame_view.cc
index e749e0e8e8f18421d206d03cc3ae44195ce33a4a..2ebdb6499b14949e48b6785a8fea0cf74ba0cad3 100644
--- a/chrome/browser/ui/panels/panel_browser_frame_view.cc
+++ b/chrome/browser/ui/panels/panel_browser_frame_view.cc
@@ -8,6 +8,7 @@
#include "base/utf_string_conversions.h"
#include "chrome/browser/themes/theme_service.h"
+#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/panels/panel.h"
#include "chrome/browser/ui/panels/panel_browser_view.h"
#include "chrome/browser/ui/panels/panel_manager.h"
@@ -27,6 +28,7 @@
#include "ui/gfx/canvas_skia.h"
#include "ui/gfx/path.h"
#include "ui/gfx/screen.h"
+#include "ui/gfx/skia_util.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/button/menu_button.h"
#include "ui/views/controls/label.h"
@@ -41,24 +43,56 @@ namespace {
// The height in pixels of the titlebar.
const int kTitlebarHeight = 24;
-// The thickness in pixels of the frame border.
-const int kFrameBorderThickness = 1;
+// The thickness in pixels of the border.
+const int kBorderThickness = 1;
-// The spacing in pixels between the icon and the border/text.
-const int kIconSpacing = 4;
+// No client edge is present.
+const int kPanelClientEdgeThickness = 0;
+
+// The spacing in pixels between the icon and the left border.
+const int kIconAndBorderSpacing = 4;
// The height and width in pixels of the icon.
const int kIconSize = 16;
-// The spacing in pixels between buttons or the button and the adjacent control.
-const int kButtonSpacing = 6;
+// The spacing in pixels between the title and the icon on the left, or the
+// button on the right.
+const int kTitleSpacing = 8;
+
+// The spacing in pixels between the close button and the right border.
+const int kCloseButtonAndBorderSpacing = 8;
+
+// The spacing in pixels between the close button and the settings button.
+const int kSettingsButtonAndCloseButtonSpacing = 8;
// This value is experimental and subjective.
const int kUpdateSettingsVisibilityAnimationMs = 120;
-// Colors used in painting the titlebar for drawing attention.
-const SkColor kBackgroundColorForAttention = 0xfffa983a;
-const SkColor kTitleTextColorForAttention = SK_ColorWHITE;
+// Colors used to draw active titlebar under default theme.
+const SkColor kActiveTitleTextDefaultColor = SK_ColorBLACK;
+const SkColor kActiveBackgroundDefaultColorStart = 0xfff0f8fa;
+const SkColor kActiveBackgroundDefaultColorEnd = 0xffc1d2dd;
+
+// Colors used to draw inactive titlebar under default theme.
+const SkColor kInactiveTitleTextDefaultColor = 0x80888888;
+const SkColor kInactiveBackgroundDefaultColorStart = 0xffffffff;
+const SkColor kInactiveBackgroundDefaultColorEnd = 0xffe7edf1;
+
+// Alpha value used in drawing inactive titlebar under default theme.
+const U8CPU kInactiveAlphaBlending = 0x80;
+
+// Colors used to draw titlebar for drawing attention under default theme.
+// It is also used in non-default theme since attention color is not defined
+// in the theme.
+const SkColor kAttentionTitleTextDefaultColor = SK_ColorWHITE;
+const SkColor kAttentionBackgroundDefaultColorStart = 0xffffab57;
+const SkColor kAttentionBackgroundDefaultColorEnd = 0xfff59338;
+
+// Color used to draw the border.
+const SkColor kBorderColor = 0xc0000000;
+
+// Color used to draw the divider line between the titlebar and the client area.
+const SkColor kDividerColor = 0xffb5b5b5;
struct ButtonResources {
SkBitmap* normal_image;
@@ -66,8 +100,12 @@ struct ButtonResources {
SkBitmap* hover_image;
SkBitmap* pushed_image;
- void SetResources(int normal_image_id, int mask_image_id, int hover_image_id,
- int pushed_image_id) {
+ ButtonResources(int normal_image_id, int mask_image_id, int hover_image_id,
+ int pushed_image_id)
+ : normal_image(NULL),
+ mask_image(NULL),
+ hover_image(NULL),
+ pushed_image(NULL) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
normal_image = rb.GetBitmapNamed(normal_image_id);
mask_image = mask_image_id ? rb.GetBitmapNamed(mask_image_id) : NULL;
@@ -86,9 +124,17 @@ struct EdgeResources {
SkBitmap* bottom_left;
SkBitmap* left;
- void SetResources(int top_left_id, int top_id, int top_right_id, int right_id,
- int bottom_right_id, int bottom_id, int bottom_left_id,
- int left_id) {
+ EdgeResources(int top_left_id, int top_id, int top_right_id, int right_id,
+ int bottom_right_id, int bottom_id, int bottom_left_id,
+ int left_id)
+ : top_left(NULL),
+ top(NULL),
+ top_right(NULL),
+ right(NULL),
+ bottom_right(NULL),
+ bottom(NULL),
+ bottom_left(NULL),
+ left(NULL) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
top_left = rb.GetBitmapNamed(top_left_id);
top = rb.GetBitmapNamed(top_id);
@@ -101,50 +147,81 @@ struct EdgeResources {
}
};
-ButtonResources settings_button_resources;
-ButtonResources close_button_resources;
-EdgeResources frame_edges;
-EdgeResources client_edges;
-gfx::Font* title_font = NULL;
-SkBitmap* background_bitmap_for_attention = NULL;
-
-void LoadImageResources() {
- settings_button_resources.SetResources(
- IDR_BALLOON_WRENCH, 0, IDR_BALLOON_WRENCH_H, IDR_BALLOON_WRENCH_P);
-
- close_button_resources.SetResources(
- IDR_TAB_CLOSE, IDR_TAB_CLOSE_MASK, IDR_TAB_CLOSE_H, IDR_TAB_CLOSE_P);
+SkPaint* CreateGradientPaint(SkColor start_color, SkColor end_color) {
+ SkShader* shader = gfx::CreateGradientShader(
+ 0, kTitlebarHeight, start_color, end_color);
+ SkPaint* paint = new SkPaint();
+ paint->setStyle(SkPaint::kFill_Style);
+ paint->setAntiAlias(true);
+ paint->setShader(shader);
+ shader->unref();
+ return paint;
+}
+
+const ButtonResources& GetSettingsButtonResources() {
+ static ButtonResources* buttons = NULL;
+ if (!buttons) {
+ buttons = new ButtonResources(IDR_BALLOON_WRENCH, 0,
+ IDR_BALLOON_WRENCH_H, IDR_BALLOON_WRENCH_P);
+ }
+ return *buttons;
+}
- frame_edges.SetResources(
- IDR_WINDOW_TOP_LEFT_CORNER, IDR_WINDOW_TOP_CENTER,
- IDR_WINDOW_TOP_RIGHT_CORNER, IDR_WINDOW_RIGHT_SIDE,
- IDR_PANEL_BOTTOM_RIGHT_CORNER, IDR_WINDOW_BOTTOM_CENTER,
- IDR_PANEL_BOTTOM_LEFT_CORNER, IDR_WINDOW_LEFT_SIDE);
+const ButtonResources& GetCloseButtonResources() {
+ static ButtonResources* buttons = NULL;
+ if (!buttons) {
+ buttons = new ButtonResources(IDR_TAB_CLOSE, IDR_TAB_CLOSE_MASK,
+ IDR_TAB_CLOSE_H, IDR_TAB_CLOSE_P);
+ }
+ return *buttons;
+}
- client_edges.SetResources(
- IDR_APP_TOP_LEFT, IDR_APP_TOP_CENTER,
- IDR_APP_TOP_RIGHT, IDR_CONTENT_RIGHT_SIDE,
- IDR_CONTENT_BOTTOM_RIGHT_CORNER, IDR_CONTENT_BOTTOM_CENTER,
- IDR_CONTENT_BOTTOM_LEFT_CORNER, IDR_CONTENT_LEFT_SIDE);
+const EdgeResources& GetFrameEdges() {
+ static EdgeResources* edges = NULL;
+ if (!edges) {
+ edges = new EdgeResources(
+ IDR_WINDOW_TOP_LEFT_CORNER, IDR_WINDOW_TOP_CENTER,
+ IDR_WINDOW_TOP_RIGHT_CORNER, IDR_WINDOW_RIGHT_SIDE,
+ IDR_PANEL_BOTTOM_RIGHT_CORNER, IDR_WINDOW_BOTTOM_CENTER,
+ IDR_PANEL_BOTTOM_LEFT_CORNER, IDR_WINDOW_LEFT_SIDE);
+ }
+ return *edges;
}
-void EnsureResourcesInitialized() {
- static bool resources_initialized = false;
- if (resources_initialized)
- return;
- resources_initialized = true;
+const gfx::Font& GetTitleFont() {
+ static gfx::Font* font = NULL;
+ if (!font) {
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance();
+ font = new gfx::Font(rb.GetFont(ResourceBundle::BoldFont));
+ }
+ return *font;
+}
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- title_font = new gfx::Font(rb.GetFont(ResourceBundle::BaseFont));
+const SkPaint& GetActiveBackgroundDefaultPaint() {
+ static SkPaint* paint = NULL;
+ if (!paint) {
+ paint = CreateGradientPaint(kActiveBackgroundDefaultColorStart,
+ kActiveBackgroundDefaultColorEnd);
+ }
+ return *paint;
+}
- // Creates a bitmap of the specified color.
- background_bitmap_for_attention = new SkBitmap();
- background_bitmap_for_attention->setConfig(
- SkBitmap::kARGB_8888_Config, 16, 16);
- background_bitmap_for_attention->allocPixels();
- background_bitmap_for_attention->eraseColor(kBackgroundColorForAttention);
+const SkPaint& GetInactiveBackgroundDefaultPaint() {
+ static SkPaint* paint = NULL;
+ if (!paint) {
+ paint = CreateGradientPaint(kInactiveBackgroundDefaultColorStart,
+ kInactiveBackgroundDefaultColorEnd);
+ }
+ return *paint;
+}
- LoadImageResources();
+const SkPaint& GetAttentionBackgroundDefaultPaint() {
+ static SkPaint* paint = NULL;
+ if (!paint) {
+ paint = CreateGradientPaint(kAttentionBackgroundDefaultColorStart,
+ kAttentionBackgroundDefaultColorEnd);
+ }
+ return *paint;
}
} // namespace
@@ -239,9 +316,10 @@ PanelBrowserFrameView::PanelBrowserFrameView(BrowserFrame* frame,
title_icon_(NULL),
title_label_(NULL),
is_settings_button_visible_(false) {
- EnsureResourcesInitialized();
frame->set_frame_type(views::Widget::FRAME_TYPE_FORCE_CUSTOM);
+ const ButtonResources& settings_button_resources =
+ GetSettingsButtonResources();
settings_button_ = new views::MenuButton(NULL, string16(), this, false);
settings_button_->SetIcon(*(settings_button_resources.normal_image));
settings_button_->SetHoverIcon(*(settings_button_resources.hover_image));
@@ -255,6 +333,7 @@ PanelBrowserFrameView::PanelBrowserFrameView(BrowserFrame* frame,
settings_button_->SetVisible(is_settings_button_visible_);
AddChildView(settings_button_);
+ const ButtonResources& close_button_resources = GetCloseButtonResources();
close_button_ = new views::ImageButton(this);
close_button_->SetImage(views::CustomButton::BS_NORMAL,
close_button_resources.normal_image);
@@ -340,33 +419,19 @@ int PanelBrowserFrameView::NonClientHitTest(const gfx::Point& point) {
void PanelBrowserFrameView::GetWindowMask(const gfx::Size& size,
gfx::Path* window_mask) {
- // For panel, the window shape is rectangle with top-left and top-right
- // corners rounded.
- if (size.height() <= Panel::kMinimizedPanelHeight) {
- // For minimize panel, we need to produce the window mask applicable to
- // the 3-pixel lines.
- window_mask->moveTo(0, SkIntToScalar(size.height()));
- window_mask->lineTo(0, 1);
- window_mask->lineTo(1, 0);
- window_mask->lineTo(SkIntToScalar(size.width()) - 1, 0);
- window_mask->lineTo(SkIntToScalar(size.width()), 1);
- window_mask->lineTo(SkIntToScalar(size.width()),
- SkIntToScalar(size.height()));
- } else {
- window_mask->moveTo(0, 3);
- window_mask->lineTo(1, 2);
- window_mask->lineTo(1, 1);
- window_mask->lineTo(2, 1);
- window_mask->lineTo(3, 0);
- window_mask->lineTo(SkIntToScalar(size.width() - 3), 0);
- window_mask->lineTo(SkIntToScalar(size.width() - 2), 1);
- window_mask->lineTo(SkIntToScalar(size.width() - 1), 1);
- window_mask->lineTo(SkIntToScalar(size.width() - 1), 2);
- window_mask->lineTo(SkIntToScalar(size.width()), 3);
- window_mask->lineTo(SkIntToScalar(size.width()),
- SkIntToScalar(size.height()));
- window_mask->lineTo(0, SkIntToScalar(size.height()));
- }
+ window_mask->moveTo(0, 3);
+ window_mask->lineTo(1, 2);
+ window_mask->lineTo(1, 1);
+ window_mask->lineTo(2, 1);
+ window_mask->lineTo(3, 0);
+ window_mask->lineTo(SkIntToScalar(size.width() - 3), 0);
+ window_mask->lineTo(SkIntToScalar(size.width() - 2), 1);
+ window_mask->lineTo(SkIntToScalar(size.width() - 1), 1);
+ window_mask->lineTo(SkIntToScalar(size.width() - 1), 2);
+ window_mask->lineTo(SkIntToScalar(size.width() - 1), 3);
+ window_mask->lineTo(SkIntToScalar(size.width()),
+ SkIntToScalar(size.height()));
+ window_mask->lineTo(0, SkIntToScalar(size.height()));
window_mask->close();
}
@@ -390,15 +455,13 @@ void PanelBrowserFrameView::OnPaint(gfx::Canvas* canvas) {
UpdateControlStyles(paint_state);
PaintFrameBorder(canvas);
- PaintClientEdge(canvas);
}
void PanelBrowserFrameView::OnThemeChanged() {
- LoadImageResources();
}
gfx::Size PanelBrowserFrameView::GetMinimumSize() {
- // This makes the panel be able to shrink to very small, like 3-pixel lines.
+ // This makes the panel be able to shrink to very small, like 4-pixel lines.
// Since the panel cannot be resized by the user, we do not need to enforce
// the minimum size.
return gfx::Size();
@@ -413,7 +476,7 @@ void PanelBrowserFrameView::Layout() {
// Layout the close button.
gfx::Size close_button_size = close_button_->GetPreferredSize();
close_button_->SetBounds(
- width() - kFrameBorderThickness - kButtonSpacing -
+ width() - kBorderThickness - kCloseButtonAndBorderSpacing -
close_button_size.width(),
(NonClientTopBorderHeight() - close_button_size.height()) / 2,
close_button_size.width(),
@@ -422,7 +485,8 @@ void PanelBrowserFrameView::Layout() {
// Layout the settings button.
gfx::Size settings_button_size = settings_button_->GetPreferredSize();
settings_button_->SetBounds(
- close_button_->x() - kButtonSpacing - settings_button_size.width(),
+ close_button_->x() - kSettingsButtonAndCloseButtonSpacing -
+ settings_button_size.width(),
(NonClientTopBorderHeight() - settings_button_size.height()) / 2,
settings_button_size.width(),
settings_button_size.height());
@@ -440,18 +504,18 @@ void PanelBrowserFrameView::Layout() {
// Layout the icon.
int icon_y = (NonClientTopBorderHeight() - kIconSize) / 2;
title_icon_->SetBounds(
- kFrameBorderThickness + kIconSpacing,
+ kBorderThickness + kIconAndBorderSpacing,
icon_y,
kIconSize,
kIconSize);
// Layout the title.
- int title_x = title_icon_->bounds().right() + kIconSpacing;
+ int title_x = title_icon_->bounds().right() + kTitleSpacing;
int title_height = BrowserFrame::GetTitleFont().GetHeight();
title_label_->SetBounds(
title_x,
icon_y + ((kIconSize - title_height - 1) / 2),
- std::max(0, settings_button_->x() - kButtonSpacing - title_x),
+ std::max(0, settings_button_->x() - kTitleSpacing - title_x),
title_height);
// Calculate the client area bounds.
@@ -553,11 +617,11 @@ void PanelBrowserFrameView::AnimationCanceled(const ui::Animation* animation) {
}
int PanelBrowserFrameView::NonClientBorderThickness() const {
- return kFrameBorderThickness + kClientEdgeThickness;
+ return kBorderThickness + kPanelClientEdgeThickness;
}
int PanelBrowserFrameView::NonClientTopBorderHeight() const {
- return kFrameBorderThickness + kTitlebarHeight + kClientEdgeThickness;
+ return kBorderThickness + kTitlebarHeight + kPanelClientEdgeThickness;
}
gfx::Size PanelBrowserFrameView::NonClientAreaSize() const {
@@ -565,23 +629,56 @@ gfx::Size PanelBrowserFrameView::NonClientAreaSize() const {
NonClientTopBorderHeight() + NonClientBorderThickness());
}
+bool PanelBrowserFrameView::UsingDefaultTheme() const {
+ ThemeService* theme_service = ThemeServiceFactory::GetForProfile(
+ panel_browser_view_->panel()->browser()->profile());
+ return theme_service->UsingDefaultTheme();
+}
+
+SkColor PanelBrowserFrameView::GetDefaultTitleColor(
+ PaintState paint_state) const {
+ switch (paint_state) {
+ case PAINT_AS_INACTIVE:
+ return kActiveTitleTextDefaultColor;
+ case PAINT_AS_ACTIVE:
+ return kInactiveTitleTextDefaultColor;
+ case PAINT_FOR_ATTENTION:
+ return kAttentionTitleTextDefaultColor;
+ default:
+ NOTREACHED();
+ return SkColor();
+ }
+}
+
SkColor PanelBrowserFrameView::GetTitleColor(PaintState paint_state) const {
switch (paint_state) {
case PAINT_AS_INACTIVE:
- return GetThemeProvider()->GetColor(
- ThemeService::COLOR_BACKGROUND_TAB_TEXT);
+ return SkColorSetA(
+ GetThemeProvider()->GetColor(ThemeService::COLOR_BACKGROUND_TAB_TEXT),
+ kInactiveAlphaBlending);
case PAINT_AS_ACTIVE:
return GetThemeProvider()->GetColor(ThemeService::COLOR_TAB_TEXT);
case PAINT_FOR_ATTENTION:
- return kTitleTextColorForAttention;
+ return kAttentionTitleTextDefaultColor;
default:
NOTREACHED();
return SkColor();
}
}
-gfx::Font* PanelBrowserFrameView::GetTitleFont() const {
- return title_font;
+const SkPaint& PanelBrowserFrameView::GetDefaultFrameTheme(
+ PaintState paint_state) const {
+ switch (paint_state) {
+ case PAINT_AS_INACTIVE:
+ return GetInactiveBackgroundDefaultPaint();
+ case PAINT_AS_ACTIVE:
+ return GetActiveBackgroundDefaultPaint();
+ case PAINT_FOR_ATTENTION:
+ return GetAttentionBackgroundDefaultPaint();
+ default:
+ NOTREACHED();
+ return GetInactiveBackgroundDefaultPaint();
+ }
}
SkBitmap* PanelBrowserFrameView::GetFrameTheme(PaintState paint_state) const {
@@ -591,7 +688,8 @@ SkBitmap* PanelBrowserFrameView::GetFrameTheme(PaintState paint_state) const {
case PAINT_AS_ACTIVE:
return GetThemeProvider()->GetBitmapNamed(IDR_THEME_TOOLBAR);
case PAINT_FOR_ATTENTION:
- return background_bitmap_for_attention;
+ // Background color for drawing attention is same regardless of the
+ // theme. GetDefaultFrameTheme should be used.
default:
NOTREACHED();
return NULL;
@@ -607,24 +705,25 @@ void PanelBrowserFrameView::UpdateControlStyles(PaintState paint_state) {
SkColor title_color = GetTitleColor(paint_state_);
title_label_->SetEnabledColor(title_color);
- title_label_->SetFont(*GetTitleFont());
+ title_label_->SetFont(GetTitleFont());
close_button_->SetBackground(title_color,
- close_button_resources.normal_image,
- close_button_resources.mask_image);
+ GetCloseButtonResources().normal_image,
+ GetCloseButtonResources().mask_image);
}
void PanelBrowserFrameView::PaintFrameBorder(gfx::Canvas* canvas) {
- SkBitmap* theme_frame = GetFrameTheme(paint_state_);
-
- // Draw the theme frame.
- canvas->TileImageInt(*theme_frame, 0, 0, width(), height());
-
- // No need to paint other stuff if panel is minimized.
- if (height() <= Panel::kMinimizedPanelHeight)
- return;
+ // Paint the background.
+ if (paint_state_ == PAINT_FOR_ATTENTION || UsingDefaultTheme()) {
+ const SkPaint& paint = GetDefaultFrameTheme(paint_state_);
+ canvas->DrawRectInt(0, 0, width(), kTitlebarHeight, paint);
+ } else {
+ SkBitmap* bitmap = GetFrameTheme(paint_state_);
+ canvas->TileImageInt(*bitmap, 0, 0, width(), kTitlebarHeight);
+ }
// Draw the top border.
+ const EdgeResources& frame_edges = GetFrameEdges();
canvas->DrawBitmapInt(*(frame_edges.top_left), 0, 0);
canvas->TileImageInt(
*(frame_edges.top), frame_edges.top_left->width(), 0,
@@ -661,52 +760,12 @@ void PanelBrowserFrameView::PaintFrameBorder(gfx::Canvas* canvas) {
frame_edges.left->width(),
height() - frame_edges.top_left->height() -
frame_edges.bottom_left->height());
-}
-
-void PanelBrowserFrameView::PaintClientEdge(gfx::Canvas* canvas) {
- int client_area_top = client_view_bounds_.y();
-
- // No need to paint other stuff if panel is minimized.
- if (height() <= Panel::kMinimizedPanelHeight)
- return;
-
- // Draw the top edge.
- int top_edge_y = client_area_top - client_edges.top->height();
- canvas->DrawBitmapInt(
- *(client_edges.top_left),
- client_view_bounds_.x() - client_edges.top_left->width(),
- top_edge_y);
- canvas->TileImageInt(
- *(client_edges.top), client_view_bounds_.x(), top_edge_y,
- client_view_bounds_.width(), client_edges.top->height());
- canvas->DrawBitmapInt(
- *(client_edges.top_right), client_view_bounds_.right(), top_edge_y);
- // Draw the right edge.
- int client_area_bottom =
- std::max(client_area_top, client_view_bounds_.bottom());
- int client_area_height = client_area_bottom - client_area_top;
- canvas->TileImageInt(
- *(client_edges.right), client_view_bounds_.right(), client_area_top,
- client_edges.right->width(), client_area_height);
-
- // Draw the bottom edge.
- canvas->DrawBitmapInt(
- *(client_edges.bottom_right), client_view_bounds_.right(),
- client_area_bottom);
- canvas->TileImageInt(
- *(client_edges.bottom), client_view_bounds_.x(), client_area_bottom,
- client_view_bounds_.width(), client_edges.bottom_right->height());
- canvas->DrawBitmapInt(
- *(client_edges.bottom_left),
- client_view_bounds_.x() - client_edges.bottom_left->width(),
- client_area_bottom);
-
- // Draw the left edge.
- canvas->TileImageInt(
- *(client_edges.left),
- client_view_bounds_.x() - client_edges.left->width(),
- client_area_top, client_edges.left->width(), client_area_height);
+ // Draw the divider between the titlebar and the client area.
+ if (height() > kTitlebarHeight) {
+ canvas->DrawRectInt(kDividerColor, kBorderThickness, kTitlebarHeight,
+ width() - 1 - 2 * kBorderThickness, kBorderThickness);
+ }
}
string16 PanelBrowserFrameView::GetTitleText() const {
« no previous file with comments | « chrome/browser/ui/panels/panel_browser_frame_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698