diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-25 21:50:56 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-25 21:50:56 +0000 |
commit | fa9a74f565c1c99e64b9dd0e65b63d75e55f11e7 (patch) | |
tree | d745d79c9753bb7fea4e3a77ecd2a680003df1e7 | |
parent | 66d202e51a6b195d0b738d3f6cfcf23059ce5534 (diff) | |
download | chromium_src-fa9a74f565c1c99e64b9dd0e65b63d75e55f11e7.zip chromium_src-fa9a74f565c1c99e64b9dd0e65b63d75e55f11e7.tar.gz chromium_src-fa9a74f565c1c99e64b9dd0e65b63d75e55f11e7.tar.bz2 |
Make --show-extensions-on-top look exactly, pixel-for-pixel
identical to the bookmark bar.
Used the same semi-transparent image for the button background
that the bookmarkbar uses, so that it will work for themes.
The upside of this is that we look the same as the bookmark bar. The downside is that we look the same as the bookmark bar (which currently looks pretty bad with some themes).
However, with the default theme, I think that the bookmark bar currently looks better than our toolstrips. The UI team should probably create some images that look good with different themes for the bookmark bar, then we can update this again.
Review URL: http://codereview.chromium.org/225025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27258 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/views/extensions/extension_shelf.cc | 19 | ||||
-rw-r--r-- | chrome/browser/views/extensions/extension_shelf.h | 4 | ||||
-rw-r--r-- | chrome/renderer/resources/extension_toolstrip.css | 41 |
3 files changed, 40 insertions, 24 deletions
diff --git a/chrome/browser/views/extensions/extension_shelf.cc b/chrome/browser/views/extensions/extension_shelf.cc index efab520..10ce48d 100644 --- a/chrome/browser/views/extensions/extension_shelf.cc +++ b/chrome/browser/views/extensions/extension_shelf.cc @@ -31,7 +31,8 @@ namespace { // Margins around the content. -static const int kTopMargin = 2; +static const int kTopMarginWhenExtensionsOnTop = 1; +static const int kTopMarginWhenExtensionsOnBottom = 2; static const int kBottomMargin = 2; static const int kLeftMargin = 0; static const int kRightMargin = 0; @@ -59,9 +60,6 @@ static const int kNewtabVerticalPadding = 12; static const int kNewtabExtraHorMargin = 2; static const int kNewtabExtraVerMargin = 2; -// Height of the toolstrip within the shelf. -static const int kToolstripHeight = kShelfHeight - (kTopMargin + kBottomMargin); - // Padding for the title inside the handle. static const int kHandlePadding = 4; @@ -636,7 +634,8 @@ void ExtensionShelf::Toolstrip::Collapse(const GURL& url) { mole_animation_->Hide(); gfx::Size extension_size = view()->GetPreferredSize(); - extension_size.set_height(kToolstripHeight); + extension_size.set_height( + kShelfHeight - (shelf_->top_margin() + kBottomMargin)); view()->SetPreferredSize(extension_size); if (!url.is_empty() && url != host_->GetURL()) { @@ -684,6 +683,12 @@ ExtensionShelf::ExtensionShelf(Browser* browser) model_(browser->extension_shelf_model()), fullscreen_(false) { SetID(VIEW_ID_DEV_EXTENSION_SHELF); + + if (IsOnTop()) + top_margin_ = kTopMarginWhenExtensionsOnTop; + else + top_margin_ = kTopMarginWhenExtensionsOnBottom; + model_->AddObserver(this); LoadFromModel(); EnableCanvasFlippingForRTLUI(true); @@ -1035,8 +1040,8 @@ gfx::Size ExtensionShelf::LayoutItems(bool compute_bounds_only) { gfx::Size prefsize; int x = kLeftMargin; - int y = kTopMargin; - int content_height = kShelfHeight - kTopMargin - kBottomMargin; + int y = top_margin_; + int content_height = kShelfHeight - top_margin_ - kBottomMargin; int max_x = width() - kRightMargin; if (OnNewTabPage()) { diff --git a/chrome/browser/views/extensions/extension_shelf.h b/chrome/browser/views/extensions/extension_shelf.h index 450e025..08de605 100644 --- a/chrome/browser/views/extensions/extension_shelf.h +++ b/chrome/browser/views/extensions/extension_shelf.h @@ -36,6 +36,8 @@ class ExtensionShelf : public DetachableToolbarView, // Toggles a preference for whether to always show the extension shelf. static void ToggleWhenExtensionShelfVisible(Profile* profile); + int top_margin() { return top_margin_; } + // DetachableToolbarView methods: virtual bool IsOnTop() const; virtual bool IsDetached() const; @@ -130,6 +132,8 @@ class ExtensionShelf : public DetachableToolbarView, // page. bool OnNewTabPage() const; + int top_margin_; + NotificationRegistrar registrar_; // Background bitmap to draw under extension views. diff --git a/chrome/renderer/resources/extension_toolstrip.css b/chrome/renderer/resources/extension_toolstrip.css index cb99470..a798239 100644 --- a/chrome/renderer/resources/extension_toolstrip.css +++ b/chrome/renderer/resources/extension_toolstrip.css @@ -48,10 +48,12 @@ body>style { div.toolstrip-button { -webkit-box-orient:horizontal; -webkit-box-align:center; - border:6px solid transparent; + -webkit-box-sizing:border-box; + border:7px solid transparent; font:menu; background:transparent; line-height:100%; + height:100%; padding:0; } @@ -60,34 +62,39 @@ div.toolstrip-button>img { width:16px; height:16px; /** - * We inset the image slightly vertically, so that the button can be shorter - * than would otherwise be possibe with our fat borders. + * We inset the image slightly, so that the button can be shorter + * than would otherwise be possibe with our fat borders. The 5px right border + * just creates the spacing between the icon and the text. */ - margin:-1px 5px -1px 0; + margin:-2px 5px -2px -1px; } div.toolstrip-button>span { display:-webkit-box; - margin-right:1px; - /** - * Hack: WebKit appears to measure text height slightly differently than we do - * in native code, making us not line up when centering, so we shift ourselves - * up one pixel to match. - */ + margin-right:1px;
+ /**
+ * Hack: WebKit appears to measure text height slightly differently than we do
+ * in native code, making us not line up when centering, so we shift ourselves
+ * up one pixel to match.
+ */
margin-top:-1px; } /** - * TODO(aa): It would be nice if these border images could be stored in Chrome - * as, normal images even if those images are just translated into data URLs at - * runtime. + * NOTE: These images were created by pasting src/app/resources/textbutton_* + * into a 15px square 9 grid. If they look funky, check to see if they match + * the bookmark buttons. If they don't, they probably need to be regenerated. + * + * TODO(aa): It would be neat-o if these were generated magically from the + * underlying images. Since the dimensions of the images are arbitrary, though, + * it would be tricky. */ div.toolstrip-button:hover { - border-width:6px; - -webkit-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAaCAYAAACHD21cAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVRJREFUeNpi/P//PwMjIyMfAwODEhsbmworKxvD79+/GED0jx/fGf7+/csABT+A+B4Q3wLq+cME0sTMzOzW1dOncuX6bYZnL98wvH73CUy/+/iV4eOXH2B86+5DjoLCYi2gxgCwHiBDs7O7Vyg9I4uBh4eHARcAyTk6OTMICQkx7N61U5kJKCZqY2PLQCyAqv3ICCSCgE5jAvqPKI2/fv1iEBXiYwDZSLQmEACpBYYJWCNZgCyNoChi4uTkpJ+N9NdIdqhycHCSpxGUCcj3IygJkQpAWY6k5AbPmMB8yvT9+3f6BQ7YRrKTHMijZCVyUJyQGrLglAPSffvWTaI13bhxHWIj0LbLq1auIFoj1JKnoFLu44kTxzVAhY+goCCDmJg4TpuWL1vKkJOV8RTIvcsILZA5QAUy0O1aoDgC+RuWQkDg69cvIOoTEL8AFcpAPV8AAgwAn6qHYvNUlBEAAAAASUVORK5CYII=) 6 round round; + border-width:7px; + -webkit-border-image:url(data:image/png;base64,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) 7 round round; } div.toolstrip-button:active { - border-width:6px; - -webkit-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAaCAYAAACHD21cAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAbhJREFUeNqcVDtPwmAU/R6tCUZsIw5AKODoYNREBNREiAb9t+qoRmDxBYOYOGGiVAexaGzDUJK2X70fFURjUtuztfeennMfvdh1XTTCer5AKKUEY8zgkULMvrw4/06YAObE3Hoep1KppWx2YVqSZQTkcbLjOJgxhnX9Az0+PLx3uy/tZqOBBB5MJpNLO7sVobK3/yZJEotEIj9UTNPEmvZK67Va9PTkeHllZfWW8EBKUaa2S6V+PB53fpM4+LtMJmuXyuW+klbEVusGDYmxuZggSTJDPuA5PDdfKHpE6AiSZX8iz+G5hBBMUEB8NQ4LEw//BoyIkY3NLRqExMdT3Nj0xhEUoIgIColQzQGrOJQi7DINa5WFrxH+DhaGR8I0aGgVZuKEVQwMKM8JvHJjST4TSgU3qCiBe+IMBibRdd3XNj8hlmXxSRBi27bb62msp2m+lg3DIIau2yDGSLNxzZ5UVa/Xq7P37bbIv/qXkqp2hOrZafT5+Qk1rq+887iWy6FEIrmYzmRmYrF5QRRF5i20VzuUQuE82mqnYx4dHtyN7+oI/L4KAGiYM1pmHgdn1tXlxQ8XnwIMABNlyWs2CMVlAAAAAElFTkSuQmCC) 6 round round; + border-width:7px; + -webkit-border-image:url(data:image/png;base64,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) 7 round round; } |