Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2450)

Unified Diff: views/bubble/bubble_border.h

Issue 8588064: views: Move bubble, events, focus and layout to ui/views/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « views/bubble/border_contents_view.cc ('k') | views/bubble/bubble_border.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: views/bubble/bubble_border.h
diff --git a/views/bubble/bubble_border.h b/views/bubble/bubble_border.h
index 7f00072eab9770f19cb301ff49da8f361d7b7fa8..5612eb709b4c53b8c16118edbafbb83e83fe7879 100644
--- a/views/bubble/bubble_border.h
+++ b/views/bubble/bubble_border.h
@@ -6,178 +6,7 @@
#define VIEWS_BUBBLE_BUBBLE_BORDER_H_
#pragma once
-#include "views/background.h"
-#include "views/border.h"
-
-class SkBitmap;
-
-namespace views {
-
-// Renders a border, with optional arrow, and a custom dropshadow.
-// This can be used to produce floating "bubble" objects with rounded corners.
-class VIEWS_EXPORT BubbleBorder : public views::Border {
- public:
- // Possible locations for the (optional) arrow.
- // 0 bit specifies left or right.
- // 1 bit specifies top or bottom.
- // 2 bit specifies horizontal or vertical.
- enum ArrowLocation {
- TOP_LEFT = 0,
- TOP_RIGHT = 1,
- BOTTOM_LEFT = 2,
- BOTTOM_RIGHT = 3,
- LEFT_TOP = 4,
- RIGHT_TOP = 5,
- LEFT_BOTTOM = 6,
- RIGHT_BOTTOM = 7,
- NONE = 8, // No arrow. Positioned under the supplied rect.
- FLOAT = 9 // No arrow. Centered over the supplied rect.
- };
-
- enum Shadow {
- SHADOW = 0,
- NO_SHADOW = 1
- };
-
- // The position of the bubble in relation to the anchor.
- enum BubbleAlignment {
- // The tip of the arrow points to the middle of the anchor.
- ALIGN_ARROW_TO_MID_ANCHOR,
- // The edge nearest to the arrow is lined up with the edge of the anchor.
- ALIGN_EDGE_TO_ANCHOR_EDGE
- };
-
- BubbleBorder(ArrowLocation arrow_location, Shadow shadow);
-
- // Returns the radius of the corner of the border.
- static int GetCornerRadius() {
- // We can't safely calculate a border radius by comparing the sizes of the
- // side and corner images, because either may have been extended in various
- // directions in order to do more subtle dropshadow fading or other effects.
- // So we hardcode the most accurate value.
- return 4;
- }
-
- // Sets the location for the arrow.
- void set_arrow_location(ArrowLocation arrow_location) {
- arrow_location_ = arrow_location;
- }
- ArrowLocation arrow_location() const { return arrow_location_; }
-
- // Sets the alignment.
- void set_alignment(BubbleAlignment alignment) { alignment_ = alignment; }
- BubbleAlignment alignment() const { return alignment_; }
-
- static ArrowLocation horizontal_mirror(ArrowLocation loc) {
- return loc >= NONE ? loc : static_cast<ArrowLocation>(loc ^ 1);
- }
-
- static ArrowLocation vertical_mirror(ArrowLocation loc) {
- return loc >= NONE ? loc : static_cast<ArrowLocation>(loc ^ 2);
- }
-
- static bool has_arrow(ArrowLocation loc) {
- return loc >= NONE ? false : true;
- }
-
- static bool is_arrow_on_left(ArrowLocation loc) {
- return loc >= NONE ? false : !(loc & 1);
- }
-
- static bool is_arrow_on_top(ArrowLocation loc) {
- return loc >= NONE ? false : !(loc & 2);
- }
-
- static bool is_arrow_on_horizontal(ArrowLocation loc) {
- return loc >= NONE ? false : !(loc & 4);
- }
-
- // Sets the background color for the arrow body. This is irrelevant if you do
- // not also set the arrow location to something other than NONE.
- void set_background_color(SkColor background_color) {
- background_color_ = background_color;
- }
- SkColor background_color() const { return background_color_; }
-
- // For borders with an arrow, gives the desired bounds (in screen coordinates)
- // given the rect to point to and the size of the contained contents. This
- // depends on the arrow location, so if you change that, you should call this
- // again to find out the new coordinates.
- gfx::Rect GetBounds(const gfx::Rect& position_relative_to,
- const gfx::Size& contents_size) const;
-
- // Sets a fixed offset for the arrow from the beginning of corresponding edge.
- // The arrow will still point to the same location but the bubble will shift
- // location to make that happen. Returns actuall arrow offset, in case of
- // overflow it differ from desired.
- int SetArrowOffset(int offset, const gfx::Size& contents_size);
-
- // Overridden from views::Border:
- virtual void GetInsets(gfx::Insets* insets) const;
-
- private:
- struct BorderImages;
-
- // Loads images if necessary.
- static BorderImages* GetBorderImages(Shadow shadow);
-
- virtual ~BubbleBorder();
-
- // Overridden from views::Border:
- virtual void Paint(const views::View& view, gfx::Canvas* canvas) const;
-
- void DrawEdgeWithArrow(gfx::Canvas* canvas,
- bool is_horizontal,
- SkBitmap* edge,
- SkBitmap* arrow,
- int start_x,
- int start_y,
- int before_arrow,
- int after_arrow,
- int offset) const;
-
- void DrawArrowInterior(gfx::Canvas* canvas,
- bool is_horizontal,
- int tip_x,
- int tip_y,
- int shift_x,
- int shift_y) const;
-
- // Border graphics.
- struct BorderImages* images_;
-
- // Image bundles.
- static struct BorderImages* normal_images_;
- static struct BorderImages* shadow_images_;
-
- // Minimal offset of the arrow from the closet edge of bounding rect.
- int arrow_offset_;
-
- // If specified, overrides the pre-calculated |arrow_offset_| of the arrow.
- int override_arrow_offset_;
-
- ArrowLocation arrow_location_;
- BubbleAlignment alignment_;
- SkColor background_color_;
-
- DISALLOW_COPY_AND_ASSIGN(BubbleBorder);
-};
-
-// A Background that clips itself to the specified BubbleBorder and uses
-// the background color of the BubbleBorder.
-class VIEWS_EXPORT BubbleBackground : public views::Background {
- public:
- explicit BubbleBackground(BubbleBorder* border) : border_(border) {}
-
- // Background overrides.
- virtual void Paint(gfx::Canvas* canvas, views::View* view) const;
-
- private:
- BubbleBorder* border_;
-
- DISALLOW_COPY_AND_ASSIGN(BubbleBackground);
-};
-
-} // namespace views
+#include "ui/views/bubble/bubble_border.h"
+// TODO(tfarina): remove this file once all includes have been updated.
#endif // VIEWS_BUBBLE_BUBBLE_BORDER_H_
« no previous file with comments | « views/bubble/border_contents_view.cc ('k') | views/bubble/bubble_border.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698