summaryrefslogtreecommitdiffstats
path: root/views/border.h
diff options
context:
space:
mode:
Diffstat (limited to 'views/border.h')
-rw-r--r--views/border.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/views/border.h b/views/border.h
new file mode 100644
index 0000000..7e7e2bd
--- /dev/null
+++ b/views/border.h
@@ -0,0 +1,59 @@
+// Copyright (c) 2006-2008 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 VIEWS_BORDER_H_
+#define VIEWS_BORDER_H_
+
+#include "app/gfx/insets.h"
+#include "skia/include/SkColor.h"
+#include "views/view.h"
+
+class ChromeCanvas;
+
+namespace views {
+
+class View;
+
+////////////////////////////////////////////////////////////////////////////////
+//
+// Border class.
+//
+// The border class is used to display a border around a view.
+// To set a border on a view, just call SetBorder on the view, for example:
+// view->SetBorder(Border::CreateSolidBorder(1, SkColorSetRGB(25, 25, 112));
+// Once set on a view, the border is owned by the view.
+//
+// IMPORTANT NOTE: not all views support borders at this point. In order to
+// support the border, views should make sure to use bounds excluding the
+// border (by calling View::GetLocalBoundsExcludingBorder) when doing layout and
+// painting.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+class Border {
+ public:
+ Border();
+ virtual ~Border();
+
+ // Creates a border that is a simple line of the specified thickness and
+ // color.
+ static Border* CreateSolidBorder(int thickness, SkColor color);
+
+ // Creates a border for reserving space. The returned border does not
+ // paint anything.
+ static Border* CreateEmptyBorder(int top, int left, int bottom, int right);
+
+ // Renders the border for the specified view.
+ virtual void Paint(const View& view, ChromeCanvas* canvas) const = 0;
+
+ // Sets the specified insets to the the border insets.
+ virtual void GetInsets(gfx::Insets* insets) const = 0;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(Border);
+};
+
+} // namespace views
+
+#endif // VIEWS_BORDER_H_