Home | History | Annotate | Download | only in gfx
      1 // Copyright (c) 2012 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_GFX_INSETS_H_
      6 #define UI_GFX_INSETS_H_
      7 
      8 #include <string>
      9 
     10 #include "build/build_config.h"
     11 #include "ui/gfx/gfx_export.h"
     12 #include "ui/gfx/insets_base.h"
     13 
     14 #if defined(TOOLKIT_GTK)
     15 typedef struct _GtkBorder GtkBorder;
     16 #endif
     17 
     18 namespace gfx {
     19 
     20 // An integer version of gfx::Insets.
     21 class GFX_EXPORT Insets : public InsetsBase<Insets, int> {
     22  public:
     23   Insets();
     24   Insets(int top, int left, int bottom, int right);
     25 #if defined(TOOLKIT_GTK)
     26   explicit Insets(const GtkBorder& border);
     27 #endif
     28 
     29   ~Insets();
     30 
     31   Insets Scale(float scale) const {
     32     return Scale(scale, scale);
     33   }
     34 
     35   Insets Scale(float x_scale, float y_scale) const {
     36     return Insets(static_cast<int>(top() * y_scale),
     37                   static_cast<int>(left() * x_scale),
     38                   static_cast<int>(bottom() * y_scale),
     39                   static_cast<int>(right() * x_scale));
     40   }
     41 
     42   // Returns a string representation of the insets.
     43   std::string ToString() const;
     44 };
     45 
     46 #if !defined(COMPILER_MSVC)
     47 extern template class InsetsBase<Insets, int>;
     48 #endif
     49 
     50 }  // namespace gfx
     51 
     52 #endif  // UI_GFX_INSETS_H_
     53