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

Unified Diff: ui/aura_shell/shell_tooltip_manager.cc

Issue 8821028: aura: Draw shadows around tooltip windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add a TODO Created 9 years 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
Index: ui/aura_shell/shell_tooltip_manager.cc
diff --git a/ui/aura_shell/shell_tooltip_manager.cc b/ui/aura_shell/shell_tooltip_manager.cc
index 0544ca8c4f65105b5aa8ddc915129ccb005170f7..e4e121f21ce5f670629e4e6931ca1a393f8932cc 100644
--- a/ui/aura_shell/shell_tooltip_manager.cc
+++ b/ui/aura_shell/shell_tooltip_manager.cc
@@ -6,9 +6,11 @@
#include <vector>
+#include "base/command_line.h"
#include "base/location.h"
#include "base/string_split.h"
#include "base/time.h"
+#include "ui/aura/aura_switches.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/event.h"
#include "ui/aura/window.h"
@@ -26,14 +28,19 @@
namespace {
-SkColor kTooltipBackground = 0xFFFFFFCC;
-SkColor kTooltipBorder = 0xFF000000;
-int kTooltipBorderWidth = 1;
-int kTooltipTimeoutMs = 500;
+const SkColor kTooltipBackground = 0xFFFFFFCC;
+const SkColor kTooltipBorder = 0xFF646450;
+const int kTooltipBorderWidth = 1;
+const int kTooltipHorizontalPadding = 2;
+// TODO(derat): This padding is needed on Chrome OS devices but seems excessive
+// when running the same binary on a Linux workstation; presumably there's a
+// difference in font metrics. Rationalize this.
+const int kTooltipVerticalPadding = 2;
+const int kTooltipTimeoutMs = 500;
// FIXME: get cursor offset from actual cursor size.
-int kCursorOffsetX = 10;
-int kCursorOffsetY = 15;
+const int kCursorOffsetX = 10;
+const int kCursorOffsetY = 15;
// Maximum number of characters we allow in a tooltip.
const size_t kMaxTooltipLength = 1024;
@@ -59,7 +66,10 @@ void TrimTooltipToFit(string16* text,
*text = text->substr(0, kMaxTooltipLength);
// Determine the available width for the tooltip.
- int available_width = aura::TooltipClient::GetMaxWidth(x, y);
+ int available_width =
+ aura::TooltipClient::GetMaxWidth(x, y) - 2 * kTooltipHorizontalPadding;
varunjain 2011/12/06 19:25:38 I think you can simply add the padding to the widg
Daniel Erat 2011/12/06 21:34:18 Done.
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAuraNoShadows))
+ available_width -= 2 * kTooltipBorderWidth;
// Split the string into at most kMaxLines lines.
std::vector<string16> lines;
@@ -107,8 +117,10 @@ class ShellTooltipManager::Tooltip {
Tooltip() {
label_.set_background(
views::Background::CreateSolidBackground(kTooltipBackground));
- label_.set_border(
- views::Border::CreateSolidBorder(kTooltipBorderWidth, kTooltipBorder));
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAuraNoShadows))
Ben Goodger (Google) 2011/12/06 19:27:03 needs braces
Daniel Erat 2011/12/06 21:34:18 Done.
+ label_.set_border(
+ views::Border::CreateSolidBorder(kTooltipBorderWidth,
+ kTooltipBorder));
label_.set_parent_owned(false);
widget_.reset(CreateTooltip());
widget_->SetContentsView(&label_);
@@ -126,8 +138,14 @@ class ShellTooltipManager::Tooltip {
location.x(), location.y());
label_.SetText(tooltip_text);
- SetTooltipBounds(location, max_width + 2 * kTooltipBorderWidth,
- label_.GetPreferredSize().height());
+ int width = max_width + + 2 * kTooltipHorizontalPadding;
+ int height = label_.GetPreferredSize().height() +
+ 2 * kTooltipVerticalPadding;
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAuraNoShadows)) {
+ width += 2 * kTooltipBorderWidth;
+ height += 2 * kTooltipBorderWidth;
+ }
+ SetTooltipBounds(location, width, height);
}
// Shows the tooltip.
@@ -167,9 +185,10 @@ class ShellTooltipManager::Tooltip {
////////////////////////////////////////////////////////////////////////////////
// ShellTooltipManager public:
-ShellTooltipManager::ShellTooltipManager() : aura::EventFilter(NULL),
- tooltip_window_(NULL),
- tooltip_(new Tooltip) {
+ShellTooltipManager::ShellTooltipManager()
+ : aura::EventFilter(NULL),
+ tooltip_window_(NULL),
+ tooltip_(new Tooltip) {
tooltip_timer_.Start(FROM_HERE,
base::TimeDelta::FromMilliseconds(kTooltipTimeoutMs),
this, &ShellTooltipManager::TooltipTimerFired);

Powered by Google App Engine
This is Rietveld 408576698