Home | History | Annotate | Download | only in views
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef UI_VIEWS_SHADOW_BORDER_H_
      6 #define UI_VIEWS_SHADOW_BORDER_H_
      7 
      8 #include "third_party/skia/include/core/SkColor.h"
      9 #include "ui/views/border.h"
     10 #include "ui/views/views_export.h"
     11 
     12 namespace views {
     13 
     14 // Creates a css box-shadow like border which fades into SK_ColorTRANSPARENT.
     15 class VIEWS_EXPORT ShadowBorder : public views::Border {
     16  public:
     17   ShadowBorder(int blur,
     18                SkColor color,
     19                int vertical_offset,
     20                int horizontal_offset);
     21   virtual ~ShadowBorder();
     22 
     23  protected:
     24   // Overridden from views::Border:
     25   virtual void Paint(const views::View& view, gfx::Canvas* canvas) OVERRIDE;
     26   virtual gfx::Insets GetInsets() const OVERRIDE;
     27   virtual gfx::Size GetMinimumSize() const OVERRIDE;
     28 
     29  private:
     30   // Blur amount of the shadow in pixels. For details on how blur is defined see
     31   // comments for blur_ in class ShadowValue.
     32   const int blur_;
     33 
     34   // Shadow color.
     35   const SkColor color_;
     36 
     37   // Number of pixels to shift shadow to bottom.
     38   const int vertical_offset_;
     39 
     40   // Number of pixels to shift shadow to right.
     41   const int horizontal_offset_;
     42 
     43   DISALLOW_COPY_AND_ASSIGN(ShadowBorder);
     44 };
     45 
     46 }  // namespace views
     47 
     48 #endif  // UI_VIEWS_SHADOW_BORDER_H_
     49