Skip to content

Commit

Permalink
Linux Aura: get tooltip background color from theme
Browse files Browse the repository at this point in the history
the border color can still conflict with the theme (e.g., no visible border if the tooltip bg is dark), but fixing that is a lot harder because the border, window roundedness, and shadow are all one tiled set of images (see shadow.cc).

BUG=348194

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=266974

Review URL: https://codereview.chromium.org/258713002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267000 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
estade@chromium.org committed Apr 30, 2014
1 parent 6ee592a commit aafcd5e
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 7 deletions.
9 changes: 5 additions & 4 deletions chrome/browser/ui/libgtk2ui/native_theme_gtk2.cc
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,11 @@ GdkColor NativeThemeGtk2::GetSystemGdkColor(ColorId color_id) const {
case kColorId_TextfieldSelectionBackgroundFocused:
return GetEntryStyle()->base[GTK_STATE_SELECTED];

// Trees and Tables (implemented on GTK using the same class)
// Tooltips
case kColorId_TooltipBackground:
return GetWindowStyle()->bg[GTK_STATE_NORMAL];

// Trees and Tables (implemented on GTK using the same class)
case kColorId_TableBackground:
case kColorId_TreeBackground:
return GetTreeStyle()->bg[GTK_STATE_NORMAL];
Expand Down Expand Up @@ -326,9 +330,6 @@ GdkColor NativeThemeGtk2::GetSystemGdkColor(ColorId color_id) const {
return GdkAlphaBlend(win_style->text[GTK_STATE_SELECTED],
win_style->bg[GTK_STATE_SELECTED], 0x34);
}
default:
// Fall through
break;
}

return SkColorToGdkColor(kInvalidColorIdColor);
Expand Down
6 changes: 6 additions & 0 deletions ui/native_theme/fallback_theme.cc
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ SkColor FallbackTheme::GetSystemColor(ColorId color_id) const {
static const SkColor kTextfieldSelectionColor =
color_utils::AlphaBlend(SK_ColorBLACK,
kTextfieldSelectionBackgroundFocused, 0xdd);
// Tooltip
static const SkColor kTooltipBackground = 0xFFFFFFCC;
// Tree
static const SkColor kTreeBackground = SK_ColorWHITE;
static const SkColor kTreeTextColor = SK_ColorBLACK;
Expand Down Expand Up @@ -184,6 +186,10 @@ SkColor FallbackTheme::GetSystemColor(ColorId color_id) const {
case kColorId_TextfieldSelectionBackgroundFocused:
return kTextfieldSelectionBackgroundFocused;

// Tooltip
case kColorId_TooltipBackground:
return kTooltipBackground;

// Tree
case kColorId_TreeBackground:
return kTreeBackground;
Expand Down
2 changes: 2 additions & 0 deletions ui/native_theme/native_theme.h
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,8 @@ class NATIVE_THEME_EXPORT NativeTheme {
kColorId_TextfieldReadOnlyBackground,
kColorId_TextfieldSelectionColor,
kColorId_TextfieldSelectionBackgroundFocused,
// Tooltip
kColorId_TooltipBackground,
// Tree
kColorId_TreeBackground,
kColorId_TreeText,
Expand Down
9 changes: 6 additions & 3 deletions ui/views/corewm/tooltip_aura.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
#include "ui/gfx/screen.h"
#include "ui/gfx/text_elider.h"
#include "ui/gfx/text_utils.h"
#include "ui/native_theme/native_theme.h"
#include "ui/views/background.h"
#include "ui/views/border.h"
#include "ui/views/widget/widget.h"

namespace {

const SkColor kTooltipBackground = 0xFFFFFFCC;
const int kTooltipHorizontalPadding = 3;

// Max visual tooltip width. If a tooltip is greater than this width, it will
Expand Down Expand Up @@ -60,8 +60,6 @@ TooltipAura::TooltipAura(gfx::ScreenType screen_type)
: screen_type_(screen_type),
widget_(NULL),
tooltip_window_(NULL) {
label_.set_background(
views::Background::CreateSolidBackground(kTooltipBackground));
label_.set_owned_by_client();
label_.SetMultiLine(true);
}
Expand Down Expand Up @@ -234,6 +232,11 @@ void TooltipAura::SetText(aura::Window* window,
2 * kTooltipVerticalPadding;
CreateWidget();
SetTooltipBounds(location, width, height);

label_.set_background(
views::Background::CreateSolidBackground(
widget_->GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_TooltipBackground)));
}

void TooltipAura::Show() {
Expand Down

0 comments on commit aafcd5e

Please sign in to comment.