| // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_CHROMEOS_DROP_SHADOW_LABEL_H_ |
| #define CHROME_BROWSER_CHROMEOS_DROP_SHADOW_LABEL_H_ |
| #pragma once |
| |
| #include "ui/gfx/font.h" |
| #include "views/controls/label.h" |
| |
| namespace chromeos { |
| |
| ///////////////////////////////////////////////////////////////////////////// |
| // |
| // DropShadowLabel class |
| // |
| // A drop shadow label is a view subclass that can display a string |
| // with a drop shadow. |
| // |
| ///////////////////////////////////////////////////////////////////////////// |
| class DropShadowLabel : public views::Label { |
| public: |
| DropShadowLabel(); |
| |
| // Sets the size of the drop shadow drawn under the text. |
| // Defaults to two. Note that this is a really simplistic drop |
| // shadow -- it gets more expensive to draw the larger it gets, |
| // since it simply draws more copies of the string. For instance, |
| // for a value of two, the string is draw seven times. In general, |
| // it is drawn three extra times for each increment of |size|. |
| void SetDropShadowSize(int size); |
| |
| // Return the size of the drop shadow in pixels. |
| int drop_shadow_size() const { return drop_shadow_size_; } |
| |
| // Overridden to paint the text differently from the base class. |
| virtual void PaintText(gfx::Canvas* canvas, |
| const std::wstring& text, |
| const gfx::Rect& text_bounds, |
| int flags); |
| |
| protected: |
| virtual gfx::Size GetTextSize() const; |
| |
| private: |
| void Init(); |
| |
| int drop_shadow_size_; |
| |
| DISALLOW_COPY_AND_ASSIGN(DropShadowLabel); |
| }; |
| |
| } // namespace chromeos |
| |
| #endif // CHROME_BROWSER_CHROMEOS_DROP_SHADOW_LABEL_H_ |